Monday Apr 13, 2015

How to implement iBeacon in Oracle Mobile Application Framework

Want to alert your customer to a special loyalty discount offer when they enter the menswear department in one of your retail stores?  Want to present information about a famous artist’s life when a visitor to your museum nears one of the artist’s paintings?  These are just two of the many real-world scenarios made possible by the use of iBeacon technology.

This blog post provides an introduction to iBeacon technology and a description of how to build two different MAF apps – one that pretends to be an iBeacon and another that detects iBeacons and uses the local notifications functionality provided in MAF 2.1.1 to inform the user, even when the app isn’t even running.

To deploy these apps to iOS devices you will need an iOS developer account.

What is a beacon?

A beacon is a device that is intentionally conspicuous to draw attention to a location, such as a lighthouse sitting on the edge of a cliff. 

In in the Internet of Things (or IoT), a beacon is a small electronic device that transmits a regular radio signal according to the Bluetooth v4 Low Energy spec (otherwise known as “BLE”).  A beacon typically does no more than advertise its existence by transmitting a unique identifier and can last for months on a single cell battery.

Any BLE-enabled device, such as a modern smartphone, can detect a beacon by listening for BLE-based transmissions.

Whilst the possibilities appear endless, typical applications for beacons currently include retail stores, exhibition halls, museums, places of employment and homes, where users can be alerted to information pertaining to their current location within a building.

What is (an) iBeacon?

iBeacon is a technology introduced by Apple in iOS 7 that defines a standard for how a beacon identifies itself (or “advertises”) in its BLE transmissions.  Any beacon that implements this standard can be called an iBeacon.

Most beacon manufacturers implement the iBeacon standard by default, whilst some can also be configured to use their own proprietary protocol.  It’s also possible to configure a post-2012 iOS device, or Mac running OS X Mavericks (not Yosemite), to act as an iBeacon.

Whilst the iBeacon technology is included in the iOS Core Location framework since iOS 7, any BLE-enabled device can detect iBeacons and various libraries exist for use on devices running Android 4.3 or above.

How does iBeacon work?

The iBeacon standard defines three properties that determine a beacon’s identity:

  • A proximity UUID (universally unique identifier), which is a 128-bit value that uniquely identifies one or more beacons as a certain type or from a certain organization.
  • A major value, which is a 16-bit unsigned integer that can be used to group related beacons that have the same proximity UUID.
  • A minor value, which is a 16-bit unsigned integer that differentiates beacons with the same proximity UUID and major value.

Every iBeacon must advertise a proximity UUID, whilst the advertisement of major and minor values is optional.  All beacon manufacturers allow customers to modify these values on their purchased beacons.

A typical iBeacon deployment (e.g. within a retail store chain) would see all beacons advertising the same proximity UUID, those in a particular location (e.g. a single store) advertising the same major value, and the minor values being used to uniquely identify each beacon.

When using iOS Location Services, an app wishing to detect iBeacons must start by monitoring for an iBeacon region.  A region is defined by the proximity UUID and optionally major and minor values, and can therefore represent one or more beacons.  Consider an app for a retail store chain that monitors for a region defined only by the proximity UUID.  This app will be notified when any of the retain chain’s beacons are detected.  Alternatively, if the region being monitored is defined by proximity UUID and major value, the app might only be notified when a beacon from a particular store (represented by the major value) is detected.

Once an app has been launched and the user has given permission for the app to monitor for beacons, the app will be notified when the device enters a beacon region that is being monitored, even if the app is not running and even if the device has been restarted.  If the app is not running, iOS launches the app for a short period (around 10 seconds), allowing the app to receive and react to the event.  Typically, the app fires an immediate local notification to notify the user.

When a user’s device enters a beacon region, the app can start ranging for individual beacons within the region to determine its relative proximity to each beacon.  This is used to determine when the user is in the immediate proximity of a particular beacon, so that information related to that beacon can be displayed to the user.  The relative proximity is an approximation that can be affected by physical objects including walls, water and the human body.  Most beacon manufacturers allow customers to modify the transmission power and advertising interval on their purchased beacons, so as to fine-tune the distance at which the relative proximity is considered ‘immediate’.

When iOS Location Services determines that it can no longer detect any beacons in the region, it notifies the app that the beacon region has been exited.  In practice, I’ve found that this takes around 30 seconds, but some bloggers have reported much longer times.

