<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CompilED: And Often Interpreted</title>
    <link>https://compiled.ctl.columbia.edu/</link>
    <description>Recent content on CompilED: And Often Interpreted</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)</copyright>
    <lastBuildDate>Wed, 14 Jun 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://compiled.ctl.columbia.edu/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Four Things to Consider When Setting Up a D.I.Y. Studio for Faculty Use</title>
      <link>https://compiled.ctl.columbia.edu/articles/faculty-diy-studio-setup/</link>
      <pubDate>Wed, 14 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/faculty-diy-studio-setup/</guid>
      <description>Study the end credits of just about any film, TV show, or documentary, and you’ll get a sense of the labor involved in professional media production. Cameras and microphones must be set up, lights need to be positioned and adjusted to illuminate the subject, and the content has to be captured in an aesthetically pleasing way all while maintaining an aggressive production schedule. This requires planning, technical skills, and many hours of dedicated work time.</description>
    </item>
    
    <item>
      <title>LibrePlanet 2023 Recap</title>
      <link>https://compiled.ctl.columbia.edu/articles/libreplanet-2023-recap/</link>
      <pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/libreplanet-2023-recap/</guid>
      <description>I want to summarize the LibrePlanet 2023 conference and also share some thoughts on how the ideas of the free software movement relate to ed-tech in higher education. LibrePlanet is the Free Software Foundation’s annual March conference in Boston.
As the conference began, I presented on a recent project, 3Demos. In this project, the CTL partnered with Drew Youngren, Columbia Univeristy Lecturer in the Discipline of Applied Mathematics, to create a collaborative tool for illustrating multi-variable calculus concepts.</description>
    </item>
    
    <item>
      <title>Using Accessibility as a Framework for Development</title>
      <link>https://compiled.ctl.columbia.edu/articles/accessibility-development-framework/</link>
      <pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/accessibility-development-framework/</guid>
      <description>I would like to emphasize the value of accessibility-driven development, from the perspective of a new developer. I joined the Center for Teaching and Learning at Columbia University in June of 2022 – about half a year ago, as I write this article. At the time there was a big push to improve the digital accessibility of our applications. Training modules were passed around and everyone on the dev team was refining their language, learning to describe and develop software for the widest possible audience.</description>
    </item>
    
    <item>
      <title>Using Backward Design To Give Purpose to 360-Degree Videos</title>
      <link>https://compiled.ctl.columbia.edu/articles/360-video-edu-context/</link>
      <pubDate>Mon, 31 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/360-video-edu-context/</guid>
      <description>This post includes contributions by Jon Hanford, Nicole Hentrich, Meesha Meksin, Nikolas Nyby, and Marc Raymond. This reflects the collaborative nature of the project.
Virtual and augmented reality (VR and AR), 360-degree video, and other immersive technologies have been heralded as the new frontier of education for many years. Perhaps spurred by the pandemic and the need to come together across geographic distance, the interest and desire to invest heavily in these technologies has only intensified.</description>
    </item>
    
    <item>
      <title>A MediaWiki CAS Setup with SimpleSAMLphp</title>
      <link>https://compiled.ctl.columbia.edu/articles/a-mediawiki-cas-setup-with-simplesamlphp/</link>
      <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/a-mediawiki-cas-setup-with-simplesamlphp/</guid>
      <description>I want to illustrate how to configure MediaWiki to authenticate with a central auth server using CAS. The CTL wiki has long been overdue for the change to Single Sign-on.
I’m going to focus on how to get things working with CAS, but if you want to use a different identity provider, you can not only use any auth method PluggableAuth supports, but also any of SimpleSAML&amp;rsquo;s modules — many of these are included with SimpleSAML itself and are well-supported.</description>
    </item>
    
    <item>
      <title>All Talk? Where is VUI Design in the Inclusive Classroom?</title>
      <link>https://compiled.ctl.columbia.edu/articles/vui-in-classroom/</link>
      <pubDate>Fri, 17 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/vui-in-classroom/</guid>
      <description>There is no shortage of Voice User Interface (VUI) Design resources out there when it comes to ideas about the potential use of VUI design in our everyday lives and how-to-guides for creating commercial applications. However, when it comes to incorporating VUI-based educational technologies and other voice-centric learning strategies within the classroom, I was disappointed to find very little research about this topic.
A still relatively new and powerful design discipline (in spite of imperfections like speech recognition and privacy), VUIs allow users to interact with smart devices and applications through conversation.</description>
    </item>
    
    <item>
      <title>Developing Accessibility Awareness</title>
      <link>https://compiled.ctl.columbia.edu/articles/accessibility-awareness/</link>
      <pubDate>Thu, 19 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/accessibility-awareness/</guid>
      <description>Thursday May 19, 2022 is the 11th annual Global Accessibility Awareness Day (GAAD). It is a worldwide event to bring everyone’s focus on digital access and inclusion for people with different disabilities.
I use this day to reflect on how I became aware of digital accessibility, and subsequently learned to design and write code with components that are compliant with digital accessibility guidelines.
Some six years ago, I was involved in designing and developing open online resources for the Dental School at Columbia University.</description>
    </item>
    
    <item>
      <title>Using Docker To Pilot a Drupal 7 to Wordpress Migration</title>
      <link>https://compiled.ctl.columbia.edu/articles/drupal-to-wordpress/</link>
      <pubDate>Mon, 28 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/drupal-to-wordpress/</guid>
      <description>A Community Gift Drupal 7 site maintainers received a pandemic-related gift last year when the platform’s end of life was extended from November 2021 to November 2022. The extra year was deeply appreciated. We dealt with five older Drupal 7 sites, shutting a few down and flattening a few. But, one active site required a more complex migration path.
Introducing MyNy Mapping Yiddish New York is a unique assemblage of documentation about all aspects of Yiddish culture in New York: from theater, film, literature and press, through music, record labels, humor, and restaurants to organizations and institutions.</description>
    </item>
    
    <item>
      <title>2021 CompilED Posts Wrap-up</title>
      <link>https://compiled.ctl.columbia.edu/articles/wrap-up-2021/</link>
      <pubDate>Fri, 31 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/wrap-up-2021/</guid>
      <description>We end the year by looking back at what we covered in CompilED for 2021. This year was still with its unique challenges of hybrid workspaces and learning environments, but we’re proud of our work in instructional technologies at the CTL.
Our team develops both software and media for the teaching and learning community, so, we posted in CompilED three articles on the work in media production. We shared what we learned in developing many of our software projects, securing our infrastructure, and also touching upon the processes involved in user stories and experience.</description>
    </item>
    
    <item>
      <title>A Leaflet Solution</title>
      <link>https://compiled.ctl.columbia.edu/articles/a-leaflet-solution/</link>
      <pubDate>Thu, 16 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/a-leaflet-solution/</guid>
      <description>I was tasked with providing a work around for the virtual microscope used in two of our ongoing applications, Histology and Pathology lab manuals.The virtual microscope is used by medical students to view the massive Aperio digital pathology slides. The current system worked well but used Flash, which is no longer supported in major browsers. I had to quickly find a solution for the upcoming semester.
 Snapshot of the old virtual slides on Aperio.</description>
    </item>
    
    <item>
      <title>Makin’ MOOCs</title>
      <link>https://compiled.ctl.columbia.edu/articles/making-moocs-takeaways/</link>
      <pubDate>Thu, 02 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/making-moocs-takeaways/</guid>
      <description>M.O.O.C stands for Massive Open Online Course.
