Companies Using Grails

Companies Using Grails

I’m pretty excited about Grails, but am often asked for social proof. Well, by every measure,1 Groovy is the #1 JVM language after Java, and Grails is the #1 full stack web framework.2 But for some, that’s not enough. They want to know who is making it #1? Major companies. Below I’ve listed the household names. I could not get details for some companies, but a Google search will verify the claim (e.g., the Disney developer posting a Grails question to a mailing list).

Last update: August 20th, 2015

Entertainment/Gaming

  • DISH
  • Disney
  • Epic Games
  • ESPN
  • Industrial Light & Magic
  • LiveNation – TicketWeb
  • Live Gamer
  • Lucasfilm
  • MTV (and Viacom by extension)
  • NBC Universal
  • Netflix – Asgard, their Amazon EC2 cloud management app, now open sourced.
  • Riot Games (makers of League of Legends)
  • Rumble Entertainment (maker of Kings Road)
  • Time Warner Cable

Finance

  • American Express
  • Bank of the West
  • Citi
  • Credit Suisse
  • Federal Reserve Bank of San Francisco
  • Federal Reserve Bank of Kansas City
  • Fidelity Investments
  • First Data Corporation
  • Freddie Mac
  • H&R Block – mobile site (now defunct)
  • Intuit – Intuit Payment Network
  • Janus
  • JPMorgan Chase
  • MoneyGram
  • OppenheimerFunds
  • PayPal – Bill Me Later
  • UBS Wealth Management
  • Visa
  • Wells Fargo

Retail/Ecommerce

  • 7-11 (back office systems)
  • Big Lots – core site
  • Jostens
  • Macy’s
  • Nordstrom (HauteLook)
  • Panera Bread
  • Target
  • Walmart – MP3 streaming site (now defunct)

Tech

  • Apple
  • Atlassian
  • Cloudera
  • CollabNet – web interface to SVN server
  • CyberSource
  • Dell – Enstratius
  • Ericsson
  • HP – Application Information Optimizer
  • IBM – Kenexa
  • IEEE
  • Infusionsoft
  • Intel – New Devices Group
  • Nokia
  • Qualcomm
  • Rackspace
  • Rally Software
  • Seagate
  • Symantec
  • T-Mobile – internal apps
  • Toshiba- Toshiba America Business Solutions

Other

  • CARFAX
  • Commission Junction (part of Conversant)
  • Condé Nast
  • eHarmony
  • GEICO – mobile web
  • HealthPartners – Virtuwell
  • Humana
  • Infusionsoft
  • Jet Propulsion Laboratory
  • Johnson & Johnson
  • LifeLock
  • LinkedIn – Recruiter application
  • Lockheed Martin
  • Lyris
  • NetJets
  • Nissan – Leaf site
  • Orbitz
  • Pacific Gas and Electric Company
  • Precor – Preva product
  • Raytheon
  • ReachLocal
  • Reinsurance Group of America
  • Time Inc.
  • Trip Advisor
  • UnitedHealth Group
  • ValueClick
  • Virtual Tourist – core site (parent is Trip Advisor)
  • Volkswagen – UK site
  • The Washington Post
  • Wired.com
  • The XO Group (parent of The Knot / WeddingChannel.com)
  • Zynx Health (Hearst Health Group)
These are household names in some countries outside the US:
  • MACSF – (France) insurance company, internal systems
  • Mercado Libre – (South America) core site
  • National Film Board of Canada
  • Sky – (UK) TV listings, movies, and showbiz sites
  • Vodafone Music – (UK) core site
Colleges and universities:
  • Carnegie Mellon University
  • Colgate University
  • Columbia University
  • Harvard University
  • NYU (Langone Medical Center)
  • SUNY
  • UCSF
  • University of Alaska
  • University of California, Irvine
  • University of Hawaii
  • University of Minnesota
  • University of New Mexico
  • University of Oklahoma
  • University of Pennsylvania
  • University of San Francisco
  • Yale University

There are lists of many lesser known companies/apps found here and here.3 Another good place to check is Find Grails Jobs and indeed.com. I used all of them to compose this piece.

  1. Tiobe, job listings, etc. []
  2. Granted, I can only think of 3 others, Play, Roo, and Seam, but full stack is where you get the most productivity. []
  3. Apologies in advance that I’m intentionally leaving off startups and smaller companies. That’d be too much to manage and it won’t sway managers and architects, which is the point of this piece. []

Merging XML Files With Groovy