Libraries exist for Android that provide similar functionality to iOS Location Services, but I have not explored these (yet).

How to create an iBeacon client app

Click here to continue reading the full post. 

Monday Mar 23, 2015

Mobile App for Approvals for EBS 1.2.0 on iOS and Android

Reposting below for another cool new mobile app from Oracle, which btw, was built using Oracle Mobile Application Framework. Follow us @OracleMobile


Oracle Mobile Approvals for Oracle E-Business Suite lets you respond on-the-go to your pending approval requests. From your phone, anywhere and anytime, take quick action on approval requests for expenses, requisitions, purchase orders, recruitment vacancies and offers, and more.

- Quickly filter approval requests by sender or subject
- Review at a glance header and line item details, action history, and comments
- Approve or reject with or without comments, or request more information

Oracle Mobile Approvals for Oracle E-Business Suite is compatible with Oracle E-Business Suite 12.1.3 and 12.2.3 and above. To use this app, you must be a user of Oracle E-Business Suite, with mobile services configured on the server side by your administrator. For information on how to configure mobile services on the server and for app-specific information, see My Oracle Support Note 1641772.1 at



Oracle Mobile Approvals for Oracle E-Business Suite 1.2.0 is available on Apple's iTunes Store and Google Play Store for download.

This app works against Oracle E-Business Suite Release 12.1.3 and above and 12.2.3 and above.


Oracle Mobile Approvals requires set up on Oracle E-Business Suite instance to support connections from the mobile app. Following patches are required to be applied.

Android Screens

Additional Resources

Monday Feb 09, 2015

Getting started with iOS development using Eclipse and Java

Crosspost from Shay Shmeltzer's blog.

Want to use Eclipse to build an on-device mobile application that runs on iOS devices (iPhones and iPads)?

No problem - here is a step by step demo on how to do this:

Oh, and by the way the same app will function also on Android without any changes to the code :-)  

This is an extract from an online seminar that I recorded for one of Oracle's Virtual Technology Summits - and I figured people who didn't sign up for that event might still benefit from having access to the demo part of the video.

In the demo I show how to build an on-device app that access local data as well as remote data through web services, and how easy it is to integrate device features too.

If you want to try this on your own, get a copy of the Oracle Enterprise Pack for Eclipse, and follow the setup steps in the tutorial here.

And then just follow the video steps.

The location of the web service I accessed is at:

And the Java classes I use to simulate local data are  here.

Monday Feb 02, 2015

Oracle Mobile Application Framework 2.1 - Now Available

Crosspost from last week's announcement by Shay Shmeltzer at

The Oracle Mobile Team is happy to announce the release of Oracle Mobile Application Framework 2.1 - a major update to Oracle's mobile development framework.

This new version focuses on upgrading the framework's infrastructure and includes the following new features:

  • Support for Java 8 - Java is the language used for business logic development on Oracle MAF, in fact Oracle MAF is the only solution out there that will run the same Java code on both iOS and Android.  Now developers can leverage the latest features of the Java language - such as Lambda expressions, Collections with Generics and more - while running on a 64bit JVM that supports the Java 8 Compact2 profile.
  • Cordova 3 support - Cordova is used in Oracle MAF to provide access to device features. Oracle MAF 2.1 updates the Cordova version to 3.6.3 on Android and 3.7 for iOS, dramatically increasing the number of available plugins that developers can leverage.
  • Simpler Cordova Plugin integration - Oracle MAF leverages the plugman command line to build and incorporate plugins into Oracle MAF apps.
  • Xcode 6 and Android 5 support - use the latest SDKs to compile and deploy your MAF applications across multiple devices.

You can get Oracle MAF 2.1 by downloading the new Oracle MAF extension through the JDeveloper Help->Check for Updates functionality.

We highly recommend that you read the installation guide and migration guide before you start your upgrade process. The setup might be a bit tricky because you'll need JDK7 to run JDeveloper but JDK8 to use the extension - so follow the instructions carefully. 

Have questions? - join us on the Oracle MAF discussion forum on OTN

Unrelated side note but that was quite a Super Bowl finish, eh? A miraculous catch followed by what some have said was the worst call.  I mean, a time out left, half a yard to go, and 3 downs to use, with one of the best running backs in the league, and you throw on 2nd down? Wow. 

