Friday, August 22, 2014

Tech Behind Search Improvements

Over the summer, we have made several improvements to the new version of the site (Rewrite),. One of the biggest improvements was with search. Since we released Rewrite, the performance of search has been a concern.  We did little to improve the speed before the release because of time constraints. It was decided that we needed to revisit it this summer to get things in great shape for the Fall semester.

We implemented the following changes:
  • Cache single word and subject searches - we added Memcached to store some searches.  A cron job is reloading the subject searches into the cache on a regular basis.
  • Pagination on Search Result page - previously we were displaying all of the search results on the same page. This caused a long page render time which made the slow search even slower. We are now displaying 10 items on each page. Books are displayed first since most users are looking for books. When possible, we use the cached search results to return the next page.
  • Improved SQL performance - we tweaked the SQL used for the queries to optimize them.
All of these changes are no-brainers, but have vastly improved search.

Monday, July 14, 2014

OpenStax CNX Development Tools

Over the last couple of years, we have changed our internal development tools. We do our own version of Agile development and have found these tools best meet our needs.

For Sprint planning, we use Trello.  Our team members are in many locations, so having a web-based tool to outline our Sprints has been very important. We create cards for User Stories or issues and work from the boards for Sprint planning and working on Sprints.

Our code is stored in Github. We previously ran our own SVN server, but slowly migrated all of our code to Github. It is a great tool. Our workflow for using Github is

  • Each component has a separate Repository.
  • Each Repository has a Master branch.
  • Each Repository has a production branch that contains the code currently in production.  This allows us to continue working and merging to Master, but also be able to fix problems in production easily from the production branch,
  • Developers branch off Master and code the Trello card they are working on. Once the code is completed and unit tested, the developer creates a Pull Request in Github. The Pull Request is to merge the code into Master.
  • A Pull Request triggers a code review by another team member.  Code reviews generally result in a review of the code as well as a manual test of the code.
  • Pull Requests are also unit tested using automated testing via Travis-CI
  • Once a Pull Request is approved, it is merged and the branch is deleted from Github.

Most of our meetings are held on Skype.  Skype has the simplicity of making a phone call and is mostly reliable.  We also use Google Hangouts when we need to share code or other screen sharing. It works really well, but if not as easy to start up as a Skype call.

Our team relies on IM. We have a Jabber server that some of the team uses and others use Google Talk or Hangouts.  IM is our virtual hallway and is a key part of our communication.

Wednesday, June 4, 2014

Publishing Added to OpenStax CNX Demo Site

We have recently added publishing to our Demo site.  If you are not aware, Demo is our alpha testing ground for the new version of our site,  Not everything is working yet and there are bugs remaining, but users can get a feel for what is coming soon to OpenStax CNX.

Users can

  • Create, edit and publish a new Page
  • Create, edit and publish a new Book 
  • Derive a Page or Book when viewing content
  • Derive a Page when editing a Book 
  • Publish a Book with published and unpublished Pages (the unpublished Pages get published with the Book). 
Please take a look and give us some feedback at techsupport at cnx dot org.  We would love to have you help us improve editing and publishing. The site will be updated regularly so check back often to see our progress. 

Tuesday, May 13, 2014

OpenStax College Android App Released

A new Android app that features the OpenStax College books was released on May 2nd.  The features include

  • Viewing released books
  • Saving Books or Pages to your Bookmarks
  • Take notes while reading
  • Export your notes to a text file or share them.
  • Share a Book or Page
The app is open source and the code is in Github. You can install the app from the Google Play store

The app can be used to access these books
  • College Physics
  • Introduction to Sociology
  • Biology
  • Concepts of Biology
  • Anatomy and Physiology
  • Introductory Statistics
  • Principles of Economics
  • Principles of Microeconomics
  • Principles of Macroeconomics

From a technical point of view, the app is based off of the existing OpenStax CNX Android app.  As part of our name change, the mobile version of our site was modified to work better with the Android app.  The result is a simplified look of the content (see screenshot).

If you use the app, we would love to hear feedback either as a rating of the app or by contacting us at android at

Wednesday, April 23, 2014

OpenStax CNX Featured On Floss Weekly Podcast

Two OpenStax team members were featured guests on the Floss Weekly podcast this morning.  Floss Weekly covers open source software for the TWIT podcast network.  Kathi Fletcher and Ross Reedstrom told the history of the project along with a discussion of the work we are currently doing on OpenStax CNX. The podcast is available to view or download from TWIT.

Thursday, April 3, 2014

New Name and New Editor Demo

In case you missed the announcement at the Connexions Conference this week, Connexions has been renamed to OpenStax CNX!  We have also renamed this blog to OpenStax CNX Developer Blog. You can visit us at The renaming give us a unique presence on the web and helps us build a family of OpenStax sites to provide open options for education.  Our other sites are available from

At the 2014 conference, we released a beta version of our new editor. It can be found at Log in using your CNX, Facebook, Twitter or Google accounts and give the new editor a try.  We would love to hear your feedback as we continue to work on it.  It is definitely beta software so expect to find bugs.  We will continue to update it we get ready for the public release at the end of June.

This blog has been dormant for the past few months which is not good.  Our plan is to start posting regularly again since we have lots of cool code happening in the OpenStax College textbooks and in the rewrite of OpenStax CNX.

Wednesday, April 17, 2013

Connexions Conference Sprints

We are holding 2 days of Sprints on April 24 and 25 following the 2013 Connexions Conference which is on April 23.  The sprints are an opportunity for you to work directly with the Connexions team, contribute your time and effort to Connexions and to have fun.  You don't need to attend both days.  Show up and leave as you like.  We have tasks for all skill levels and you don't need to be a programmer. 

The list of tasks is on Trello. 

 Just click on a card (white box) to see the details of each task.  If you are attending the conference, we hope you will stay for the Sprints.  If you are in Houston, but not attending the conference, you are welcome to join us at the Sprints.