The name is no exaggeration. These open online courses are MASSIVE!
In this CompilED article, I’ve outlined 3 key takeaways from what I’ve learned in helping to coordinate large-scale video projects at Columbia University’s Center for Teaching and Learning.
Takeaway 1: Set the scope early in the process.
Takeaway 2: Collaborate consistently throughout the project.
Takeaway 3: Leverage Essential Graphics in Adobe After Effects.</description>
    </item>
    
    <item>
      <title>Securing Our AWS Infrastructure, Part 2: Integrating CloudWatch with CloudTrail and Setting up Alarms</title>
      <link>https://compiled.ctl.columbia.edu/articles/secure-aws-infrastructure-2/</link>
      <pubDate>Mon, 25 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/secure-aws-infrastructure-2/</guid>
      <description>A hallmark of DevOps is the constant search for more secure methods to protect infrastructure, a process known as hardening. In Part 1, we detailed how we moved away from managing SSH keys and whitelisting IP’s to leveraging AWS Systems Manager (SSM) Session Manager to securely connect to our EC2 instances.
Another important change we made was to integrate CloudWatch and CloudTrail so that we could set up alerting for crucial infrastructure changes.</description>
    </item>
    
    <item>
      <title>Coloring User Experience in Locus Tempus</title>
      <link>https://compiled.ctl.columbia.edu/articles/ux-colors/</link>
      <pubDate>Fri, 16 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/ux-colors/</guid>
      <description>Software development in educational technologies benefits greatly from user experience design (UXD) to ensure that the user experience leads to the outcome of the pedagogical goals behind the application design.
Color choices in user interface design are an important component of UXD. They can be a source of harmony that integrates product identity, visual design, mood. A combination of tone and saturation in user interface design can increase usability, affect functionality, and shape behavior.</description>
    </item>
    
    <item>
      <title>Collaborative Video Production with Frame.io</title>
      <link>https://compiled.ctl.columbia.edu/articles/collab-video-frameio/</link>
      <pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/collab-video-frameio/</guid>
      <description>By its very nature, the moving image is a collaborative medium. A major film, for example, is a singular work that’s the result of the crafts and trades of hundreds of different collaborators. While educational media production doesn’t quite reach that scale, the challenge of reflecting the academic instructor’s expertise and learning objectives into a film is just as important and challenging.
Generally our media productions involve partners who are content experts—for example, a faculty member in a specific field.</description>
    </item>
    
    <item>
      <title>How to Simulate Gas Particles With Matter.js</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-simulate-gas-particles-with-matterjs/</link>
      <pubDate>Tue, 04 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-simulate-gas-particles-with-matterjs/</guid>
      <description>I want to summarize part of the Gas Retention Simulator we’ve made as part of our effort to re-work Kevin Lee’s astronomy simulations. The goal here has been to port these simulations from Flash to HTML/JavaScript, now that Flash is not being used anymore and JavaScript can do everything Flash used to do.
 Screenshot of the Gas Retention Simulator
  This simulation includes a view of gas particles flying around in a chamber.</description>
    </item>
    
    <item>
      <title>Activating User Stories</title>
      <link>https://compiled.ctl.columbia.edu/articles/activating-user-stories/</link>
      <pubDate>Fri, 26 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/activating-user-stories/</guid>
      <description>Projects at the CTL, especially software projects, often start with a discovery phase that involves envisioning how a tool we’re building will be used. We write out user stories with great care and effort, outlining particular features and functionalities. Several of my current projects are in the discovery phase and others are further along—but the question of how we look back at and activate written user stories persists. There’s often a swirl of conversations, notes and proposed features that encircle and sometimes entangle these user stories, making it difficult to keep track of priorities and specific tasks along the road to launch.</description>
    </item>
    
    <item>
      <title>Avoiding Conflict and Maximizing Collaboration: A Shared Editing Approach</title>
      <link>https://compiled.ctl.columbia.edu/articles/shared-editing/</link>
      <pubDate>Fri, 12 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/shared-editing/</guid>
      <description>The Kickoff Meeting A typical application kick-off meeting at the Center for Teaching and Learning includes a big-picture discussion on desired functionality and features. A recurring wishlist item is the desire to foster collaboration among students within the online space.
This collaborative learning wish is most frequently expressed by describing Google Docs functionality. The collaborative features of Google Docs, Sheets and Slides is the gold standard, offering not just synchronous editing but presence, comments and task assignments.</description>
    </item>
    
    <item>
      <title>Three Strategies to Improve Accessibility &amp; Inclusion in Educational Videos</title>
      <link>https://compiled.ctl.columbia.edu/articles/strategies-digital-accessibility/</link>
      <pubDate>Tue, 19 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/strategies-digital-accessibility/</guid>
      <description>When I first came to the CTL, I remember thinking “accessibility” meant ramps and elevators. Now, after almost two years of research, discussions, and experimentation, I realize it’s really all about access. In this post, I’ve outlined three digital accessibility strategies that can be applied to educational video projects:
Strategy 1: Write with accessibility in mind.
Strategy 2: Schedule time to test the digital accessibility of your project.
Strategy 3: Find new barriers to knock down.</description>
    </item>
    
    <item>
      <title>2020 CompilED Posts Wrap-up</title>
      <link>https://compiled.ctl.columbia.edu/articles/wrap-up-2020/</link>
      <pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/wrap-up-2020/</guid>
      <description>The year that just passed, with a visually appealing, even pattern of 2-0-2-0, can be summarized as tumultuous, weltschmerz, fatiguing, revealing, unprintable. That year—the very bad confluence of Covid-19 pandemic, national and global upheavals–challenged our understanding of our work, forced us to fortify our focus, pushed us to examine our processes, and corralled our support for each other—both professional and personal.
It was challenging, but we adapted to make progress in our work.</description>
    </item>
    
    <item>
      <title>Closing Classroom Gaps with Customer Experience Principles</title>
      <link>https://compiled.ctl.columbia.edu/articles/hyflex-cx-principles/</link>
      <pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/hyflex-cx-principles/</guid>
      <description>Teaching and learning in higher ed during this pandemic has been nothing short of challenging for instructors. They’ve been forced to quickly bridge classroom gaps in time, place, distance, and student modalities. An effective response to these challenges has been to transform existing courses into effective, new HyFlex (hybrid flexible) courses.
This HyFlex course format has been enjoying success because it combines both face-to-face and online learning. Each class session and their related learning activities are offered both synchronously (online and in person) and asynchronously (archived online).</description>
    </item>
    
    <item>
      <title>Securing Our AWS Infrastructure, Part 1: MFA and SSH</title>
      <link>https://compiled.ctl.columbia.edu/articles/secure-aws-infrastructure-1/</link>
      <pubDate>Tue, 27 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/secure-aws-infrastructure-1/</guid>
      <description>A hallmark of DevOps is the constant search for more secure methods to protect infrastructure, a process known as hardening. One change we recently implemented was to move away from managing SSH keys and whitelisting IP’s to leveraging AWS Systems Manager (SSM) Session Manager to securely connect to our EC2 instances.
Our configuration allows for an SSH connection to be tunneled through SSM Session Manager by using the AWS Command Line Interface (CLI) to connect to an EC2 instance.</description>
    </item>
    
    <item>
      <title>Jira Web</title>
      <link>https://compiled.ctl.columbia.edu/articles/jira-web/</link>
      <pubDate>Sun, 19 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/jira-web/</guid>
      <description>One of my first tasks at the CTL was to look into a more efficient way for the Media Team to get the information they need when an event requires photo and/or video. After some brainstorming, I wanted to approach the problem in a way that would be the least distruptive to the current workflow. I settled on creating a customized issue for photo/event purposes.
This decision began my deep dive into Jira.</description>
    </item>
    
    <item>
      <title>Practicing Agility—Transitioning To Remote Work</title>
      <link>https://compiled.ctl.columbia.edu/articles/practicing-agility-two/</link>
      <pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/practicing-agility-two/</guid>
      <description>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
— Principles behind the Agile Manifesto
 The CTL development team has committed to refining our processes this year. The first round of reflection and experiments are captured in Tuning and Adjusting Our Agile Processes.
