performance tuning selenium – firefox vs chrome vs headless

I’m the co-volunteer coordinator for NYC FIRST. Every year we are faced with a problem: we want to export the volunteer data including preferences for offseason events. The system provides an export feature but does not include a few fields we want. A few years ago, my friend Norm said “if only we could export those fields.” I’m a programmer; of course we can!

So I wrote him a program to do just this. It’s export-vol-data at Github. And fittingly, he “paid” me with free candy from the NYC FIRST office. Once a year we meet, Norm gives his credentials to the program and we wait. And wait. And wait. This year NYC FIRST had more events than ever before so it took a really long time. I wanted to tune it.

Getting test data

The problems with tuning have been:

  1. I have no control over when people volunteer for the event. It’s hard to performance test when the data set keeps changing.
  2. The time period when I have access to the event is not the time period that I have the most free time.

Norm solved these problems by creating a test event for me. I started over the summer, but then got accepted to speak at JavaOne and was really busy getting ready for that. Then I went back to it and someone deleted my test event. Norm solved that problem by creating a new event called “TEST EVENT FOR SOFTWARE DEVELOPMENT – DO NOT ENROLL OR DELETE, please. – FLL”. And one person did volunteer for that. But not a lot so it helped.

Performance tuning

I tried the following performance improvements based on our experience exporting in April 2017.

  1. SUCCESS: Run the program on the largest events first. (It’s feasible to manually export the data for small events. Plus those have largely people who also volunteered at a larger event.) This allows us to run for the events with the most business value first. It also allows us to abort the program at any time.
  2. SUCCESS: Skip events and roles with zero volunteers. For some reason, it takes a lot longer to load a page with no volunteers. So skipping this makes the program MUCH faster.
  3. SKIP: Add parallelization. I wound up not doing this because the program is so fast now.
  4. FAILED: Switch from Firefox driver to PhantomJS. I knew the site didn’t function with HtmlUnitDriver. I thought maybe it would work with PhantomJS – an in memory driver with better JavaScript support. Alas it didn’t.
  5. FAILED: Try to go directly to URLs with data. FIRST prevents this from working. You can’t simply simulate the REST calls externally.
  6. SUCCESS: Switch from  Firefox driver to Chrome driver. This made a huge difference in both performance and stability. The program would crash periodically in Firefox. I was never able to figure out why. I have retry/resume logic, but having to manually click “continue” makes it slower.
  7. UNKNOWN: I added support for Headless Chrome in the program. It doesn’t seem noticeably faster though. And it is fun for Norm and I to watch the program “click” through the site. So I left it as an option, but not the default.

Results

Like any good programming exercise, some things worked and some didn’t.  The program is an order of magnitude faster now that at the start though so I declare this a success!

Toastmasters Pathways – The Icebreaker

See my main Presentation Mastery Pathways page for some context. To start a project, click “Activate” and then click “Launch”. At this point, your status changes to “In Progress.” It took a few minutes to load. Then I got a tutorial on the navigation. After that comes the main content.

The background information is similar to what was in the paper Toastmasters CC (Competent Communicator) manual. Many things are the same like the speech length and goals.

Checklist

The first thing that is different is a project checklist PDF. It has things like scheduling your speech, rehearsing, giving your speech and submitting to get credit. Each checklist item has a box to check off and two lines where you can write comments. This whole checklist is optional.

Skills assessment

