I’ve recently been playing with the grunt-amdcheck plugin to remove unused dependencies from AMD modules. It’s common for define statements in an AMD project to accumulate unused dependencies over time as developers refactor, and it’s a good idea to clean those up from time to time as unused dependencies can:
Make it harder to maintain your code
Cause the browser to make unnecessary asynchronous requests at run time
I added the plugin to a couple of projects and ended up removing over 20 from one and 50 from the other. Unfortunately, removing those unused dependencies did not lead to similar decreases in the number of modules loaded at runtime. This is because most of the removed dependencies were required by other modules. However, the code is now more maintainable.
If you’re using this plugin in a Dojo project that uses templated widgets, i18n, and/or xstyle, you need to remember to include the relevant paths in your excludesPaths. For example:
Beyond that, if you’re interested in the mechanics of testing mapping apps with any of the frameworks we cover (the Intern, Jasmine, Karma, etc) there are plenty of resources to get you going.
Last month I challenged myself to try make at least one contribution a day to GitHub for 30 days straight, and as a result I’ve been able to make long overdue updates to all of my existing repositories as well as make meaningful contributions to other peoples’ open source projects. Some of the things I accomplished during the challenge:
The challenge also helped me up my Git Fu a bit, since (sadly) most of my work projects are not managed in Git. If you’re like me, most of your GitHub activity takes place outside of your normal work hours, and this kind of challenge can really help you get to things that have been on the back burner for too long.
I’d definitely recommend others try a similar challenge. Here are my (self evident) tips for successfully completing your challenge:
Landscape Modeler is a web application that allows users to perform fast weighted overlay analysis at multiple scales or over a large area. This is ideal when there are multiple users that want to develop their ideas about suitability analysis models and share their results with each other.
Below is a video of the quick 2 minute run through that Suzanne Foss presented in San Diego where she demonstrates how to use the application to develop a conservation plan for an area outside of Santa Cruz:
The app will be released in the coming weeks, so stay tuned.
For the better part of my first year at Esri, I have been working on a web application for the Community Maps Program that would make it easier for program contributors to upload and manage their data contributions. We released a minimally viable version of the web application in the fall of 2012 which focused on letting users register for the program and upload data. Since then we have focused on creating an application that lets users manage the complete lifecycle of their contributions from upload, through data review, map cache generation, and finally incorporation into the Esri basemaps. This version came out of beta at the beginning of this month.
A few of the sessions at the 2013 Esri Developer Summit got me interested in learning more about how I could utilize some of the new features of ArcGIS Online to help me build web mapping applications. As a developer, my instinct is to approach each new application with a blank page in SublimeText and a cup of coffee, but I’m getting better at learning to utilize the services that are out there to help jump start new development.
Full disclosure: I’ve been working for Esri for close to a year now. I’m sharing my personal experiences in trying to better understand the strengths and weaknesses of the ArcGIS Online platform versus other online mapping platforms. I won’t pretend to be able to be completely impartial, but it is also not part of my job to advocate for the platform.
Now that we’ve got that out of the way we can get down to business. My goals are to understand:
How far I can get without writing a single line of code
The limits of the built in features of the platform like web maps and templates
How to start a project using those built in features (e.g. for rapid prototyping) and then transition to a custom solution to get beyond those limits
Recently, the major electric utility that I work for installed a wall full of 50”displays in their power outage response control center, and they asked me to start generating content for it. The content would be real-time summary data of the power outages across the utility’s electric distribution network, and the centerpiece was to be a map showing the location of all the current power outages affecting their customers. This was an exciting challenge for me, since I’ve never created applications to be run on large screens with no human interface devices – keyboards, mice, etc. I was particularly excited about figuring out how to implement the map, since I typically develop mapping applications that are meant to be experienced inside of a web browser.
Took me a few minutes to think this one through, so I thought I’d share. In this example I show the start and end date for each month in the period that contains the fiscal year from 7/1/10 to 6/30/11.
select trunc(add_months('01-JUL-10', level-1), 'MM') start_date, last_day(add_months('01-JUL-10', level-1)) end_date from dual connect by level <= ceil(months_between('30-JUN-11', '01-JUL-10'))
It should work for periods of any length (i.e. one quarter, 6 months, 2 years, etc) by replacing the period start and end dates.