In early March, as the COVID-19 pandemic widened in New York City, our university transitioned to fully online learning and staff began to work from home.</description>
    </item>
    
    <item>
      <title>The Narrative of User and Technical Stories</title>
      <link>https://compiled.ctl.columbia.edu/articles/userstory-techstory/</link>
      <pubDate>Tue, 09 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/userstory-techstory/</guid>
      <description>The software development team at the CTL makes software for courses or classroom use, and we follow the (modified) Agile methodology to run our projects. Typically, during the discovery phase (and throughout the lifecycle) of a project, the project’s faculty (client), the learning designer (owner), the front-end designer, and the developer would meet to define the learning objectives and outcomes of what it is that we’re making, and then write some user stories.</description>
    </item>
    
    <item>
      <title>Setting up Django Integration Testing with Cypress</title>
      <link>https://compiled.ctl.columbia.edu/articles/django-integration-testing/</link>
      <pubDate>Mon, 30 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/django-integration-testing/</guid>
      <description>One of the pleasures of writing applications in Django, or pain points depending on your outlook, is that unit testing is at the core of the experience. It&amp;rsquo;s very much part of the culture of the Django project, so much so that it has its own chapter in the Django tutorial. Though Django excels at unit testing, the story around integration testing isn&amp;rsquo;t as well defined.
For a recent project, I sought to introduce Cypress.</description>
    </item>
    
    <item>
      <title>FOSDEM 2020</title>
      <link>https://compiled.ctl.columbia.edu/articles/fosdem-2020/</link>
      <pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/fosdem-2020/</guid>
      <description>I attended the Free and Open source Software Developers’ European Meeting (FOSDEM) in Brussels on February 1st and 2nd, 2020. The amount of people throughout the ULB campus made the experience overwhelming, but exciting. Around 8,000 people attend this conference, and there are 30 different talks going on at any one time.
Even after reading the How to survive FOSDEM guide before my trip, I still felt under prepared when I got there.</description>
    </item>
    
    <item>
      <title>We’re All Project Managers</title>
      <link>https://compiled.ctl.columbia.edu/articles/we-are-all-pm/</link>
      <pubDate>Wed, 19 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/we-are-all-pm/</guid>
      <description>As I began work at the CTL, I knew I’d have a lot to learn about this organization and how we manage projects. I’ve managed a variety of projects myself, coming from an eclectic background involving customer and stakeholder service, office management and film/art production. Throughout my first few months here I’ve prioritized researching Agile and other methodologies and familiarizing myself with professional best practices. Through the course of my research, it became clear to me that especially these days, developing expertise in project management is being monetized and even commoditized.</description>
    </item>
    
    <item>
      <title>Tuning and Adjusting Our Agile Processes</title>
      <link>https://compiled.ctl.columbia.edu/articles/practicing-agility/</link>
      <pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/practicing-agility/</guid>
      <description>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
— Principles behind the Agile Manifesto
 The CTL development team has committed to refining our processes this year. Our goal is to craft a more efficient, repeatable design and development approach that adheres to agile values and principles, and also boosts collaboration and transparency.
The Center has long thought deeply about how we do our work.</description>
    </item>
    
    <item>
      <title>Using SNMP to monitor a QNAP device</title>
      <link>https://compiled.ctl.columbia.edu/articles/qnap-monitoring-environment/</link>
      <pubDate>Fri, 10 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/qnap-monitoring-environment/</guid>
      <description>At the CTL, we use Graphite and Grafana to monitor all of our server infrastructure, but our last physical server, a QNAP file server, does not have a straightforward way to send its metrics to a graphite monitoring environment. Even worse, it runs a customized version of Linux which we were hesitant to modify. Luckily it does support the Simple Network Management Protocol (SNMP), which can do just that.
What is SNMP?</description>
    </item>
    
    <item>
      <title>2019 CompilED Posts Wrap-up</title>
      <link>https://compiled.ctl.columbia.edu/articles/wrap-up-2019/</link>
      <pubDate>Wed, 08 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/wrap-up-2019/</guid>
      <description>As we enter the new year, let’s look back at what we covered in CompilED for 2019. We shared in our posts tips on JavaScript techniques and libraries that we used in simulations and animations; and some interesting applications of Vue, React, Django, and Cypress in our project development. We also focused on project process, such as Design Thinking and the dynamics of project teamwork. Accessibility is now a part of our project development process at the CTL, and the redesign of CompilED to meet web accessibility standards is aligned with this commitment.</description>
    </item>
    
    <item>
      <title>Design Thinking: My New Year’s Resolution</title>
      <link>https://compiled.ctl.columbia.edu/articles/design-thinking-resolution/</link>
      <pubDate>Tue, 10 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/design-thinking-resolution/</guid>
      <description>Although there seems to be a handful of different methodologies, I feel that the essence of “design thinking” boils down to three tasks that anyone can—and must—do first in order to both effectively and empathetically solve design problems. What are they?
A Confession Larry Wall, the creator of the Perl programming language, once said that the three great virtues of a programmer are laziness, impatience and hubris. However, these three virtues can sometimes become disadvantages for me as a non-programmer.</description>
    </item>
    
    <item>
      <title>Cloning Arbitrary Django Objects</title>
      <link>https://compiled.ctl.columbia.edu/articles/cloning-arbitrary-django-objects/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/cloning-arbitrary-django-objects/</guid>
      <description>I recently made a “course-cloning” feature in EconPractice that provides new instructors with their own template course. The original master course is managed by Thomas Groll, Columbia’s Lecturer in the Discipline of International and Public Affairs. This will give new instructors some ideas on how EconPractice can be used, and what scenarios it was designed for.
A course is represented in Django with the Course model. This model has many Topic instances, which in turn have many Graph instances.</description>
    </item>
    
    <item>
      <title>Getting Started with Cypress</title>
      <link>https://compiled.ctl.columbia.edu/articles/getting-started-with-cypress/</link>
      <pubDate>Mon, 11 Nov 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/getting-started-with-cypress/</guid>
      <description>Testing is a key pillar of writing reliable software. When we build Django apps at the CTL, the testing story is pretty clear—it’s focused on unit testing. But what about other kinds of sites, like Hugo sites or React apps? Our work on a recent project led me to try the Cypress testing framework, and I was happy that I did.
Why Cypress? Cypress is the Chrome browser married with a Javascript testing framework.</description>
    </item>
    
    <item>
      <title>Accessible Interactive PDF: Pointers to Start</title>
      <link>https://compiled.ctl.columbia.edu/articles/accessible-pdf-wheel/</link>
      <pubDate>Wed, 23 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/accessible-pdf-wheel/</guid>
      <description>Digital accessibility means that content on websites and digital platforms is developed so that everyone, including people with disabilities, can perceive, interact, understand, and navigate using a wide range of devices and assistive technologies. This applies to content in PDF documents, considering that this file format is one of the most widely used digital formats in the world.
PDF is a popular format because it presents an electronic version of a printed document.</description>
    </item>
    
    <item>
      <title>Interacting With Nutrition Theory</title>
      <link>https://compiled.ctl.columbia.edu/articles/interactive-theory-model/</link>
      <pubDate>Mon, 29 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/interactive-theory-model/</guid>
      <description>Designing DESIGN Online We&amp;rsquo;re working with nutrition education faculty at Teacher&amp;rsquo;s College on an interactive curriculum builder. The application models the DESIGN Procedure, the brainchild of Professor Isobel Contento with the support of her colleague Associate Research Professor Pam Koch. Students will use this tool to create more effective and engaging nutrition-related learning experiences.
Our Senior Learning Designer Paul Stengel began working with Profs. Contento and Koch several years ago to migrate the DESIGN Procedure from a set of worksheets to Qualtrics, a survey-like environment.</description>
    </item>
    
    <item>
      <title>Stats Interactives: CSS Transitions</title>
      <link>https://compiled.ctl.columbia.edu/articles/stats-css-transitions/</link>
      <pubDate>Thu, 20 Jun 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/stats-css-transitions/</guid>
      <description>For the Stats Interactives project, I was given a challenge that initially I wasn’t sure how to solve.