Next comes an interactive skills assessment where you rate yourself in certain areas. Not 100% intuitive is that you have to click the down arrow next to the word “directions” to actual take the assessment. The assessment is short and easy. You answers six questions by rating yourself on a scale of 1 (low) to 5 (high). [I like the new 5 point scale. We only had 3 numbers to choose from in the old printed manual world[

Video

There’s a video where a few people talk about their icebreaker and provide tips. It lists a manageable number of points; each described by a different person.

Outline and tips

You can view/download an outline to help you prepare for your Icebreaker. You can even download it as a PDF. After that, you get some tips on timing and how to prepare. You also get information about what to expect at the meeting such as the speech evaluator along with what to review after giving the speech.

Resources

At the end of the project, you can download a few things in PDF form. Of particular note is the PDF sheet to print and hand to your evaluator. You can also download the whole project in PDF form.

After the speech

Next comes where you assess your skills again. I printed the form for evaluation. My speech evaluator evaluated me just like normal.  When signing back to Pathways, I re-took the initial assessment and the system compared my scores. It then told me that I completed the icebreaker. (So there’s some honor system that goes on here; that you’ll wait until after giving the speech to do the post-self assessment.

I closed the tab for my Icebreaker. This refreshed the curriculum page which unlocked the other two projects in the level – evaluation and researching.

Voluntarily upload eval

You don’t have to, but I went back to basecamp and choose e-portfolio. I then uploaded my a scanned copy of my evaluator’s form. That way I don’t have to worry about finding it when I complete level 1. The E-Portfolio has folders for each of the five levels which is nice.

Voluntarily evaluate the project for Toastmasters

You have the option of taking a survey about the project for Toastmasters to gather feedback.

Overview of the Presentation Mastery Learning Path

I enrolled in Toastmasters Pathways and got oriented. Let’s take a look at a learning path curriculum. There are five levels each with a bunch of projects. I plan to blog as I go through Pathways. I’ll update this page updating descriptions or linking to the relevant blog posts from this page as I go.

Yes, I typed all this in. My club has a full set of advanced manuals so members can see what they are getting into before they order/commit to a manual. I’m trying to do something equivalent for Pathways. Not share all the content obviously. But to give a feel for the requirements and experience. For a better overview, see my comparison of paths.

I then found out that District 57 has it posted already. They have great PDF resources including a high level list of what is in each path.

I already have a DTM so I’m going through Pathways more rapidly to learn about the program.

Project statuses

Each project has one of the following statuses:

  • Not activated – A project you are eligible to start, but haven’t yet. For example, the Icebreaker when you first sign in.
  • In Progress – A project you have started or viewed.
  • Completed – This project is completed.
  • Pending Prior Training – This project will be unlocked after completing a pre-requsite project.

Level 1 – this level has 3 required projects + the submission

I’ve heard that level 1 is the same regardless of your path.

Project Description Pre-req My comments
Icebreaker One speech None This the first speech you give in Toastmasters. For more details, see my Icebreaker blog page.
Evaluation and Feedback Two speeches

Speech evaluation

Icebreaker project You can give the same speech two times or different speeches. For more details, see my Evaluation and Feedback blog post.
Research and Presenting One speech Icebreaker project This project is a speech along with the necessary prep. For more details, see my Research and Presenting blog post.
Level Completion Paperwork All three projects in this level This is for submitting to your club that you completed the level. In particular, you did four speeches and an evaluation to complete level 1. For more details, see my Submitting Level 1 blog post.

Overall feedback on the level: This is almost half a CC. You give 4 speeches and do one evaluation. I find the “locked until pass pre-req” frustrating as you can’t plan for what is coming.

Level 2 – this level has 3 required projects + the submission

Project Description Pre-req My comments
Understanding your communication style One speech None This project includes some short reading, a “test” on your communication style and a speech explaining it. See  completing level 2.
Effective Body Language Two speeches

Speech evaluation

Icebreaker project  This project includes some short reading, a practice and a speech on any topic. See  completing level 2.
Intro to Toastmasters Mentoring One speech Icebreaker project This project includes some short reading and a speech about when you were a mentee. I gave this before my Level 1 was approved. See my blog post for more on the project itself and about completing level 2.
Level Completion Paperwork All three projects in this level This is for submitting to your club that you completed the level. his level qualifies you to be a Pathways mentor.

 

Level 3 – this level has one required project, two elective projects and the submission

See my level 3 post

  1. Persuasive Speaking
  2. At least two projects from this list: – this is one of the benefits of Pathways – choices! Note that you can take as many as you want.
    1. Deliver Social Speeches (a special occasion speech)
    2. Using Presentation Software
    3. Connect with Storytelling
    4. Creating Effective Visual Aids
    5. Using Descriptive Language
    6. Connect with your Audience
    7. Make Connections through Networking
    8. Focus on the Positive
    9. Inspire your Audience
    10. Prepare for an Interview
    11. Understanding Vocal Variety
    12. Active Listening
  3. Level completion – remember that you must serve as Toastmaster, Evaluator and Table Topics Master at least once before you can advance to level 4. You enter this in your profile as you go. This level qualifies you to get a letter to your manager.

Level 4 – this level has one required project, one elective project and the submission

See my level 4 post

  1. Managing a Difficult Audience
  2. At least one project from this list: – this is another benefit of Pathways; modern skills
    1. Create a Podcast
    2. Building a Social Media Presence
    3. Write a Compelling Blog
    4. Manage Online Meetings
    5. Q&A Session
    6. Public Relations Strategies
    7. Manage Projects Successfully
  3. Level Completion. This level qualifies you to get a letter to your manager.

Level 5 – this level has two required projects, one elective project and the submission

  1. Prepare to Speak Effectively
  2. At least one project from this list:
    1. Lessons Learned
    2. Moderate a Panel Discussion
    3. Ethical Leadership
    4. High Performance Leadership
    5. Leading in your Volunteer Organization
  3. Reflect on your Path
  4. Level Completion. This level qualifies you to get a letter to your manager and a certificate of proficiency.