<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ari Bader-Natal - Feed</title>
    <link>https://aribadernatal.com</link>
    <atom:link href="https://aribadernatal.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>I design, build, and operate online learning environments that help learners access new opportunities and create new futures.</description>
    <language>en-us</language>
    <pubDate>Mon, 09 Mar 2026 00:00:01 +0000</pubDate>
    <copyright>Copyright 2026, Ari Bader-Natal</copyright>
    <lastBuildDate>Mon, 09 Mar 2026 06:06:56 +0000</lastBuildDate>
    <image>
      <url>https://aribadernatal.com/logo-180-180.png</url>
      <title>Ari Bader-Natal</title>
      <link>https://aribadernatal.com</link>
    </image>

    
      <item>
        <title>Sparkwise Completes Second Annual SOC 2 Type II Audit</title>
        <link>https://aribadernatal.com/2025/04/03/sparkwise-completes-second-annual-soc-2-type-ii-audit/</link>
        <pubDate>Thu, 03 Apr 2025 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2025/04/03/sparkwise-completes-second-annual-soc-2-type-ii-audit/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sparkwise blog at 
                <a href="https://sparkwise.co/blog/sparkwise-completes-second-annual-soc-2-type-ii-audit" target="_blank" rel="noopener">
                  https://sparkwise.co/blog/sparkwise-completes-second-annual-soc-2-type-ii-audit
                </a>
              </div>
              <blockquote>
                <p>We’re excited to announce that Sparkwise has successfully completed our second annual SOC 2 Type II audit! This achievement underscores our ongoing commitment to maintaining robust security standards as we serve a growing number of enterprise clients.</p>

<h2 id="what-is-soc-2-type-ii-compliance">What is SOC 2 Type II compliance?</h2>

<p>A SOC 2 Type II report describes a service organization’s systems and assesses the effectiveness of specified controls over time. Compliance guarantees established and implemented organizational practices to safeguard customer data.</p>

<h2 id="whats-new-in-security-this-year">What’s new in security this year?</h2>

<p>Over the past year, we’ve made significant improvements to our infrastructure and security posture. Highlights include:</p>

<ul>
  <li>Completed comprehensive penetration testing as part of our annual security schedule</li>
  <li>Introduced role-based access control for client admins, with improved cohort management</li>
  <li>Enhanced security monitoring with Snyk Code, Container, and Open Source for real-time analysis</li>
  <li>Expanded SSO capabilities through Auth0 and made Sparkwise an OIDC client for Okta integration</li>
  <li>Layered in several additional AWS and Cloudflare security and privacy protections</li>
</ul>

<h2 id="why-this-matters">Why this matters</h2>

<p>The relationship with our clients is built on trust. Our continued compliance demonstrates our commitment to handling client data with the highest security standards. As we develop new AI-powered functionality, we remain focused on ensuring security and privacy are paramount.</p>

<h2 id="thank-you">Thank you!</h2>

<p>We’d like to recognize the hard work of our entire team in achieving this milestone. Our engineering team handled much of the technical implementation and our operations and client-facing teams were also essential to this achievement. Special thanks to Ryan Rich, our vCISO from Workstreet, who has been an invaluable guide as we’ve expanded our security capabilities. This audit was completed with the help of Johanson Group LLP, who attested to Sparkwise’s information security controls meeting the leading industry standards.</p>

<p>Interested in learning more? Visit our <a href="https://sparkwise.co/security">security practices</a> and then explore everything we have to offer at <a href="https://sparkwise.co/">sparkwise.co</a>.</p>

              </blockquote>
              <div>
                <img alt="Sparkwise Completes Second Annual SOC 2 Type II Audit" src="/images/2024/03/sparkwise-soc2.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Introducing the Program Builder: Design your custom learning journey</title>
        <link>https://aribadernatal.com/2024/10/15/introducing-program-builder/</link>
        <pubDate>Tue, 15 Oct 2024 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2024/10/15/introducing-program-builder/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sparkwise blog at 
                <a href="https://sparkwise.co/blog/introducing-the-sparkwise-program-builder" target="_blank" rel="noopener">
                  https://sparkwise.co/blog/introducing-the-sparkwise-program-builder
                </a>
              </div>
              <blockquote>
                <p>Many people are excited when they see the Sparkwise platform <a href="https://sparkwise.co/see-a-demo">demo</a>, <a href="https://sparkwise.co/topics">catalog</a>, and <a href="https://sparkwise.co/impact">impact</a> but still struggle to visualize what an initial Sparkwise program would look like in practice within their organization.</p>

<p>We often use our first conversations with prospective clients to design and refine a first program. While these calls are quite effective at bringing into focus what a Sparkwise program would look like, not everyone is eager to schedule a call with us right away.</p>

<p>Personally, I understand that. As a technology buyer, I typically won’t schedule a call until I’ve done my homework and am fairly confident that it’s the right fit. Until then, I stick to research that I can do on my own.</p>

<p>I’m happy to share that starting today, we have a new tool for people like me: Today, we’re doing a beta release of the <a href="https://builder.sparkwise.co">Sparkwise Program Builder</a>. This tool helps to close the gap between what you can find on our website and what we offer today during consultative conversations by shifting focus from <em>modules</em> to <em>programs</em>.  </p>

<p>The Program Builder helps you design an 8-session Sparkwise program tailored to your organization’s needs. In less than five minutes, our AI-powered conversational tool asks you a few key questions about your organizational context, the participants that you have in mind, and your learning goals. Using this information, we generate a draft of a first program, including an interactive program map that highlights themes and shares the relevance and impact of each included module based on what you shared.</p>

<p><img src="https://cdn.prod.website-files.com/63a0397ab78efe3c199e5bfe/670d6af7c35ff96b8064d847_670d6aaebd4a91e7beaa8a2b_sample_plan_.png" alt="" /></p>

<p>Screenshot from a sample plan (<a href="https://builder.sparkwise.co/pp/plan/?id=bfi322ra5xdbt57o589jx2rt">view full plan</a>)</p>

<p>We recognize that once you see this draft program, you may have questions, changes, and perhaps some new ideas. You’re welcome to test out multiple programs or variations yourself, share these with others in your organization, and, if and when you’re feeling ready, you can put time on our calendar to discuss your draft plan with our team and we can help you refine it and get it scheduled.  </p>

<p>This is a <em>beta</em> release, so you can expect us to continue actively improving and evolving the tool based on feedback. Please give it a try and let us know if you see ways that we could make it more useful for you.</p>

<p>You can access the Sparkwise Program Builder starting today at <a href="https://builder.sparkwise.co">builder.sparkwise.co</a>. We’re excited to support you in designing a Sparkwise program that resonates for your organization. Please reach out if you have feedback!</p>

              </blockquote>
              <div>
                <img alt="Introducing the Program Builder: Design your custom learning journey" src="/images/2024/10/program-builder-1080.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Product Updates: September 2024</title>
        <link>https://aribadernatal.com/2024/09/30/product-updates-september-2024/</link>
        <pubDate>Mon, 30 Sep 2024 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2024/09/30/product-updates-september-2024/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sparkwise blog at 
                <a href="https://sparkwise.co/blog/product-updates-september-2024" target="_blank" rel="noopener">
                  https://sparkwise.co/blog/product-updates-september-2024
                </a>
              </div>
              <blockquote>
                <p>In September, we started rolling out a brand new video platform to clients, featuring a slew of new features (hello, background blur!) Client admins got enhancements to the Cohorts and Analytics tools. Here are the details: </p>

<h2 id="-for-session-participants">✨ For session participants</h2>

<p>The new video platform this month introduces several great benefits for session participants. Over the course of this month, we plan to gradually increase the percentage of sessions that run on the new platform, with the goal of 100% of sessions running on the new platform before the end of October. On this new platform, participants see:</p>

<ul>
  <li>an option to toggle on/off <strong>background blur</strong> for their video camera</li>
  <li>an option to toggle on/off <strong>noise cancellation</strong> for their microphone</li>
  <li>a highlighted border indicating which participant is <strong>currently speaking</strong></li>
  <li><strong>better AV performance</strong> under suboptimal network conditions (the new platform has lower bandwidth requirements)</li>
</ul>

<p>Separately, the Sparkwise platform was designed to support a number of different team workplace configurations, in order to support remote teams, in-person teams, and various hybrid arrangements. Last month, we modified the process that participants use to enter “<strong>in-person mode</strong>” to make it more clear when it should vs shouldn’t be used.</p>

<p>Since our initial release, all video clips on the platform are accompanied by a full text transcript that can be displayed next to the video. Now, we’re also starting to add <strong>closed captioning</strong> to all newly-uploaded video clips. Captions are available in English and can be toggled on from the video player’s settings menu.</p>

<h2 id="️-for-client-admins">⚙️ For client admins</h2>

<p>Back in August, we introduced a new “Cohorts” tab, designed to be used by client admins that manage multiple distinct cohorts for their organizations. This month, we enhanced this a bit. Client Admins with Cohort tab access will now see <strong>cohort names included in the participant table</strong> (at the top of the session details page). Note that the “Cohort” tab is not enabled by default, so please reach out to us if you would like it enabled for your account.</p>

<p>For client admins with access to the “Analytics” tab, the Summary tab now includes a <strong>stacked barchart showing quantitative participant scores</strong>. This provides more insight than the average value, and we think admins will find this useful.</p>

<p>Finally, <strong>bulk actions</strong> now show any resulting error messages in an easier-to-read format.</p>

<h2 id="coming-soon">Coming soon</h2>

<ul>
  <li>We have a number of new features slated for introduction on top of the new video platform, so we’re excited to <strong>continue to enhance the AV experience</strong>.</li>
  <li>We’re also working on ways that client admins that manage multiple cohorts will be able to <strong>customize their communications for specific cohorts</strong>.</li>
  <li>Finally, we’re working on an exciting new way to help clients <strong>prototype and explore future Sparkwise programs</strong>.</li>
</ul>

<p>That’s the update for this month! </p>

<p>Interested to see what we’ve released in past months? Highlights from our changelog can be found in our <a href="https://outline.sparkwise.co/s/production-release-notes">Product Release Notes</a>.</p>

<p>‍</p>

              </blockquote>
              <div>
                <img alt="Product Updates: September 2024" src="/images/2024/09/website-thumbnail.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Sparkwise is SOC 2 Type II Compliant</title>
        <link>https://aribadernatal.com/2024/03/14/sparkwise-is-soc-2-compliant/</link>
        <pubDate>Thu, 14 Mar 2024 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2024/03/14/sparkwise-is-soc-2-compliant/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sparkwise blog at 
                <a href="https://sparkwise.co/blog/sparkwise-is-soc-2-type-ii-compliant" target="_blank" rel="noopener">
                  https://sparkwise.co/blog/sparkwise-is-soc-2-type-ii-compliant
                </a>
              </div>
              <blockquote>
                <p>At the core of our operations lies an unwavering commitment to security and privacy. We’re excited to announce that we have successfully completed our SOC 2 Type II audit, a significant milestone that underscores this commitment.</p>

<h2 id="what-is-soc-2-and-why-does-it-matter">What is SOC 2 and Why Does It Matter?</h2>

<p>SOC 2 compliance means we have established and consistently follow strict information security policies and procedures. Service Organization Control (SOC) 2 is a rigorous auditing procedure developed by the American Institute of CPAs (AICPA). A SOC 2 Type II report describes a service organization’s systems and assesses whether the design and implementation of specified controls meet the relevant trust services categories over a period of time.</p>

<p>SOC 2 compliance matters because:</p>

<ol>
  <li>It demonstrates our commitment to protecting your data.</li>
  <li>It verifies that we have robust systems and processes in place to ensure the security and privacy of your information.</li>
  <li>It provides you with independent assurance about the effectiveness of our controls.</li>
</ol>

<h2 id="our-soc-2-compliance-journey">Our SOC 2 Compliance Journey</h2>

<p>We obtained our audited SOC 2 Report by partnering with <a href="https://www.johansonllp.com/">Johanson Group LLP</a>, a respected auditing firm. They conducted a comprehensive review of our internal controls, including:</p>

<ul>
  <li>Policies and procedures</li>
  <li>Infrastructure regarding data security</li>
  <li>Firewall configurations</li>
  <li>Change management processes</li>
  <li>Logical access controls</li>
  <li>Backup management systems</li>
  <li>Business continuity and disaster recovery plans</li>
  <li>Security incident response protocols</li>
  <li>Other critical areas of our business</li>
</ul>

<p>This achievement is the result of a company-wide effort here at Sparkwise. We’re proud to have successfully achieved SOC 2 compliance and received an Auditor’s Report. We’re happy to share this report with clients and prospective clients as proof that our policies, procedures, and infrastructure meet or exceed the SOC 2 criteria. Please reach out to <a href="mailto:support@sparkwise.co">support@sparkwise.co</a> if you’re interested in obtaining a copy of the report.</p>

<h2 id="trust-the-foundation-of-our-client-relationships">Trust: The Foundation of Our Client Relationships</h2>

<p>The relationship with our clients is built on trust. The successful completion of our SOC 2 Type II audit is one of many ways we earn and retain that trust. It’s a testament to our ongoing efforts to maintain the highest standards of security and privacy in our operations.</p>

<p>Achieving SOC 2 Type II compliance is not a one-time event, but a reflection of our continuous commitment to maintaining the highest standards of security and privacy. We view this as a crucial step in our ongoing journey to protect your data and earn your trust.</p>

<p>It’s important to note that SOC 2 is just one aspect of our growing security program. We are committed to continually improving our information security program and will retain an annual SOC 2 audit to ensure we keep supporting our customers’ evolving needs.</p>

<h2 id="learn-more">Learn More</h2>

<p>For those interested in delving deeper into our security measures, we invite you to visit our <a href="https://sparkwise.co/security">Security and Privacy</a> page. There, you’ll find detailed information about our:</p>

<ul>
  <li>Infrastructure security</li>
  <li>Organizational security</li>
  <li>Product security</li>
  <li>Internal security procedures</li>
  <li>Data &amp; privacy practices</li>
</ul>