First, some background: Stats Interactives is a set of four simulations used in Quantitative Analysis I at the School for International and Public Affairs. The course teaches statistics to future policy makers, so that they’ll have the skills to understand research that they will encounter in their careers.
For one interactive, our faculty partner Dr.</description>
    </item>
    
    <item>
      <title>Adjustable Noise Data based on a Curve</title>
      <link>https://compiled.ctl.columbia.edu/articles/adjustable-noise-data/</link>
      <pubDate>Fri, 07 Jun 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/adjustable-noise-data/</guid>
      <description>I&amp;rsquo;ve been working on an Exoplanet Transit Simulator, and part of this simulation displays randomized data, with an adjustable randomization factor, connected to an arbitrary curve. When you click &amp;ldquo;Show simulated measurements&amp;rdquo;, you can adjust the noise level of data points connected to the lightcurve. These data points are what an astronomer sees when looking for clues of a planet orbiting a distant star.
  We start off with the theoretical lightcurve.</description>
    </item>
    
    <item>
      <title>Delivering Data to a Vue Component</title>
      <link>https://compiled.ctl.columbia.edu/articles/vue-data/</link>
      <pubDate>Sun, 05 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/vue-data/</guid>
      <description>Special delivery Delivering data from server to client is pretty straightforward. Generally, you just throw together an API, RESTful or otherwise. When working in the Django framework, there are other data delivery options to consider. Here are two ways I&amp;rsquo;ve used to get data to the client.
Some background Rather than create a standalone Vue application, I&amp;rsquo;ve chosen, so far, to intertwine Vue functionality into Django templates. I feel this approach capitalizes on the power of both frameworks.</description>
    </item>
    
    <item>
      <title>CompilED for Inclusion</title>
      <link>https://compiled.ctl.columbia.edu/articles/compiled-redesign/</link>
      <pubDate>Thu, 11 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/compiled-redesign/</guid>
      <description>In March, I restructured and redesigned the CTL DevTeam’s website CompilED to meet web accessibility standards, and to improve its overall user experience on all devices.
This latest iteration of CompilED follows the Web Content Accessibility Guidelines (WCAG) 2.0 level AA, and it is much more technically and usably accessible than the previous versions. It is keyboard accessible with improved focus styling. The site is also seamlessly adaptive to multi-size screen devices—smartphones, tablets, and desktops.</description>
    </item>
    
    <item>
      <title>About CompilED</title>
      <link>https://compiled.ctl.columbia.edu/info/about/</link>
      <pubDate>Sun, 31 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/info/about/</guid>
      <description>CompilED is a collection of posts by the Instructional Technologies team of the Center for Teaching and Learning (CTL) at Columbia University. These views are rooted in our professional and personal experiences developing educational technology. These posts are directed at software developers and architects, user experience designers, and media/video producers of all flavors, but everyone is welcome.
 Software mediates human-to-human communication, as well as human-to-machine interactions. Much like the design of a physical classroom, the architecture and design of digital learning environments expresses the values of their creators and significantly shapes learning experiences.</description>
    </item>
    
    <item>
      <title>Accessibility Statement</title>
      <link>https://compiled.ctl.columbia.edu/info/accessibility/</link>
      <pubDate>Sun, 31 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/info/accessibility/</guid>
      <description>The software development team at Columbia CTL is committed to making CompilED content inclusive and accessible for everyone, including people with disabilities.
Conformance status We are continually producing content on CompilED that meets the Web Content Accessibility Guidelines (WCAG). CompilED is partially conformant to WCAG 2.0 Level AA.
Limitations CompilED has been audited and evaluated with the assessment tools mentioned in this statement. Some parts of the content do not fully conform to the WCAG 2.</description>
    </item>
    
    <item>
      <title>How to Work with Planes in three.js</title>
      <link>https://compiled.ctl.columbia.edu/articles/planes-in-threejs/</link>
      <pubDate>Fri, 08 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/planes-in-threejs/</guid>
      <description>Three.js provides the Plane concept for representing two dimensional surfaces that extend infinitely in 3d space. This is useful for cursor interaction so you might need to learn how to set up this plane, visualize it, and adjust it as needed.
Three.js’s Plane documentation is good and accurate, but it definitely assumes you’re a “math person” (which I’m not), and doesn’t explain how to get things working if you’ve never heard of things like quaternions and plane normals.</description>
    </item>
    
    <item>
      <title>2018 CompilED Posts Wrap-up</title>
      <link>https://compiled.ctl.columbia.edu/articles/wrap-up-2018/</link>
      <pubDate>Mon, 07 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/wrap-up-2018/</guid>
      <description>2018 has been a year of exploration and experimentation in software development for the CTL Development team. We shared our professional and personal experiences developing educational technology, and lessons learned here on CompilED. The following is a list of the posts we wrote last year.
 Disentangling an Imagemap for Accessibility
By Zarina Mustapha | December 19, 2018
Application design for accessibility and inclusion is not simply a technical implementation appended to a development process.</description>
    </item>
    
    <item>
      <title>Disentangling an Imagemap for Accessibility</title>
      <link>https://compiled.ctl.columbia.edu/articles/a11y-rwd-imagemap/</link>
      <pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/a11y-rwd-imagemap/</guid>
      <description>This post is based on my lightning talk at Women Who Code–NYC end-of-year meetup on December 12, 2018.
 In Fall 2018, my colleague Susan Dreher and I worked on the platform migration of a set of web-based learning modules developed in partnership with Columbia’s Mailman School of Public Health. These modules are offered by the Region 2 Public Health Training Center to the public as continuing education for learners in the public health workforce.</description>
    </item>
    
    <item>
      <title>Old PHTC Imagemap</title>
      <link>https://compiled.ctl.columbia.edu/examples/phtc-imagemap/</link>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/examples/phtc-imagemap/</guid>
      <description></description>
    </item>
    
    <item>
      <title>PHTC “Imagemap” redo</title>
      <link>https://compiled.ctl.columbia.edu/examples/phtc-imagemap-redo/</link>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/examples/phtc-imagemap-redo/</guid>
      <description></description>
    </item>
    
    <item>
      <title>How to Make an Analog Clock (Part 1)</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-make-an-analog-clock-part-1/</link>
      <pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-make-an-analog-clock-part-1/</guid>
      <description>Over the past few months that I&amp;rsquo;ve been working with graphical programming, it&amp;rsquo;s been fun to get insight into how the real world works, i.e., how things are visually laid out and move around. Sometimes it reminds me of a book I liked reading when I was younger, The Way Things Work. The book is all illustrations, so you don&amp;rsquo;t actually read it so much as pore over the details in all its drawings.</description>
    </item>
    
    <item>
      <title>Notes from Grace Hopper Connect @ Google 2018</title>
      <link>https://compiled.ctl.columbia.edu/articles/grace-hopper-connect-2018/</link>
      <pubDate>Fri, 28 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/grace-hopper-connect-2018/</guid>
      <description>The Grace Hopper Celebration is a yearly event to highlight the contributions of women to computing. Grace Hopper was an American computer scientist, mathematician and naval officer. Among her many achievements, she is recognized for her work in designing and implementing programming languages, and her drive to create an English-language compiler.
In lieu of jumping on a plane to Houston this year, I instead attended the first Grace Hopper Connect @ Google event in NYC.</description>
    </item>
    
    <item>
      <title>Making the Map</title>
      <link>https://compiled.ctl.columbia.edu/articles/making-the-map/</link>
      <pubDate>Wed, 26 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/making-the-map/</guid>
      <description>Mapping visualizations have been a core component of many of our custom digital learning applications. The geographical interactivity has promoted a significantly richer experience, deepening understanding and encouraging exploration and discovery. My understanding of how to build these applications has improved through collaboration with our clients, the talented faculty and students who form the basis of our audience.