Monday Dec 29, 2014

Northumbrian Water Increases Efficiency by Going Mobile

Tis the season. Enjoy this interview by Grant Ronald with the folks at Northumbrian Water. More videos like this are available at the Oracle Media Network.

Monday Dec 22, 2014

Accessing an IBM Mainframe from a Oracle Mobile Application Framework App

It's not common that I'd refer to IBM in a a blog post, but it's the holidays, so there you go - a present for all of us.

It seems Lloyds Register was trying to mobilize some big iron (mainframes) to the 21st century and needed some help. So it happens that Oracle Mobile Application Framework was deemed best suited for the needs. ;-)  A few key points:

  • iOS and Android
  • Local data caching to reduce the number of times you have to go to the network 
  • On demand query
  • Speed. Any click an wait for a network to respond was equivalent to death. (e.g. uninstall) 

Apparently, soup to nuts, it only took a couple of months and voila! Old iron is was now mobile iron, thanks to Oracle MAF.

You can read the article on Computer Business Review.  

Follow us on Twitter @OracleMobile and be sure to check out

Monday Dec 15, 2014

Catching Up on Mobile

There's a few things we should probably catch up on regarding Oracle Mobile Application Framework (MAF) that you may have missed or should revisit...

1. There's a new version of Oracle MAF. Version 2.0.1 has support for iOS 8, enterprise management and security enhancements, component enhancements and enhanced tooling support.  Joe Huang covers it in detail in here. Speaking of enhance tooling support, leads to #2.

2. If you haven't heard about Oracle Enterprise Pack for Eclipse (OEPE), well, OEPE <3 MAF and isn't afraid to show it. The new release supports Eclipse Luna, Oracle Developer Cloud Service, and of course MAF 2.0.1.  Greg Stachnick covers it well here.

3. So now you have JDeveloper and Eclipse to choose from. Good! Time to put step up to the challenge. The Oracle Mobile Application challenge. Sign up of right challenge and potentially win some cash. Click here for details.  

4. Want a bit of extra help? This article on mobile design patterns might help.  

Monday Nov 24, 2014

Oracle High Scores on GigaOm Research - Sector Roadmap: cross-platform mobile development

" Oracle is uniquely positioned to bring new developments to its MADP solution first and best — an advantage that could be profound in the months and years to come."  - Rich Morrow, GigaOm Analyst

GigaOm analysts Rich Morrow recently covered cross platform mobile development, a hot topic given the effort it takes to develop enterprise apps that fulfill  the needs in a BYOD world, and Oracle is helping to fulfill the needs end-to-end needs for enterprise mobile development. 

Areas covered include:

▪ Write once, deploy to several native codebases

▪ Tight integrations to back-ends or middleware

▪ A focus on specific use cases

▪ Consistent “app identity.” 

▪ Support for popular coding environments.

▪ Native device support

There's some great information covered in the report. Get the whole story here.  For instant news related to Oracle and mobile, follow us @OracleMobile 

Monday Oct 20, 2014

Lost and Stolen Mobile Devices?

Lost and Stolen Mobile Devices - A Disaster Waiting to Happen?

The 'Oracle Mobile. Simply Connected.' global study found that people aged between 16 and 24 are more likely to find a way to access work data and applications on their mobile device–with or without their employers’ consent. Yet they are also the most likely to lose their mobile devices, or worse, have them stolen. To learn more, click here

Get real time information on Oracle Mobile by following us on Twitter @OracleMobile or subscribing to the Oracle Mobile blog

Monday Oct 13, 2014

iOS 8 and Mac 10.9.5

Cross posting for Joe Huang, Oracle Mobile Application Framework Product Team 

Hi, everyone:

As everyone probably already known,  Apple iOS 8 and iPhone 6/6+ were released with great fanfare, delivering a number of new features.  In the past, in general the upgraded phones will continue to run existing applications without any issues.  Furthermore, testing against beta versions of the iOS are typically provides accurate feedback on the compatibility between MAF and new iOS.  However, unfortunately, this was not the case with iOS 8, as there were some late breaking changing that were introduced only with the GA version of iOS 8 that were sent to all devices as updates.  On the Mac itself, application upload check to the Apple AppStore has also changed.  Furthermore, Mac 10.9.5 introduced changes in the certificate format, which necessitates further changes and workarounds.  Let's look at each one of them more closely:

iOS 8 Support and Impact of Apple AppStore Upload Verification Change

If you are running MAF 2.0.1, you are covered.  MAF 2.0.1 has been fully certified against iOS 8.  What you will notice, however, is that you may be prompted for allowing "Notifications" when you run the MAF application.  This typically shows up during feature navigation.  This "Notification" refers to the framework ability to be able to, for example, set badging numbering on the application icon.  In older versions of iOS, this permission was automatically granted to the application.  In iOS 8, users would be explicitly prompted to allow this.  The user may pick "Yes" or "No", and in any case the application should behave as expected.  This only showed up in the released version of iOS 8 so it's a late breaking change, but nevertheless it is an expected behavior.  In future versions, investigations are underway to see if it's possible to allow developers to more finely control the display of these dialog boxes.  

MAF 2.0.1 also addressed a couple of changes Apple introduced when verifying IPA files during the upload process to the iTunes Connect Portal.  The Application Loader program in Xcode now perform some extra checks, and MAF 2.0.1 contains the changes that fully comply with these changes. 

If you have developed MAF 2.0.0 - MAF 2.0.0 was tested against iOS 8 and we found its behavior to be consistent with MAF 2.0.1 when running iOS 8 devices.  Nevertheless, we strongly recommend moving to 2.0.1 as soon as possible, since it contains the latest bug fixes.  Furthermore MAF 2.0.0 does not contain the changes necessitated by the changes in the AppStore upload process referenced above.  This is detailed in this Blog Article.

For applications built using ADF Mobile, we discovered a critical issue when running on iOS 8 - for which we have already delivered a patch.  This issue impacts programmatic feature navigations and login screen navigation - so if you invoke feature navigation programmatically or simply enabled security/login, then you will see application "hang" during navigation to the next feature.  It also appears to impact display of custom SpringBoard.  To download and apply the patch addressing this hanging issue, please follow the instructions in Oracle Support Document 1929990.1 (ADF Mobile Application Feature Navigation and Login Hanging While Running on iOS8 Devices)

In general, however, please consider moving from ADF Mobile to Mobile Application Framework.  Mobile Application Framework contains a number of major enhancements such as new IDE support, and will be the focus of new features going forward.

Mac OSX 10.9.5 Certificate Changes and Workarounds

Mac OSX 10.9.5 (as well as the upcoming Yosemite release) introduced a new certificate format (Version 2).  The technical details for Version 2 certificates are outside the scope of this article, but this Apple Technical Note does provide a little background.  However, this change does impact MAF developers who have upgraded their Mac to 10.9.5 - the updates can be fairly silent so many of you may have upgraded without knowing it.  After upgrading the Mac to 10.9.5, when you try to deploy a MAF application to an IPA file, the deployment will appear to fail, and the last line of the deployment log will state "...resource envelop is obsolete".  This issue will be addressed in a patch for MAF 2.0.1 coming shortly.  In the meantime, there are two possible workarounds:


  • Check to see if there is an IPA file in the "<Application Workspace Directory>/deploy/profile/Destination_Root/Oracle_ADFmc_Container_Application/device" directory.  If there is, try to install this IPA file instead and see if that works.  

If this file is not available or does not install, then try the following workarounds using Xcode 5.1.x:

1. Deploy from JDeveloper to "Distribution Package"

2. Open Oracle_ADFmc_Container_Template.xcodeproj located in MyApp/deploy/iOS1/temporary_xcode_project


-> This will launch Xcode

3. In Xcode select Product > Destination and select "iOS Device"

4. In Xcode select Product > Archive

->This will create an archive file and will automatically launch Organizer 

open to the Archives tab with the archive selected

5. In Organizer select Distribute...

6. Select Save for Enterprise or Ad Hoc Deployment and hit Next

7. Select your provisioning profile, which will most likely be defaulted and hit Export

8. Specify the name and location for the IPA file -> This will create a signed IPA file for deployment or distribution

Mobile technologies are ever-changing, but Oracle is committed to work as fast as possible to support our customers by delivering these changes either as a new release or as patches.  Stay tuned on this blog site for any news of future versions and major patches.


Oracle Mobile Application Framework Product Team

To get real time mobile news, follow us @OracleMobile 

Monday Sep 15, 2014

