Archive for Arrowpointe Maps Category Feed

Developing Arrowpointe Maps (the tools)

It’s been a while since I blogged, so I thought I’d get back into it by talking a bit about the tools used to develop Arrowpointe Maps in the hopes that you might find this useful for your own development and that you might comment here about your tools of choice and what makes them great.

The Stack

Although you access the application via a Web Tab in Salesforce.com, Arrowpointe Maps is actually hosted with OpSource, one of the 2 pre-certified Salesforce.com hosting providers, and is running on a LAMPS (Linux/Apache/MySQL/PHP/Salesforce) stack.

Ideally, this entire stack will be replaced by Force.com. Someday it might. At this time, however, Force.com just isn’t ready to take on all of this and Apex Code, especially, doesn’t have the flexibility or community of something like PHP. I look forward to improvements being made to all of the Force.com components and hopefully Arrowpointe Maps can eventually be a showcase application running 100% on the platform.

Another architecture I really like is Adobe’s Flex technology. Both Salesforce & MapQuest have really good Flex integration. I really like this approach and you might start seeing some Flex output in future releases.

Web Services

salesforcelogo.jpgAll the business data resides in the user’s Salesforce.com database. We connect to Salesforce.com via the API to access configuration information as well as business data for mapping purposes. The application leverages the end-user’s Salesforce.com session, so all authentication is piggy-backing off of the Salesforce.com security model, which is really nice. Because Arrowpointe Maps is certified, we get a Client ID that gives us API access to Professional Edition orgs too.

MapQuest_Logo_small.gifWe use the MapQuest JavaScript API (Tiled Maps). MapQuest’s API is really well put together, is accurate and reliable. I’ve been very pleased with it. They are rolling out new functionality all the time and I do my best to incorporate the most useful pieces with each release.

I will be looking to incorporate more useful web services into the mix as the product expands. Programmable Web is the best resource I know for a comprehensive listing of web APIs.

Development Frameworks

xajax_logo.gifxAjax is an open source PHP library for building Web-based Ajax applications. It makes it dead simple to perform an AJAX server call, do the heavy lifting in PHP and then return HTML and JavaScript to the page without an entire refresh. It has allowed me to keep the bulk of the logic in the comfort and power of PHP and only using JavaScript where I need to.

prototype_logo.pngPrototype is a JavaScript Framework that aims to ease development of dynamic web applications. If you do any JavaScript development, this is a must have. It provides many useful methods for working with the DOM and has been written to be cross-browser compatible. It’s worth using if only for its $ function.

yahoo_logo.gifThe Yahoo User Interface Library (YUI) is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. I use it in a few random places in Arrowpointe Maps. YUI is the most well documented user interface framework I have seen and it’s been taken up well in the development community. I highly suggest it.

I am not using these JavaScript frameworks, but I came across them in my research and they have good reputations:

Other Development Tools

eclipse_logo.jpgEclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. It is my main PHP development environment and Salesforce also has their Force.com IDE in Eclipse, which is useful. There are a number of “projects” that I use in Eclipse, but some of the standouts are:

  • Web Tools Platform
  • PHP Development Tools
  • Subclipse: Plugin to support connectivity to a Subversion (SNV) code repository.
  • Mylyn: Provides task management functionality in Eclipse. I utilize the Trac connector to connect to my Trac system that I use to manage my defect & enhancement request tracking.

devguard_logo.jpgI use DevGuard for professional SVN hosting. It’s pretty cheap and provides good tools for managing my code in a secure place. It also includes the Trac project management system that sits on top of SVN and it all integrates very well into Eclipse. This services are similar to what Google Code provides, but it keeps the code private and is not open-source.

appexchange_logo.jpgArrowpointe Maps is distributed via the AppExchange. The AppExchange makes it simple for any Salesforce prospect, customer or developer to download the application for free, no questions asked. Now they have what they need to connect to me and this allows me the flexibility to enable/disable access to the application as necessary.

firebug_logo.jpgFirebug integrates with Firefox to let you edit, debug, and monitor CSS, HTML, and JavaScript live in any web page. I use it every single day for a multitude of reasons. I highly recommend it.

References
  • MapQuest’s API Reference and Forums: I go here almost everyday. They are migrating everything to the developer site I linked to. Currently, most of their documentation is in their Technical Resource Center.
  • Salesforce’s API Reference: Used pretty regularly, especially as I delve into more obscure areas of the API and special use cases.
  • Force.com Cookbook: I use this pretty rarely, but it has some really good examples in it, so I keep it handy.
  • PHP Manual: I downloaded the CHM file from this page and I use it multiple times every single day. It’s the best resource for PHP information. If you visit the same documentation online, each page has other developers adding comments, so you get some rich information.
  • W3Schools: My one-stop shop for the official reference to HTML, JavaScript, the DOM and CSS. I used it a bit to learn XML too. I go here almost every day.
  • Prototype Documentation: The API docs for this most useful JavaScript framework.
  • YUI Documentation: Yahoo has documented their Yahoo User Interface Library very well.
  • Google: When at a loss, use Google to find examples of what you are trying to do. I try and corroborate most of the examples I find from a few sources before applying it to my development.