Where to start? The primary stack that underpins these applications is: Google Maps Javascript API paired with GeoDjango and the PostGis spatial backend.</description>
    </item>
    
    <item>
      <title>Protecting Django Model Instances</title>
      <link>https://compiled.ctl.columbia.edu/articles/django-protect-model-instances/</link>
      <pubDate>Wed, 26 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/django-protect-model-instances/</guid>
      <description>Recently, I had a task where I needed to create a ‘Category’ model for a user, such that a default option would always be present. Users could create, edit, and delete any other instance of this ‘Category’ model, except for deleting the default option (users still could edit the default). Django field types and field options give developers a great degree of control, but I couldn’t quite assemble what I needed from stock options.</description>
    </item>
    
    <item>
      <title>Considerations for Search</title>
      <link>https://compiled.ctl.columbia.edu/articles/searching-1/</link>
      <pubDate>Wed, 19 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/searching-1/</guid>
      <description>When I get asked to add a search functionality to a web-based project, my immediate answer in the form of a question is, “What are you considering for searching?”
Let me tell you a story, an amalgamation of true stories while growing up. Let’s call the story “The Green Notebook Quest.” I was a young kid, in a hurry to go to school (almost always), and I couldn’t find my school notebook (almost always).</description>
    </item>
    
    <item>
      <title>A Range Input for Scientific Applications</title>
      <link>https://compiled.ctl.columbia.edu/articles/a-range-input-for-scientific-applications/</link>
      <pubDate>Thu, 23 Aug 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/a-range-input-for-scientific-applications/</guid>
      <description>Here’s a range input. Notice how it jumps immediately to the position you click:
&amp;lt;input type=&amp;#34;range&amp;#34; step=&amp;#34;1&amp;#34; min=&amp;#34;0&amp;#34; max=&amp;#34;100&amp;#34; value=&amp;#34;25&amp;#34; /&amp;gt; What if you want to fine-tune the value by incrementing and decrementing it by a predictable step? You can do this fine-tuning by focusing the input and using the arrow keys to adjust the value up and down.
You can make the click event behave in the same way by filtering the input’s oninput event, like this:</description>
    </item>
    
    <item>
      <title>How to Use Your Own Linux Kernel</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-use-your-own-linux-kernel/</link>
      <pubDate>Mon, 30 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-use-your-own-linux-kernel/</guid>
      <description>If you’re using Linux, using your own Linux kernel has benefits that might be helpful to you. And once things are set up on your system, keeping up to date is as straightforward as doing a periodic sudo apt upgrade.
If you’re using a newer laptop, updating your kernel can solve lots of issues because the hardware is still new, and kernel developers are still figuring out how to work with the new hardware.</description>
    </item>
    
    <item>
      <title>How to Animate Graphical Javascript Programs</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-animate-graphical-javascript-programs/</link>
      <pubDate>Fri, 27 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-animate-graphical-javascript-programs/</guid>
      <description>You can now do even more in JavaScript than you ever could in Flash. Google and the V8 team developed new technology that pressured all mainstream browsers to make JavaScript as efficient as it can be. The performance improvements, which are something like 100 times the speed of old JavaScript engines from pre-2008, have led to the development of new rendering standards like WebGL and Canvas. It’s now even typical for say, graphics demos on Pouet to be made in three.</description>
    </item>
    
    <item>
      <title>Managing Risk</title>
      <link>https://compiled.ctl.columbia.edu/articles/managing-risk/</link>
      <pubDate>Wed, 11 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/managing-risk/</guid>
      <description>IT Risk management is an ever expanding area of interest throughout the software development community. Traditional risk management practices are applied to ensure organizations can withstand unfortunate events like power outages and natural disasters. Additional processes are layered on to deal with events particular to production software systems, such as security vulnerabilities or severe bugs.
In years past, a specialized security team usually did the deep thinking around these issues. The watchful eyes of an operations center monitored production systems state.</description>
    </item>
    
    <item>
      <title>Netcat Tricks</title>
      <link>https://compiled.ctl.columbia.edu/articles/netcat-tricks/</link>
      <pubDate>Fri, 29 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/netcat-tricks/</guid>
      <description>One of the joys of using a UNIX box is ‘discovering’ utilities that ship with a particular OS. Who hasn’t on a slow day tab-completed through the letters of the alphabet to see what weird and mysterious things show up in your terminal? (Ok, most of humanity, actually.) And more often then not, those strange things that pop up often turn out to be useful.
For me, one such utility is Netcat.</description>
    </item>
    
    <item>
      <title>Notes from Wagtail Space US</title>
      <link>https://compiled.ctl.columbia.edu/articles/wagtailspace-us-event/</link>
      <pubDate>Tue, 26 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/wagtailspace-us-event/</guid>
      <description>This month, I attended and presented at the first Wagtail Space conference/sprint in the USA. Wagtail Space USA, led by the parent company Torchbox, took place on June 14th–16th at the Wharton School at the University of Pennsylvania. There were presentations by Wagtail CMS developers and users, tutorial and lightning talks, and a sprint throughout the three-day event.
Wagtail is an open source content management system by Torchbox, written in Python and built on the Django framework.</description>
    </item>
    
    <item>
      <title>Choosing Wagtail: A Story of Process</title>
      <link>https://compiled.ctl.columbia.edu/articles/choosing-wagtail/</link>
      <pubDate>Sun, 17 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/choosing-wagtail/</guid>
      <description>On June 14, 2018, I presented at the Wagtail Space USA 2018 conference in Philadelphia the process the DevTeam went through that led us to choosing Wagtail CMS as one of the tools for us to use at the Center for Teaching and Learning (CTL). This post is based on that talk. You can also download the slide here, in PDF format. The summary of Wagtail Space event is also posted on CompilED.</description>
    </item>
    
    <item>
      <title>How to Use Mediawiki’s API to Export Content</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-use-mediawikis-api-to-export-content/</link>
      <pubDate>Mon, 07 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-use-mediawikis-api-to-export-content/</guid>
      <description>In 2011, I was working at a media agency in San Francisco, developing an e-commerce application in PHP. I was the sole, “lead” developer and all of the code had been written by the agency’s resourceful creative director. I needed to add some new features to the platform, like product reviews, payment system improvements, product variations, and who knows, even a public API? This was really “learning by doing,” one of the many aspects of progressive education that we promote at the CTL.</description>
    </item>
    
    <item>
      <title>Better Sed with Perl</title>
      <link>https://compiled.ctl.columbia.edu/articles/better-sed-with-perl/</link>
      <pubDate>Mon, 02 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/better-sed-with-perl/</guid>
      <description>Though sed has facilities to manage multi-line operations, they can be hard to understand initially. Perl can offer an easier set of tools.
A few weeks ago, working on migrating static versions of Pathology Lab and Histology Lab to Hugo sites, I had the task of swapping the position of an image and a subsequent div across 100+ Markdown files. Initially I thought that sed would be the right tool for the job of an in-place edit, but I found it confusing to manage what essentially is a multi-line regex.</description>
    </item>
    
    <item>
      <title>Print Is a Device</title>
      <link>https://compiled.ctl.columbia.edu/articles/print-is-device/</link>
      <pubDate>Mon, 02 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/print-is-device/</guid>
      <description>“Can you teach us how to make sites print right?” a colleague once asked me. The reason websites are not printing right is probably because not much attention is given to what the sites should look like on paper.
Printing has NOT fallen out of favor, regardless of how much we’ve accepted and appreciated digital content. The printed page is still cheap, portable, and convenient. Because print is very much ingrained in the culture of content consumption, we need to include it in our web development process.</description>
    </item>
    
    <item>
      <title>Google@Columbia AR and VR Demonstration</title>
      <link>https://compiled.ctl.columbia.edu/articles/google-at-columbia-recap/</link>
      <pubDate>Fri, 30 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/google-at-columbia-recap/</guid>
      <description>In late February, I attended a Google interactive workshop, hosted by the Emerging Technology Consortium of CUIT. Google showcased a few of their products that could potentially be used by staff, faculty, and students of Columbia in teaching and learning.
