Jeff Longland

Relax, don't worry – have a home brew!

Posts Tagged ‘devcon12

#BbW12 DevCon – How to Turn the Lights on Your Blackboard Learn with Zabbix

leave a comment »

  • Presenter: Noriaki Tatsumi
  • A big benefit of Zabbix is that it runs outside your application and stores data away from production
  • Why Zabbix and not Nagios?  Smaller effort to setup, template based, better capabilities, support for JMX, easily extended.
  • Custom screens allow you to group graphs / data as you like.
  • Similar to Nagios, has triggers and alerting capabilities.
  • Bb uses Zabbix for monitoring / trending for SafeAssign and performance forensics.
  • Learn template for Zabbix available for download on Edugarage (thank you very much Noriaki!)
  • Unfortunately, active sessions included in the template are across the application – not by node.  This is because the active sessions are being pulled from the database.
  • In Learn 9.1 SP10, cache statistics will be exposed via JMX: hit ratio, misses, hits, in memory hits, on disk hits.
  • Need to install Monitoring Extension Building Block for statistics and security data – exposes additional security data over JMX.
  • Noriaki says not to worry too much about JMX authN or SSL, just restrict at the network level.
  • Script to deploy Zabbix agents to hosts, also provided.
  • Zabbix being used to monitor performance in Bb’s continuous integration environment.
  • Best practices:
    • Don’t sample more data than you need
    • Don’t keep history and trend data longer than necessary
    • Use percentile line on charts where applicable
    • Graph all functions (min, max, avg) to indicate outliers
    • Don’t create triggers that get ignored
    • Self monitor Zabbix
    • Have a maintenance and backup/restore plan.
  • Good audience question – Could you store the 95th percentile as part of trending data?
  • Apache metrics not included, but it’s something that the community could work on and contribute to the template.
Advertisements

Written by jlongland

July 10, 2012 at 9:23 am

Posted in Blackboard DevCon 2012

Tagged with ,

#BbW12 DevCon – Empowering Users with a Self Service Tool

leave a comment »

  • Presenter: Mark Kaufman
  • At CSU Chico, instructors are not able to create courses or enroll students – this is done via their SIS integration
  • Help Desk cannot use the Learn GUI to enroll users.
  • Development environment: RHEL, Ruby, Rails, Savon, MySQL, Oracle, git, AptanaStudio
  • AuthN with CAS
  • AuthZ based on custom institution roles in Learn
    • Learn Certified
    • IT Support Services
    • Technology and Learning Program
    • Admin
  • Tool is a work in progress, but code is posted on github.
  • Tool allows Help Desk staff to access courses (except those in which they are personally enrolled as a student).
  • User’s personal account not used.  A separate account is created ie. support-username.  The account is created via a web service call, enrolled in the course, and the user is SSO’d into Learn using the AutoSignon Building Block
  • Using Learn web service proxy to allow calls without a specific user’s credentials.
  • Good audience suggestion that Mark (or someone) should package the Learn webservices as a gem

Written by jlongland

July 10, 2012 at 8:00 am

Posted in Blackboard DevCon 2012

Tagged with ,

#BbW12 DevCon – Developing Building Blocks Using Modern Web Frameworks

leave a comment »

  • Presenter: David Ashman
  • It’s easier to find a developer who knows Spring and Hibernate…  rather than Struts.
  • Bb PD has adopted Spring as their standard framework for new Building Blocks
  • The key to using Spring is permissions:
    • ReflectPermission
    • accessDeclaredMembers
    • createClassLoader
    • setContextClassLoader
    • java.io.FilePermission to java.home/lib
  • To hook Spring into Bb, there’s a custom auto wire.
  • Hibernate and JPA are not intended to replace Learn DAOs
  • But they are intended for extended schemas within Building Blocks
  • Don’t use Hibernate to auto generate schemas
  • Avoid direct schema dependencies and relationships with core Learn schemas – it may break in an upgrade.
  • Left wondering if there’s an opportunity to use the Play framework within Building Blocks?
  • Slides to be posted on EduGarage post-conference.

Written by jlongland

July 9, 2012 at 10:12 am

Posted in Blackboard DevCon 2012

Tagged with ,

#BbW12 DevCon2012 – Copy is a four letter word!

leave a comment »

  • Presenter: Malcolm Murray
  • Example is for a library reading list, where a courseId, contentId, recordId and materialType are passed to a ViewServlet
  • Every content type has a corresponding directory in the app’s content area
  • Recommendation – don’t use contentId as the name.  It will break when you do a copy.
  • Use template variables wherever possible.  Stick extra data in the content area.
  • When you copy an item, the item is given a new PK1.  As Malcolm noted, it could be debated whether this is the ‘proper’ way to handle it.
  • A more complicated example – the SignUp tool
  • Adding an OpenDB schema gives you the ability to use something like on-delete=’cascade’ to clean permissions as users are removed.
  • Bb’s course copy doesn’t do anything with custom content types.
  • To work-around the limitation, you need to create an empty tool – ensure it’s set as default off, otherwise it appears.
  • Define a CxComponent object that overrides:
    • getComponentHandle
    • getApplicationHandle
    • getName
    • getUsage
    • doCopy
    • doImport
    • doExport
  • Usage.ALWAYS will always try to copy the content.  Won’t be displayed in the list of content to copy, will simply happen.
  • CopyControl provides methods to determine the source courseId, destination courseId, whether it’s a copy action or restore action etc.
  • Link to slides

Written by jlongland

July 9, 2012 at 8:37 am

Posted in Blackboard DevCon 2012

Tagged with ,