Some other, random tools I use that make my development/work life easier are:

  • Snag-It: Taking screen captures and for light image editing.
  • Jungle Disk: Mount Amazon’s S3 storage service as a drive and backup files to it. It encrypts all the files stored there.
  • Trillian: multi-protocol instant messaging client.
  • Jing Project: Create demonstration videos. From the creators of Snag-It.

What about you? For developing applications (especially Salesforce-related ones) what tools are you using and recommend?

Comments off comments feed

Privacy Policy Update

The Arrowpointe Maps privacy policy was updated. The Change History page documents these updates.

Comments off comments feed

Routing & Driving Directions (Arrowpointe Maps v1.0.8)

Version 1.0.8 of Arrowpointe Maps was just released. You can read about all the improvements on the Change History page.

The biggest change is the addition of Routing functionality. The best way for you to get an understanding of it is to watch it on a screencast.

Watch a screencast of the new routing functionality

Other improvements include:

  • International Routing is well supported. Results will vary country by country.
  • The Star and Dot images were redone to be cleaner and more professional
  • Added a form on the homepage allowing users to subscribe to Arrowpointe Maps related blog posts by email
  • Other Usability, Performance & Security Enhancements

NOTE: If you are using Arrowpointe Maps and are confused by these posts about new versions, just know that these updates are happening automatically for you. You do not need to re-download the AppExchange application. Changes to the AppExchange package will be few and far between and those will be communicated very explicitly.

About Arrowpointe Maps

Arrowpointe Maps is an on-demand mapping platform that facilitates a conversation between Salesforce.com & MapQuest allowing for easy deployment of mapping capabilities in your organization and providing end-users a simple means for mapping their data. Arrowpointe Maps is configurable and can be tailored to your organization, so that your users can work with their information in a meaningful way.

The official location for information on Arrowpointe Maps is its product page at http://www.arrowpointe.com/maps. There, you will find answers to the most frequently asked questions, screencasts and links to its AppExchange page.

Comments (2) comments feed

Arrowpointe Maps v1.0.7

Version 1.0.7 of Arrowpointe Maps was just released. You can read about all the improvements on the Change History page. The changes that most impact user experience and the application’s capabilities are:

  • Support for relating custom objects to Accounts and/or Contacts. This will allow you to pull fields from those objects including using the addresses there.
  • Printing buttons were added to Map Pages and View Generated Maps. Look for the print_small.gif icon.
  • Upgraded to the latest version of MapQuest’s API.
  • Added a Declutter button to the maps. When pressed, any map points that overlap each other will be separated and a line will be drawn from their original point to their new location. In declutter mode, all map points will be easily clickable.

    arrowpointemaps_declutter.png

  • Each time a map is run, it will display in the width and height used by that user the last time a map was run.
  • Added links on the front page to let users open Map Pages in a new window. Sometimes this can result in better usability and printing since the application is not embedded in an IFRAME in Salesforce. Look for the link_newwindow.gif image next to a hyperlink to open that link in a new window.
  • Fixed some usability issues in the Admin area where some sections would shift around the screen if the user’s screen was too narrow or in too low of a resolution.
  • Re-architected the way maps are generated. This new setup will allow us to allow users to save their maps in an upcoming release.
  • Fixed an issue on Campaign Member maps if there are no Campaigns in the system.
  • Other Usability, Performance & Security Enhancements

NOTE: If you are using Arrowpointe Maps and are confused by these posts about new versions, just know that these updates are happening automatically for you. You do not need to re-download the AppExchange application. Changes to the AppExchange package will be few and far between and those will be communicated very explicitly.

About Arrowpointe Maps

Arrowpointe Maps is an on-demand mapping platform that facilitates a conversation between Salesforce.com & MapQuest allowing for easy deployment of mapping capabilities in your organization and providing end-users a simple means for mapping their data. Arrowpointe Maps is configurable and can be tailored to your organization, so that your users can work with their information in a meaningful way.

The official location for information on Arrowpointe Maps is its product page at http://www.arrowpointe.com/maps. There, you will find answers to the most frequently asked questions, screencasts and links to its AppExchange page.

Comments off comments feed

Improved Geocoding in the UK

We just implemented improved geocoding for the UK in Arrowpointe Maps. If you were getting some suspect results when plotting certain UK addresses, those issues should be resolved now.

We are not aware of inaccuracies for any other countries, but to be thorough, we’ll be performing analysis to ensure we get the best possible geocoding results for every country. If you are using Arrowpointe Maps and find that some countries geocode better than others, please let us know.

Comments off comments feed

Next entries » · « Previous entries