Some of the products they showcased include:
Jamboard Jamboard is an interactive whiteboard developed by Google, as part of the G Suite family. It has a 55&amp;quot; 4k touchscreen display, and has compatibility for online collaboration through cross-platform support.</description>
    </item>
    
    <item>
      <title>Creating a Flexible Authorization System</title>
      <link>https://compiled.ctl.columbia.edu/articles/footprints-authorization/</link>
      <pubDate>Thu, 08 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/footprints-authorization/</guid>
      <description>Background Our collaborators from the Footprints project often present our development team with challenging requirements. We&amp;rsquo;ve taken on and solved complex issues such as storing fragmentary data and sorting uncertain and approximate dates.
Another challenging request from our partners was motivated by the desire to expand our contributor pool. From the project&amp;rsquo;s inception, adding Footprints and related metadata simply required authentication, but only the core team were given login credentials. The team decided to expand editor access, carefully.</description>
    </item>
    
    <item>
      <title>MediaWiki’s Visual Editor, and Text Editing on the Web in General</title>
      <link>https://compiled.ctl.columbia.edu/articles/mediawikis-visual-editor/</link>
      <pubDate>Tue, 27 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/mediawikis-visual-editor/</guid>
      <description>Editing and formatting text on the web comprises of an interesting sub-field of web development. The web allows for different ways to turn text into HTML markup. First I&amp;rsquo;ll outline some of the background of interactive text formatting on the web from my perspective, and then go into some configuration details of MediaWiki&amp;rsquo;s Visual Editor that I found interesting.
Libraries like MathJax allow for LaTeX-style math syntax to be meticulously, accurately rendered with SVG.</description>
    </item>
    
    <item>
      <title>How to Mock Non-Standard Authentication in a Django View Test</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-mock-non-standard-authentication-in-a-django-view-test/</link>
      <pubDate>Fri, 08 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-mock-non-standard-authentication-in-a-django-view-test/</guid>
      <description>Ideally when making automated tests, you don&amp;rsquo;t have to mock anything. You just test exactly what would be executed in production. Some scenarios make that a challenge, though. What if you&amp;rsquo;re testing a view that relies on an external authentication service, like an LTI server?
It&amp;rsquo;s probably possible to automate an LTI server to run alongside my tests, just like a test database. But that adds a lot of complexity without adding much value.</description>
    </item>
    
    <item>
      <title>Notes on Score Submission with django-lti-provider and Canvas LMS</title>
      <link>https://compiled.ctl.columbia.edu/articles/notes-on-score-submission-with-django-lti-provider-and-canvas-lms/</link>
      <pubDate>Tue, 05 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/notes-on-score-submission-with-django-lti-provider-and-canvas-lms/</guid>
      <description>django-lti-provider is a Python library for integrating Django apps with an LTI consumer like Canvas. django-lti-provider uses pylti to make LTI oauth requests. The lti library could also be used for this same purpose.
django-lti-provider has documentation on how to set everything up in Django, but I want to document a few challenges I ran into when trying to get grade submission to Canvas working.
You need to learn the Canvas interface and its concepts in order to figure out where you&amp;rsquo;re going to integrate the tool.</description>
    </item>
    
    <item>
      <title>Using Vault as an External Pillar for Salt</title>
      <link>https://compiled.ctl.columbia.edu/articles/using-vault-as-an-external-pillar-for-salt/</link>
      <pubDate>Mon, 22 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/using-vault-as-an-external-pillar-for-salt/</guid>
      <description>We&amp;rsquo;ve been trying to up our security game lately. One of the areas we identified as needing improvement was storage of credentials, keys, and passwords that our configuration management uses.
We use Salt as our configuration management tool of choice. Salt already lets you separate your setup into &amp;lsquo;states&amp;rsquo; and the &amp;lsquo;pillar&amp;rsquo; where states describe how various components are deployed and configured and the pillar is a relatively simple data structure of values that can be plugged into the states when they are run.</description>
    </item>
    
    <item>
      <title>Outline of an ePub Authoring System</title>
      <link>https://compiled.ctl.columbia.edu/articles/outline-of-an-epub-authoring-system/</link>
      <pubDate>Wed, 12 Apr 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/outline-of-an-epub-authoring-system/</guid>
      <description>I mentioned in a previous post that we&amp;rsquo;re working on interactive e-book for the Women on the Road to Health project. Here I&amp;rsquo;ll outline a simple system for authoring ePub 3 content.
There are plenty of tools you can use to help you make an ePub 3 bundle. Here&amp;rsquo;s a list of some of them: http://www.daisy.org/daisypedia/tools-creating-epub-3-files
As I mentioned in the post linked above, I&amp;rsquo;ve been solving problems in the most basic way possible and then working up from there.</description>
    </item>
    
    <item>
      <title>An Integration of Django’s Bulk Model Editor</title>
      <link>https://compiled.ctl.columbia.edu/articles/an-integration-of-djangos-bulk-model-editor/</link>
      <pubDate>Fri, 31 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/an-integration-of-djangos-bulk-model-editor/</guid>
      <description>Django’s admin interface provides an excellent and well-maintained UI for managing models in your Django database. They’ve included bulk editing functionality for operating on multiple models at once, like this:
 The checkboxes respond to the shift key, and are aware of the top checkbox, which can be used to toggle all selections on or off. We needed something like this in our PMT project for ticket re-assignment, mass milestone changes, etc.</description>
    </item>
    
    <item>
      <title>Sequenced Activities in JavaScript</title>
      <link>https://compiled.ctl.columbia.edu/articles/sequenced-activies-in-javascript/</link>
      <pubDate>Fri, 24 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/sequenced-activies-in-javascript/</guid>
      <description>We&amp;rsquo;ve been designing a new version of Women on the Road to Health with the goal of breaking it out of its web application mold to make it more easily distributable. We&amp;rsquo;re thinking something with a little more interactive functionality than a PDF, so possibly an ePub or an offline, standalone HTML5 application. The device we&amp;rsquo;re primarily targeting is some type of Android tablet, but with the durability and sustainability that our chosen formats provide, we&amp;rsquo;d like to make it as widely compatible across different systems as possible.</description>
    </item>
    
    <item>
      <title>A Reminder Not to Use Bare except Statements in Python</title>
      <link>https://compiled.ctl.columbia.edu/articles/bare-except-statements/</link>
      <pubDate>Fri, 03 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/bare-except-statements/</guid>
      <description>Using a bare except: statement is “almost never a good idea” according to Python’s documentation:
 Because except: catches all exceptions, including SystemExit, KeyboardInterrupt, and GeneratorExit (which is not an error and should not normally be caught by user code), using a bare except: is almost never a good idea. In situations where you need to catch all “normal” errors, such as in a framework that runs callbacks, you can catch the base class for all normal exceptions, Exception.</description>
    </item>
    
    <item>
      <title>How to Branch React Libraries</title>
      <link>https://compiled.ctl.columbia.edu/articles/how-to-branch-react-libraries/</link>
      <pubDate>Fri, 03 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/how-to-branch-react-libraries/</guid>
      <description>When I&amp;rsquo;ve found it necessary to make changes to the npm libraries I&amp;rsquo;m using in React, the process isn&amp;rsquo;t well-documented and I&amp;rsquo;ve found some guidelines through trial and error. To start, note that npm parses github repositories in package.json, and you can specify a branch with #, like this:
&amp;quot;react-grid-layout&amp;quot;: &amp;quot;ccnmtl/react-grid-layout#dev&amp;quot;, &amp;quot;react-player&amp;quot;: &amp;quot;ccnmtl/react-player#new-vimeo-api&amp;quot;,  Start with that, and then solve the problems as they come up. If you get errors saying the module isn&amp;rsquo;t found, it probably needs to be built.</description>
    </item>
    
    <item>
      <title>There Is No Such Thing as a Static Site</title>
      <link>https://compiled.ctl.columbia.edu/articles/there-is-no-such-thing-as-a-static-site/</link>
      <pubDate>Tue, 24 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/there-is-no-such-thing-as-a-static-site/</guid>
      <description>There really is no such thing as a &amp;ldquo;static&amp;rdquo; site.