<p>We’re proud of this achievement and remain committed to upholding the highest standards of security and privacy. Thank you for your continued trust and partnership.</p>

              </blockquote>
              <div>
                <img alt="Sparkwise is SOC 2 Type II Compliant" src="/images/2024/03/sparkwise-soc2.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Apparatus, user interface, and method for authoring and managing lesson plans and course design for virtual conference learning environments</title>
        <link>https://aribadernatal.com/2022/01/04/patent-course-builder/</link>
        <pubDate>Tue, 04 Jan 2022 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2022/01/04/patent-course-builder/</guid>

        
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2022.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;Apparatus, user interface, and method for authoring and managing lesson plans and course design for virtual conference learning environments&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US11217109B2/en" target="_blank" rel="noopener">U.S. Patent 11,217,109</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed September 19, 2017</span>
                    
                    
                      • <span class="patent-date-issued">Issued January 4, 2022</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>Embodiments include an apparatus and method for building courses. For example, one embodiment of a course builder apparatus comprises: a course builder application to retrieve data from a database, the data usable for constructing one or more online courses; a graphical user interface (GUI) of the course builder application for designing an online course, the GUI comprising: a template region in which one or more published classroom activity templates and/or step templates are graphically displayed; an editing region into which a designer of a course may select and drag one or more of the published classroom activity templates or step templates, the editing region comprising one or more fields or other graphical elements to allow the designer may edit the one or more published classroom activity templates or step templates.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="Apparatus, user interface, and method for authoring and managing lesson plans and course design for virtual conference learning environments" src="https://aribadernatal.com/images/patents/minerva-course-builder/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>CCCApply and OpenCCC Issues and Opportunities</title>
        <link>https://aribadernatal.com/2020/10/21/cccapply-memo/</link>
        <pubDate>Wed, 21 Oct 2020 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2020/10/21/cccapply-memo/</guid>

        
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Bader-Natal, A. "CCCApply and OpenCCC Issues and Opportunities". [Memorandum] (2020, October)
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="primary" HREF="/projects/Calbright/memo_cccapply_openccc_2020.pdf">
                          PDF
                        </A> 
                       
                    </div>
                  
                  
                    <br /><hr /><br />
                    Abstract: 
                    <blockquote>
                      <P>We appreciate the many benefits of all colleges in the California Community Colleges being able to share a common infrastructure for the student-facing college application process. CCCApply serves as a "gateway to the California Community Colleges," and its existence eliminates the need for each college or district to independently procure and customize (or build and maintain) its own application system, and its annual improvements benefit colleges system-wide.  But while all colleges in the system share the benefits of this common infrastructure, all colleges also share the limitations of this infrastructure. We focus on six key issues with CCCApply and OpenCCC today that affect prospective students and the colleges that serve them. We believe these recommendations will result in (a.) a more streamlined, cohesive experience for incoming students system-wide, and (b.) an enhanced ability for colleges to remotely support all of their prospective students more equitably through the entire application process.</P>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="CCCApply and OpenCCC Issues and Opportunities" src="https://aribadernatal.com/images/publications/cccapplymemo2020/featured.jpg" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>System and method for a virtual conference interactive timeline</title>
        <link>https://aribadernatal.com/2020/05/26/patent-virtual-conference-interactive-timeline/</link>
        <pubDate>Tue, 26 May 2020 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2020/05/26/patent-virtual-conference-interactive-timeline/</guid>

        
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2020.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;System and method for a virtual conference interactive timeline&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US10666696B2/en" target="_blank" rel="noopener">U.S. Patent 10,666,696</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed August 31, 2015</span>
                    
                    
                      • <span class="patent-date-issued">Issued May 26, 2020</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A virtual conferencing system is described which implements an interactive timeline. For example, one embodiment of the virtual conferencing system comprises: a plurality of clients, each of the clients comprising state management logic to maintain a current state of a virtual conference; a virtual conferencing service to establish audio and/or video connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to the state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; a virtual conferencing graphical user interface (GUI) to be rendered on the plurality of clients, the virtual conferencing GUI configured, via signals sent from the state synchronization service, to display a video stream of one or more current speakers during the virtual conference; and an interactive timeline to be rendered on at least one of the plurality of clients, the interactive timeline comprising a plurality of graphical elements representing different segments of the virtual conference, wherein selection of a first graphical element corresponding to a first segment causes the client on which the interactive timeline is displayed to transmit one or more commands to the virtual conferencing service to cause the virtual conferencing service to implement one or more operations associated with the segment, the one or more operations including modification of the virtual conferencing GUI on the clients in accordance with requirements of the segment.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="System and method for a virtual conference interactive timeline" src="https://aribadernatal.com/images/patents/minerva-timeline/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>System and method for scalable, interactive virtual conferencing</title>
        <link>https://aribadernatal.com/2020/01/21/patent-scalable-interactive-virtual-conferencing/</link>
        <pubDate>Tue, 21 Jan 2020 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2020/01/21/patent-scalable-interactive-virtual-conferencing/</guid>

        
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2020.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;System and method for scalable, interactive virtual conferencing&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US10541824B2/en" target="_blank" rel="noopener">U.S. Patent 10,541,824</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed June 21, 2017</span>
                    
                    
                      • <span class="patent-date-issued">Issued January 21, 2020</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      A scalable virtual conferencing system which implements a hub and spoke architecture. For example, one embodiment of a scalable virtual conferencing system comprises: a participant management module to logically group each participant in the virtual conferencing system into a hub or one of a plurality of spokes; and a data flow management module to control communication of information between participants in the spokes and participants in the hub, the data flow management module to limit intercommunication from the spokes to the hub in accordance with the manual user input and/or participant management policy; wherein at least one participant in a first spoke is designated as a spoke leader for the first spoke, the spoke leader logically grouped into both the hub and the first spoke, the data flow management module to allow information generated within the first spoke to be propagated into the hub based on input from the spoke leader.
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="System and method for scalable, interactive virtual conferencing" src="https://aribadernatal.com/images/patents/minerva-scalable-seminar/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Registering and displaying visual attention metadata in a web video conferencing and seminar system</title>
        <link>https://aribadernatal.com/2019/07/16/patent-minerva-attention-metadata/</link>
        <pubDate>Tue, 16 Jul 2019 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2019/07/16/patent-minerva-attention-metadata/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2019.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;Registering and displaying visual attention metadata in a web video conferencing and seminar system&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US10356364B2/en" target="_blank" rel="noopener">U.S. Patent 10,356,364</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed September 9, 2014</span>
                    
                    
                      • <span class="patent-date-issued">Issued July 16, 2019</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A method is disclosed for portraying physical visual attention cues or visual cues normally present in a conventional physical world in a virtual conference or class. The visual cues can be emulated by electronic signals in a video environment through physical interactions with the computer input by the user or participant of the virtual conference or image recognition algorithms provided by the video conferencing system.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="Registering and displaying visual attention metadata in a web video conferencing and seminar system" src="https://aribadernatal.com/images/patents/minerva-attention-metadata/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
             
        

      </item>
    
      <item>
        <title>System and method for managing virtual conferencing breakout groups</title>
        <link>https://aribadernatal.com/2018/05/01/patent-minerva-breakout-groups/</link>
        <pubDate>Tue, 01 May 2018 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2018/05/01/patent-minerva-breakout-groups/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2018.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;System and method for managing virtual conferencing breakout groups&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US9961119B2/en" target="_blank" rel="noopener">U.S. Patent 9,961,119</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed March 31, 2015</span>
                    
                    
                      • <span class="patent-date-issued">Issued May 1, 2018</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A virtual conferencing system is described for implementing breakout groups. For example, one embodiment of the virtual conferencing system comprises: a virtual conferencing service to establish audio and/or video connections between the plurality of clients during a virtual conference, each of the clients operated by at least one participant in the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; breakout group selection logic to subdivide the participants in the virtual conference into a plurality of breakout groups, the breakout group selection logic to select participants for each breakout group based on participant data related to each participant and input from a moderator; and breakout group generation logic to generate the selected breakout groups by modifying the current state on each client, thereby causing video and audio streams of the participants to be seen and heard, respectively, only between participants in the same breakout group and by providing breakout group materials and making the breakout group materials available to only participants within the same breakout group.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="System and method for managing virtual conferencing breakout groups" src="https://aribadernatal.com/images/patents/minerva-breakout-groups/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
             
        

      </item>
    
      <item>
        <title>Participation queue system and method for online video conferencing</title>
        <link>https://aribadernatal.com/2018/04/03/patent-participation-queue/</link>
        <pubDate>Tue, 03 Apr 2018 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2018/04/03/patent-participation-queue/</guid>

        
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2018.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;Participation queue system and method for online video conferencing&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US9935987B2/en" target="_blank" rel="noopener">U.S. Patent 9,935,987</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed December 12, 2016</span>
                    
                    
                      • <span class="patent-date-issued">Issued April 3, 2018</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A virtual conferencing system is described for implementing a speaker queue. For example, one embodiment of the virtual conferencing system comprises: a plurality of clients, each of the clients comprising state management logic to maintain a current state of a virtual conference; a virtual conferencing service to establish audio and/or video connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to the state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; wherein the current state on each client includes a speaker queue comprising an ordered set of participants to be designated as current speakers during the virtual conference, wherein participants are added to the speaker queue in response to input provided by the participants indicating a desire to be a current speaker, wherein one or more participants towards the top of the speaker queue are designated to be current speakers, wherein participants are initially added to the bottom of the speaker queue and are moved towards the top of the speaker queue as other participants are removed from the top of the speaker queue; a virtual conferencing graphical user interface (GUI) to display a video stream of one or more current speakers within one or more current speaker regions, the virtual conferencing GUI further providing a visual representation of the speaker queue to each of the participants, the visual representation comprising an ordered representation of each of the participants in the speaker queue.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="Participation queue system and method for online video conferencing" src="https://aribadernatal.com/images/patents/minerva-participation-queue/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Building Lesson Plans for Twenty-First-Century Active Learning</title>
        <link>https://aribadernatal.com/2017/10/06/3-building-lesson-plans/</link>
        <pubDate>Fri, 06 Oct 2017 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2017/10/06/3-building-lesson-plans/</guid>

        
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Bader-Natal, A., Fost, J., and Genone, J. "Building Lesson Plans for Twenty-First-Century Active Learning". In <i>Building the Intentional University: Minerva and the Future of Higher Education</i>, edited by Stephen M. Kosslyn and Ben Nelson, MIT Press, 2017.
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="" HREF="https://amzn.to/2vsPfhk">
                          Amazon
                        </A> 
                       
                        | <A class="" HREF="https://mitpress.mit.edu/books/minerva-and-future-higher-education">
                          MIT Press
                        </A> 
                       
                        | <A class="library" HREF="https://www.worldcat.org/oclc/978286410">
                          Library
                        </A> 
                       
                    </div>
                  
                  
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>The Active Learning Forum</title>
        <link>https://aribadernatal.com/2017/10/06/2-active-learning-forum/</link>
        <pubDate>Fri, 06 Oct 2017 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2017/10/06/2-active-learning-forum/</guid>

        
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Katzman, J., Regan, M., and Bader-Natal, A. "The Active Learning Forum". In <i>Building the Intentional University: Minerva and the Future of Higher Education</i>, edited by Stephen M. Kosslyn and Ben Nelson, MIT Press, 2017.
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="" HREF="https://amzn.to/2vsPfhk">
                          Amazon
                        </A> 
                       
                        | <A class="" HREF="https://mitpress.mit.edu/books/minerva-and-future-higher-education">
                          MIT Press
                        </A> 
                       
                        | <A class="library" HREF="https://www.worldcat.org/oclc/978286410">
                          Library
                        </A> 
                       
                    </div>
                  
                  
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Assessing Student Learning</title>
        <link>https://aribadernatal.com/2017/10/06/1-assessing-student-learning/</link>
        <pubDate>Fri, 06 Oct 2017 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2017/10/06/1-assessing-student-learning/</guid>

        
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Levitt, R., Bader-Natal, A., and Chandler, V. "Assessing Student Learning". In <i>Building the Intentional University: Minerva and the Future of Higher Education</i>, edited by Stephen M. Kosslyn and Ben Nelson, MIT Press, 2017.
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="" HREF="https://amzn.to/2vsPfhk">
                          Amazon
                        </A> 
                       
                        | <A class="" HREF="https://mitpress.mit.edu/books/minerva-and-future-higher-education">
                          MIT Press
                        </A> 
                       
                        | <A class="library" HREF="https://www.worldcat.org/oclc/978286410">
                          Library
                        </A> 
                       
                    </div>
                  
                  
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>System and method for tracking events and providing feedback in a virtual conference</title>
        <link>https://aribadernatal.com/2017/06/06/patent-minerva-tracking-events/</link>
        <pubDate>Tue, 06 Jun 2017 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2017/06/06/patent-minerva-tracking-events/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2017.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;System and method for tracking events and providing feedback in a virtual conference&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US9674243B2/en" target="_blank" rel="noopener">U.S. Patent 9,674,243</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed August 31, 2015</span>
                    
                    
                      • <span class="patent-date-issued">Issued June 6, 2017</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A virtual conferencing system is described which tracks events during a virtual conference, provides a user interface for reviewing the events, and allows a moderator and/or other participant to provide feedback related to the events. For example, one embodiment of a virtual conferencing system comprises: a plurality of clients operated by participants and at least one moderator of a virtual conference, each of the clients comprising state management logic to maintain a current state of the virtual conference; a virtual conferencing service to establish audio and/or video connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to the state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; a virtual conferencing graphical user interface (GUI) to be rendered on the plurality of clients, the virtual conferencing GUI configured, via signals sent from the state synchronization service, to display a video stream of one or more current speakers during the virtual conference utilizing the established video connections; and a contribution identification module to identify events related to actions of participants during the virtual conference; an event log to store the events identified by the contribution identification module; and an event filter to provide options for searching for specific types of events within the event log based on input from the moderator and/or participants when reviewing a recording of the virtual conference, the event filter to generate a filtered set of events based on the input from the moderator and/or participants.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="System and method for tracking events and providing feedback in a virtual conference" src="https://aribadernatal.com/images/patents/minerva-tracking-events/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>System and method for decision support in a virtual conference</title>
        <link>https://aribadernatal.com/2017/02/21/patent-minerva-decision-support/</link>
        <pubDate>Tue, 21 Feb 2017 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2017/02/21/patent-minerva-decision-support/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New patent:
                  </h2>
                  <div class="patent" style="line-height:1.5;">
                     
                      <span class="patent-inventors">Bader-Natal et al.</span>, 
                    
                     
                      <span class="patent-year">2017.</span> 
                    
                     
                      <span class="patent-title" style="font-weight:bold;">&#8220;System and method for decision support in a virtual conference&#8221;</span>
                    
                    
                      • <span class="patent-number"><A HREF="https://patents.google.com/patent/US9578073B2/en" target="_blank" rel="noopener">U.S. Patent 9,578,073</a></span>
                    
                    
                      • <span class="patent-date-filed">Filed August 31, 2015</span>
                    
                    
                      • <span class="patent-date-issued">Issued February 21, 2017</span> 
                     
                  </div>
                  
                    <br /><hr /><br />
                    Abstract:
                    <blockquote>
                      <p>A virtual conferencing system is described which evaluates and selects participants for active participation based on one or more criteria. For example, one embodiment of virtual conferencing system comprises: a plurality of clients operated by participants and at least one moderator of a virtual conference, each of the clients comprising state management logic to maintain a current state of the virtual conference; a virtual conferencing service to establish audio and/or video connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to the state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; a virtual conferencing graphical user interface (GUI) to be rendered on the plurality of clients, the virtual conferencing GUI configured, via signals sent from the state synchronization service, to display a video stream of one or more current speakers during the virtual conference utilizing the established video connections; and a decision support module to evaluate the participants according to one or more criteria in the virtual conference and to select a subset of the set of participants as candidates to actively participate in the virtual conference based on the evaluation.</p>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="System and method for decision support in a virtual conference" src="https://aribadernatal.com/images/patents/minerva-decision-support/featured.png" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Saving Favorites, Amber Edition</title>
        <link>https://aribadernatal.com/2016/02/15/saving-favorites-amber-edition/</link>
        <pubDate>Mon, 15 Feb 2016 08:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2016/02/15/saving-favorites-amber-edition/</guid>

        
          <description>
            <![CDATA[
              <p><em><b>Updated on 4/3/2016</b> to reflect <a href="https://wordpress.org/plugins/amberlink/changelog/">recent improvements</a> to the Amber WordPress plugin.</em></p>

<hr />

<p><a href="http://amberlink.org" target="_blank" rel="noopener">Amber</a> is a powerful new anti-linkrot tool for WordPress and Drupal. It also happens to be the missing piece needed to turn a personal favelog into a true archive. What follows is a bit about the favelog, a bit about Amber, and notes from my first week of using the Amber plugin with my WordPress-based favelog. If you’re only here for a review of Amber for Wordpress (as of Feb 2016), <a href="#review">jump here.</a> If you’re curious about the whole “favelog” thing, read on…</p>

<p>Last month, I wrote about how (and why) to set up a WordPress blog that automatically archives everything that you are collecting around the web: <b><a href="/2016/01/04/the-favelog-writes-itself/">The Favelog Writes Itself.</a></b>
Since September, my own favelog (hosted at <a href="https://favorites.aribadernatal.com" target="_blank" rel="noopener">favorites.aribadernatal.com</a>) has been dutifully documenting and linking to: (a.) each website that 
<a href="https://favorites.aribadernatal.com" target="_blank" rel="noopener"><img src="/images/2016/02/category-counts.png" style="float:left;width:200px;margin:15px 15px 15px -50px;" /></a> 
I favorite in Pocket, (b.) each article that I recommend on Medium, (c.) each code repository that I star on GitHub, (d.) each tweet that I like on Twitter, (e.) each project that I back on Kickstarter, (f.g.h.) each photo and video that I like on Vimeo, YouTube, and Flickr, and even (i.) every Processing sketch that I feature in the <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches" target="_blank" rel="noopener">Sketchpad Gallery</a>. Since I turned on my favelog five months ago, it has recorded 253 new items from my various collections, most of which are websites, tweets, and code repositories.</p>

<p>Part of the motivation for the favelog was to track my collections in a space that I fully control. Where I could re-organize, search, and share what I collect however I see fit. Web services eventually shut down, APIs change, Terms of Service get worse, etc. Own your collections and this problem is solved, right? Well, not really.</p>

<p>Here’s the catch: <em>The favelog records when I add a new article to my Articles collection, and the favelog entry includes a link back to the original article, but the favelog does not archive a copy of the article itself.</em> It turns out that archiving things on the web is remarkably difficult, particularly in the age of fancy Javascript-based personalized single-page applications. A few weeks ago, I heard <a href="https://github.com/ikreymer" target="_blank" rel="noopener">Ilya Kreymer</a> talk at a Meetup about some of the <a href="https://ikreymer.github.io/talk-20151215/#/" target="_blank" rel="noopener">tech powering web archiving</a> for Internet Archive’s Wayback Machine and <a href="https://webrecorder.io" target="_blank" rel="noopener">WebRecorder.io</a>. The piece that I didn’t expect was the move towards tools for archiving that and learnable/accessible to anyone, not just digital archivists.</p>

<p><a href="http://amberlink.org" target="_blank" rel="noopener"><img src="/images/2016/02/amber_website.jpg" style="float:right;margin:15px -50px 15px 15px;" /></a> 
About two weeks ago, I heard the announcement about <a href="http://amberlink.org" target="_blank" rel="noopener">Amber</a>, a new tool developed by the Berkman Center for Internet &amp; Society at Harvard promising almost exactly what I’d been looking for. According to their website, Amber “automatically preserves a snapshot of every page linked to on a website, giving visitors a fallback option if links become inaccessible. If one of the pages linked to on this website were to ever go down, Amber can provide visitors with access to an alternate version.” Amber is available as a WordPress plugin or a Drupal Module, allowing you to add archiving to existing sites with a few clicks. Given that I built my favelog on WordPress, I was able to very easily test it out.</p>

<p><a name="review"></a>
Many strengths:</p>

<ul>
  <li><b>Adding Amber to your WordPress blog is easy.</b> Just install the plugin.</li>
  <li><b>Customizing settings is possible but not necessary.</b> I’m running with the defaults, and</li>
  <li><b>The development team is very responsive.</b> I ran into two <a href="https://github.com/berkmancenter/amber_wordpress/issues/25">issues</a>, and the team was quick to respond via GitHub. Their <a href="https://github.com/berkmancenter/amber_wordpress/wiki" target="_blank" rel="noopener">wiki</a> includes lots of useful resources. Worth checking out.</li>
  <li><img style="float:right;border:1px solid #333;margin:15px -50px 15px 15px;" src="/images/2016/02/thumbnail_amber_cropped.png" /><b>Amber can be unobtrusive to your readers, only presenting itself when it can provide an alternative to a broken link.</b> This screenshot shows the popover for a working link, but I’ll change that as soon as I’m convinced that everything is working properly.</li>
  <li><b>Cached websites look good!</b> With expected minor imperfections (e.g. ads not rendering), the archived copies that Amber generates maintained the content and most of the style of the originals. Here’s Mike Caulfield post on Connected Copies (<a href="https://favorites.aribadernatal.com/amber/cache/a7b9e5e04d35d8fc9d09a3dc627872c9/" target="_blank" rel="noopener">Amber cache</a> and <a href="http://hapgood.us/2016/01/29/connected-copies/" target="_blank" rel="noopener">Wordpress original</a>), a Medium-hosted article (<a href="https://favorites.aribadernatal.com/amber/cache/7e36d487baa831ac27e8c68207991149/" target="_blank" rel="noopener">Amber cache</a> and <a href="https://medium.com/guesstimate-blog/introducing-guesstimate-a-spreadsheet-for-things-that-aren-t-certain-2fa54aa9340" target="_blank" rel="noopener">Medium original</a>), and EdSurge (<a href="https://favorites.aribadernatal.com/amber/cache/c5e1fb1cd078f791d088072b4494dac8/" target="_blank" rel="noopener">Amber cache</a> and <a href="https://www.edsurge.com/news/2015-12-18-byu-s-bold-plan-to-give-students-control-of-their-data" target="_blank" rel="noopener">EdSurge original</a>.)</li>
  <li><b>Amber goes beyond WordPress.</b> A Drupal Module is also available. Support for general-purpose web servers is also in progress, with an <a href="https://github.com/berkmancenter/amber_apache">amber_apache</a> module and an <a href="https://github.com/berkmancenter/amber_nginx" target="_blank" rel="noopener">amber_nginx</a> module in private beta testing.</li>
  <li><b>Amber is aware of other archived copies of URLs.</b> I haven’t looked into this, but it sounds very very cool so I left it enabled. By default, this makes use of <a href="http://mementoweb.org">mementoweb.org</a>. If this sounds interesting to you, you should take a look at a long-running project at Stanford that the Amber website links to: <a href="http://www.lockss.org/about/what-is-lockss/" target="_blank" rel="noopener">LOCKSS (Lots of Copies Keep Stuff Safe)</a>.</li>
</ul>

<p>Two noteworthy limitations:</p>

<ul>
  <li><b>Amber only archives some of the links that it finds.</b> On my blog, less than 10% of the links were archived (39 of 515.) There are a few things going on here. Many sites limit access or entirely ban web crawlers via the robots.txt protocol, and Amber appropriately respects this (following rules set for User-Agent: <i>Amber</i>.) Other links aren’t archived because URL redirects aren’t being resolved (see <a href="https://github.com/berkmancenter/amber_wordpress/wiki/Known-Issues#redirections" target="_blank" rel="noopener">Known Issue: Redirections</a>). About a third of my favelog posts include the text of tweets that I favorited, and Twitter re-writes every link in tweets to pass through their <a href="https://t.co" target="_blank" rel="noopener">t.co</a> URL shortener/tracker service. Amber didn’t archive any of these links. <em><b>Updated on 4/3/2016:</b> (1.) Amber is now picking up links to tweets! Unfortunately, the resulting snapshots (<a href="/amber/cache/41ee824886b8e9cd1d79845044cdd141/">example</a>) capture content with no style. (2.) Also worth nothing that Amber now displays a “Notes” column that indicates the reasons for some of the snapshotting failures.</em></li>
  <li><del><b>Archiving links in new posts doesn’t happen automatically.</b> You can either archive links in an individual post or page by clicking a button in the editor sidebar, or you can scan all posts on your blog from a central Amber Dashboard. For posts created through other means (e.g. from <a href="https://ifttt.com/p/aribadernatal/shared" target="_blank" rel="noopener">IFTTT recipes</a>), you’ll need to log into WordPress and head to the Amber Dashboard to (1.) re-scan all posts for links and then (2.) generate snapshots for all new links. Doing this for a site with many links is, understandably, fairly slow (I’m about 20 minutes in right now.) If there were a way for Amber to automatically attempt to preserve links when a new post is published (regardless of whether through the GUI or the API), there wouldn’t be a need to regularly log into Wordpress website to kick off Amber snapshotting.</del> <em><b>Updated on 4/3/2016:</b> Posts that are created programmatically via IFTTT are now correctly being discovered and archived by Amber!</em></li>
</ul>

<p>Even with these minor limitations, <a href="http://amberlink.org" target="_blank" rel="noopener">Amber</a> is awesome. It’s powerful software that helps you fight linkrot, a real problem on the web, and you can use it on your own website with just a few clicks. How often can you say that?</p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>The Favelog Writes Itself</title>
        <link>https://aribadernatal.com/2016/01/04/the-favelog-writes-itself/</link>
        <pubDate>Mon, 04 Jan 2016 08:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2016/01/04/the-favelog-writes-itself/</guid>

        
          <description>
            <![CDATA[
              <p>I’d like to introduce you to the concept a <em><i>favelog</i>, a self-updating website that archives and catalogs your personal collections of favorites, saves, stars, and likes around the web.</em> Better yet, I’ll show you how to set one up for yourself.</p>

<center>
	<img src="/images/2016/01/favelog_screenshot.png" style="border:1px solid #ccc;" />
	<br />
	Example favelog: <a href="https://favorites.aribadernatal.com" target="_blank" rel="noopener">favorites.aribadernatal.com</a>
</center>

<p>I’ve taken to re-posting anything half-decent that I’ve worked on to my personal website at <a href="https://aribadernatal.com">https://aribadernatal.com</a> (https courtesy of <a href="/2015/12/08/lets-encrypt-cloudfront-edition/">Let’s Encrypt</a>.) Right now, this consists of blog <a href="/blog">posts</a> I’ve written, <a href="/publications">papers</a> I’ve published, products and <a href="/projects">projects</a> I’ve worked on, and even an archive of <a href="/tweets/aribadernatal/">tweets from years past</a>. Some version of this site has been online for ~15 years, but a <a href="/2015/01/01/homebrew-website-2015-edition/">New Year’s commitment at the Homebrew Website Club</a> last year motivated a major reboot. The site has since evolved into a self-contained archive that I don’t mind updating, particularly given the sad state of linkrot on the web. <a name="anchor-rot" href="#footnote-rot">[1]</a></p>

<h2 id="archiving-collections">Archiving collections</h2>

<p>A few months ago, I had the itch to extend this personal web archive a bit further, expanding from a collection of what I’ve been <i>creating online</i> out to also include things that I’ve been <i>collecting online.</i> Think of the bookmarks, likes, stars, saves, recommendations, and favorites that you drop around the web as your own personal digital collections, fragmented across the many sites and services that you use. For me, I “collect” interesting code repositories on Github, save memorable articles in Pocket, star videos on YouTube and Vimeo, like comments on Twitter, and support interesting projects on Kickstarter. Some of the sites storing these collections make them publicly visible from a dedicated URL (e.g. <a href="https://getpocket.com/@aribn">Pocket recommendations</a> <a name="anchor-pocket" href="#footnote-pocket">[2]</a>), some are accessible through API calls (e.g. <a href="https://developer.github.com/v3/activity/starring/#list-repositories-being-starred">Github stars</a> and <a href="https://dev.twitter.com/rest/reference/get/favorites/list">Twitter favorites</a>), and many others are locked behind a login and roundabout clickstream. <em>These collections are mine, though, and I’d like to keep a copy for myself and share as I see fit.</em></p>

<h2 id="what-would-this-look-like-what-would-it-do">What would this look like? What would it do?</h2>

<p>The favelog should collect and organize the favorites that you mark on various sites around the web. It should make them discoverable and searchable. It should allow you to decide how they appear and where they link. But most of all, it should require no extra effort on your part to collect your favorites in the future. <em>The favelog should be a collection of your online collections that practically writes itself.</em></p>

<h2 id="nice-concept-but-how-how-do-you-make-it-real">Nice concept, but how how do you make it real?</h2>

<p>If you’ve built on the web, you can probably imagine a few different ways to go about building a favelog. I toyed around with three approaches over the past few months, and am happy to share both the failures and the success.</p>

<h3 id="failures">Failures</h3>

<p>Attempt #1 was to make a small <a href="http://www.sinatrarb.com/">Sinatra</a> web application that accessed my Pocket favorites using <a href="https://getpocket.com/developer/docs/v3/retrieve">Pocket’s Retrieve API</a>. Given that it involved hosting a dedicated server app and required that I cross-bookmark everything I want to save into Pocket, I abandoned this approach as soon as the code worked. For Attempt #2, I shifted from Sinatra to WordPress. I set up new site and used the <a href="https://wordpress.org/plugins/feedwordpress/">FeedWordPress</a> plugin to poll the RSS/Atom feeds from the services that host my collections, and syndicate the items in my feeds as new posts on the blog. I got a bit further with this approach, but FeedWordPress configuration is finicky and not enough of the services that I use actually offer a personalized RSS feed to parse. I’ve used this approach on other projects, but gave up on it for this one. Thankfully, Attempt #3 was significantly less gross and more flexible…</p>

<h3 id="success-wordpress--ifttt">Success: WordPress + IFTTT</h3>

<div style="width:40%;float:right;margin-left:10px;">
	<a href="http://cdn.trendblog.net/wp-content/uploads/2013/01/best-ifttt-recipes.png" target="_blank" rel="noopener"><img src="/images/2016/01/best-ifttt-recipes.png" /></a>
</div>

<p>As with the previous attempt, I started with a fresh WordPress blog. I already run a bunch of WordPress sites with <a href="https://reclaimhosting.com">Reclaim Hosting</a>, so it was a few button clicks to set up another one. This time, rather than <i>pulling</i> new favorites into the blog using FeedWordPress, I instead tried <i>pushing</i> favorites to the blog using <a href="https://ifttt.com">IFTTT</a>. To do this, I put together a handful of recipes, one for each of the web services that I use to create collections. For each website that has an official IFTTT channel, the recipe includes a trigger based on a new favorite being created, and the target being a new post on my WordPress site. For each websites without an official channel but with some personalized RSS feed of my activity, the recipe includes a trigger based on a string match in an RSS feed entry (e.g. “favorited”), and the target again was a new post on my WordPress site. <a name="anchor-kimono" href="#footnote-kimono">[3]</a></p>

<h2 id="create-your-own-favelog">Create your own favelog</h2>

<p>Start with a new WordPress site. <a href="https://wordpress.com">Wordpress.com</a> is the easiest option for getting started, but <a href="https://wordpress.org/">self-hosting</a> provides more options for themes and plugins (but will require fortification.) If you don’t have an IFTTT account already, <a href="https://ifttt.com/join">create one</a>. Then you can find or build recipes for each of your collections. I published a set of <a href="https://ifttt.com/people/aribadernatal">favelog-ready IFTTT recipes</a> that you can one-click add.</p>

<h3 id="extensible-and-customizable">Extensible and customizable</h3>

<p>The benefit of funneling everything into WordPress is that you get a bunch of functionality for free and you can add additional functionality via WordPress themes and plugins.</p>

<p>The basic setup is straightforward and easily replicable. My site sports the <a href="https://wordpress.org/themes/crates/">Crates</a> WordPress theme and uses the <a href="https://wordpress.org/plugins/auto-post-thumbnail/">auto-post-thumbnail</a> plugin to turn the first image URL in a document into the post thumnail. I created a Category for each collection source, matching the categories specified in my IFTTT recipes.</p>

<center>
<a href="https://favorites.aribadernatal.com" target="_blank" rel="noopener">
	<img src="/images/2016/01/favelog_footer.png" style="width:85%;" />
</a>
</center>

<p>This use of Categories means that you can easily view all favorites within a particular collection on a single public-facing page (e.g. <a href="https://favorites.aribadernatal.com/archives/category/github-favorites">my Github stars</a>) and can access each collection via a category-specific RSS feed (e.g. <a href="https://favorites.aribadernatal.com/archives/category/twitter-favorites/feed">my Twitter favorites RSS feed</a>.) Note that neither of these two examples was straightforward to do before. It’s worth mentioning that I also disabled some basic WordPress functionality that didn’t seem necessary or appropriate, such as commenting.</p>

<p>In terms of functionality that you can easily add by installing existing WordPress plugins, a nice example is that installing Automattic’s <a href="https://wordpress.org/plugins/jetpack/">Jetpack</a> plugin on your self-hosted site allows you to use the beautiful new <a href="https://github.com/Automattic/wp-calypso">Calypso</a>-based WordPress <a href="https://apps.wordpress.com">mobile apps</a> and <a href="https://desktop.wordpress.com">desktop apps</a> to view and edit your site. <a name="anchor-wordpress-app" href="#footnote-wordpress-app">[4]</a></p>

<p><em>My favelog has been writing itself for a few months now, and I’m happy enough with it to let it keep going. You can see mine in action at <a href="https://favorites.aribadernatal.com">favorites.aribadernatal.com</a>. If you have thoughts on this post or decide to set up your own favelog, please share on Twitter using hashtag <strong>#favelog</strong>. You can find me on Twitter at <a href="https://twitter.com/aribadernatal">@aribadernatal</a>. </em></p>

<p><em>My favelog has been writing itself for a few months now, and I’m happy enough with it to let it keep going. You can see mine in action at <a href="https://favorites.aribadernatal.com">favorites.aribadernatal.com</a>.</em></p>

<hr />

<h3>Footnotes</h3>

<p><a name="footnote-rot" href="#anchor-rot">[1]</a>: If you don’t see the need to keep track of your work on your own website because it already lives online elsewhere, consider linkrot and bitrot. One day, you’ll look and that link will have gone missing. <a href="http://anjackson.net/2015/04/27/what-have-we-saved-iipc-ga-2015/">See this talk by Andrew Jackson on the state of linkrot and the UK Web Archive.</a> It really is that bad. 
<a href="#anchor-rot"><img src="/img/icons/undo.svg" alt="back" class="svg-12" /> Back</a></p>

<center><a href="http://anjackson.net/2015/04/27/what-have-we-saved-iipc-ga-2015/"><img style="border:1px solid #ccc;width:75%;" src="/images/2016/01/linkrot.jpg" /></a></center>

<p><a name="footnote-pocket" href="#anchor-pocket">[2]</a>: Pocket actually maintains two separate sets of favorites: one is private and one is public. I’ve made heavy use of the private favorites over the past few years, and have only dabbled in the <a href="https://getpocket.com/@aribn">new public favorites</a> since it was introduced.
<a href="#anchor-pocket"><img src="/img/icons/undo.svg" alt="back" class="svg-12" /> Back</a></p>

<p><a name="footnote-kimono" href="#anchor-kimono">[3]</a>: Finally, for websites with no official IFTTT channel, no personalized RSS feed, but with a public-facing URL displaying my favorites, I plan to use <a href="https://www.kimonolabs.com">Kimono</a> to to create an RSS endpoint that I can feed into IFTTT. My first Kimono-powered recipe creates entries on my favelog for each of the <a href="https://www.kickstarter.com/profile/aribadernatal">projects that I’ve backed on Kickstarter.</a>
<a href="#anchor-kimono"><img src="/img/icons/undo.svg" alt="back" class="svg-12" /> Back</a></p>

<p><a name="footnote-wordpress-app" href="#anchor-wordpress-app">[4]</a>: I find myself using the WordPress mobile app with my favelog on occasion for two purposes. First, to delete items generated for favorites that were accidentally added. Second, to delete the unfortunate “image not found” image that appears on posts created for Pocket favorites that had no extractable images. 
<a href="#anchor-wordpress-app"><img src="/img/icons/undo.svg" alt="back" class="svg-12" /> Back</a></p>


            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Let's Encrypt, Cloudfront Edition</title>
        <link>https://aribadernatal.com/2015/12/08/lets-encrypt-cloudfront-edition/</link>
        <pubDate>Tue, 08 Dec 2015 08:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/12/08/lets-encrypt-cloudfront-edition/</guid>

        
          <description>
            <![CDATA[
              <p><em><strong>UPDATE:</strong> AWS recently introduced <a href="https://aws.amazon.com/certificate-manager/">Amazon Certificate Manager</a>, a service that offers a simple way to get a free SSL/TLS certificate that you can use with the Cloudfront distribution in front of static S3-hosted websites. This allows you to accomplish the same result as the setup below (with the added benefits of auto-renewing and wildcard certificates) with just a few clicks in the AWS Web Console. Highly recommended.</em></p>

<hr />

<p>You can now use Let’s Encrypt certificates with all of your S3-hosted static websites.</p>

<p>Last year, I rebuilt my personal website at <a href="https://aribadernatal.com">aribadernatal.com</a> as a static website, which made it <em>easier to maintain, cheaper to run, and faster to load.</em> Written in Markdown, generated by Jekyll, hosted in an S3 bucket, and accessed from Cloudfront over https, using a free SSL certificate that I set up through StartSSL. (Hat tip to the <a href="https://indiewebcamp.com/events/">Homebrew Website Meetup</a> for the <a href="/2015/01/01/homebrew-website-2015-edition/">encouragement/challenge</a>.) There are already a number of nice end-to-end guides online detailing how to set this up, so I won’t retread this ground. Instead, I’m going just cover the last leg: how to generate and use the brand new <a href="https://letsencrypt.org/">Let’s Encrypt</a> certificates with a Cloudfront+S3 static website.</p>

<h2 id="the-easy-way">The Easy Way</h2>

<p>Install and run the Let’s Encrypt <a href="https://github.com/dlapiduz/letsencrypt-s3front">CLI plugin for S3/CloudFront validation and installation</a>. Done.</p>

<h2 id="the-harder-way">The Harder Way</h2>

<p>Unfortunately, that didn’t work for me, so I took a more hands-on route. I generated a certificate for the set of relevant domains, uploaded the challenge file to S3 to prove that I controlled the domain, then uploaded the certificate to the IAM certificate store, and finally updated the Cloudfront distribution to use this new certificate.</p>

<p>The notes that I jotted down along the way were mostly intended as a reference for my future self, as I know that I’ll need to repeat this process in a few months, when/before these certificates expire. As a result, the notes below likely skip over initial setup steps (e.g. installing the AWS CLI tools.) Apologies.</p>

<h3 id="terminal-snippets">Terminal snippets</h3>

<p>For S3+Cloudfront static websites to work properly, your S3 bucket name must be the same as the domain name.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>BUCKET=aribadernatal.com
</code></pre></div></div>

<p>I set up my static websites to be accessible from both the root domain and from the www subdomain. I want my certificate to cover both.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SUBDOMAIN="www.aribadernatal.com"
</code></pre></div></div>

<p>Finally, I run the letsencrypt script in <code class="language-plaintext highlighter-rouge">certonly</code> manual mode. Note that Cloudfront has a 2048-bit max for SSL certs.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./letsencrypt-auto certonly -a manual -d $BUCKET -d $SUBDOMAIN --rsa-key-size 2048 --server https://acme-v01.api.letsencrypt.org/directory --agree-tos
</code></pre></div></div>

<p>At this point, you’ll be prompted to prove that you control each (sub)domain that you specified by placing a particular file in a particular web-accessible location on your server. In a new terminal window, I created the file and copied it to my S3 bucket.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FILENAME="lotsofgibberish-skjldf2ofw09dfwfasdfasldkfajsdf"
 CONTENT="lotsofgibberish-skjldf2ofw09dfwfasdfasldkfajsdf.evenmoregibberish-askldfjkalsfd"

echo $CONTENT &gt; $FILENAME

BUCKET=aribadernatal.com

aws s3 cp $FILENAME s3://$BUCKET/.well-known/acme-challenge/
</code></pre></div></div>

<p>At this point, you can continue with the interactive <code class="language-plaintext highlighter-rouge">letsencrypt-auto</code> process. If you specified any additional subdomains, you’ll be prompted to generate and upload one such file for each (sub)domain before a certificate is issued.</p>

<p>Once you’re done adding any additional subdomains, you’re in business! The next step is to get this certificate into AWS. Here I chose to incorporate the datestamp in the name of the certificate, to make it tell them apart when rotating certificates in three months.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>TODAY=$(date +"%Y-%m-%d_%H.%M.%S")

sudo aws iam upload-server-certificate \
  --server-certificate-name $TODAY-$BUCKET \
  --certificate-body file:///etc/letsencrypt/live/$BUCKET/cert.pem \
  --private-key file:///etc/letsencrypt/live/$BUCKET/privkey.pem \
  --certificate-chain file:///etc/letsencrypt/live/$BUCKET/chain.pem \
  --path /cloudfront/$TODAY-$BUCKET/ 
</code></pre></div></div>

<p>(Note that the trailing slash in the <code class="language-plaintext highlighter-rouge">--path</code> above is necessary.)</p>

<p>If you open up the AWS console to <a href="https://console.aws.amazon.com/cloudfront/home">Cloudfront</a> and select the distribution associated with your website you can use the “Edit” button on the “General” tab to modify the distribution settings. In the “SSL Certificate” section, the menu below “Custom SSL Certificate (stored in AWS IAM)” should now include your new certificate. Select it, save the change to the distribution settings, and wait an hour for the changes to propagate.</p>

<p>End result:</p>

<p><img src="/images/2015/12/certificate_detail_view.png" alt="" /></p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>New Code - wp-pressthis-button</title>
        <link>https://aribadernatal.com/2015/11/08/wp-pressthis-button/</link>
        <pubDate>Sun, 08 Nov 2015 08:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/11/08/wp-pressthis-button/</guid>

        
          <description>
            <![CDATA[
              <p><em><strong>Updated on 7/16/2017</strong>: Project description modified and screenshots added to reflect <a href="#july-2017-improvements">recent improvements</a> to the UX.</em></p>

<hr />

<h1 id="wp-reblog-button">WP Reblog Button</h1>

<p>Every WordPress instance ships with a bookmarklet-based tool (<a href="https://en.support.wordpress.com/press-this/">Press This</a>) that authors can use to easily create a new WordPress post that quotes selected text from any other website <a href="http://wpandlegalstuff.com/press-this-and-copyright-infringement/">with attribution</a>, onto their own WordPress blog.</p>

<p>This open-source project (code at <a href="https://github.com/aribn/wp-pressthis-button">https://github.com/aribn/wp-pressthis-button</a>) creates an alternate interface for this quote-and-reblog functionality, packaging it as a button that a page author can add to the ubiquitous set of social sharing buttons. This way, readers are provided with a way to easily share quotes from the page author’s page onto their own WordPress site.</p>

<p>Something like this reblog functionality already exists within the wordpress.com network reader, but I’m not aware of any comparable functionality that also supports self-hosted Wordpress sites. This project supports all up-to-date WordPress instances, regardless of where they are hosted.</p>

<h2 id="demo">Demo</h2>

<p>I added the Reblog button to every page on my blog, so feel free to try it on any post, including this one. The clip below shows me reblogging a post about the <a href="/2008/05/29/the-nufixie-challenge-can-you-build-a-fixed-effort-bicycle-transmission/">“fixed-effort” bicycle concept</a> to a self-hosted Wordpress blog at favorites.aribadernatal.com:</p>

<p><img src="/images/2015/11/wp-pressthis-button-demo-2.gif" style="border:1px solid #333; -webkit-box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25); -moz-box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25); box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25);" /></p>

<p><a name="july-2017-improvements"></a></p>

<p>It’s worth noting two bits of polish that streamline usage:</p>

<ol>
  <li>Text can be selected either before or after clicking the Reblog button.</li>
  <li>Once you enter your WP blog URL once, the URL will be saved for that domain, so you won’t need to retype it the next time.</li>
</ol>

<p>Taking advantage of both of these, it’s a bit easier and faster to use:</p>

<p><img src="/images/2015/11/wp-pressthis-button-demo-3.gif" style="border:1px solid #333; -webkit-box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25); -moz-box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25); box-shadow: -8px 8px 11px -5px rgba(0,0,0,0.25);" /></p>

<h2 id="usage">Usage</h2>

<p>Simply add this to your HTML in the same way you would any other “Share” embed.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">"reblog-this-button"</span> <span class="na">unselectable=</span><span class="s">"on"</span> <span class="na">class=</span><span class="s">"unselectable"</span><span class="nt">&gt;&lt;/div&gt;</span>
<span class="nt">&lt;script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">&gt;</span><span class="kd">var</span> <span class="nx">wpPressThisButtonServer</span><span class="o">=</span><span class="dl">""</span><span class="p">;</span><span class="o">!</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">,</span><span class="nx">i</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">d</span><span class="p">.</span><span class="nf">getElementById</span><span class="p">(</span><span class="nx">i</span><span class="p">)){</span><span class="kd">var</span> <span class="nx">j</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nf">createElement</span><span class="p">(</span><span class="dl">"</span><span class="s2">script</span><span class="dl">"</span><span class="p">);</span><span class="nx">j</span><span class="p">.</span><span class="nx">id</span><span class="o">=</span><span class="nx">i</span><span class="p">;</span><span class="nx">j</span><span class="p">.</span><span class="nx">src</span><span class="o">=</span><span class="nx">wpPressThisButtonServer</span><span class="o">+</span><span class="dl">"</span><span class="s2">/wp-pressthis-button.js?v=1</span><span class="dl">"</span><span class="p">;</span><span class="kd">var</span> <span class="nx">w</span><span class="o">=</span><span class="nx">d</span><span class="p">.</span><span class="nf">getElementById</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span><span class="nx">d</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nf">appendChild</span><span class="p">(</span><span class="nx">j</span><span class="p">);}}(</span><span class="nb">document</span><span class="p">,</span><span class="dl">"</span><span class="s2">reblog-btn-js</span><span class="dl">"</span><span class="p">);</span><span class="nt">&lt;/script&gt;</span>
</code></pre></div></div>

<h2 id="self-hosting">Self-hosting</h2>

<p>If you’d rather self-host this than load it from the CloudFront CDN, upload the contents of the <code class="language-plaintext highlighter-rouge">src</code> directory from the <a href="https://github.com/aribn/wp-pressthis-button">aribn/wp-pressthis-button</a> repository on Github to any web-accessible location. Update the <code class="language-plaintext highlighter-rouge">wpPressThisButtonServer</code> variable in the code snippet above to match this root location.</p>

<h2 id="developing">Developing</h2>

<p>If you’d like to modify the code, you can easily run it locally. Check out the <a href="https://github.com/aribn/wp-pressthis-button/tree/master/src">aribn/wp-pressthis-button</a> repository. <code class="language-plaintext highlighter-rouge">cd src &amp;&amp; python -m SimpleHTTPServer 8000</code> to start the server locally, then point your browser at <code class="language-plaintext highlighter-rouge">http://localhost:8000/</code> to get started with a functional demo.</p>

<h2 id="license">License</h2>

<p>As this builds on the <a href="https://codex.wordpress.org/Press_This">Press This</a> code from Wordpress, it also uses the <a href="LICENSE">GPLv2</a> license.</p>

<h2 id="motivation">Motivation</h2>

<p>I built this as a proof-of-concept of an idea mentioned in a <a href="https://twitter.com/aribadernatal/status/657060037320245248">tweet to Mike Caulfield.</a></p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Multi-file sketches</title>
        <link>https://aribadernatal.com/2015/10/26/multifile-sketches/</link>
        <pubDate>Mon, 26 Oct 2015 16:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/10/26/multifile-sketches/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2015/10/multisketches/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2015/10/multisketches/
                </a>
              </div>
              <blockquote>
                <p>Last week, I posted that <a href="https://blog.sketchpad.cc/2015/10/libraries-for-sketchpad/">you can now use external Javascript libraries</a> when creating sketches in the public studios (<a href="https://studio.sketchpad.cc">studio.sketchpad.cc</a> and <a href="https://p5js.sketchpad.cc">p5js.sketchpad.cc</a>.) I extended this functionality to support another <a href="https://sketchpad.uservoice.com/forums/51847-general/suggestions/1280665-put-in-an-option-to-add-a-new-tab-like-in-the-of" target="_blank" rel="noopener">popular request</a>: <b>you can now create multi-file sketches by load code from one Sketchpad sketch into another Sketchpad sketch.</b> This means, among other things, that <i>you can better organize your code into files that can be edited independently, you can reuse classes across multiple sketches, and you can even make use of classes built by others people on Sketchpad.</i></p>

<h3>How do I create a multi-file sketch?</h3>

<p>To load code from one sketch into another sketch, simply open up the new <b>HTML</b> menu in the editor above the code, click the <i>Load a Sketchpad sketch</i> link, paste in the URL of the other sketch, click <i>Load</i> and then <i>Save.</i></p>

<iframe width="640" height="480" src="https://www.youtube-nocookie.com/embed/fhNlHEfU3K0?rel=0" frameborder="0" allowfullscreen=""></iframe>

<p>This screencast demonstrates this using <a target="_blank" rel="noopener" href="https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp06_agents/NOC_6_03_StayWithinWalls">an example sketch</a> from Daniel Shiffman’s “<a href="http://natureofcode.com/" target="_blank" rel="noopener">The Nature of Code</a>” book. You can view this <b><a href="https://p5js.sketchpad.cc/sp/pad/view/ro.C6m-n03ygFyxtb/rev.93" target="_blank" rel="noopener">Stay Within Walls</a></b> sketch on Sketchpad.</p>

              </blockquote>
              <div>
                <img alt="Multi-file sketches" src="/images/2015/10/walls_screenshot.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Libraries, finally!</title>
        <link>https://aribadernatal.com/2015/10/19/libraries-for-sketchpad/</link>
        <pubDate>Mon, 19 Oct 2015 16:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/10/19/libraries-for-sketchpad/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2015/10/libraries-for-sketchpad/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2015/10/libraries-for-sketchpad/
                </a>
              </div>
              <blockquote>
                <p>When I launched <a href="https://blog.sketchpad.cc/2015/05/p5-for-5/">the new studio for P5.js</a> earlier this summer, I was happy to have finally addressed a long-time limitation of Sketchpad: sketches in this studio could include and make use of any of the <a href="http://p5js.org/libraries/" target="_blank" rel="noopener">growing collection of P5.js libraries</a>. Unfortunately, the ability to load in external libraries and sketches came at the cost of additional confusion in using the editor, as each P5.js sketch needed to be wrapped in a &lt;script&gt; tag. In order to un-break this experience, I’m introducing a better, simpler, and &lt;script&gt;-free mechanism for loading Javascript libraries and other resources: HTML Additions.</p>

<p>With the introduction of HTML Additions, the ability to load an external script is no longer limited to the public <a href="https://p5js.sketchpad.cc" target="_blank" rel="noopener">P5.js studio.</a> The public Processing.js-based <a href="https://studio.sketchpad.cc" target="_blank" rel="noopener">studio.sketchpad.cc</a> and select private studios now provide a way for you to load external libraries, scripts, HTML, CSS, etc. This has long been a <a href="http://sketchpad.uservoice.com/forums/51847-general/suggestions/4214825-loading-an-external-javascript-library" target="_blank" rel="noopener">top request</a>, so I’m happy to finally make it available. <a name="usage"></a></p>

<h2>How do I load libraries?</h2>

<p>The mechanism is the same, regardless of the library. If you’re logged in and working on a sketch in any Sketchpad studio, you’ll see an <b>HTML</b> link in the editor. Clicking this link opens a dialog that lets you input arbitrary HTML. Feel free to include <a href="https://developers.google.com/speed/libraries/#jquery" target="_blank" rel="noopener">jQuery</a>, Paolo Pedercini’s <a href="http://p5play.molleindustria.org/" target="_blank" rel="noopener">p5.play</a>, something from the <a href="http://sciutoalex.github.io/p5-D3-cookbook/" target="_blank" rel="noopener">p5/D3 Cookbook</a> for P5.js, <a href="http://www.haptic-data.com/toxiclibsjs/examples/thread" target="_blank" rel="noopener">ToxicLibs.js</a> (for Processing.js), or just add some DOM elements to manipulate and CSS to style them.</p>

<h3>Examples</h3>

<p>In <a href="https://p5js.sketchpad.cc/sp/pad/view/ro.CmwxXwIRqB4v-a/rev.1" target="_blank" rel="noopener">this example</a>, the D3 Javascript library is hosted on a remote CDN, and included from that URL. <br /></p>

<p><img src="https://blog.sketchpad.cc/images/2015/10/d3-example2.gif" style="border:1px solid #ccc; padding:0px; " /></p>

<p>In <a href="https://p5js.sketchpad.cc/sp/pad/view/ro.CgIQhrxPcfRmtN/rev.82" target="_blank" rel="noopener">this example</a>, the Grafica Javascript library was first uploaded to Sketchpad as a resource, then included using the relative path of the uploaded script. <br /></p>

<p><img src="https://blog.sketchpad.cc/images/2015/10/grafica-example.gif" style="border:1px solid #ccc; padding:0px; " /></p>


              </blockquote>
              <div>
                <img alt="Libraries, finally!" src="/images/2015/10/p5.play.gif" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Sun</title>
        <link>https://aribadernatal.com/2015/10/05/sun/</link>
        <pubDate>Mon, 05 Oct 2015 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/10/05/sun/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Snapshots blog at 
                <a href="https://snapshots.aribadernatal.com/sun-cuts-through/" target="_blank" rel="noopener">
                  https://snapshots.aribadernatal.com/sun-cuts-through/
                </a>
              </div>
              <blockquote>
                <p>Pacifica.</p>


              </blockquote>
              <div>
                <img alt="Sun" src="https://snapshots.aribadernatal.com/wp-content/uploads/2015/10/IMG_8772-1200x900.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Streams</title>
        <link>https://aribadernatal.com/2015/10/05/streams/</link>
        <pubDate>Mon, 05 Oct 2015 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/10/05/streams/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Snapshots blog at 
                <a href="https://snapshots.aribadernatal.com/streams/" target="_blank" rel="noopener">
                  https://snapshots.aribadernatal.com/streams/
                </a>
              </div>
              <blockquote>
                <p>Pacifica.</p>


              </blockquote>
              <div>
                <img alt="Streams" src="https://snapshots.aribadernatal.com/wp-content/uploads/2015/10/IMG_8768-1200x900.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Fog burns off</title>
        <link>https://aribadernatal.com/2015/10/05/fog-burns-off/</link>
        <pubDate>Mon, 05 Oct 2015 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/10/05/fog-burns-off/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Snapshots blog at 
                <a href="https://snapshots.aribadernatal.com/fog-burns-off/" target="_blank" rel="noopener">
                  https://snapshots.aribadernatal.com/fog-burns-off/
                </a>
              </div>
              <blockquote>
                <p>Pacifica.</p>

              </blockquote>
              <div>
                <img alt="Fog burns off" src="https://snapshots.aribadernatal.com/wp-content/uploads/2015/10/IMG_8755-1200x900.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>P5-for-5</title>
        <link>https://aribadernatal.com/2015/05/31/p5-for-5/</link>
        <pubDate>Sun, 31 May 2015 16:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/05/31/p5-for-5/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2015/05/p5-for-5/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2015/05/p5-for-5/
                </a>
              </div>
              <blockquote>
                <p>On this day in 2010, <a href="https://sketchpad.cc" target="_blank" rel="noopener">Studio Sketchpad</a> debuted <a href="https://twitter.com/studiosketchpad/status/15142815613" target="_blank" rel="noopener">with a tweet.</a> Today, five years and more than 200,000 sketches later, the studio is still open! While I haven’t put much time into hacking on Sketchpad recently, I decided to find time to add something new, in honor of the website’s big birthday. When I started thinking about what a fitting addition might be, the clear winner was the idea of adding support to Sketchpad to allow people to write and collaborate on sketches created using the up-and-coming <a href="http://p5js.org" target="_blank" rel="noopener">P5.js</a> library. I’m happy to announce that this is now possible. <em>Sketchpad features a new public studio that has been custom-built for P5.js, open to anyone at <a href="https://p5js.sketchpad.cc"><b>p5js.sketchpad.cc</b></a></em></p>

<p>This new studio differs from the others on Sketchpad in order to support the use of p5.js instead of Processing.js:</p>

<ul>
  <li>The p5.js, p5.dom.js, and p5.sound.js libraries are pre-loaded for every sketch.</li>
  <li>Additional p5.js libraries can be uploaded and included as needed.</li>
  <li>Arbitrary HTML (DOM elements, JS, etc) can be added to the page, as needed.</li>
  <li>The embeddable iframe size can be specified, so it can be extend beyond the dimensions of the canvas.</li>
  <li>All documentation and example links point to resources on the <a href="p5js.org">p5js.org</a> website.</li>
  <li>The placeholder sketch was written with p5.js, and provides P5-specific hints.</li>
  <li>p5.js sketches are visually identified with the p5.js asterisk in various parts of the site.</li>
</ul>

<p><br />
<b><a href="https://p5js.sketchpad.cc/sp/pad/view/ro.CrbQO-IXTlFIGe/latest" target="_blank" rel="noopener">Generative Painting</a></b> is an example sketch in this Gallery (drawn from <a href="http://p5js.org/examples/demos/Hello_P5_Drawing.php" target="_blank" rel="noopener">p5js.org</a>.)</p>

<p>For those in the P5.js community who are not familiar with Sketchpad, I recommend taking a look. While I realize that Sketchpad <i>as an IDE</i> leaves much to be desired, the site has quite a bit going for it:</p>

<ul>
  <li>Sketchpad’s core feature, real-time collaborative sketching, remains fun and unique.</li>
  <li>Each public sketch is displayed with a replayable <a href="https://blog.sketchpad.cc/2010/09/clone-your-own/">forkable</a> version history, so you can see how it was made and make it your own.</li>
  <li>Forked sketches feature <a href="https://blog.sketchpad.cc/2010/05/default-cc-by-sa/">proper attribution</a> and visual <a href="https://aribadernatal.com/images/sketchpad_blog/tree_derivatives2.png">family trees</a>.</li>
  <li>Customizable <a href="https://blog.sketchpad.cc/teaching/private-studios/">private studios</a> are available for classes and groups. To date, 95 college courses, weekend workshops, high school classes, and other groups have set up private studios. These have been entirely free of charge, unless you asked me how much they cost.</li>
  <li>Sketchpad provides a very cool way to record and share pixel-free code <a href="https://aribadernatal.com/projects/Sketchcasting/">“sketchcasts”</a>, which viewers can pause then fork and modify at any point during playback.</li>
  <li>You can see what others are working on in the <a href="https://blog.sketchpad.cc/2011/07/inspired-by-moo/">Moo-inspired</a> canvas cards.</li>
  <li>Sketchpad offers a way to learn by “recreating” a canvas, my failed attempt at introducing <a href="https://blog.sketchpad.cc/2011/03/recreate/">a new participation verb.</a></li>
  <li>Sketchpad canvases can easily be <a href="https://blog.sketchpad.cc/2015/01/sketches-everywhere/">embedded</a> in other websites.</li>
  <li>Each studio includes a Gallery that the studio owner can use to feature great work that they find in their studio. I maintain the public <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches?&amp;begin=1&amp;show=100">studio.sketchpad.cc Gallery</a>, and each private studio owner maintains their own.</li>
</ul>

<p>To those developing the P5.js community, please do be in touch. I’d love for the <a href="https://p5js.sketchpad.cc" target="_blank" rel="noopener">p5js sketchpad studio</a> to be a useful addition to the ecosystem. If there are ways that I can help make this studio even better for P5.js, I’d love to hear!</p>


              </blockquote>
              <div>
                <img alt="P5-for-5" src="/images/2015/05/p5js-beta.svg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Sketch Anywhere</title>
        <link>https://aribadernatal.com/2015/01/29/sketches-everywhere/</link>
        <pubDate>Thu, 29 Jan 2015 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/01/29/sketches-everywhere/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2015/01/sketches-everywhere/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2015/01/sketches-everywhere/
                </a>
              </div>
              <blockquote>
                <p>After rebuilding my <a href="https://aribadernatal.com">personal website</a> last month, I switched over to serving it over https. This had the unfortunate side effect of preventing me from embed Sketchpad sketches on my website, since the embedded iframe wasn’t also served over https. This was enough motivation to make some changes. As of today, the “embed” code included in the footer of any canvas of a sketch created in the public studio at <a href="https://studio.sketchpad.cc">studio.sketchpad.cc</a> or created anonymously at <a href="https://sketchpad.cc">sketchpad.cc</a> can be embedded in a web page served over https (like this one!)</p>

<p>If you’d like to try embedding a sketch on your own site, here’s a cool game written by <a href="https://studio.sketchpad.cc/sp/padlist/edited-by?editorId=17094">Mitch Davis</a> to use as you practice. Hover your mouse over the canvas footer and click on the “embed” link. Copy and paste the embed code into your own webpage and try out the game!</p>

<iframe id="ifr" width="600" height="335" scrolling="no" style="background: url(//studio.processingtogether.com/static/img/jun09/pad/connectingbar.gif) no-repeat center 60px;" src="//studio.processingtogether.com/sp/pad/iframe/ro.9P2AwQrF-tPLz/rev.7280?autostart=0"></iframe>


              </blockquote>
              <div>
                <img alt="Sketch Anywhere" src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.9P2AwQrF-tPLz.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Homebrew Website - 2015 Edition</title>
        <link>https://aribadernatal.com/2015/01/01/homebrew-website-2015-edition/</link>
        <pubDate>Thu, 01 Jan 2015 16:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2015/01/01/homebrew-website-2015-edition/</guid>

        
          <description>
            <![CDATA[
              <p><em>I accidentally made a New Year’s resolution for 2015.</em> Or possibly it was for 2014, since I resolved to finish it by Jan 1, 2015. A few weeks ago, I stopped in at the <a href="http://indiewebcamp.com/">#IndieWeb</a> <a href="https://indiewebcamp.com/events/2014-12-17-homebrew-website-club">Homebrew Website Club meetup</a> in SF. <a href="http://tantek.com/">Tantek Çelik</a> asked for <a href="https://indiewebcamp.com/2015-01-01-commitments">personal site ship commitments</a>, and I thought this was as good a time as any to get my personal site at <a href="/">aribadernatal.com</a> up-to-date. It’s been about 15 years since I put the framework in place, so it’s due for a refresh… Fast-forward two weeks, and while I don’t feel done yet, I’m happy to say that I did ship it.</p>

<p>A few highlights:</p>

<ul>
  <li>I put together <em><a href="/projects/">project pages</a></em> for each of a dozen different software projects that I’ve worked on over the past 15 years. (Some are still stubs, but I’ll fill them out over time.)</li>
  <li>The site now contains <em><a href="/blog/">all of my blog posts</a></em> (from 4 different blogs!) in one place.</li>
  <li>The site now includes a searchable index of <em><a href="/tweets/aribadernatal">all my Tweets from 2010-2014</a></em></li>
  <li>It’s 2015, so it is (still) a <em>static website.</em> now written in Markdown, generated with Jekyll, and served by Amazon’s CloudFront CDN.</li>
  <li>It’s 2015, so I finally removed all the embarrassing <code class="language-plaintext highlighter-rouge">&lt;table&gt;</code>-based formatting, and replaced it with a mobile-friendly <em>responsive design</em>, thanks to a lovely Jekyll theme called <a href="https://github.com/aigarsdz/brume">Brume</a>.</li>
  <li>Finally, the site is now <em>https everywhere</em>! (One great tip that I got from <a href="http://www.onebigfluke.com/">Brett Slatkin</a> is that StartSSL offers free SSL certs for non-commercial use.)</li>
</ul>

<p>Over time, I plan to migrate more of my work to the site. Thanks again to <a href="http://tantek.com/">Tantek</a> and the <a href="https://indiewebcamp.com/events/2014-12-17-homebrew-website-club">Homebrew Website Club meetup</a> for the push!</p>


            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Tidying up</title>
        <link>https://aribadernatal.com/2014/10/22/tidying-up/</link>
        <pubDate>Wed, 22 Oct 2014 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2014/10/22/tidying-up/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2014/10/tidying-up/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2014/10/tidying-up/
                </a>
              </div>
              <blockquote>
                <p>The feature request sitting at the top of Sketchpad’s <a href="http://sketchpad.uservoice.com/forums/51847-general">UserVoice forum</a> is for the ability to remove a sketch from your studio account to keep things tidy. I finally had a chance to build this in yesterday. From the list of <a href="https://studio.sketchpad.cc/sp/padlist/my-sketches">your sketches</a>, click through to view the sketch that you’d like to remove. If you were the original author (rather than just a subsequent editor), you’ll be able to click a “Delete this sketch” link to remove it from your account. Un-clutter away!</p>

              </blockquote>
              <div>
                <img alt="Tidying up" src="/images/sketchpad_blog/delete.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Gartner thinks Sketchpad is cool</title>
        <link>https://aribadernatal.com/2013/05/18/gartner-thinks-sketchpad-is-cool/</link>
        <pubDate>Sat, 18 May 2013 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2013/05/18/gartner-thinks-sketchpad-is-cool/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2013/05/gartner-thinks-sketchpad-is-cool/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2013/05/gartner-thinks-sketchpad-is-cool/
                </a>
              </div>
              <blockquote>
                <p>I was pleasantly surprised to hear from a Gartner analyst last month, who got in touch to share that Sketchpad is being featured as one of Gartner’s four <a href="http://www.gartner.com/id=2476316">Cool Vendors in Web Computing</a> in 2013. I’d include a snippet of the report itself, but it’s <a href="http://www.gartner.com/id=2476316">behind a $495 paywall.</a> If one person buys this report, Gartner will have made more money on Sketchpad than I have. Still, I do appreciate the attention, and the write-up itself is quite nice.</p>

              </blockquote>
              <div>
                <img alt="Gartner thinks Sketchpad is cool" src="/images/sketchpad_blog/gartner.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Sketchcasting - Next-generation screencasting for code</title>
        <link>https://aribadernatal.com/2012/08/25/introducing-sketchcasting/</link>
        <pubDate>Sat, 25 Aug 2012 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2012/08/25/introducing-sketchcasting/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2012/08/introducing-sketchcasting/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2012/08/introducing-sketchcasting/
                </a>
              </div>
              <blockquote>
                <p>Thanks to a flash grant from the <a href="http://shuttleworthfoundation.org">Shuttleworth Foundation</a> (via <a href="http://sharing-nicely.net/bio/">Philipp Schmidt</a> of <a href="http://p2pu.org">P2PU</a> fame), I was able to take a few weeks off <a href="/2012/07/11/back-to-school/">between my time at Grockit and the Minerva Project</a> to build something brand new: <a href="/sketchcasting">sketchcasting</a>. What I built — inspired by an experience I had running a <a href="http://archive.p2pu.org/webcraft/programming-visual-media.html">P2PU course using Sketchpad</a> in 2010, and enabled by the great <a href="http://mozillapopcorn.org/">Mozilla Popcorn</a> project — functions a lot like the <a href="http://ejohn.org/blog/introducing-khan-cs/">new interactive code-casts on Khan Academy</a>. Watch the code being typed as you listen to an accompanying audio narration, pause playback to fork and experiment yourself with the code at any moment, then show and share what you create (an <a href="http://bitly.com/sketchcasting">example</a>). The best part is that anyone can record a sketchcast, not just me.</p>

<ul>
  <li><em>Anyone can record a sketchcast.</em> Open the normal code editor, press “record”, and talk as you code. You’ll get a unique URL to share with others.</li>
  <li><em>Sketchcasting is collaborative.</em> Groups of people can code together while recording a sketchcast, and groups of people can code together while experimenting with forked versions of existing sketchcasts.</li>
  <li><em>All viewer comments and Q&amp;A are automatically time-coded</em>. While I’ve <a href="/2011/12/18/learning-from-comments-on-youtube/">argued for</a> and hand-built <a href="http://www.slideshare.net/aribn/learning-from-youtube-how-pseudosynchronous-interactions-can-enhance-video-instruction">time-anchored Q&amp;A learning tools</a> in the past, I got it here for free as a part of the excellent <a href="http://developers.soundcloud.com/">Soundcloud audio player</a>. Thanks, Soundcloud!</li>
</ul>

<p>Here’s how you can make your own sketchcasts:</p>

<iframe width="560" height="315" style="border:1px solid #000;" src="https://www.youtube.com/embed/xOhutNCdslQ?rel=0" frameborder="0" allowfullscreen=""></iframe>

<p>If you record a great sketchcast, tweet it a link to <a href="http://twitter.com/studiosketchpad">@studiosketchpad</a> and I’ll share it with others!</p>

<script src="/public/js/fluidvids.min.js"></script>
<script>fluidvids.init({selector:['iframe','object'],players:['www.youtube.com','player.vimeo.com']});</script>


              </blockquote>
              <div>
                <img alt="Sketchcasting - Next-generation screencasting for code" src="/images/2012/08/sketchcast_screenshot2.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Why I'm excited about Khan Academy Computer Science</title>
        <link>https://aribadernatal.com/2012/08/21/khan-academy-computer-science/</link>
        <pubDate>Tue, 21 Aug 2012 05:50:06 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2012/08/21/khan-academy-computer-science/</guid>

        
          <description>
            <![CDATA[
              <p><em>A modified version of this post was published on EdSurge under the title “<a href="https://www.edsurge.com/n/point-of-view-stars-and-kisses-for-khan-academy-s-compsci-program">Stars and Kisses for Khan Academy’s CompSci Program</a>.”</em></p>

<hr />

<p>While it’s not going to revolutionize education (or even computer science education), the Khan Academy’s new Computer Science program marks a great step forward for the Academy by making the lessons open-ended and tinker-ready. Critics take note: Khan Academy is on the move.</p>

<p><a href="http://www.khanacademy.org/cs"><img src="/images/2012/08/Screen-shot-2012-08-19-at-7.53.55-PM-300x171.png" alt="" title="Khan Academy Computer Science" /></a></p>

<p>Last week, KA’s “resident Javascript expert” <a href="http://ejohn.org/blog/introducing-khan-cs/">John Resig announced</a> a new addition to their curriculum, a <a href="http://khanacademy.org/cs">Computer Science section</a> that features an unusual interface merging a recorded screencast with an interactive programming environment. Even if you’ve already read John’s post, you should <a href="http://www.khanacademy.org/cs/intro-to-drawing/848372201">try a programming tutorial</a> to better understand the experience. Like all Khan Academy lessons, you begin by pressing the play button, and then you watch and listen to explanations of new concepts and a few worked examples. But since most explanations and worked examples about programming can take the form of computer code (rather than free-hand drawings), there is really no reason for the visuals to be locked up inside a high-bandwidth pixelated video. With some technical magic, you can have the code “playback” happen directly in the webpage, no flashy youtubes necessary. Once you break the code out of the confines of a video, all sorts of new possibilities open up. John and team demonstrate a few: their codecasts are viewer-editable, code changes are auto-evaluated, everything is forkable and shareable. Why does this matter? It lets students effortlessly switch between instruction and experimentation, encouraging tinkering as a mechanism for learning. <em>In the Khan Academy system of template-generated, machine-graded practice problems, this open-ended messiness is a breath of fresh air.</em> Yes, the side-by-side editor may look a lot like <a href="http://codecademy.com">Codecademy</a>, but there’s more to it than that: the experience is equal parts Codecademy, Khan Academy, and <a href="https://sketchpad.cc">Studio Sketchpad</a>.</p>

<p>I have to admit, part of the reason that I’m excited about this new platform is that I could have penned a near-replica of <a href="http://ejohn.org/blog/introducing-khan-cs/">John’s announcement</a> to describe my own recent work on <a href="https://sketchpad.cc">Studio Sketchpad</a>. In 2010, I began building this website based on a similar concept of tinkering, using code that generates interactive graphics as a fun way to learn to program. There are many such sites around today (and Sketchpad certainly wasn’t the first), each of which has a different specialty: <a href="http://openprocessing.org">OpenProcessing</a> is portfolio-oriented, <a href="http://scratch.mit.edu">Scratch</a> is drag-and-drop simple, <a href="http://kodugamelab.com">Kodu</a> and <a href="http://www.playmycode.com/">PlayMyCode</a> are game-oriented, <a href="https://blog.sketchpad.cc/2011/12/towards-dml-2012/">AppJet</a> was webapp-oriented, <a href="http://twolivesleft.com/Codea/">Codea</a> is iPad-classy, <a href="http://jsbin.com/">JSBin</a> is developer-functional, <a href="https://thimble.webmaker.org/">Mozilla Thimble</a> is webmaker-targeted, <a href="http://www.programr.com/">Programr</a>,  <a href="http://tryruby.org/">TryRuby</a>,  <a href="http://jsdo.it/">jsdo.it</a>, <a href="http://wonderfl.net/">wonderfl</a>, <a href="http://www.sketchpatch.net/">sketchpatch</a>, and the list goes on. Earlier this year, I organized a panel discussion at the Digital Media and Learning conference solely to compare notes with some of the other people building these tools: <a href="https://blog.sketchpad.cc/2011/12/towards-dml-2012/">Building four communities for learning, tinkering, and remixing with code.</a></p>

<p>Motivated by John Seely Brown’s argument for the atelier model of learning (JSB inspired the open <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches?&amp;begin=0&amp;show=275">Studio</a> in Sketchpad), Sketchpad is deeply collaborative and visually interactive: it builds on the real-time collaborative Etherpad text editor, the interaction-oriented <a href="http://processingjs.org">Processing</a> language, and a Github-like network of <a href="https://studio.sketchpad.cc/sp/padlist/originated-from?id=ro.9lKWehQncRKTk&amp;sortBy=revisions">forking and remixing</a>. (Processing, I should note, was first ported to Javascript in 2008 by none other than <a href="http://ejohn.org/blog/processingjs/">John Resig</a>). The Etherpad-based code that’s powering Sketchpad is now old and quite creaky, but several <a href="https://blog.sketchpad.cc/teaching/">college courses and programming workshops use it</a>, and I still try to push it’s limits every now and ten. Thanks to a flash grant from the <a href="http://shuttleworthfoundation.org">Shuttleworth Foundation</a> (via <a href="http://sharing-nicely.net/bio/">Philipp Schmidt</a> of <a href="http://p2pu.org">P2PU</a> fame), I was able to take a few weeks off <a href="/2012/07/11/back-to-school/">between my time at Grockit and the Minerva Project</a> to build something brand new: <a href="https://blog.sketchpad.cc/sketchcasting">sketchcasting</a>.</p>

<p><a href="https://studio.sketchpad.cc/sp/pad/view/ro.9gAjbINR1Ar7$/latest?soundcloud_url=http://soundcloud.com/aribadernatal/sketchcast_1344200733170"><img src="/images/2012/08/sketchcast_screenshot2.png" alt="" title="Sketchcast" /></a></p>

<p>What I built – inspired by an experience I had running a <a href="http://archive.p2pu.org/webcraft/programming-visual-media">P2PU course using Sketchpad</a> in 2010, and enabled by the great <a href="http://mozillapopcorn.org/">Mozilla Popcorn</a> project – functions a lot like the new interactive code-casts on Khan Academy. Watch the code being typed as you listen to an accompanying audio narration, pause playback to fork and experiment yourself with the code at any moment, then show and share what you create (an <a href="http://bitly.com/sketchcasting">example</a>). The best part is that anyone can record a sketchcast, not just me. Here’s how this works:</p>

<iframe width="560" height="315" style="border:1px solid #000;" src="https://www.youtube.com/embed/xOhutNCdslQ?rel=0" frameborder="0" allowfullscreen=""></iframe>

<p>Sketchpad’s <a href="https://blog.sketchpad.cc/sketchcasting/">sketchcasting</a> is technically inferior to Khan Academy’s interactive code tutorials, but <em>sketchcasting does have three great things going for it that I’d love to see the Khan Academy incorporate in the future</em>:</p>

<ul>
  <li><em>Anyone can record a sketchcast.</em> Open the normal code editor, press “record”, and talk as you code. You’ll get a unique URL to share with others.</li>
  <li><em>Sketchcasting is collaborative.</em> Groups of people can code together while recording a sketchcast, and groups of people can code together while experimenting with forked versions of existing sketchcasts.</li>
  <li><em>All viewer comments and Q&amp;A are automatically time-coded</em>. While I’ve <a href="/2011/12/18/learning-from-comments-on-youtube/">argued for</a> and hand-built <a href="http://www.slideshare.net/aribn/learning-from-youtube-how-pseudosynchronous-interactions-can-enhance-video-instruction">time-anchored Q&amp;A learning tools</a> in the past, I got it here for free as a part of the excellent <a href="http://developers.soundcloud.com/">Soundcloud audio player</a>. Thanks, Soundcloud!</li>
</ul>

<p>Hats off to Sal, John, and team at Khan Academy. It’s great to see this new approach of weaving together instruction with open-ended experimentation. True, it’s <a href="http://computinged.wordpress.com/2012/08/15/khan-academy-offers-kind-of-scaffolded-computer-science-learning-doing-away-with-the-teacher/">not true scaffolding that fades</a>, but modding/tweaking/remixing are arguably a new form of structured support: letting learners choose their starting point and their own goal. This is a common thread in learn-to-code community websites: Finding and tweaking existing work acts as a great entry point for later creating original work. I’m excited to see Khan Academy enable this sort of structured experimentation. I look forward to hearing status updates from Sal, John, and team in upcoming months and, if all goes well, hope to see more open-ended messiness make its way into other parts of Khan Academy.</p>

<script src="/public/js/fluidvids.min.js"></script>
<script>fluidvids.init({selector:['iframe','object'],players:['www.youtube.com','player.vimeo.com']});</script>


            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Back to school</title>
        <link>https://aribadernatal.com/2012/07/11/back-to-school/</link>
        <pubDate>Wed, 11 Jul 2012 07:13:44 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2012/07/11/back-to-school/</guid>

        
          <description>
            <![CDATA[
              <p>No, not for another PhD.</p>

<p>Earlier this month, I said farewell to my fantastic colleagues of the past four years at Grockit to venture into the unknown: the future of the university. If you were to design a brand new world-class university today, what would it look like? What looks the same as the best of traditional universities and what is unrecognizably different? What counts? Who counts? Next week, <a href="https://www.edsurge.com/n/ari-bader-natal-goes-to-minerva">I’ll be joining the Minerva Project</a> to help build a new university based on an unusual set of answers to these questions. The Minerva Project aims to create a university without a central/physical campus that will offer a rigorous undergraduate education to top students around the world (<a href="http://www.reuters.com/article/2012/04/04/usa-college-online-idUSL2E8F40P520120404">and more</a>). I’ll be focused on designing and building the web-based environment to support this type of learning. (Engineers: Sound interesting? <a href="mailto:jobs@minervaproject.com">We’re hiring!</a>)</p>

<p>It was a pleasure working with <a href="http://grockit.com/management-board">Farb, Roy</a>, and the <a href="https://grockit.com/values">intrepid team</a> at Grockit over the past several years. I’m happy to be staying involved as an advisor.</p>

<p>During my bit of downtime, I’ve been building a set of new <a href="http://mozillapopcorn.org/">Popcorn</a>-powered learning tools using a grant from the <a href="http://www.shuttleworthfoundation.org/">Shuttleworth Foundation</a> (thanks to <a href="http://sharing-nicely.net/bio/">Philipp Schmidt</a> at <a href="http://p2pu.org">P2PU</a>!). Follow <a href="https://twitter.com/aribadernatal">@aribadernatal</a> on Twitter for updates on this project.</p>

<p>Finally, I’ll be co-chairing (with <a href="http://www.alelo.com/outreach/newsletter_spring2012.html#iaied">Lewis Johnson</a>) the Industry and Innovation track at the 2013 AI in Education conference. If you’re at a education technology startup and doing cutting-edge work in adaptive instruction, adaptive assessment, personalization, or other applications of AI in education, <a href="https://aribadernatal.com/contact.html">let me know</a> and I’ll keep you in the loop about how to participate.</p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Khan in the classroom?</title>
        <link>https://aribadernatal.com/2012/01/09/khan-in-the-classroom/</link>
        <pubDate>Mon, 09 Jan 2012 06:07:45 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2012/01/09/khan-in-the-classroom/</guid>

        
          <description>
            <![CDATA[
              <p>If the idea of “blended learning” — combining elements of traditional classroom instruction with software-based supplements — sounds appealing in theory, it’s worth inquiring about how it plays out, in practice. There are <a href="http://www.nytimes.com/2011/12/05/technology/khan-academy-blends-its-youtube-approach-with-classrooms.html">a few dozen pilots</a> in progress right now, and the first few findings have been trickling in. One of these was shared last month in the form of a white paper <a href="http://blendmylearning.files.wordpress.com/2011/12/lessons-learned-from-a-blended-learning-pilot4.pdf"><strong>“Lessons Learned from a Blended Learning Pilot”</strong></a>, summarizing key findings from a pilot project at Envision Academy in Oakland, CA in which Khan Academy was incorporated into an Algebra I summer school course. While the report authors — Brian Greenberg, Leonard Medlock, and Darri Stephens — do present some preliminary quantitative analysis from a small controlled study, the sample size is said to be too small (although, strangely, size is never actually specified in the paper) to be able to draw any meaningful conclusions about learning gains. <a href="http://www.downes.ca/cgi-bin/page.cgi?post=56928">Stephen Downes</a>, <a href="http://fm.schmoller.net/2011/12/lessons-learned-from-using-khan-academy-content-in-a-blended-learning-pilot.html">Seb Schmoller</a>, and <a href="http://alfredessa.com/?p=971">Alfred Essa</a> have focused on the reported non-effect, but since it’s really a non-test, I’m not as concerned with the results. The real value that I find in this report is the qualitative feedback presented from teachers, students, and partners (from Stanford’s d.school and Google’s Chromebook team.) Here’s why: <em>The ways in which students used (and misused) the Khan Academy software highlights opportunities for how “blended learning” software could (and perhaps should) work in the future.</em> Edtechies, take note.</p>

<p>Below are a few of the passages that I found most interesting. What I find interesting is, of course, colored by <a href="https://aribadernatal.com/publications.html">my own research focus</a>, so the highlights for you may be entirely different than these.  &lt;/disclaimer&gt;</p>

<blockquote>
  <p>By observing the data screens, a teacher can easily see that a group of three or four students are all struggling with the same concept. The teacher can call these students together and provide a targeted mini-lesson. Even better, the teacher can call over a student who has proven mastery on the topic, and ask the student to provide the instruction to his/her peers.</p>
</blockquote>

<p>Absolutely. In the context of a classroom, the actionable feedback would be suggesting ways to rearrange where students are sitting and who they are encouraged to talk with. There’s a relatively new startup doing just that: <a href="https://learningcatalytics.com/">Learning Catalytics</a> (Eric Mazur, Garry King, and Brian Lukoff) looks to have built a system to do this quite nicely, and their approach is rooted in Mazur’s extensive work on Peer Instruction. I’ve been kicking around designs for <a href="https://aribadernatal.com/docs/badernatal_itswrkshp_teachit_2010.pdf">an entirely-online venue for peer instruction with peer assessment</a> for the past few years, so stay tuned for announcements on that front.</p>

<blockquote>
  <p>A related (and encouraging) result of the blended learning model was that students began to work together much more collaboratively than usually observed in high school classrooms. Although the instructional videos were present, most students preferred to work though the practice problems themselves, with the help of the teacher, or by soliciting peer assistance. Students were surprisingly comfortable asking each other for help. One student told us, “Because we are all working on different things, it’s easier to ask for help.”</p>
</blockquote>

<p>Reading these observations is encouraging. We recently introduced a new mode of study in parts of Grockit, dubbed “study hall”, that lets each student work through their own adaptive/personalized problem-solving study session, but have access to a real-time public chat channel with all of the other students. As soon as a student gets stuck, they can click a button to signal to other students that they want assistance. Others can then hop into that student’s personalized session to work through the problem with them. Complementing personalized study sessions with affordances for on-demand peer assistance is one of many ways to bridge <a href="/2011/12/14/personalization-and-collaboration/">the personalization-collaboration divide</a>. A paper describing our first set of experiments using this model is headed to the <a href="http://its2012.teicrete.gr/">Intelligent Tutoring Systems conference</a> for peer review later this month.</p>

<blockquote>
  <p>In one example, we observed two students working on the same section at the same time. They worked individually but conferred before submitting their answers. If they disagreed on a solution, they tried to convince one another or they looked for possible errors together. Other times students would tutor each other on different sections as needed. We see tremendous potential in this peer-coaching model and are interested in thinking about ways for students to signal to peers that they need additional help or to identify themselves as coaches on given topics.</p>
</blockquote>

<p>There’s a great study from a team of physics education researchers at the University of Colorado, Boulder that looked at the effects of peer discussions (in a lecture hall) among students who disagree on the correct answer to a clicker-style question: <a href="http://www.sciencemag.org/content/323/5910/122.abstract">Why Peer Discussion Improves Student Performance on In-Class Concept Questions</a>. Definitely worth reading if you’re interested in the topic.</p>

<blockquote>
  <p>Most people are drawn to Khan based on its massive video library and Sal’s own charming and engaging teaching style. Like many, we assumed the videos would be the predominant learning mechanism for students tackling new material. In fact, the students rarely watched the videos. This result is consistent with some of the observations in the Los Altos pilot. The students greatly preferred working through the problem sets to watching the videos. Students turned to their peers, the hint, and the classroom teacher much more often than they did the linked Khan video.</p>
</blockquote>

<p>There’s a difference between learning something (for the first time) and reviewing/reinforcing what you’ve previously learned. Video lessons, as a form of direct instruction, are a good fit for students who are trying to learn something that they do not yet know. Problem sets, as a mechanism for practice and assessment, are a good fit for reviewing and reinforcing what a student knows. When a student starts a new topic, it makes sense to me to start with video and then move to the exercises (as is traditionally done in a textbook). If a student already knows a topic, skipping directly to exercises makes sense. Once you’re in an exercise, a topic-focused video feels less relevant. A progression of prepared hints and assistance from friends can help both a student directly work through the challenge in front of them, in a way that a topical video cannot.</p>

<p>In a paper that we published last summer, <a href="https://aribadernatal.com/docs/badernatal_2011aied.pdf">“A Comparison of the Effects of Nine Activities within a Self-Directed Learning Environment on Skill-Grained Learning”</a>, the opportunity to watch a topic-focused video after answering a question incorrectly was both not very popular and not effective. Again, this is not to say that video lessons themselves are not valuable, but just that the placement of a topical video in the context of practicing specific exercises on a known skill isn’t the best spot for it. As a result, Grockit has moved towards is offering video focused on instruction in one part of the application, and offering videos focused on solving specific questions as screencasts available after answering that specific question. These worked-solution videos are immediately relevant at the time that they are made available, more similar to question-specific hints or raising a hand to ask for targeted help from a teacher. (In this case, since there is no classroom teacher to ask, we developed <a href="https://grockit.com/answers">Grockit Answers</a> to fill the void (needless to say: <a href="/2011/12/18/learning-from-comments-on-youtube/">YouTube comments don’t cut it</a>), and <a href="http://youtu.be/gf6u4PZi4Hc?hd=1">Answers now powers every video lesson and question explanation</a>, so students can ask specific confusing moments in a video and get answers from other learners. So I’m arriving at a different conclusion than the white paper authors about the students’ lack of interest in viewing Sal’s videos from within the exercises: the videos aren’t necessarily too long or not sufficiently interesting, they may just be presented in the wrong place or wrong time in the context of the exercises. Timing and context often matter a lot more than we realize.</p>

<p>I look forward to seeing how feedback from blended learning classroom pilots such as this one ultimately affects how these educational software systems continue to evolve.</p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Building four communities for learning, tinkering, and remixing with code</title>
        <link>https://aribadernatal.com/2011/12/18/towards-dml-2012/</link>
        <pubDate>Sun, 18 Dec 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/12/18/towards-dml-2012/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/12/towards-dml-2012/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/12/towards-dml-2012/
                </a>
              </div>
              <blockquote>
                <p>I’m excited to be participating in a panel discussion at the <a href="http://dml2012.dmlcentral.net/">Digital Media and Learning conference</a> in March to talk about <a href="https://sketchpad.cc">Studio Sketchpad</a> and to publicly compare notes with three very talented people who have been instrumental in creating other web-based communities for learning, tinkering, and remixing with code. <a href="http://twitter.com/andresmh">Andrés Monroy-Hernández</a> (now of <a href="http://research.microsoft.com/en-us/">Microsoft Research</a>) will be talking about <a href="http://scratch.mit.edu/">Scratch Online</a> and <a href="http://fuse.microsoft.com/page/kodu">Kodu Game Lab</a>, <a href="http://twitter.com/jdzamfi">J.D. Zamfirescu-Pereira</a> (<a href="http://learningu.org/">Learning Unlimited</a> &amp; <a href="whatwillyoulearn.com/">What Will You Learn?</a>) will be talking about the origin of <a href="http://www.herby.sk/appjet/appjet-site/appjet.com/learn-to-program/lessons/intro.html">AppJet</a>, and <a href="http://twitter.com/shellyshelly">Shelly Farnham</a> (<a href="http://research.microsoft.com/en-us/">Microsoft Research</a>) will be talking about peer learning projects at <a href="http://fuse.microsoft.com/">Microsoft Research FUSE Labs</a>. Here’s the gist:</p>

<blockquote>
  <p>In this panel, we bring together four people who have actively engaged in making, tinkering, and remixing the designs of learning communities in which young people make, tinker, and remix with code. Drawing on experiences creating and experimenting with <a href="http://scratch.mit.edu/">Scratch Online</a>, <a href="https://studio.sketchpad.cc">Studio Sketchpad</a>, <a href="http://www.kodugamelab.com">Kodu</a>, and <a href="http://en.wikipedia.org/wiki/AppJet">AppJet</a>, we seek to identify the socio-technical factors that impact peer learning with social media. We will talk about lessons learned and have a discussion about questions such as how to support young people’s development of a maker mindset.</p>

  <p>We will introduce each of the four systems, drawing particular attention to the various mechanisms built-in for remixing, iteratively refining, collaborating, and sharing with others. We then use this as a starting point for identifying commonalities and differences to discuss in more detail. What do we agree are valuable components in creating a remix culture? What have we discovered to be promising, but ultimately unsuccessful? What styles of remixing have emerged and what seems to be their purpose? How generalizable are our observations?</p>

  <p>This panel aims at providing insights for meta-designers, practitioners and educators interested in learning how to support and inspire young people to learn to create computational artifacts within a community of peers.</p>
</blockquote>

<p>I’m looking forward to this conference, and am particularly looking forward to having this panel discussion. We’ll certainly post more about it as it approaches (and afterwards), but if you’re planning to attend, definitely drop me a note. You can find more info online about the <a href="http://dml2012.dmlcentral.net/">2012 Digital Media and Learning conference</a>. It looks fantastic.</p>

<iframe src="https://player.vimeo.com/video/39107307?title=0&amp;byline=0&amp;portrait=0" width="675" height="506" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>


              </blockquote>
              <div>
                <img alt="Building four communities for learning, tinkering, and remixing with code" src="/images/sketchpad_blog/dml.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Learning from comments on YouTube</title>
        <link>https://aribadernatal.com/2011/12/18/learning-from-comments-on-youtube/</link>
        <pubDate>Sun, 18 Dec 2011 19:30:42 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/12/18/learning-from-comments-on-youtube/</guid>

        
          <description>
            <![CDATA[
              <p>Web video is playing an increasingly prevalent role in online learning: university open courseware initiatives, flipped classrooms experiments, and a growing number of virtual schools all rely heavily on video for direct instruction. And while video is itself a broadcast medium, situating video within a website opens the possibility for peer-to-peer interactions. Most video-hosting websites support some peer interactions through a shared comment stream, but this inherently treats the video as a two-dimensional object, ignoring its most meaningful dimension: <em>time</em>. Particularly for long-form presentations of complex concepts that are difficult to grasp simply by viewing, a venue for peer dialogue is incredibly valuable, but a venue that lacks a notion of temporal context is inherently limited. <em>What could peer interactions around web video look like if temporal context was treated as critically-relevant?</em> I’ve been lucky to have the opportunity to explore this question over the past few months while building <a href="https://grockit.com/answers">Grockit Answers.</a></p>

<p>While YouTube, Vimeo, and several other video-sharing services provide programmatic access to a hosted video’s timeline, the new technology that really opened up the possibility of interacting with the temporal dimension of web video is <a href="http://popcornjs.org">Popcorn.js</a>, a JavaScript event system for HTML5 media. Grockit Answers structures peer interactions as a set of Question &amp; Answer discussion threads, each one anchored to a particular point in a video’s timeline. When a viewer asks a question, perhaps about something specific that they found confusing, Popcorn is used to automatically time-stamp the question to associate it with the particular moment in the video at which it was asked. When others viewers reach that point in the video, the question appears on the screen, presenting it at the exact moment that these viewers have the same context as the person who asked the question. Discussion is no longer <em>about a video</em>, it can now be scoped to a particular comment, explanation, or demonstration <em>within a video</em>. My absolute favorite part of this design is the often-surprising result of watching a video that has been the subject of many questions: As you start to become confused by a complex or vague explanation, the questions forming in your head pops onto the screen. Perhaps even more surprising, answers to your questions – perhaps clarifications or alternative explanations – also start appearing. While this is an asynchronous peer interaction, the time-triggered displays give the feel of just-in-time live help. I’m calling this a <em>pseudo-synchronous</em> interaction.</p>

<p>Many thanks to the <a href="http://mozillapopcorn.org">Mozilla Popcorn project</a> and the <a href="https://github.com/cadecairos/popcorn-js/blob/develop/AUTHORS">Popcorn.js development team</a> for providing the layer of abstraction that makes this type of learning environment such a joy to build. For another great example of new forms of social learning around web videos, check out <a href="http://katehudsondesign.com/demos/popcornmacbeth/">Popcorn Macbeth</a> and some of the other <a href="http://popcornjs.org/demos">great Popcorn demos</a>.</p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Can online learning be personalized without being anti-social?</title>
        <link>https://aribadernatal.com/2011/12/14/personalization-and-collaboration/</link>
        <pubDate>Wed, 14 Dec 2011 09:00:21 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/12/14/personalization-and-collaboration/</guid>

        
          <description>
            <![CDATA[
              <p>While watching Peter Norvig, Sebastian Thrun, and Sal Khan <a href="https://www.youtube.com/watch?v=LtmdiPUGGe8">field questions on their experiences and goals with online education</a>, one set of comments by Peter Norvig absolutely resonated for me (at <a href="http://youtu.be/LtmdiPUGGe8?t=18m52s">time 18:52</a>):</p>

<blockquote>
  <p>I think for us, the key that we’re trying to figure out is how to combine a personal experience with a group experience. We really want to enable mastery on the part of the individual, to say you should keep interacting with the material until you’ve really gotten it, that’s going to be at your own pace. But at the same time we find that it’s really motivating to have a group that’s working together. That’s the advantage of having a class that’s run synchronously is that everybody is there, you can go into the discussion forums, you can get help from your peers. So we want to keep some group together so that they can help each other while allowing people to work at their own pace, and getting that right is the trickiest part.</p>
</blockquote>

<p>Yes. My biggest fear with the momentum behind personalized and adaptive approaches to instruction is that learners are isolated from one another, no longer connected enough to provide the moral, social, and academic support to one another. <em>If we give up collaboration on the road to personalization, have we actually moved the ball forward?</em> Two steps forward and one step back. Or worse, perhaps one step forward and two steps back. The good news here, as Peter suggests, is that the two are not mutually exclusive. We can design scalable learning experiences that incorporate both personalization and collaboration. We just need to be thoughtful (clever?) and approach it as a design challenge. After being involved in designing three collaborative+personalized learning activities over the past few years at Grockit, I’m finally starting to understand it. Peter alludes to it above: <em>It’s all about the timing.</em></p>

<p>Let’s start by assuming that you’ve created a learning environment (online or offline) that can adequately support both synchronous and asynchronous forms of interaction among learners. We can then ask: For a particular activity, what would be the benefits and drawback in structuring it around synchronous vs. asynchronous interactions? What mode of <a href="https://aribadernatal.com/docs/badernatal_elearn2009_updated.pdf">interaction synchronicity</a> makes the most sense? Recognizing practical logistical constraints answered this question 80% of the time. We know that different people read at different speeds, for instance, and so a synchronous activity would leave some people waiting for others to finish. The larger the potential discrepancy in time required by different students, the more logical it is to shift to an asynchronous design. But while individuals may differ in the speed that they read, a group discussion still progresses at the shared pace of conversation. This is why the notion of a “flipped classroom” seems logistically reasonable: It’s essentially a model offering instruction at the pace of comprehension — which varies from student to student — and application at the pace of discussion — in-class group problem-solving and Q&amp;A activities.</p>

<p>At a high level, bridging the personalization-collaboration divide is also a matter of timing. Personalization generally implies a self-paced progression through a sequence, decoupling the student’s own timeline from that of other their peers. Collaboration generally implies tightly-coupled timelines, where synchronized progression enables rich real-time interactions. To be able to draw on both of these simultaneously requires some creative thinking. We’ve explored three solutions so far: (1) structuring asynchronous interactions in a way that simulates or approximates the just-in-time nature of synchronous feedback (a la <a href="https://grockit.com/answers">Grockit Answers</a>), (2) supporting self-paced personalized learning to take place in a common space, allowing for easy access to others who have previously mastered a topic to jump in to help when needed (a la Grockit’s GRE “study hall”), and (3) simply by providing learner control over when they study alone and when they learn with others. These three are just a start. <em>In what other ways can creative activity design bring together the best of collaboration and personalization in learning?</em></p>

            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Verifying accuracy of math expressions converted from HTML to Markdown</title>
        <link>https://aribadernatal.com/2011/10/04/mechanical-turk/</link>
        <pubDate>Tue, 04 Oct 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/10/04/mechanical-turk/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Mechanical Turk blog at 
                <a href="http://mechanicalturk.typepad.com/blog/2011/10/editors-note-ari-bader-natal-is-the-chief-learning-architect-at-grockit-the-fast-growing-online-social-learning-startup-bac.html" target="_blank" rel="noopener">
                  http://mechanicalturk.typepad.com/blog/2011/10/editors-note-ari-bader-natal-is-the-chief-learning-architect-at-grockit-the-fast-growing-online-social-learning-startup-bac.html
                </a>
              </div>
              <blockquote>
                <p>The primary learning activity on Grockit is problem solving, so it’s probably not surprising that Grockit has developed a large (and growing) library of problems to solve. What began as a few hundred problems has quickly turned into hundreds of thousands of questions, answers, explanations, and more.</p>

<p>When you’ve got tens or hundreds of people authoring problems, things inevitably get messy. Mathematical expressions are input in several different ways, questions often get modified and revised by a sequence of different authors, and it gets increasingly difficult to figure out who changed what, when, and how. In short, our process required that we develop a more fully-featured content management system (CMS) earlier this year. Our new CMS  assumed that text is in Markdown format. All of the existing questions, answers, and explanations weren’t, though, and that left something of a challenge.</p>

<p>The challenge: convert each bit of content in the Grockit system from free-form HTML to a Grockit-flavored Markdown without losing the necessary visual styling, then verify that the conversion was done correctly, fix it if it wasn’t, and then deploy the approved version to the production system once ready. Then repeat, hundreds of thousands of times. Clearly, we needed an automated process. We know that automated doesn’t necessarily mean accurate, however, so we decided that a partially-automated, partially-manual process was the best way to ensure that Grockit questions, answers, and explanations would continue to be accurate.</p>

<p>An automated process to convert from free-form HTML to a Grockit-flavored Markdown got us started. Some of the changes were so minor that no manual verification was necessary, and the new version could be immediately deployed to the production system. For the rest, we used Amazon’s Mechanical Turk service and asked three different people whether or not the before and after content looked the same. If all three agreed that the conversion matched the original, we accepted the new content. If not, we needed someone else to check and fix the change.</p>

<p>Here’s an example of what the HIT on Mechanical Turk looked like:</p>

<p><img src="/images/2011/10/grockit_turk.jpg" alt="" /></p>

<p>In our trial run with Algebra I in the Academy, 45,000 conversion quality ratings were submitted in the first hour alone! Once a conversion’s quality was verified by Mechanical Turk Workers, Grockit would start displaying the converted version. The result: A rolling process (without race conditions!) to update all of Grockit’s content, one field at a time, to a much cleaner, simpler, more trackable, more searchable, more flexible form moving forward.</p>


              </blockquote>
              <div>
                <img alt="Verifying accuracy of math expressions converted from HTML to Markdown" src="/images/2011/10/grockit_turk.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Inspired by a deck of cards</title>
        <link>https://aribadernatal.com/2011/07/26/inspired-by-moo/</link>
        <pubDate>Tue, 26 Jul 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/07/26/inspired-by-moo/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/07/inspired-by-moo/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/07/inspired-by-moo/
                </a>
              </div>
              <blockquote>
                <p>Viewing sketches created by people in the Studio was always possible, but wasn’t pretty or easy. Here’s what you had to work with:</p>

<p><img src="/images/sketchpad_blog/old_studio_listing.png" alt="" /></p>

<p>In stark contrast to this, I have a beautiful little deck of cards sitting on my desk at home, with each card featuring a colorful snippet of a canvas created in the sketchpad studios. When the deck first arrived, I spread the cards out on a table to get the full effect:</p>

<p><img src="/images/sketchpad_blog/moo.png" alt="" /></p>

<p>Looking at the table that afternoon, it was pretty clear that these cards offered a glimpse into the studio that was much better than what I was currently displaying online. So when I finally started to redesign the studio, I used these cards as inspiration. Like any renovation, everything started smoothly but then began to drag. Fast forward a few months, and today I find myself with a free afternoon and an itch to ship. The result? Here’s what you’ll see in the <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches?&amp;begin=0&amp;show=21">public studio</a>:</p>

<p><a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches?&amp;begin=0&amp;show=21"><img src="/images/sketchpad_blog/new_studio2.png" alt="" title="new_studio2" /></a></p>

<p>This layout works particularly well from displaying the set of all sketches cloned-and-modified from some template sketch:</p>

<p><a href="https://studio.sketchpad.cc/sp/padlist/originated-from?id=ro.9lKWehQncRKTk&amp;sortBy=revisions"><img src="/images/sketchpad_blog/tree_derivatives2.png" alt="" /></a></p>

<p>I’m excited about the new look, and I hope you like it, too. I’m going to order a new box of mini-cards to celebrate!</p>

              </blockquote>
              <div>
                <img alt="Inspired by a deck of cards" src="/images/sketchpad_blog/moo.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Badges are shiny little certifications</title>
        <link>https://aribadernatal.com/2011/07/21/badges/</link>
        <pubDate>Thu, 21 Jul 2011 01:25:57 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/07/21/badges/</guid>

        
          <description>
            <![CDATA[
              <p>[Some thoughts following <a href="http://etherpad.mozilla.com:9000/ep/pad/view/ro.ekv7LlJEMyhwgWsdr75KoKukyY/rev.9057">Badge Working Group
#2</a>]</p>

<p>A badge – which I think of as a publicly-displayable symbol awarded by
a group to an individual as a way to recognize an achievement meeting
certain criteria – can be used in a learning context in a few different
ways. <a href="http://gamification.org/wiki/">Gamification</a> is a hot topic right
now, but while incentivizing participation can be a powerful tool for
engaging learners in non-compulsory learning activities, it needs to be
done carefully to avoid substantially undermining intrinsic motivation.
Gamification aside, there’s another role for badges in a learning
context: When a respected organization publicly recognizes the
accomplishments of an individual, this says something about what that
individual is capable of doing in the future. Badges can act like
mini-certifications, exactly the sort of thing we aim to convey in a
resume.</p>

<p>But if we already have grades and degrees on resumes, why would we need
badges? Badges tell a different story. Badges identify strengths without
focusing on weaknesses, whereas grades average both. Badges are designed
to be displayed publicly and proudly, whereas grades are generally read
privately and hidden promptly. What about degrees? While the presence of
a college degree on a resume can be a signal of qualification to a
potential employer, this signal is (a.) slow and binary, (b.) opaque,
and (c.) only issuable by a small number of formal educational
institutions. In comparison, badges are (a.) designed to recognize
finer-grained accomplishments and proficiencies, (b.) make transparent
both the criteria for award recognition and the raw evidence of student
work meeting these criteria, and (c.) be issuable by any organizations
that support learning, inside or outside of the classroom. In short,
<em>badges offer a way to make out-of-class learning more relevant by
making it more visible</em>. To find out, we have to test this out.</p>

<p>Several learning environments already award badges to recognize
accomplishments (e.g. <a href="http://stackoverflow.com/badges">StackOverflow</a>,
<a href="http://grockit.com/blog/main/2011/05/06/collect-your-grockit-badges-on-the-new-achievements-page/">Grockit</a>,
<a href="http://badges.p2pu.org/">P2PU</a>, <a href="http://www.khanacademy.org/badges/view">Khan
Academy</a>), but each one has had
to recreate a similar underlying software infrastructure to support
this. If we, as a community, think that badge systems are worth
exploring and evaluating, we can accelerate this by offering a simple,
shared infrastructure that handles basic functionality: issuing,
storing, sharing, and displaying. The Mozilla Foundation recently began
a <a href="https://wiki.mozilla.org/Badges">badge project</a> and <a href="http://etherpad.mozilla.com:9000/ep/pad/view/ro.l0cVZWORuYYd9L-xyOya7kV6c/rev.7821">Open Badge
Infrastructure</a>
to do just this. This could be incredibly useful, but it does hold two
risks. First, sharing a single infrastructure may result in the
community prematurely settling on one approach to badges before other
promising alternatives have really been explored. Second, a
software-based framework for badges can’t be leveraged by groups lacking
the technical know-how or organizational infrastructure to interface
with the framework. One proposed goal raised during the meeting was to
build a system in which it is as straightforward to create and issue a
badge as it is to receive and display one. When Mozilla’s infrastructure
is in place, I’ll set aside some time to create a small website that
anyone can use (without writing code) to create one-off badges that flow
through the system. Nothing fancy, just functional enough to let anyone
who is interested in testing out web-based learning badges within their
own community actually be able to try it out.</p>

<p><em>Is “badge” even the right word? Should we use different words to
differentiate between incentivization and certification?</em></p>


            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Nine Activities Within A Self Directed Learning Environment</title>
        <link>https://aribadernatal.com/2011/07/01/nine-activities-within-a-self-directed-learning-environment/</link>
        <pubDate>Fri, 01 Jul 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/07/01/nine-activities-within-a-self-directed-learning-environment/</guid>

        
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Bader-Natal, A., Lotze, T., and Furr, D. "A Comparison of the Effects of Nine Activities within a Self-Directed Learning Environment on Skill-Grained Learning". Proceedings of the 15th International Conference on Artificial Intelligence in Education, 2011.
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="primary" HREF="/docs/badernatal_2011aied.pdf">
                          Draft PDF
                        </A> 
                       
                        | <A class="" HREF="https://link.springer.com/chapter/10.1007/978-3-642-21869-9_5">
                          Springer
                        </A> 
                       
                    </div>
                  
                  
                    <br /><hr /><br />
                    Abstract: 
                    <blockquote>
                      <P>Self-directed learners value the ability to make decisions about their own learning experiences. Educational systems can accommodate these learners by providing a variety of different activities and study contexts among which learners may choose. When creating a software-based environment for these learners, system architects incorporate activities designed to be both effective and engaging. Once these activities are made available to students, researchers can evaluate these activities by analyzing observed usage and performance data by asking: Which of these activities are most engaging? Which are most effective? Answers to these questions enable a system designer to highlight and encourage those activities that are both effective and popular, to refine those that are either effective or popular, and to reconsider or remove those that are neither effective nor popular. In this paper, we discuss Grockit - a web-based environment offering self-directed learners a wide variety of activities - and use a mixed-effects logistic regression model to model the effectiveness of nine of these supplemental interventions on skill-grained learning.</P>
                    </blockquote>
                  
                  
                    <div class="post-image">
                      <img alt="Nine Activities Within A Self Directed Learning Environment" src="https://aribadernatal.com/images/publications/aied2011/featured.jpg" />
                    </div>
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Grockit is a finalist in the Next Generation Learning Challenges</title>
        <link>https://aribadernatal.com/2011/04/14/grockit-is-a-nglc-finalist/</link>
        <pubDate>Thu, 14 Apr 2011 08:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/04/14/grockit-is-a-nglc-finalist/</guid>

        
          <description>
            <![CDATA[
              <p><em>Excerpt from a post originally available on the Grockit blog at http://grockit.com/blog/main/2011/04/14/grockit-named-nglc-wave-2-finalist/</em></p>

<p>I’m happy to announce that Grockit is a finalist in the second wave of Next Generation Learning Challenges. I’d like to share a bit about this project and why we think it’s important. Here’s the project summary:</p>

<p><strong>The Virtual Study Hall: Making Personalized Learning Collaborative</strong></p>

<blockquote>
  <p>Virtual schools let students learn from any place at their own pace. The challenge in this individualized learning is that without a synchronized curriculum and shared venue, students can feel disconnected from their peers and alone in their studies. As online learning options are increasingly available at the secondary and post-secondary level, the issues that virtual high schools face today are a preview of challenges to come with this new wave in technology-enabled learning. While the move towards personalized learning appears to necessitate a move away from social/collaborative learning, this need not be the case. Grockit has developed a web-based learning platform that bridges this gap, with a collaborative learning platform that creates networks for self-paced learners. Building on an existing relationship with Florida Virtual School, we will demonstrate and measure how this platform can increase learning gains by connecting and engaging thousands of students enrolled in 7th-9th grade level math courses online.</p>
</blockquote>

<p>This project addresses a stumbling block that many technology-based efforts for individualized learning either have faced or will face soon: a large-scale shift towards truly personalized learning in a school fragments a single cohort of learners into single-learner cohorts. For online programs and courses, this fragmentation can negatively impact student engagement and completion rates. In building a system to be both collaborative and adaptive, Grockit has grappled with this issue for several years, and has now identified several solutions to enable both approaches to be supported simultaneously. For courses offered entirely online, restoring the opportunity for peer-to-peer collaborative learning can be quite powerful. By building a technology-based learning environment as a social construct from the bottom-up, students can reap the benefits of studying within a community of learners - a sense of connection to other learners, informal peer-to-peer assistance and motivation, and a social context for studying.</p>


            ]]>
          </description>
        

      </item>
    
      <item>
        <title>MiniSketches</title>
        <link>https://aribadernatal.com/2011/03/26/minisketches/</link>
        <pubDate>Sat, 26 Mar 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/03/26/minisketches/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/03/minisketches/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/03/minisketches/
                </a>
              </div>
              <blockquote>
                <p>In an attempt to have something tangible to show for my time spent on Sketchpad, I picked a few of my favorite canvases from the <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches">Studio Gallery</a> to print on a deck of MiniCards. A small box of sketch snapshots arrived in the mail today, and I’m liking these a lot. Nice work, sketchers!</p>

<p><img src="/images/sketchpad_blog/moo.png" alt="" title="IMG_1197" /></p>

<p><img src="/images/sketchpad_blog/moo2.png" alt="" title="IMG_1191" /></p>

              </blockquote>
              <div>
                <img alt="MiniSketches" src="/images/sketchpad_blog/moo.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>What I cannot create, I do not understand</title>
        <link>https://aribadernatal.com/2011/03/15/recreate/</link>
        <pubDate>Tue, 15 Mar 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/03/15/recreate/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/03/recreate/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/03/recreate/
                </a>
              </div>
              <blockquote>
                <p>On the last blackboards of Richard Feynman:</p>

<p><img src="/images/sketchpad_blog/feynman-blackboard.jpg" alt="" title="feynman-blackboard" /> [<a href="http://talklikeaphysicist.com/2008/talk-like-a-physicist-what-i-can-not-create-i-do-not-understand/">more</a>]</p>

<p>Consider, for a moment, the core verbs of participation on the web today. I’m not talking about GET or POST. I’m talking about CREATE, REMIX, SHARE, and DISCUSS. Am I forgetting any? Each of these represents a form of engagement that is meaningful – and near-ubiquitous – for most any website built around “user-generated content” (I triple-shudder on that phrase.) While <a href="https://sketchpad.cc">Sketchpad</a> is still embarrassingly-deficient on letting people DISCUSS (stay tuned…), I’ve taken a slight detour to test out a new verb: <strong>RECREATE</strong>. This is not a general-purpose verb, but I think it’s worth trying out on Sketchpad and sites like it, where there’s interest in supporting learning and teaching.</p>

<p>In basketball, you’ve got games like <a href="http://en.wikipedia.org/wiki/H-O-R-S-E">H-O-R-S-E</a>. In art studios, you’ve got people attempting to replicate a masterpiece or copy a style. In music lessons, you’ve got students trying to repeat back what they hear their teachers play. I’m wondering if these types of learning exercises might make sense for creating things on the web. I can’t think of any examples of sites that support RECREATE as a top-level verb, so I thought I’d try it out right here on Sketchpad.</p>

<p>As of earlier today, every sketch has a little “recreate” link in the footer, giving you an entry-point to do just that. Click on it, and you’ll be given a blank canvas, the sketch editor, and the masterpiece of your choosing (drawn from any revision of any sketch found on the site). You can take a totally different path than the creator did, but the idea is to arrive at a finished version as close to the original as possible. Try your hand at making this tic-tac-toe game:</p>

<p><a target="_blank" rel="noopener" href="https://studio.sketchpad.cc/sp/pad/view/ro.9oZuLi6OQN$8T/rev.33"><img src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.9oZuLi6OQN$8T.png" /></a></p>

<p>Or replicating this bit of recursion:</p>

<p><a target="_blank" rel="noopener" href="https://studio.sketchpad.cc/sp/pad/view/ro.9QmpG6paz8zzJ$8T/rev.0"><img src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.9QmpG6paz8zzJ$8T.png" /></a></p>

<p>This is a brand-new experiment. I’m not sure if anyone will use it, so I’ll wait a bit to see. I the meantime, I’m adding it to the list of useful techniques for <a href="https://blog.sketchpad.cc/teaching/">teaching with Sketchpad</a>. If you’re an educator interested in testing this out, please <a href="mailto:ari@sketchpad.cc">let me know</a>!</p>

              </blockquote>
              <div>
                <img alt="What I cannot create, I do not understand" src="/images/sketchpad_blog/feynman-blackboard.jpg" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Evolving A Learning Analytics Platform</title>
        <link>https://aribadernatal.com/2011/02/28/evolving-a-learning-analytics-platform/</link>
        <pubDate>Mon, 28 Feb 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/02/28/evolving-a-learning-analytics-platform/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Bader-Natal, A. and Lotze, T. "Evolving a learning analytics platform". Proceedings of the 1st International Conference on Learning Analytics and Knowledge. ACM Press, 2011.
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="primary" HREF="/docs/badernatal_lak_2011.pdf">
                          Draft PDF
                        </A> 
                       
                        | <A class="" HREF="/docs/badernatal_2011lak_slides.pdf">
                          Talk Slides
                        </A> 
                       
                        | <A class="" HREF="https://dl.acm.org/citation.cfm?id=2090146">
                          ACM Digital Library
                        </A> 
                       
                    </div>
                  
                  
                    <br /><hr /><br />
                    Abstract: 
                    <blockquote>
                      <P>Web-based learning systems offer researchers the ability to collect and analyze fine-grained educational data on the performance and activity of students, as a basis for better understanding and support- ing learning among those students. The availability of this data enables stakeholders to pose a variety of interesting questions, often specifically focused on some subset of students. As a system matures, the number of stakeholders, the number of interesting questions, and the number of relevant sub-populations of students also grow, adding complexity to the data analysis task. In this work, we describe an internal analytics system designed and developed to address this challenge, adding flexibility and scalability. Here we present several examples of typical examples of analysis, discuss a few uncommon but powerful use-cases, and share lessons learned from the first two years of iteratively developing the platform.</P>
                    </blockquote>
                  
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    
      <item>
        <title>Unlocking compliments with Google Translate</title>
        <link>https://aribadernatal.com/2011/02/20/unlocking-compliments/</link>
        <pubDate>Sun, 20 Feb 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/02/20/unlocking-compliments/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/02/unlocking-compliments/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/02/unlocking-compliments/
                </a>
              </div>
              <blockquote>
                <p>I just added a new sketch by <a href="https://studio.sketchpad.cc/sp/padlist/edited-by?editorId=583">Ari Prasetyo</a> to the <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches">Studio’s gallery</a>. If you look at the <a href="https://studio.sketchpad.cc/sp/pad/view/ro.9G5SVilwGObn1/latest">source code of this sketch</a>, you’ll see that all of the comments and variable names are written in Indonesian. A few months ago, <a href="http://twitter.com/humphd/status/11087329645043712">humphd mentioned</a> that he was relying on <a href="translate.google.com/">Google Translate</a> to understand what people were saying about the Processing.js project. I’m starting to have a similar experience with Sketchpad (my little corner of the ecosystem), and I have to say, it’s a lot of fun!</p>

<p><a target="_blank" rel="noopener" href="https://studio.sketchpad.cc/sp/pad/view/ro.9G5SVilwGObn1/rev.1650"><img src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.9G5SVilwGObn1.png" /></a></p>

<p>In the past week, I translated a <a href="http://twitter.com/erucipe/status/38795198976757760">Korean tweet</a>, a <a href="http://tipes.wordpress.com/2011/02/16/etherpad-vit-toujours/">French blog post</a>, these <a href="https://studio.sketchpad.cc/sp/pad/view/ro.9G5SVilwGObn1/rev.1650">Indonesian explanations</a>, and many of the <a href="https://codigodelaimagen.sketchpad.cc/sp/padlist/all-portfolio-sketches">Spanish sketches</a> in one of the new <a href="https://blog.sketchpad.cc/teaching/private-studios/">private studios</a>. My favorite part of Google’s tool is that it automatically detects the source language. <strong>It deciphers compliments in languages that I can’t even recognize.</strong> I find it both gratifying and embarrassing that I actually need this magical feature.</p>

              </blockquote>
              <div>
                <img alt="Unlocking compliments with Google Translate" src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.9G5SVilwGObn1.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Toss that sketch over the wall</title>
        <link>https://aribadernatal.com/2011/02/19/toss-that-sketch/</link>
        <pubDate>Sat, 19 Feb 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/02/19/toss-that-sketch/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/02/toss-that-sketch/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/02/toss-that-sketch/
                </a>
              </div>
              <blockquote>
                <p>One of the great features of Etherpad is that you could create a new document with one click on the homepage, and share it with others by mailing them a URL. No signup hassle, no up-sell, just click and go. I left this in, of course, when I built Sketchpad, but the real action now happens inside the <a href="https://studio.sketchpad.cc">Studio</a>, which requires account sign-up/sign-in. I added some windows to the studio so outsiders can peer in, but there is still a real wall between the sketches created within the Studio and those created from the big button on the homepage. People do some great work outside of the studio, only to realize afterward that no one will see their creation. So I added a new feature that I think is a pretty nice solution: The ability to throw a sketch over the wall into the studio. To avoid metaphors and keep things clear, I just call this “save for later.”</p>

<p><img src="/images/sketchpad_blog/save_for_later.png" alt="" title="save_for_later" /></p>

<p>When you click the link, you create an account, and a copy of your sketch (with a pointer back to the original) is added to your new sketchbook in the studio. Now others can see the sketch, they can see who created it, you can give it a name, and make it a part of the studio. I think this is a subtle but effective way to move from the great one-click-to-start sketch to the real action inside of the studio. If you <a href="https://sketchpad.cc/sp/pad/newsketch">try it out</a>, please let me know what you think.</p>

              </blockquote>
              <div>
                <img alt="Toss that sketch over the wall" src="/images/sketchpad_blog/save_for_later.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Forget UserVoice and GetSatisfaction. Send me your feature requests through YouTube</title>
        <link>https://aribadernatal.com/2011/02/10/listening-to-user-requests/</link>
        <pubDate>Thu, 10 Feb 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/02/10/listening-to-user-requests/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/02/listening-to-user-requests/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/02/listening-to-user-requests/
                </a>
              </div>
              <blockquote>
                <p><strong>Dennis Daniels is more effective than you are at getting his feature requests heard.</strong> Why? Because every one of his requests comes in the form of a screencast video uploaded to YouTube. He has, literally, <a href="https://www.youtube.com/user/pleabargain">thousands of them</a> online already, and he added seven to the count this week while looking at <a href="https://sketchpad.cc">Sketchpad</a> this week. I have to say, I have not seen a more effective way of requesting a new feature, suggesting a change, or demonstrating a bug. Each one the screencasts that Dennis recorded about Sketchpad has been both fun for me to watch – he appreciates many of the my favorite Sketchpad features – and difficult as well, as he struggles to find things that I built but didn’t make easy to discover. His screencasts are one part feature request and one part user testing session. For me, the guy who’s building the application, it’s a fascinating mix. Here are links to a few of them:</p>

<ul>
  <li><a href="https://www.youtube.com/watch?v=5F8oYjMCtGo">sketchpad studio UI force save revisions for rollback</a></li>
  <li><a href="https://www.youtube.com/watch?v=rF1GQmdUNLk">sketchpad UI request and plea for help</a></li>
  <li><a href="https://www.youtube.com/watch?v=q4SSd4nKcsc">create javascript exercises for Kahn Academy with processing </a></li>
  <li><a href="https://www.youtube.com/watch?v=yTlUwKAPwnU">Processing javascript open source and Kahn Academy</a></li>
  <li><a href="https://www.youtube.com/watch?v=WLUpuFOmvWA">Processing for Education and Kahn Academy</a></li>
  <li><a href="https://www.youtube.com/watch?v=rHAXwm-wPEE">Thanks to Marco Torchiano and his work!</a></li>
  <li><a href="https://www.youtube.com/watch?v=V68_wS5HW1k">openprocessing and sketchpad: good ideas in both</a></li>
</ul>

<p>I continue to receive great suggestions and feedback from people using Sketchpad through the <a href="http://sketchpad.uservoice.com/forums/51847-general">UserVoice</a> page that I set up (which is a very useful service!) I always respond to these as they come in, many have already turned into new features, and many more are on near-term to-do list. But Dennis’s videos are different. I can’t seem to put off these fixes and requests. It’s difficult to watch someone flail when trying to use something that you built. Test this out: record a screencast in which you struggle to accomplish something reasonable and useful in a web application, upload the screencast to YouTube, and email the video link to the application’s developer. Then start your watch. Count the hours before the problem is fixed, the existing feature is made more discoverable, or your must-have feature appears on their production boxes. If you send your email to the right person, I think that this will happen pretty quickly. I, for one, felt compelled to act after watching the videos. Wouldn’t you?</p>

<p>Next time I find myself wanting to request a feature on someone else’s web application, I’ll test this out. Perhaps I’ll do a video request for video requests on <a href="http://uservoice.com">UserVoice</a>. Or maybe I should record a feature request for recording feature requests on <a href="http://usertesting.com">UserTesting</a>.</p>

<p>Feeling inspired by the medium, I recorded a video response to one of Dennis’s feature requests. <a href="https://www.youtube.com/watch?v=5F8oYjMCtGo">His request</a> is the first video, and <a href="https://www.youtube.com/watch?v=6rcBOmVkNVQ&amp;feature=watch_response">my response</a> is the second. Enjoy!</p>

<iframe title="YouTube video player" width="640" height="390" style="border:1px solid #000000;" src="https://www.youtube.com/embed/5F8oYjMCtGo?rel=0&amp;hd=1" frameborder="0" allowfullscreen=""></iframe>

<iframe title="YouTube video player" width="640" height="390" style="border:1px solid #000000;" src="https://www.youtube.com/embed/6rcBOmVkNVQ?rel=0&amp;hd=1" frameborder="0" allowfullscreen=""></iframe>

<p>The sketch that I’m playing with in the video is <a href="https://studio.sketchpad.cc/sp/pad/view/ro.93DzrRzw3-CL8/rev.177">Modified clone of “Spinner”</a></p>

<script src="/public/js/fluidvids.min.js"></script>
<script>fluidvids.init({selector:['iframe','object'],players:['www.youtube.com','player.vimeo.com']});</script>


              </blockquote>
              <div>
                <img alt="Forget UserVoice and GetSatisfaction. Send me your feature requests through YouTube" src="https://sketchpad.s3.amazonaws.com/screenshots/studio/ro.93DzrRzw3-CL8.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Super Disco Sketchin' - It's all about the process</title>
        <link>https://aribadernatal.com/2011/01/27/disco/</link>
        <pubDate>Thu, 27 Jan 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/01/27/disco/</guid>

        
          <description>
            <![CDATA[
              <div>
                Originally posted to the Sketchpad blog at 
                <a href="https://blog.sketchpad.cc/2011/01/disco/" target="_blank" rel="noopener">
                  https://blog.sketchpad.cc/2011/01/disco/
                </a>
              </div>
              <blockquote>
                <p>Part of what I love about <a href="https://sketchpad.cc">Studio Sketchpad</a> is that it’s an environment for creating digital animation that is focused <em>primarily on process</em>, and only <em>secondarily on the product</em>. When you find yourself impressed by the final version of something that someone built on sketchpad, you’ve only really scratched the surface. Don’t believe me?</p>

<p>I fired up ScreenFlow and started stepping through the history of a sketch recently created by a few talented people working together. Check out the resulting video clip:</p>

<iframe width="640" height="390" style="border:1px solid #000000;" src="https://www.youtube.com/embed/4BKbxJmzIOE?rel=0&amp;hd=1" frameborder="0" allowfullscreen=""></iframe>

<p>Here’s the final sketch. Click through to <a href="https://sketchpad.cc/sp/pad/view/ro.X9z5IbEOTXA/rev.3525">view source code history of this sketch</a>.</p>

<p><a target="_blank" rel="noopener" href="https://sketchpad.cc/sp/pad/view/ro.X9z5IbEOTXA/rev.3525"><img src="https://sketchpad.s3.amazonaws.com/screenshots/public/ro.X9z5IbEOTXA.png" /></a></p>

<p>If you send me a link to some of your complex and interesting sketches, I may have to make another video.  Looking for a place to begin? Take a look through the <a href="https://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches">sketches featured in the Gallery</a>. Feel free to clone-and-remix anything that catches your interest, and take it from there.</p>

              </blockquote>
              <div>
                <img alt="Super Disco Sketchin' - It's all about the process" src="https://sketchpad.s3.amazonaws.com/screenshots/public/ro.X9z5IbEOTXA.png" />
              </div>
            ]]>
          </description>
        

      </item>
    
      <item>
        <title>Methodologies And Technologies</title>
        <link>https://aribadernatal.com/2011/01/01/methodologies-and-technologies/</link>
        <pubDate>Sat, 01 Jan 2011 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://aribadernatal.com/2011/01/01/methodologies-and-technologies/</guid>

        
           
            
           
            
           
            
           
            
           
            
           
            
           
            
              <description>
                <![CDATA[
                  <h2>
                    New publication:
                  </h2>
                  <div>
                    Bader-Natal, A. "Methodologies and Technologies of the Grockit Learning Platform". (Unpublished report.)
                  </div>
                  
                    <BR />
                    <div>
                      Access 
                       
                        | <A class="primary" HREF="/docs/grockit_2011_methodology_whitepaper.pdf">
                          Draft PDF
                        </A> 
                       
                    </div>
                  
                  
                    <br /><hr /><br />
                    Abstract: 
                    <blockquote>
                      <P>Grockit provides a place for students to master new concepts and exercise what they learn through a set of study modes designed to accommodate a variety of learning styles and learner preferences. These include: (1.) small group study, which leverages the power of collaborative learning dynamics to provide students with a social learning network that can help motivate and assist them, (2.) individual study, which builds and uses a data-driven model of a student's abilities to provide that student with appropriate challenges for learning, (3.) instructor-led classes, which draw on a teacher's domain knowledge and experience to provide a guided and structured path for groups of learners. </P>
                    </blockquote>
                  
                  
                ]]>
              </description>
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
           
            
             
        

      </item>
    

  </channel>
</rss>
  