I needed to generate an XML file from database tables and the plan was to use Talend Open Studio. Talend is an ETL tool that generates data integration jobs in Java. The community edition is free and I’d been using it for several other data tasks for an ecommerce client. Overall, I think it’s quicker than hand-coding in Java, but you can still dip into Java code if you need to and embed the jobs in other programs.

Unfortunately, it’s not so good when it comes to generating moderately complex XML files. By moderately complex, I mean lists of lists like this:
(more…)

The Paperless Business Card

I have come up with a simple idea that will have a positive, global environmental impact. I’m talking about the end of the business card as we know it. Have you ever had a box of 500, maybe 1,000 business cards, handed out a few, then thrown the rest away when your title or contact info changed? Maybe you’ve done that a few times, or several. How much did that cost you? How did it impact the environment? How did you feel when you threw them away? What if no one ever did that again? Here’s a story about how we can make that happen. (more…)

Optimal JVM settings for STS/GGTS

I recently switched from Eclipse 3.6 to STS 2.7.1 (based on Eclipse 3.7). Ditching my old .project and workspace settings files along with the move has made for a smoother experience; it seems these files get corrupted over time,1 and I’m too lazy to do the research to fix them. However, the upgrade resulted in performance issues. For instance, it hung for ~10 seconds every time I saved web.xml, and there were various random pauses. It’s not the hardware: I’m on a Core i7 Quad with 6GB RAM running Win7 x64. I realize you are getting more tooling with STS, but performance was much worse than I experienced with 3.6.

Well, it had slipped my mind that I had updated my 3.6 eclipse.ini settings with those I had found in an excellent Stack Overflow answer from VonC on optimal JVM settings for Eclipse. It hasn’t been updated for 3.7 (nor does it mention STS), but after some experimenting and research it appears to work well for it. Here are my settings, and below I add some commentary on what they do, which is missing from the original answer (although I still suggest you read that, as it covers other situations/issues that may affect you). Keep in mind I’m not a JVM tuning expert, YMMV, etc. Here are the contents of my sts.ini:

-vm
C:/Java/SDKs/jdk1.6.0_24x64/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
com.springsource.sts.ide
–launcher.defaultAction
openFile
–launcher.XXMaxPermSize
384M
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xmn128m
-Xms256m
-Xmx768m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=1000
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

-XX:CompileThreshold=1000
This is the number of method invocations/branches before compiling. This is normally set to 10,000, so we’re changing it dramatically, but the original suggestion was leading to errors so I raised it. You will notice on startup that it takes longer, and your CPU usage jumps. However, your performance after that is much better. Those 10s save times for web.xml? Gone after this. I’m willing to take a hit at the beginning for better productivity while coding.

-XX:ReservedCodeCacheSize=64m
Related to the above, I was getting the error “Unhandled event loop exception / out of space in CodeCache for adapters” due to setting the compile threshold to 5. This is another solution to that problem, and may be redundant.

-Xss4m
This is stack size, and was previously set to 1MB, now up to 4MB per thread. Doing this will increase the overall memory used.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

These enable parallel garbage collection. I saw my CPU utilization reach 100% after this, which is rare on a Core i7 Quad. It felt like I was finally using it to its potential.

Again, I’m not an expert. I’ve found it’s more sluggish at first, but response times quickly improve. For me, it’s a clear net gain. Not documented are the things I turned off in preferences because I wasn’t using them (Maven is disconnected, etc.). Visit Windows >> Preferences and filter on startup, see if there’s anything you can get rid of. Finally, I must give credit to my sources outside the original article:

http://ugosan.org/speeding-up-eclipse-a-bit-with-unlockexperimentalvmoptions/

http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

http://performance.netbeans.org/howto/jvmswitches/

  1. I’ve had issues with things like web deployment assemblies, not prompting for workspace on startup, etc. []

CC3260MT.DLL Is TiVo

I was trying to launch a Tomcat instance in Eclipse and it complained that port 8080 was in use. This scared me, since to my knowledge nothing else used that port. Was it spyware? I visited http://localhost:8080 and saw:

Access violation at address 32658D8F in module 'CC3260MT.DLL'. Read of address 00000000

No, it’s not spyware, it’s TiVo. Specifically the TiVo desktop server (Bonjour, I believe it’s called.). Pulling up the interface and pausing the server frees up the port. Shame on TiVo for using a very popular port for developers, but I guess we can change the port in Eclipse/Tomcat/Jetty if we need to. Now back to work…