Mobile Labs @ Oracle OpenWorld 2014

"Mobile Labs" Get it? Labs. Oh yeah, cheesy I know... I went there.  :-)  

If you're coming to OpenWorld, and want to get some hands on experience (ok, no more visual metaphors) with Oracle Mobile Platform, here are some of my favorite suggestions:

Want more mobile? Go to this mobile labs link to see more.  

Are you on Twitter? Follow Oracle's latest mobile news @OracleMobile

Saturday Sep 06, 2014

Cordova Calendar Plugin and Oracle Mobile Application Framework

Did you know that the new Oracle Mobile Application Framework (MAF) used Cordova to get access to native device services? That’s right. Cordova is pretty much the belle of the ball in terms of the goto technology for providing native devices access. Oracle MAF extends further by bringing in Java, the most popular enterprise programming language, to the mobile arena. You build mobile apps with Java and HTML5.

Cordova is great because of its plugin architecture, and Oracle’s own Chris Muir just posted a detailed blog on how to integrate the Cordova “Calendar” plugin for iOS, with Oracle MAF. The plugin allows your MAF application to create, update and delete entries in the mobile device’s calendar. Chris created a detailed post on his experience locate here.

BTW, are you planning to go to Oracle OpenWorld this year? Then checkout all the focus on mobile offerings

To stay on top of the latest in Oracle mobile offerings, follow us @OracleMobile or subscribe to our mobile blog here.

Monday Aug 25, 2014

Mobile Apps for Oracle E-Business Suite

Crosspost from the mobile apps blog.  TL;DR Oracle E-Business Suite is now building mobile apps with Oracle Mobile Application Framework (MAF). Believe it! Build iOS and Android apps with once code base and get it done!

Many things have changed in the mobile space over the last few years. Here's an update on our strategy for mobile apps for the E-Business Suite.

Mobile app strategy

We're building our family of mobile apps for the E-Business Suite using Oracle Mobile Application Framework.  This framework allows us to write a single application that can be run on Apple iOS and Google Android platforms. Mobile apps for the E-Business Suite will share a common look-and-feel.

The E-Business Suite is a suite of over 200 product modules spanning Financials, Supply Chain, Human Resources, and many other areas. Our mobile app strategy is to release standalone apps for specific product modules. 

Our Oracle Timecards app, which allows users to create and submit timecards, is an example of a standalone app.

Oracle Timecards app for E-Business Suite screenshot

Some common functions that span multiple product areas will have dedicated apps, too. An example of this is ourOracle Approvals app, which allows users to review and approve requests for expenses, requisitions, purchase orders, recruitment vacancies and offers, and more.

Approval app for E-Business Suite screenshot

You can read more about our Oracle Mobile Approvals app here:

Our goal is to support smaller screen (e.g. smartphones) as well as larger screens (e.g. tablets), with the smaller screen versions generally delivered first.  Where possible, we will deliver these as universal apps.  An example is our Oracle Mobile Field Service app, which allows field service technicians to remotely access customer, product, service request, and task-related information.  This app can run on a smartphone, while providing a richer experience for tablets.

Mobile Field Service for iPhones screenshot

Deploying EBS mobile apps

The mobile apps, themselves (i.e. client-side components) can be downloaded by end-users from the Apple iTunes today.  Android versions will be available from Google play. You can monitor this blog for Android-related updates.

Where possible, our mobile apps should be deployable with a minimum of server-side changes.  These changes will generally involve a consolidated server-side patch for technology-stack components, and possibly a server-side patch for the functional product module. Updates to existing mobile apps may require new server-side components to enable all of the latest mobile functionality.

All EBS product modules are certified for internal intranet deployments (i.e. used by employees within an organization's firewall).  Only a subset of EBS products such as iRecruitment are certified to be deployed externally (i.e. used by non-employees outside of an organization's firewall).  Today, many organizations running the E-Business Suite do not expose their EBS environment externally and all of the mobile apps that we're building are intended for internal employee use.  Recognizing this, our mobile apps are currently designed for users who are connected to the organization's intranet via VPN.  We expect that this may change in future updates to our mobile apps.

Mobile apps and internationalization

The initial releases of our mobile apps will be in English.  Later updates will include translations for all left-to-right languages supported by the E-Business Suite.  Right-to-left languages will not be translated.

Customizing apps for enterprise deployments

