tag:blogger.com,1999:blog-77752520590281863982017-03-22T04:49:13.092-07:00OpenStax CNX Developer BlogThe OpenStax CNX Developer Blog is a place where developers discuss upcoming projects and technical matters having to do with the software that runs the OpenStax CNX site and generates the OpenStax College textbooks.Katherine Fletcherhttp://www.blogger.com/profile/07067608440174108780noreply@blogger.comBlogger60125tag:blogger.com,1999:blog-7775252059028186398.post-54022216868720119112014-10-24T12:33:00.000-07:002015-03-06T06:22:49.493-08:00How We Build the OpenStax College Books<div class="separator" style="clear: both; text-align: center;"></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-OHxtuZ1ct1k/VPm3quWYLFI/AAAAAAAACJo/sUF50nNHPcI/s1600/osc_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-OHxtuZ1ct1k/VPm3quWYLFI/AAAAAAAACJo/sUF50nNHPcI/s1600/osc_logo.png" /></a></div><br />In case you are not familiar with <a href="http://openstaxcollege.org/" target="_blank">OpenStax College</a> (OSC), it is a part of our OpenStax family that publishes free, open, peer-reviewed, commercial quality textbooks. The initial goal is to create textbooks for the top 20 Community College courses in the US. We have 9 books completed, 4 in production and funding for the remaining books.<br /><br />OSC books are available in print, so there was a technical challenge to generate a print quality PDF for each of the books. Our earlier PDF generation pipeline uses Latex which results in nice black and white PDFs, but did not meet the OSC requirements. To meet the OSC requirements, we are using HTML5, CSS3 and a commercial product called <a href="http://www.princexml.com/" target="_blank">PrinceXML</a>. PrinceXML is the only commercial product used by OpenStax CNX. Each of the books has a different design and collation requirement so CSS has to be created for each unique element. The books also share features so we have tried to structure the CSS so it relies heavily on the Cascading part of Cascading Style Sheets.<br /><br />Another requirement is that we must build the PDFs without human intervention. It must be totally automated. Since users can derive copies of the OSC and modify them, we also must deal with missing or added content from the original. <br /><br /><h3>Code Structure</h3><br />Our CSS code is broken down into 2 main parts: Slots and Skeletons. Skeletons define the namespaces used in a book. Slots are used to define the styles for the namespaces. Some books are derived from others so their Slot and Skeleton files could be smaller than other books. There are also other CSS files that control numbering (using counters), page formatting and utilities.<br /><br /><h3>PDF Generation Workflow</h3><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-5L8yujQmCqQ/VPm4JWBT3iI/AAAAAAAACJw/fldjzDFE3uM/s1600/OSC-Book-Generation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-5L8yujQmCqQ/VPm4JWBT3iI/AAAAAAAACJw/fldjzDFE3uM/s1600/OSC-Book-Generation.png" height="108" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><br /><br />The workflow is<br /><ul><li>Content is stored as XML (CNXML) in OpenStax CNX</li><li>The XML is converted into HTML using a highly modified version of the Docbook transform</li><li>The resulting HTML plus CSS is passed to PrinceXML which generates the PDF</li></ul><div>PDFs are generated when books are published or the content inside the book is updated. All of the front matter is entered by hand into the PDF, but the remainder of the book is auto-generated.</div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com9tag:blogger.com,1999:blog-7775252059028186398.post-17558515634925081972014-09-18T10:46:00.000-07:002015-03-06T06:32:01.154-08:00Rewrite TechnologiesOur team has been hard at work rewriting the OpenStax CNX site. A frequently asked question is "What tech are you using?". This post covers a high level overview of the new site.<br /><h3>Architecture</h3><div class="separator" style="clear: both; text-align: center;"></div><div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-wPv9IwGjPQk/VPm6U-IgIHI/AAAAAAAACJ8/OApk_d6u1mc/s1600/Rewrite%2BArchitecture%2BDiagram%2B(2).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-wPv9IwGjPQk/VPm6U-IgIHI/AAAAAAAACJ8/OApk_d6u1mc/s1600/Rewrite%2BArchitecture%2BDiagram%2B(2).png" height="230" width="320" /></a></div><br /></div>Rewrite is a Single-Page App which means most of the logic lives in a Javascript client. The Client accesses data via REST APIs that are written in Python. All of our data is stored in a <a href="http://www.postgresql.org/" target="_blank">PostgresSQL</a> database. The details of the separate components follow.<br /><h3>Webview</h3>Webview is the Javascript Client. The basis of the Client is <a href="http://backbonejs.org/" target="_blank">Backbone.js</a> and <a href="http://getbootstrap.com/" target="_blank">Bootstrap</a>. We use several other Javascript packages as well.<br /><ul><li><a href="http://handlebarsjs.com/" target="_blank">Handlebars.js</a> templating</li><li><a href="http://underscorejs.org/" target="_blank">Underscore.js</a></li><li><a href="http://requirejs.org/" target="_blank">Require.js</a></li></ul><div>Most of the Javascript is written in <a href="http://coffeescript.org/" target="_blank">Coffeescript</a> and compiled to Javascript. CSS is developed using <a href="http://lesscss.org/" target="_blank">Less</a>.</div><div><br /></div><div>Webview requests json from the Archive via REST APIs. The json contains the HTML for the content and any metadata. The Client parses the json and displays it.<br /><br />Editing is a separate view in Webview. When the user selects to edit, the views are swapped out. The new editor is based on the open-source HTML5 editor <a href="http://aloha-editor.org/" target="_blank">Aloha</a>. We have added several plugins to Aloha that are textbook editing specific. The development on the editor was done by our team and the <a href="http://oerpub.org/" target="_blank">OERPub</a> team with OERPub doing the bulk of the work.<br /><br />We are using <a href="http://nginx.com/" target="_blank">Nginx</a> as our web server.</div><h3>Archive</h3><div>Archive stores published content and handles search. Content retrieving and search are handled via APIs written in Python. When content is requested, the json is built via stored procedures in Postgres. The json is built using the json functions in Postgres.<br /><br />Search is done with optimized queries. We are caching subject and one word searches long term and all searches short term to improve performance. When a user pages through search results, the cached result is used to populate the next page.</div><div><br /></div><div>Archive will run on an WSGI compatible server. We are currently using <a href="http://docs.pylonsproject.org/projects/waitress/en/latest/" target="_blank">Waitress</a> as our server.<br /><h3>Publishing</h3><span style="background-color: white; font-family: Arial; font-size: 15px; white-space: pre-wrap;">The publishing application integrates with the Archive database. It allows users and third-party applications to publish content to the Archive, where it can be read and distributed to the public. Publishing is built similar to Archive, but differs in many ways. Archive is a read-only content API. Publishing provides an additional set of APIs that handle the publishing workflow, which includes user interactions like license and role (e.g. author or translator) acceptance, as well as the triggering of export files. Users of the OpenStax CNX system will typically never directly interact with this application. Almost all of the backend business logic is handled within the publishing application.</span></div><h3>Authoring</h3><div>Unpublished content is stored in Authoring in Postgres. Authoring also has APIs used by the Editor and the Workspace. When content is published, an EPUB is generated and passed from Authoring to Publishing. The EPUB format was selected to pass information between components because it encapsulates all of the info needed.<br /><br />The Workspace is a listing of all content a user has access to edit. Books and Pages can be created in the Workspace and they can be deleted as well.</div><h3>OpenStax Accounts</h3><div>Users are now stored in a shared accounts component. This was developed so users could have the same account on all OpenStax sites. All CNX users have been migrated to the new Accounts. Accounts uses OAuth so users will also be able to log in using Google, Twitter and Facebook. CNX will no longer create CNX user accounts. New users will need to use one of their existing OAuth accounts to log in.<br /><h3>Logging</h3>We are currently logging information, errors and user interactions to Syslog. Our goal is to load the logs into <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a> so we can visually see how our site is being used.<br /><h3>Transformation Services</h3>Transformation Services generates Export files(PDF, EPUB, Zip, etc.) and imports content to the editor. The initial design uses the same import and export code from Legacy CNX inside of a messaging system wrapper.<br /><br />The messaging using <a href="http://www.rabbitmq.com/" target="_blank">RabbitMQ</a> and several messaging queues. The queues will give us persistence of the file generation requests. The requests will be sent by Publishing after content has been added to Archive. Publishing will pass an EPUB to Transformation Services that contains all of the data needed to generate the files. </div><br />OpenStax CNX is a deceptively complex site that has many moving parts. Our goal with this architecture was to design a component based system that can be easily updated and tested without impacting all of the site. All of our code is on <a href="https://github.com/Connexions" target="_blank">Github</a>.<br /><br />Many thanks to CNX team members Michael Mulich and Derek Kent for reviewing and contributing to this post.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com18tag:blogger.com,1999:blog-7775252059028186398.post-24618086499340042022014-08-22T06:58:00.000-07:002014-08-22T07:10:51.189-07:00Tech Behind Search Improvements<span style="font-family: Arial; font-size: 13px;">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.</span><br /><br /><span style="font-family: Arial; font-size: 13px;">We implemented the following changes:</span><br /><ul><li><span style="font-family: Arial; font-size: 13px;">Cache single word and subject searches - we added <a href="http://www.memcached.org/" target="_blank">Memcached</a> to store some searches. A cron job is reloading the subject searches into the cache on a regular basis.</span></li><li><span style="font-family: Arial; font-size: 13px;">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. </span><span style="font-family: Arial; font-size: 13px;">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.</span></li><li><span style="font-family: Arial; font-size: 13px;">Improved SQL performance - we tweaked the SQL used for the queries to optimize them.</span></li></ul><div><span style="font-family: Arial; font-size: 13px;">All of these changes are no-brainers, but have vastly improved search.</span></div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com8tag:blogger.com,1999:blog-7775252059028186398.post-24371137395062815782014-07-14T13:14:00.000-07:002015-03-06T06:33:45.478-08:00OpenStax CNX Development ToolsOver 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.<br /><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"></div>For Sprint planning, we use <a href="http://trello.com/" target="_blank">Trello</a>. 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.</div><div><br /></div><div><br /><div class="separator" style="clear: both; text-align: center;"></div>Our code is stored in <a href="https://github.com/Connexions" target="_blank">Github</a>. 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<br /><br /><ul><li>Each component has a separate Repository.</li><li>Each Repository has a Master branch.</li><li>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,</li><li>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.</li><li>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.</li><li>Pull Requests are also unit tested using automated testing via <a href="https://travis-ci.com/" target="_blank">Travis-CI</a></li><li>Once a Pull Request is approved, it is merged and the branch is deleted from Github.</li></ul></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"></div>Most of our meetings are held on <a href="http://www.skype.com/en/" target="_blank">Skype</a>. 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.</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"></div>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.</div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com7tag:blogger.com,1999:blog-7775252059028186398.post-36961598982902575612014-06-04T14:23:00.001-07:002015-03-06T06:35:10.186-08:00Publishing Added to OpenStax CNX Demo Site<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><br /></div>We have recently added publishing to our <a href="http://demo.cnx.org/" target="_blank">Demo site</a>. If you are not aware, <a href="http://demo.cnx.org/" target="_blank">Demo</a> 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 <a href="http://cnx.org/" target="_blank">OpenStax CNX</a>.<br /><br />Users can<br /><br /><ul><li>Create, edit and publish a new Page</li><li>Create, edit and publish a new Book </li><li>Derive a Page or Book when viewing content</li><li>Derive a Page when editing a Book </li><li>Publish a Book with published and unpublished Pages (the unpublished Pages get published with the Book). </li></ul><div>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. </div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com5tag:blogger.com,1999:blog-7775252059028186398.post-32931511547282807312014-05-13T09:12:00.000-07:002015-03-06T07:01:02.043-08:00OpenStax College Android App Released<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-AtHVK5ZryK0/VPnA47HtSLI/AAAAAAAACKM/40o-XenN-NI/s1600/Screenshot%2Bfrom%2B2015-03-06%2B08%3A57%3A59.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://1.bp.blogspot.com/-AtHVK5ZryK0/VPnA47HtSLI/AAAAAAAACKM/40o-XenN-NI/s1600/Screenshot%2Bfrom%2B2015-03-06%2B08%3A57%3A59.png" height="320" width="204" /></a></div><br />A new Android app that features the OpenStax College books was released on May 2nd. The features include<br /><br /><ul><li>Viewing released books</li><li>Saving Books or Pages to your Bookmarks</li><li>Take notes while reading</li><li>Export your notes to a text file or share them.</li><li>Share a Book or Page</li></ul>The app is open source and the code is in <a href="https://github.com/Connexions/OSCAndroid" target="_blank">Github</a>. You can install the app from the <a href="https://play.google.com/store/apps/details?id=org.openstaxcollege.android" target="_blank">Google Play store</a>.<br /><div><br /></div><div>The app can be used to access these books</div><div><ul><li>College Physics</li><li>Introduction to Sociology</li><li>Biology</li><li>Concepts of Biology</li><li>Anatomy and Physiology</li><li>Introductory Statistics</li><li>Principles of Economics</li><li>Principles of Microeconomics</li><li>Principles of Macroeconomics</li></ul><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-q8dBlL_Ud3U/VPnBHCGhLyI/AAAAAAAACKU/08tXco5IG9s/s1600/Screenshot%2Bfrom%2B2015-03-06%2B09%3A00%3A29.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-q8dBlL_Ud3U/VPnBHCGhLyI/AAAAAAAACKU/08tXco5IG9s/s1600/Screenshot%2Bfrom%2B2015-03-06%2B09%3A00%3A29.png" height="320" width="204" /></a></div>From a technical point of view, the app is based off of the existing <a href="https://play.google.com/store/apps/details?id=org.cnx.android" target="_blank">OpenStax CNX Android app</a>. As part of our <a href="http://devblog.cnx.org/2014/04/new-name-and-new-editor-demo.html" target="_blank">name change</a>, 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).<br /><br />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 cnx.org.</div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com57tag:blogger.com,1999:blog-7775252059028186398.post-81539534198697268102014-04-23T14:10:00.000-07:002014-04-23T14:10:08.180-07:00OpenStax CNX Featured On Floss Weekly Podcast<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-qtbAFJNH-Fg/U1gqmMuFjLI/AAAAAAAAA9Y/trPiMLRnsL4/s1600/Screen+Shot+2014-04-23+at+4.02.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-qtbAFJNH-Fg/U1gqmMuFjLI/AAAAAAAAA9Y/trPiMLRnsL4/s1600/Screen+Shot+2014-04-23+at+4.02.36+PM.png" height="183" width="320" /></a></div><br />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 <a href="http://twit.tv/show/floss-weekly/291" target="_blank">podcast</a> is available to view or download from <a href="http://twit.tv/show/floss-weekly/291" target="_blank">TWIT</a>.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com11tag:blogger.com,1999:blog-7775252059028186398.post-28678273608874883042014-04-03T10:01:00.000-07:002014-04-03T10:01:32.972-07:00New Name and New Editor Demo<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-wJcEFGiS4o0/Uz2ErOO7zrI/AAAAAAAAA7o/Wtyihkv8qxw/s1600/openstax-cnx-horizontal-transparent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-wJcEFGiS4o0/Uz2ErOO7zrI/AAAAAAAAA7o/Wtyihkv8qxw/s1600/openstax-cnx-horizontal-transparent.png" height="80" width="320" /></a></div>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 <a href="http://openstaxcnx.org/">openstaxcnx.org</a>. 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 <a href="http://openstax.org/">openstax.org</a>.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-kSTNVinKbY4/Uz2GuEYgXaI/AAAAAAAAA7w/fwfV1kov-MA/s1600/Screen+Shot+2014-04-03+at+11.04.26+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-kSTNVinKbY4/Uz2GuEYgXaI/AAAAAAAAA7w/fwfV1kov-MA/s1600/Screen+Shot+2014-04-03+at+11.04.26+AM.png" height="223" width="320" /></a></div><br />At the 2014 conference, we released a beta version of our new editor. It can be found at <a href="http://demo.cnx.org/">demo.cnx.org</a>. 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.<br /><br />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.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com9tag:blogger.com,1999:blog-7775252059028186398.post-25913515105811717932013-04-17T08:53:00.003-07:002013-04-17T08:53:40.005-07:00Connexions Conference Sprints <br /><div class="p1">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. </div><div class="p2"><br /></div><div class="p1">The <a href="https://trello.com/board/cnx-conference-sprint-tasks/5165b415d79268e16d00559b" target="_blank">list of tasks</a> is on Trello. </div><div class="p2"><br /></div><div class="p1"> 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.</div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com6tag:blogger.com,1999:blog-7775252059028186398.post-61382287900868214432012-07-26T05:54:00.000-07:002012-07-26T05:54:28.039-07:00Jenkins forces reinstall of server images on RackspaceThis is much more DevOps than Dev, but it is important as well ! One difficulty we have doing remote development with a team spread over at least a million cities (I haven't actually counted) is that the local development LAN for Bob is frankly inaccessible for Alice and Charlie. Maintaining n-1 VPN links is just going to drive us all mad. <div class="separator" style="clear: both; text-align: center;"><a href="http://thisheartofoak.ca/wp-content/uploads/2012/02/servants-bells.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="931" width="1600" src="http://thisheartofoak.ca/wp-content/uploads/2012/02/servants-bells.jpg" /></a></div> So the simple solution is to rent a couple of cloud servers and host the development builds on there. The cost is pretty minimal, and it seemed good - until I realised that Jenkins, our friendly Continuous Integration Butler, was unable to re-install a cloud server from an image. Or rather it *could* - but Jenkins did not know when the server was rebuilt, and the server itself, which could signal jenkins, would have no state, so could not signal jenkins with *why* it had been rebuilt. So, Pantry Bell (https://github.com/lifeisstillgood/pantrybell). We simply run a webserver, that when called (perhaps from one Jenkins job) will force a re-imaging of a Rackspace server. This has a simple callback in rc.local (wget http://jenkins.frozone.mikadosoftware.com/pantrybell/<secretkey>/`hostname`) So - a server forces a rebuild, on successful rebuild, the server calls home, and then the "real" jenkins job can be triggered using the Jenkins API calls. Amazingly enough it works, has trivial security, no REST compliance but it worksPaul Briannoreply@blogger.com4tag:blogger.com,1999:blog-7775252059028186398.post-87729923373206368022012-07-24T11:33:00.000-07:002012-07-24T11:33:28.894-07:00OpenStack and Rackspace <div class="section" id="tue-24-jul"> <div class="section" id="openstack-and-rackspace"><h2>OpenStack and Rackspace<a class="headerlink" href="#openstack-and-rackspace" title="Permalink to this headline"></a></h2><p>I suspect that if you find this as exciting as I do, one or both of us need to go out looking for a life. However, OpenStack is nearly here, and Connexions is in the Early Access Program. WooHoo.</p><p><a class="reference external" href="http://en.wikipedia.org/wiki/OpenStack">OpenStack</a> is in the frankly hilariously named Essex release, and is a collaboration between NASA (yes!) and Rackspace (and now 150 other companies) all of whom bascially want some of Jeff Bezos’ AWS lunch.</p><p>Now, I am currently trying to get Jenkins to nicely play with my cloud servers (see <a class="reference external" href="https://github.com/lifeisstillgood/pantrybell">Pantry Bell</a>) and it will use the pythonic <a class="reference external" href="https://github.com/openstack/python-novaclient">nova</a> Real Soon Now.</p> But the real pull is that we will be using rackspace to integrate all the different components involved in the new system, early as possible. The system currently builds the repository and the (old) editor, and I am working on bringing in the new Aloha editor and the webview asap. The sooner we see everything working together the sooner we shall find those great moments of code serendipity. </p> <p>We have an opportunity as a bunch of Open Source developers to use the first real F/OSS cloud based offering and even influence a little part of its development. I am excited to see where it will go, and excited to see if it can provide measurable benefits to Connexions, either in development simplicity or sysadmin time savings. Interesting Times are ahead.</p></div>Paul Briannoreply@blogger.com2tag:blogger.com,1999:blog-7775252059028186398.post-69199392394110123472012-07-24T11:23:00.000-07:002012-07-24T11:23:34.186-07:00The Usual Suspects<div class="section" id="starting-blogging"><h2>Starting Blogging !<a class="headerlink" href="#starting-blogging" title="Permalink to this headline"></a></h2><p>This is the first of hopefully a regular series of blogs from the developers behind <a class="reference external" href="www.cnx.org">Connexions</a>.</p><div class="section" id="id1"><h3>Connexions<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3><p>Connexions provides free (beer <em>and</em> speech) educational resources to students and teachers around the world. It has developed over ten years a eco-system of authoring tools, repository and means to serve the textbooks, exercises, snippets of knowledge to 2 million people a month.</p> <p>And they are building a major update of that code.</p><p>And its all Open Source - and being developed right in front of your eyes. (Mail <a class="reference external" href="mailto:ecw1%40rice.edu">us</a> if you want to join in.)</p><p>And thats what we are doing here ...</p></div><div class="section" id="the-people"><h3>The people<a class="headerlink" href="#the-people" title="Permalink to this headline">¶</a></h3><p>(If your gravatar is not here, please let me know the right email address to use)</p> <table><tr><td>Jessica Burnett</td><td><img src="http://www.gravatar.com/avatar/40d8d38c94074187d6a0e2814fce3871" /></td><td>Paul Brian</td><td><img src="http://www.gravatar.com/avatar/d20c9b94e08963eba85ff57aa177ac14" /></td><td>Ed Woodward</td><td><img src="http://www.gravatar.com/avatar/dc99a1b23c033a7973174ef973b2bc54" /></td></tr><tr><td>Philip Schatz</td><td><img src="http://www.gravatar.com/avatar/ac196ae0c2e4be3afa8ab98ab7107e0d" /></td><td>Michael Mulich</td><td><img src="http://www.gravatar.com/avatar/5aa5ce81d7fc4ae51f67a68a67a61cad" /></td><td>Marvin Reimer</td><td><img src="http://www.gravatar.com/avatar/ea0e74f48ac052ed7dd8896c7208962b" /></td></tr><tr><td>Ross Reedstrom</td><td><img src="http://www.gravatar.com/avatar/96a73affa5e90386596375d30c300623" /></td> </table> <p>Google Summer of Code Students</p> <table><tr><td>Debajyoti Datta</td><td><img src="http://www.gravatar.com/avatar/336d5ebc5436534e61d16e63ddfca327" /></td><td>Saket Choudray</td><td><img src="http://www.gravatar.com/avatar/336d5ebc5436534e61d16e63ddfca327" /></td><td>Alasdair Corbett</td><td><img src="http://www.gravatar.com/avatar/336d5ebc5436534e61d16e63ddfca327" /></td></tr><tr><td>Yanchai Ye</td><td><img src="http://www.gravatar.com/avatar/336d5ebc5436534e61d16e63ddfca327" /></td></table> <p>The code:</p><p><a class="reference external" href="https://github.com/Connexions">https://github.com/Connexions</a></p></div><div class="section" id="the-plan"><h3>The plan<a class="headerlink" href="#the-plan" title="Permalink to this headline"></a></h3><p>I am hoping we can link to the specs, and have the developers involved in each component post about their updates or changes on a regular basis.</p><p>We shall see, as the old man said.</p></div></div></div>Paul Briannoreply@blogger.com1tag:blogger.com,1999:blog-7775252059028186398.post-89487869537802449362012-02-03T07:18:00.000-08:002012-02-03T07:18:24.848-08:00Connexions Development Update 2-3-2012Well, the dream of posting a weekly update is not working out. Things are very busy here and it is a challenge to find the time to write this post. I am committed to writing an update periodically so I'm going to modify my plan to make this bi-weekly.<br /><br /><b>CCAP</b><br /><br /><ul><li>The Physics rendering in Prince XML is complete except for some math issues. The code is on the development server and should move to production soon with Sociology.</li><li>Our current focus is on getting the Sociology rendering tested and released. The current release date is Feb. 8th or 9th.</li><li>There are several Math issues in the Physics book. Some of the problems were caused by the Word importer, some by the original structure of the math in the Word documents and others are font issues. When the Physics book is migrated to production, we will run a script to clean up some of the import problems to minimize the need for human intervention. Some of the font issues will not be able to be resolved because the Stix fonts do not have the needed font. An example is an italicized delta.</li></ul><div><b>CNX Conference Preparation</b></div><div><ul><li>We have over 50 people signed up for the Sprints! We are very excited about this. As best we can tell, about 30 of these will be developers/coders/designers. With this many people involved, we are going to make a huge effort to have clear easy install instructions for the various options. Next week, we will be testing everything and finalizing the instructions.</li><li>Once the instructions are complete, we will post the link on the Rhaptos list so you can install Rhaptos or anything else you might need prior to arriving at the conference.</li><li>Many thanks to all that are planning to Sprint with us!</li></ul><div><b>OERPub API</b></div></div><div><ul><li>We released the latest version of the OERPub API last week. It will be used during the Conference Sprints by the sprinters working on content.</li></ul><div><b>HTML Editor Discussion</b></div></div><div><ul><li>We have had a little time to continue our discussion in house regarding a new editor for Connexions.</li><li>Most of the discussion has been Microdata vs Microformats. Neither has much traction in the wild. </li><li>CSS3 seems to have support for Microdata which would allow us to use it to decorate semantic elements. Microformats also have CSS support.</li><li>There has also been discussion on which editor to select. TinyMCE and Aloha have been our focus.</li><li>TinyMCE has a nice UI, but does not support all of HTML5.</li><li>Aloha supports all of HTML5, but has an odd UI. The UI is not bad, just takes a little getting use to. The <a href="http://aloha-editor.org/demos.php" target="_blank">demos on Aloha's site</a> are very specific so we need to install it and play with the configurations of the UI.</li><li>I'm sure the editor will be discussed at the conference so let us know your thoughts if you are attending. </li></ul></div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com2tag:blogger.com,1999:blog-7775252059028186398.post-91767629966855308672012-01-20T06:32:00.000-08:002012-01-20T06:32:24.480-08:00Connexions Dev Update for Jan. 20, 2012Lots of info to share since last week's update was missed.<br /><br /><br /><b>CCAP</b><br /><br /><ul><li>We tested the Physics book PDF generation and the Word Importer changes in QA last week. The code was using FOP and Docbook to create more professional looking PDFs. Our plan was to release this code and in a couple of weeks release the Prince XML version of the PDF generation. The urgency was caused by the lack of harddrive space on the development server where the content is being created. We have now fixed the space issue so it was decided not to release the FOP version of the PDF code. We are focused on the new Prince XML version.</li><li>Documentation - We have some new styles needed for the Sociology book to our documentation of the new markup.</li><li>Coding is continuing on the PrinceXML version of the PDF. You can see a sample of the Sociology layout at http://mountainbunker.org/~schatz/sociology.pdf. It has Physics content, but the color scheme of Sociology.</li><li>Some minor issues have been brought up by our content team regarding Math display in the Physics book. Some of this will be fixed in the Prince XML code, but others will have to be fixed when we do the migration to production by tweaking the MathML generated by the Word Importer.</li></ul><b>CNX Conference Preparation</b><br /><br /><ul><li>As the CNX Conference approaches, we are preparing for the sprints that will happen after the conference.</li><li>The <a href="https://trac.rhaptos.org/trac/rhaptos/wiki/Sprint%202012/TicketList" target="_blank">Bug List</a> for the Sprint has been completed.</li><li><a href="https://trac.rhaptos.org/trac/rhaptos/wiki/Sprint%202012/SprintDocumentation" target="_blank">Documentation</a> for the Sprint has started.</li></ul><div><b>Donate Button Change</b><br /><br /><ul><li>The donate button now has a minimum donation of $1. The original minimum was $10. We hope this will lead to more donations.</li></ul><b>iPhone App</b><br /><br /><ul><li>An Apple Developer Program for iOS was finally purchased last week. It has taken months for all the documentation problems to get ironed out.</li></ul><b>Consortium Tech Committee Meeting</b><br /><br /><ul><li>The Connexions Consortium Tech Committee held its monthly meeting last week.</li><li>Discussions included current Connexions dev work, OERPub API update, Sprint topics and other member updates. Check the <a href="https://docs.google.com/document/d/14aPTQAVJybXKX8wd-uynpDSJCTUdzd3d1HQLXhi9kw8/edit?authkey=CMHhl44P&hl=en_US&authkey=CMHhl44P" target="_blank">minutes</a> for more details.</li></ul><div><b>OERPub API</b></div></div><div><ul><li>We are currently testing a new release of the OERPub API which uses Sword to add and modify Connexions content.</li><li>The latest release allows users to add content to a Lens, add Featured Links to a module and to create a collection in a Workspace or Workgroup. The code should be released early next week.</li><li>The latest documentation for the API is at https://trac.rhaptos.org/trac/rhaptos/wiki/TechnicalDocumentation/Code/Sword</li></ul><div><b>HTML Editor Discussion</b></div></div><div><ul><li>We have been talking within our team and on the Rhaptos list about the possibility of using HTML5 Microdata in the new WYSIWYG editor to document non-HTML elements in CNXML in the editor.</li><li>HTML5 has some traction because of support from schema.org, but it also has problems such as very limited browser support.</li><li>The <a href="http://mailman.cnx.rice.edu/pipermail/rhaptos/2012-January/001020.html" target="_blank">thread</a> on the Rhaptos list has more information. </li></ul></div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com3tag:blogger.com,1999:blog-7775252059028186398.post-45831141054141228882012-01-06T07:52:00.000-08:002012-01-06T07:52:26.556-08:00Weekly Dev Report for Jan. 6, 2012As part of an effort to increase our transparency, the dev team at Connexions will be posting an update on the projects we are working on. This is our first report and we will make a best effort to do an update every Friday. We will not be detailing everything we are working on, just the highlights that should be of interest to the Connexions Community. Feel free to comment here on the blog or on the <a href="http://mailman.cnx.rice.edu/mailman/listinfo/rhaptos" target="_blank">Rhaptos Development mailing list.</a><br /><br />This week the team returned to work after a Holiday break. Our work included:<br /><br /><ul><li>CAP Code Testing - CAP (College Access Project) is a rebuilding of our PDF generation system to use Docbook instead of LaTeX. We were testing the single column textbook style on a development server prior to our break. This week, we moved the code to QA (merged to trunk and created eggs). Testing should finish up early next week. The code will be moved to production, but will not be used by any collections yet. You can view a several chapter sample from the code <a href="http://mountainbunker.org/~ew2/physics/physics-print-test.pdf" target="_blank">here</a>.</li><li>CAP Double Column PDF - Prior to our Holiday break, we determined that Docbook cannot handle the 2 column layout that is required for some of the CAP books. We reviewed a couple of commercial products (Antenna House and <a href="http://www.princexml.com/" target="_blank">Prince XML</a>) and decided to move to using Prince XML. Prince XML converts HTML to PDF, so it is a new direction for our PDF generation. Our plan is to create the 2 column PDF needed in Prince XML and then replace the 1 column Docbook PDF code with code that will work in Prince XML. Coding of the 2 column PDF has begun.</li><li>Design Discussions - We are planning on moving to a component based architecture in 2012 and are having daily discussions about how to procede. Part of the complication of this plan has been the lack of an agreement with Google so we know how to move forward. That situation has stabilized somewhat so our planning is moving forward in ernest. As soon as we have some details to share, links will be posted on the Rhaptos list and in the weekly update. We want and need feedback from the Connexions tech community on this project.</li><li>Connexions Conference - We are planning on at least a 2 day sprint as part of the Conference. A successful sprint requires planning and preparation so that developers can get what they need installed quickly and start coding. We are testing our Rhaptos install along with Roché's Plone 4 install to make sure they work as needed. We will also create some VirtualBox appliances so Mac and Windows users can get up and running quickly. Those of us doing talks are doing slide preparation. The conference starts Feb. 15. You can see more details at the <a href="http://conference.cnx.org/" target="_blank">conference site.</a></li></ul><div>Please let us know what you think of our first update. We would like these to be informative, but also a quick and easy read.</div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com1tag:blogger.com,1999:blog-7775252059028186398.post-56914829228147432412011-09-06T10:46:00.000-07:002011-09-06T10:46:30.005-07:00PDF Generation UpdatedLast week, we released an update to our PDF generation code. The update was coded as part of the College Open Textbook project. The update moved some special PDF features that were only in the Collaborative Statistics PDF to all PDFs. <br /><br />The two main visible PDF changes are:<br /><ul><li>The numbering of Exercises and Examples inside of a section now take the section number as part of their numbering. For example, if a group of 3 Exercises are in section 2.4, the Exercises will be numbered 2.4.1, 2.4.2 and 2.4.3. Previously, the Excercises would have been numbered 2.1, 2.2 and 2.3.</li><li> Sections marked as Homework now have a page break before them. This allows the user to print out the Homework without any of the text of the book being printed. There is a side effect of adding more pages to some collections.</li></ul><br />Existing PDFs were not updated to use this new formatting. They will be updated as they are republished by the authors. If you enjoy browsing LaTeX, feel free to <a href="https://trac.rhaptos.org/trac/rhaptos/browser/rhaptos/packages/Products.RhaptosPrint/trunk/Products/RhaptosPrint/printing">check out the new code</a>.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com5tag:blogger.com,1999:blog-7775252059028186398.post-24924166841947851202011-07-19T13:42:00.000-07:002011-07-19T13:46:25.092-07:00Connexions Featured in Google Open Source Blog<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-b5BZ4RKbJAk/TiXsgvLkJEI/AAAAAAAAAOc/F0OsIFiroJM/s1600/gsoc-sm.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 51px;" src="http://2.bp.blogspot.com/-b5BZ4RKbJAk/TiXsgvLkJEI/AAAAAAAAAOc/F0OsIFiroJM/s320/gsoc-sm.png" alt="" id="BLOGGER_PHOTO_ID_5631166956261614658" border="0" /></a>The Google Open Source blog is featuring organizations participating in Google Summer of Code 2011. Connexions was featured in the July 15th <a href="http://google-opensource.blogspot.com/2011/07/whos-new-in-google-summer-of-code-part_15.html">blog post</a>.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com3tag:blogger.com,1999:blog-7775252059028186398.post-89951986963667638382011-05-20T10:27:00.000-07:002011-05-20T10:51:30.878-07:00Connexions Sprint at Plone Symposium EastWe are holding a coding sprint as part of the Plone Symposium East. Developers from across the globe have come together to improve Plone, the software Connexions is built on, and to improve Connexions itself. We will be working today and tomorrow if you want to join us. Info about the sprint is at <a href="https://trac.rhaptos.org/trac/rhaptos/">rhaptos.org</a>. Click on one of the links at the top of the page for details.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ZxaTw989g7A/TdamS_vZq2I/AAAAAAAAAL4/nIa3NWTtOC0/s1600/2011-05-20_09-40-40_773.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 181px;" src="http://1.bp.blogspot.com/-ZxaTw989g7A/TdamS_vZq2I/AAAAAAAAAL4/nIa3NWTtOC0/s320/2011-05-20_09-40-40_773.jpg" alt="" id="BLOGGER_PHOTO_ID_5608853231214635874" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-bTsmrJTlaLo/TdamczpHeOI/AAAAAAAAAMA/0txc_gs4II8/s1600/2011-05-20_09-40-51_542.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 181px;" src="http://3.bp.blogspot.com/-bTsmrJTlaLo/TdamczpHeOI/AAAAAAAAAMA/0txc_gs4II8/s320/2011-05-20_09-40-51_542.jpg" alt="" id="BLOGGER_PHOTO_ID_5608853399765743842" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Coders gather to discuss sprint options.<br /><br /><br /><br /><br /><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-IYlHpMbRnyY/TdamypLYMXI/AAAAAAAAAMI/4kd5kh4ULWM/s1600/2011-05-20_09-58-01_525.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 181px;" src="http://3.bp.blogspot.com/-IYlHpMbRnyY/TdamypLYMXI/AAAAAAAAAMI/4kd5kh4ULWM/s320/2011-05-20_09-58-01_525.jpg" alt="" id="BLOGGER_PHOTO_ID_5608853774913778034" border="0" /></a>Connexions Sprint participants at work. We have developers from US, South Africa, Sweden, Mexico, the UK and Vietnam working on Connexions today. Most are in the room, but some are working with us remotely.<br /></div>Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com1tag:blogger.com,1999:blog-7775252059028186398.post-31807183134307459292011-05-13T13:05:00.001-07:002011-05-13T13:50:45.708-07:00New Release of Connexions for Android<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Z5rKOoUtxso/Tc2PTGzSZjI/AAAAAAAAALw/dq2t7FvuW4A/s1600/content_sm.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 100px; height: 152px;" src="http://2.bp.blogspot.com/-Z5rKOoUtxso/Tc2PTGzSZjI/AAAAAAAAALw/dq2t7FvuW4A/s320/content_sm.png" alt="" id="BLOGGER_PHOTO_ID_5606294669552150066" border="0" /></a>Version 1.5 of Connexions for Android has been released. It contains cosmetic and usability changes along with a bug fix. The changes include:<br /><ul><li>Search is now a popup window instead of a separate tab. This makes search quickly and easily available on every screen. I also removed the Google search. Only Connexions search is used now.</li><li>The app is a little more colorful and better looking.</li><li>Added option menus to all of the views. List views previously only had context (long press) menus. The long press menus are still there and necessary for some operations.</li><li>The Lens tab is now the Content tab. Added Connexions Featured Content to the Content tab to allow new users to quickly find something to view. I will probably add the new content feed to this tab at some point.<br /></li><li>Added a one time popup Toast message that explains a little about using the app. It is only displayed the first time a user opens the app after installing it.</li><li>Fixed a bug that caused the app to force close when the orientation was changed when viewing a list of lens items.</li></ul>I made most of these changes after reading the <a href="http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html">Apple User Interface Guidelines</a> in anticipation of writing an iPhone app for Connexions. The previous versions of the Android app were made with functionality in mind, not looks. If you have tried the app in the past and were unimpressed, please try it again and give us some feedback. I want to continue to improve it.<br /><br />As always, the code is open source and is in our <a href="https://trac.rhaptos.org/trac/rhaptos/browser/labs/CNXAndroid/trunk">repository</a>. You can <a href="http://cnx.org/android/splash.html">download</a> the app directly from Connexions or from the <a href="https://market.android.com/details?id=org.cnx.android">Android Market</a>. If you try the app and find it useful, please leave a comment in the Android Market.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com5tag:blogger.com,1999:blog-7775252059028186398.post-9692871356263966182011-04-20T10:33:00.000-07:002011-04-20T10:51:33.920-07:00Version 1.4 of Connexions for Android ReleasedVersion 1.4 of Connexions for Android was released today. It adds 2 new features and fixes a file downloading bug. The new features are a File Management screen that can be used to open or delete downloaded PDF or EPUB files and Pinch and Zoom was added to the web view for devices with Android 2.1 or above. The bug fix corrected a problem with phones rebooting while downloading a large PDF or EPUB file.<br /><br />As always, the code is open source and is in our <a href="https://trac.rhaptos.org/trac/rhaptos/browser/labs/CNXAndroid/trunk">repository</a>. You can <a href="http://cnx.org/android/splash.html">download</a> the app directly from Connexions or from the <a href="https://market.android.com/details?id=org.cnx.android">Android Market</a>. If you try the app and find it useful, please leave a comment in the Android Market.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com4tag:blogger.com,1999:blog-7775252059028186398.post-65137692161408283592011-04-05T17:53:00.001-07:002011-04-14T11:54:32.902-07:00Connexions Adds Like and Tweet Buttons<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-p_PjgZVnllI/TZu5pDGE1zI/AAAAAAAAAKo/vuUyNEeMXVs/s1600/Screenshot-2.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 67px; height: 58px;" src="http://2.bp.blogspot.com/-p_PjgZVnllI/TZu5pDGE1zI/AAAAAAAAAKo/vuUyNEeMXVs/s320/Screenshot-2.png" alt="" id="BLOGGER_PHOTO_ID_5592267477167167282" border="0" /></a>Last week, we released the addition of Like and Tweet buttons to all Connexions content. I thought I would share some of the details of coding the change. When we first discussed adding the buttons, we all thought it was going to be a quick and easy addition. Just grab the button code off Twitter and Facebook, tweak it a bit and off we go. We were very wrong.<br /><br />Facebook changed how they display links while we were in the middle of developing the change. They started pulling some of the content for a thumbnail of the text instead of just displaying the title. Because of the way we structure our content, Facebook was pulling the definition of a EPUB file that we have embedded for a help popup for every piece of content that was "liked". To get around this, we added the content summary or abstract to a META tag in the content header. There were some additional problems with embedded CNXML in some of the collection summaries which were solved by creating a new function to provide a plain text version, and using that for the meta tag contents.<br /><br />Thinking the buttons were ready to go, we started testing the devset. All went well until we tested in Internet Explorer 8. The addition of the Tweet button caused IE8 to no longer render math. The problem was caused by the JavaScript from Twitter creating an iFrame for the Tweet button interacting poorly with other javascript on the page. Rearrange where various bits were called lead to results ranging from nothing on the page rendering to any one functionality being missing (math, twitter, dynamic menus, etc.) The ultimate solution was to create the iFrame ourselves instead of letting Twitter's code handle it.<br /><br />Many thanks to our developers, Phil and Max and our sys admin, Ross who worked to get this done.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com2tag:blogger.com,1999:blog-7775252059028186398.post-2725459877241362882011-03-28T08:43:00.000-07:002011-03-28T08:45:27.144-07:00Apply for Google Summer of Code Projects<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ik-_ylXDjJA/TZCs-Q0W8gI/AAAAAAAAAKA/fr00GkQ3Zks/s1600/gsoc-sm.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 51px;" src="http://2.bp.blogspot.com/-ik-_ylXDjJA/TZCs-Q0W8gI/AAAAAAAAAKA/fr00GkQ3Zks/s320/gsoc-sm.png" alt="" id="BLOGGER_PHOTO_ID_5589157323233227266" border="0" /></a><br />Starting today, students can apply for <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2011">Google Summer of Code</a> projects. <a href="http://www.google-melange.com/gsoc/org/google/gsoc2011/connexions">Connexions</a> has been selected as a participating organization and we have <a href="https://trac.rhaptos.org/trac/rhaptos/wiki/Google%20Summer%20Of%20Code%202011/Projects">2 projects</a> students can apply for. The deadline for applications is Friday, April 8. Get your application in today!Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com0tag:blogger.com,1999:blog-7775252059028186398.post-29941515966850117702011-03-18T12:42:00.000-07:002011-03-18T13:39:54.612-07:00Connexions Accepted into Google Summer of Code 2011We are proud to announce that Connexions has been selected as a participant in the Google Summer of Code (GS0C) 2011. We will be looking for some great upperclassmen or grad students to help us complete our two GSoC projects. Our <a href="https://trac.rhaptos.org/trac/rhaptos/wiki/Google%20Summer%20Of%20Code%202011/Projects">projects</a> involve using Google Docs as an editor for Connexions and enhancing our author profiles. Students can review GSoC projects and apply at the <a href="http://www.google-melange.com/">Google Summer of Code site</a>. Thanks to all that had a hand in Connexions being selected.Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com0tag:blogger.com,1999:blog-7775252059028186398.post-27335587893131364962011-03-15T11:43:00.000-07:002011-03-15T12:06:00.043-07:00Consortium Technology Committee -- Working on focus and plan for the year<span style="color: rgb(0, 0, 0);font-family:verdana;font-size:100%;" >The <a href="http://cnxconsortium.org/">Connexions Consortium</a> has a technology committee charged with the technical direction, planning, and development of the Rhaptos software that powers Connexions and <a href="http://enterpriserhaptos.org/">Enterprise Rhaptos</a>.<br /><br />The committee met just before <a href="http://edtech.rice.edu/www/?option=com_iwebcast&task=webcast&action=details&event=2391">Connexions Conference 2011</a> in February to start putting together a development plan for the next year. </span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:verdana;font-size:100%;" ><span class="Apple-style-span" style="border-collapse: collapse;"><span style="color: rgb(0, 0, 0);"><span style="font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To start the process, we had everyone around the room suggest things that are strategically important for Connexions and Rhaptos. After a bit of discussion and consolidation we ended up with 11 focus areas and then had people “pitch” them to the group, explaining who they would benefit and how they would help achieve the Connexions/Rhaptos mission. The committee then voted on our top three focus areas. These focus areas are by no means exclusive or exhaustive. They just give the committee concrete goals to work on as a group. The following three areas had the most energy and we will be following up with each. </span></span></span></span><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-weight: bold;"><br /></span><ol><li><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-weight: bold;">Strengthening the Development Community</span><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, with an emphasis on upgrading to Plone 4 to expand the base of developers available.<span style="font-weight: bold;"></span></span></li><li><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-weight: bold;">Creating APIs</span><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> -- In order for members and others to build things that are not tightly integrated into Rhaptos, we need to have well defined APIs (application programming interfaces).</span></li><li><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; font-weight: bold;">Authoring</span><span style="color: rgb(0, 0, 0); font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Authors and educators need easier authoring tools in order to share their OER (open education resources).</span></li></ol><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:verdana;font-size:100%;" ><span class="Apple-style-span" style="border-collapse: collapse;">Do you have specific suggestions, additions, comments? Do you want to participate more actively with the committee? Please comment here, or email cnx at cnx.org with your feedback.<br /></span></span>Katherine Fletcherhttp://www.blogger.com/profile/07067608440174108780noreply@blogger.com2tag:blogger.com,1999:blog-7775252059028186398.post-49938903007936714302011-03-03T06:53:00.000-08:002011-03-03T07:22:22.074-08:00First Weekly Plone 4 Sprint A SuccessWe put a call out to the Rhaptos developer community for help with migrating Connexions to Plone 4 and the response has been tremendous. We held the first of the weekly all day Sprints yesterday. The Connexions development team worked with developers in South Africa, the UK and the USA to get Connexions on Plone 4. We had multiple check-ins to our version control and made progress on<br /><ul><li>Account Creation</li><li>Login</li><li>Search</li><li>Workspaces</li><li>Unicode Problems</li><li>Content Rendering</li></ul>We also ended up with some great<a href="https://trac.rhaptos.org/trac/rhaptos/wiki/Plone4MigrationDevelopment"> documentation</a> on how to get our Plone 4 devset running on Ubuntu. Huge thanks to all that participated. We will be holding the sprint every Wednesday until May 18. Join us!Ed Woodwardhttp://www.blogger.com/profile/09968025681200810430noreply@blogger.com0