I know that static site generators like Jekyll, Hugo, etc. are getting a lot of attention in general, and here at the Center as well. This blog that you are reading right now is built with Hugo and it&amp;rsquo;s become one of our go-to tools. So don&amp;rsquo;t interpret this as me being anti-static site. I&amp;rsquo;ve just been writing a few things lately and wanted to include a similar digression about the terminology in each of them so I decided to spin it off into its own post.</description>
    </item>
    
    <item>
      <title>My Daily Checklist</title>
      <link>https://compiled.ctl.columbia.edu/articles/anders-daily-checklist/</link>
      <pubDate>Thu, 01 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/anders-daily-checklist/</guid>
      <description>Anyone wandering into the #devteam channel in our Slack is likely to see something like this:
 Without any context, it&amp;rsquo;s probably a little puzzling.
A while back, I read the Checklist Manifesto by Atul Gawande. I have to say that it&amp;rsquo;s one of my favorite recent (non-fiction) reads. Gawande really makes a good case for the humble checklist as a tool for drastically improving quality and reliability in our processes and team communication.</description>
    </item>
    
    <item>
      <title>Smoke(test)ing for Health</title>
      <link>https://compiled.ctl.columbia.edu/articles/smoketesting-for-health/</link>
      <pubDate>Mon, 24 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/smoketesting-for-health/</guid>
      <description>In the quest for high quality, high reliability, and rapid development, one of the most powerful tools available to software developers is the automated test.
We have unit tests which test the functionality of individual components at a very low level, isolated from everything else. These are run frequently during development and help us make changes to these individual components safely and quickly.
The limitation of unit tests is that they can&amp;rsquo;t usually catch problems that arise when multiple components are combined.</description>
    </item>
    
    <item>
      <title>Lessons I Learned from Creating a MOOC</title>
      <link>https://compiled.ctl.columbia.edu/articles/mooc-edex-experience/</link>
      <pubDate>Wed, 05 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/mooc-edex-experience/</guid>
      <description>My work with Massive Open Online Courses (MOOCs)​ began two years ago when I joined​ ​the Center for Teaching and Learning​ at Columbia University​. I ​didn’t have previous experience working on MOOCs but I was excited to take on this new endeavor. The course​ that I worked on​ was a three-part series based on the Civil War and Reconstruction​ taught by DeWitt Clinton Professor of History Eric Foner. My role on this project was to edit the course videos and assist with ​its design.</description>
    </item>
    
    <item>
      <title>Massing and Patching of MATCH and PASS: Migration Process</title>
      <link>https://compiled.ctl.columbia.edu/articles/match-pass-migration-02/</link>
      <pubDate>Wed, 05 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/match-pass-migration-02/</guid>
      <description>This is the second of a three-part summary on the sustainability project of MATCH and PASS.
In the first part of this summary, “Towards Sustainability”, we recounted the circumstances that drove the decision to migrate MATCH and PASS to an open and sustainable framework. We also listed a few questions that we must address before moving forward with the implementation. Here, we’ll outline the solutions and development of the migration process.</description>
    </item>
    
    <item>
      <title>Massing and Patching of MATCH and PASS: Towards Sustainability</title>
      <link>https://compiled.ctl.columbia.edu/articles/match-pass-migration-01/</link>
      <pubDate>Tue, 04 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/match-pass-migration-01/</guid>
      <description>This is the first of a three-part summary on the sustainability project of MATCH and PASS.
In 2011, the Center for Teaching and Learning (then Columbia Center for New Media Teaching and Learning (CCNMTL)) began collaborating with Drs. Burton Edelstein and Courtney Chinn of the Columbia University College of Dental Medicine (CDM) to develop two self-paced, web-based interactive learning environments, MATCH and PASS.
 Multidisciplinary Approaches to Children’s Oral Health (MATCH) is a set of five training modules for practicing and future pediatric dentists to learn how they can work with other healthcare professionals to ensure a child’s oral health and overall well-being.</description>
    </item>
    
    <item>
      <title>Announcing... Interactives@CTL</title>
      <link>https://compiled.ctl.columbia.edu/articles/interactives-at-ctl-site/</link>
      <pubDate>Fri, 09 Sep 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/interactives-at-ctl-site/</guid>
      <description>This summer, we revisited the client-side interactives that we built for two online-learning projects—MATCH and PASS—and bundled them using Webpack as JavaScript packages for open and wider distribution. We are proud to announce that we now have a portfolio site, Interactives@CTL, to showcase about a dozen standalone interactives that we&amp;rsquo;ve authored so far. These interactives are modular, reusable, and can be embedded anywhere using the iframe code that we provide.</description>
    </item>
    
    <item>
      <title>Testing JavaScript Interactives</title>
      <link>https://compiled.ctl.columbia.edu/articles/standalone-interactives-testing/</link>
      <pubDate>Mon, 29 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/standalone-interactives-testing/</guid>
      <description>Background In May, I detailed our strategy for bundling JavaScript interactives into standard webpacks. We are now the proud authors of over a dozen webpacks. The interactives embed seamlessly into our static learning modules, e.g. the Older Adults Dresser Activity. A gallery, authored by my colleague Zarina Mustapha, in set up in Hugo.
Test, test, test Here at CTL, we are passionate about delivering high quality code that adheres to community standards.</description>
    </item>
    
    <item>
      <title>Dev-sys-ops-admin? Part 1</title>
      <link>https://compiled.ctl.columbia.edu/articles/dev-sys-ops-admin-p1/</link>
      <pubDate>Fri, 26 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/dev-sys-ops-admin-p1/</guid>
      <description>At the CTL we have about two dozen utility machines spread over 6 physical locations, as well as another three dozen or so staff laptops. Managing updates, user accounts, and printers for all these machines is not only a big job, but also one of many small repetitive steps—which makes it ripe for automation. Having been exposed to DevOps practices at the CTL, I wanted to find a way to corral all these machines in a sustainable way.</description>
    </item>
    
    <item>
      <title>Go at CTL</title>
      <link>https://compiled.ctl.columbia.edu/articles/go-at-ctl/</link>
      <pubDate>Tue, 23 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/go-at-ctl/</guid>
      <description>I recently attended The Golang UK Conference. Rather than my usual dump of notes and links, I thought I&amp;rsquo;d just write a bit about how and why we use Go at CTL. (Although, I can&amp;rsquo;t resist at least linking to Dave Cheney&amp;rsquo;s keynote on SOLID Go Design).
At CTL, we try to limit the programming languages, frameworks, operating systems, and deployment environments that we use for the sake of developer sanity.</description>
    </item>
    
    <item>
      <title>Deconstructing for Accessibility</title>
      <link>https://compiled.ctl.columbia.edu/articles/deconstructing-accessibility/</link>
      <pubDate>Fri, 29 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/deconstructing-accessibility/</guid>
      <description>“Accessibility is like a blueberry muffin—you can’t push the berries in there afterward.”
— @jinaquoting @CordeliaDillonat the Smashing Conference.
This summer, we migrated two of our Dental School projects, MATCH and PASS, from the CTL&amp;rsquo;s content management tool Pagetree—a Django-based platform—to the Hugo framework. This move was done to provide a sustainable structure for the projects, and to make them open and linkable from multiple training environments to attract a broader audience.</description>
    </item>
    
    <item>
      <title>Overview of a React Application</title>
      <link>https://compiled.ctl.columbia.edu/articles/overview-of-a-react-application/</link>
      <pubDate>Tue, 19 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/overview-of-a-react-application/</guid>
      <description>This post outlines some of the technologies involved in putting together a video juxtaposition tool for Mediathread. The primary technology I&amp;rsquo;m focusing on is React, which is a framework for building highly interactive user interfaces on the web in JavaScript.