The current generation of mobile apps for Oracle E-Business Suite cannot be customized. We are evaluating options for limited customizations, including corporate branding with logos, corporate color schemes, and others. This is a potentially-complex area with many tricky implications for deployment and maintenance.  We would be interested in hearing your requirements for customizations in enterprise deployments.



    Follow @OracleMobile on Twitter

    Oracle Mobile Blog is here

      Monday Aug 11, 2014

      Why Mobile Apps <3 REST/JSON

      Author:Martin Jarvis | Senior Director, Fusion Middleware Market Development 

      One significant difference that you’ll find in mobile architectures is the preference for REST and JSON over SOAP and XML for mobile web services.We don’t have time today to go into an in-depth comparison of SOAP and REST but lets take a brief look at why REST/JSON is considered best practice in Mobile.

      This diagram shows a simplified but typical mobile architecture. We have a number of backend applications and data sources connected through a service bus. In typical SOA environments these will use standards based SOAP and XML as the data exchange mechanism.  This has proven to be a robust and reliable solution behind the corporate firewall and on the high speed corporate LAN. 

      The mobile app, running on either a tablet or a smart phone performs all of it’s reading and writing data operations across some form of wireless network, often a public cellular 3g or (if you’re lucky a) 4g network. I’m sure everyone knows that these networks can be unpredictable, they suffer with variable network latency and all too frequent loss of signal. In those environments, SOAP and XML start to look over blown and too heavy.

      HTTP is typically used as the transport protocol under both SOAP and REST. REST is tied to HTTP and uses the basic HTTP verbs like GET, POST and PUT to express it’s actions.  SOAP was designed to be transport independent so it defines a much bulkier data envelope using XML, in which to transport the data payload.

      JSON is altogether a more compact way to represent data than XML. If you take a look at the two documents above side by side you should notice they actually represent the same data object, but the JSON document has considerably less boiler plate to depict the same data structure, so it takes less bytes to move it across the network. For SOAP messages, once you add on the SOAP envelope you end up with a much larger message to be sent across the network.

      JSON is also easier to parse than XML, using less memory and less CPU. On a big enterprise server you don’t notice that so much, but on a mobile device memory and CPU can be in short supply.

      A fact that many people forget is that CPU useage on a mobile device has a direct impact on battery life. The more demands you make of the CPU the quicker you consume battery power and the shorter time you have between recharges. This could have real business impact if the mobile user can’t complete their work because the device needs to be constantly recharged.  

      So hopefully you now have a better appreciation of why REST/JSON is considered best practice for mobile apps. But that doesn’t mean customers have to rip out their existing SOAP services and replace them with REST. With the Oracle Service Bus the two approaches can happily coexist and interoperate.  This often means customers can quickly expose existing Web Services over REST and reuse existing business logic to shorten app development timescales.

      If you’re not yet familiar with the REST and JSON technologies I encourage you to get on Google and start getting up to speed.

      Monday Aug 04, 2014

      Hands-On with Oracle Mobile Platform

      Author:  Bruce Bailey, Principal Mobile/Social Technology Specialist

      Lots of information has been circulating about the recent enhancements Oracle has made to the Mobile Platform – the release of the Mobile Application Framework (MAF) as well as the availability of Oracle SOA Suite 12c with features specifically designed to support mobile enablement of enterprise applications – but have you had the chance to try it out yourself yet?

      We are running a series of hands-on workshops in North America where you will learn about these new features by using the Oracle Mobile Platform to build your own mobile app and integrate with a live backend enterprise application. These are one-day workshops where you will get technical insights into the new product enhancements, see live demos, and best of all, get hands-on experience with mobile app development. All you need to do is register for the workshop, pre-install/configure the development environment (MAF) on your laptop and you will be ready to go (don’t worry, we’ll send you detailed instructions on how to do this as well as contact information, should you need it). We also plan to set this up so that you can BYOD to test out your completed app (details will be provided in the invite).

      Here are the links for the currently scheduled workshops so that you can register. If you don’t see your city listed be sure to send me an email letting me know where you would like to see a workshop added – we’re working to prioritize additional workshops now and your input will be valuable.

       Click the city of interest below. 


      Get the latest on all things Middleware. Join Oracle's Middleware Community today.

      Find Us on facebook Follow us on twitter Catch Us on YouTube 


      « October 2015