Now that I&amp;rsquo;ve made some progress on Juxtapose I wanted to review some of the pieces and decisions I&amp;rsquo;ve made when putting this together. There are some differences between what I&amp;rsquo;m using here and what we&amp;rsquo;ve used for other JavaScript projects at CTL.</description>
    </item>
    
    <item>
      <title>Rebuilding CompilED</title>
      <link>https://compiled.ctl.columbia.edu/articles/rebuilding-compiled/</link>
      <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/rebuilding-compiled/</guid>
      <description>&amp;ldquo;We can rebuild [it]. We have the technology.&amp;rdquo;
— Oscar Goldman, The Six Million Dollar Man
Earlier in March we decided to move our previous blog to a different platform, with a fresh design in hope to breathe new life into it, and keep it going painlessly.
CompilED has been online since 2009 built in the erstwhile gratis and open-source Movable Type (MT), a weblog publishing system developed by the company Six Apart.</description>
    </item>
    
    <item>
      <title>CockroachDB Talk Notes</title>
      <link>https://compiled.ctl.columbia.edu/articles/cockroachdb-talk/</link>
      <pubDate>Fri, 10 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/cockroachdb-talk/</guid>
      <description>Working remotely, I&amp;rsquo;m always looking for good excuses to get out and actually interact with other developers in person. So when I saw that Pivotal was hosting a lunchtime talk on CockroachDB, I hopped on the train across town to Shoreditch to catch it. I took fairly detailed notes, but much of the talk involved walkthroughs of various scenarios and code paths that would be hard to describe here, so I&amp;rsquo;m going to very loosely summarize the content and try to convey the general ideas.</description>
    </item>
    
    <item>
      <title>Packaging JavaScript Interactives</title>
      <link>https://compiled.ctl.columbia.edu/articles/standalone-interactives/</link>
      <pubDate>Tue, 31 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/standalone-interactives/</guid>
      <description>Background At CTL, client-side interactives enrich many of our serial-learning web applications. These discrete JavaScript blocks challenge students with quizzes, animations, case studies, calculators and games. The goal is to transform a passive reading exercise into an active learning experience. The interactives encourage students to use higher-order skills to deepen understanding and aid retention.
Our in-house content management tool Pagetree provides the framework for our interactives. The JavaScript blocks hook into the content hierarchy using well-known patterns.</description>
    </item>
    
    <item>
      <title>Salt to Slack</title>
      <link>https://compiled.ctl.columbia.edu/articles/salt-to-slack/</link>
      <pubDate>Wed, 25 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/salt-to-slack/</guid>
      <description>While we aren&amp;rsquo;t entirely on the chatops bandwagon at CTL (yet), I do believe that visibility is important to operations. It&amp;rsquo;s often extremely helpful to know what&amp;rsquo;s going on with our systems at a glance. We have a #monitoring Slack channel that Github and Travis CI as well as our internal Jenkins server publish into so we can quickly see when pull requests come in or are merged, when tests fail, and when deployments are running.</description>
    </item>
    
    <item>
      <title>Migrating Mediathread’s Collection Bookmarklet to Browser Extensions</title>
      <link>https://compiled.ctl.columbia.edu/articles/migrating-mediathreads-collection-bookmarklet-to-browser-extensions/</link>
      <pubDate>Mon, 23 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/migrating-mediathreads-collection-bookmarklet-to-browser-extensions/</guid>
      <description>In the past few years, a web standard called Content Security Policy has come up that allows web developers to restrict how media and code can be accessed on their website depending on where the assets are being served. GitHub and Mozilla both have further explanations of CSP.
Part of our Mediathread application involves collecting images, audio, and video files from around the web and bringing them in to Mediathread for annotation or use in compositions.</description>
    </item>
    
    <item>
      <title>Beyond Hairballs and TagClouds</title>
      <link>https://compiled.ctl.columbia.edu/articles/beyond-hairballs/</link>
      <pubDate>Sun, 15 May 2016 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/beyond-hairballs/</guid>
      <description>On March 11 I attended a panel discussion celebrating the late Prof. Manning Marable and the opening of an exhibition of his collected papers.
I was struck by the love and appreciation in the room, and especially by the testimonies of Manning’s commitment to the wider public beyond the ivory tower. He was remembered as an institution builder and more than half the room was involved with projects and ideas that he initiated.</description>
    </item>
    
    <item>
      <title>Teaching Digital Humanities on A Laptop</title>
      <link>https://compiled.ctl.columbia.edu/articles/teaching-digital-humanities-on-a-laptop/</link>
      <pubDate>Wed, 23 Jul 2014 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/teaching-digital-humanities-on-a-laptop/</guid>
      <description>This summer Graham Sack, a doctoral student in the English department is teaching an introductory course in Digital Humanities called &amp;ldquo;Computational Methods for Literary and Cultural Criticism&amp;rdquo;. Graham came to CCNMTL inquiring about the usage of a cutting edge approach to teaching programming to novices, a web-based programming environment called IPython Notebook
 IPython Notebook is a tool that runs in your browser and allows for the full execution of any Python program that can run on the underlying server.</description>
    </item>
    
    <item>
      <title>Reflections on the Open Analytics Summit</title>
      <link>https://compiled.ctl.columbia.edu/articles/reflections-on-the-open-analytics-summit/</link>
      <pubDate>Sun, 30 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/reflections-on-the-open-analytics-summit/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Ricon East 2013 Talk Summaries</title>
      <link>https://compiled.ctl.columbia.edu/articles/ricon-east-2013-talk-summaries/</link>
      <pubDate>Sun, 30 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/ricon-east-2013-talk-summaries/</guid>
      <description>Back in May, Anders attended the Ricon East, &amp;ldquo;a distributed systems conference by and for engineers, developers, scientists and architects&amp;rdquo;. The distributed data-store Riak was featured prominently at the conference but the event was intended more as a conference on distributed systems in general spanning academia and industry.
Anders wrote up some fantastic, detailed notes on his personal blog, summarizing and explaining the sessions he attended:
Ricon East 2013 Talk SummariesThe slides and videos of the event are now posted, so you can check them out for yourself too.</description>
    </item>
    
    <item>
      <title>ReliefSim on Google App Engine</title>
      <link>https://compiled.ctl.columbia.edu/articles/reliefsim-on-google-app-engine/</link>
      <pubDate>Sat, 09 Feb 2013 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/reliefsim-on-google-app-engine/</guid>
      <description>As an experiment, Andershas ported the ReliefSimapplication to Google&amp;rsquo;s AppEngineand gotten it running on the free version at reliefsim.appspot.com(the source code for this application has been released on github: github.com/ccnmtl/reliefsim).
Brief Technical History of ReliefSim Existing Architecture Porting Concerns </description>
    </item>
    
    <item>
      <title>Simplify, Simplify, Simplify</title>
      <link>https://compiled.ctl.columbia.edu/articles/simplify-simplify-simplify/</link>
      <pubDate>Sat, 21 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/simplify-simplify-simplify/</guid>
      <description>I see programmers as inherently helpful people. Given a 57-step flowchart describing the steps some poor soul has to execute manually, most programmers get a little gleam in their eye and set about providing a streamlined solution. Programmers truly love removing those inefficiencies. Meanwhile, the customer stops wrestling with a frustrating system and gets on with his job.
I recently had the opportunity to untangle a complicated little process knot. The technical details are applicable solely to the Columbia community, but I think the story is a reminder that a core engineering duty is to tackle real world inefficiencies.</description>
    </item>
    
    <item>
      <title>Test.AnotherWay: JavaScript Unit Tests Made Easy</title>
      <link>https://compiled.ctl.columbia.edu/articles/one-of-the-primary-tenets/</link>
      <pubDate>Mon, 15 Feb 2010 00:00:00 +0000</pubDate>
      
      <guid>https://compiled.ctl.columbia.edu/articles/one-of-the-primary-tenets/</guid>
      <description></description>
    </item>
    
  </channel>
</rss>
