<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>John Thorp</title><link>https://jnthorp.github.io/</link><atom:link href="https://jnthorp.github.io/index.xml" rel="self" type="application/rss+xml"/><description>John Thorp</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>https://jnthorp.github.io/media/icon_hu7032ec0ed3b220067d1822c52f98a335_44239_512x512_fill_lanczos_center_3.png</url><title>John Thorp</title><link>https://jnthorp.github.io/</link></image><item><title>Reflectify</title><link>https://jnthorp.github.io/project/reflectify/</link><pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/reflectify/</guid><description>&lt;p>Reflectify is an &lt;strong>AI-powered research tool&lt;/strong> that analyzes students&amp;rsquo; written reflections on their learning experiences to predict exam performance and provide personalized improvement strategies.&lt;/p>
&lt;p>Built using &lt;strong>natural language processing&lt;/strong>, &lt;strong>machine learning&lt;/strong>, and &lt;strong>SHAP explainable AI&lt;/strong>, Reflectify helps students understand which reflection strategies actually improve their academic outcomes.&lt;/p>
&lt;h2 id="-research-based-features">🔬 Research-Based Features&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Performance Prediction&lt;/strong>: Probabilistic exam improvement forecasting&lt;/li>
&lt;li>&lt;strong>Strategy Detection&lt;/strong>: Automatic identification of learning and reflection strategies&lt;/li>
&lt;li>&lt;strong>SHAP Explainability&lt;/strong>: Clear explanations of which features matter most&lt;/li>
&lt;li>&lt;strong>Personalized Feedback&lt;/strong>: GPT-4 powered recommendations tailored to individual reflections&lt;/li>
&lt;li>&lt;strong>Evidence-Based Guidance&lt;/strong>: Specific action steps based on educational research&lt;/li>
&lt;/ul>
&lt;h2 id="-educational-impact">📊 Educational Impact&lt;/h2>
&lt;p>This tool bridges the gap between &lt;strong>metacognitive theory&lt;/strong> and &lt;strong>practical application&lt;/strong>, helping students develop more effective reflection practices through data-driven insights.&lt;/p></description></item><item><title>prediction and inference across scales of granularity</title><link>https://jnthorp.github.io/talk/prediction-and-inference-across-scales-of-granularity/</link><pubDate>Tue, 30 Jan 2024 13:00:00 +0000</pubDate><guid>https://jnthorp.github.io/talk/prediction-and-inference-across-scales-of-granularity/</guid><description>&lt;div class="alert alert-note">
&lt;div>
Click on the &lt;strong>Slides&lt;/strong> button above to view the built-in slides feature.
&lt;/div>
&lt;/div>
&lt;!-- Slides can be added in a few ways:
- **Create** slides using Hugo Blox Builder's [_Slides_](https://docs.hugoblox.com/reference/content-types/) feature and link using `slides` parameter in the front matter of the talk file
- **Upload** an existing slide deck to `static/` and link using `url_slides` parameter in the front matter of the talk file
- **Embed** your slides (e.g. Google Slides) or presentation video on this page using [shortcodes](https://docs.hugoblox.com/reference/markdown/).
Further event details, including [page elements](https://docs.hugoblox.com/reference/markdown/) such as image galleries, can be added to the body of this page. --></description></item><item><title>Blog with Jupyter Notebooks!</title><link>https://jnthorp.github.io/post/blog-with-jupyter/</link><pubDate>Sat, 04 Nov 2023 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/post/blog-with-jupyter/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">IPython.core.display&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Image&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="png" srcset="
/post/blog-with-jupyter/output_1_0_hu1e42f419f47ffd4b1ca9ef8f6670390a_11155_cdb6e311e2a1735dbf10e762428f706e.webp 400w,
/post/blog-with-jupyter/output_1_0_hu1e42f419f47ffd4b1ca9ef8f6670390a_11155_fc9bbb87927669af314bc8ac65d9d90e.webp 760w,
/post/blog-with-jupyter/output_1_0_hu1e42f419f47ffd4b1ca9ef8f6670390a_11155_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://jnthorp.github.io/post/blog-with-jupyter/output_1_0_hu1e42f419f47ffd4b1ca9ef8f6670390a_11155_cdb6e311e2a1735dbf10e762428f706e.webp"
width="601"
height="203"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Welcome to Academic!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>Welcome to Academic!
&lt;/code>&lt;/pre>
&lt;h2 id="organize-your-notebooks">Organize your notebooks&lt;/h2>
&lt;p>Place the notebooks that you would like to publish in a &lt;code>notebooks&lt;/code> folder at the root of your website.&lt;/p>
&lt;h2 id="import-the-notebooks-into-your-site">Import the notebooks into your site&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pipx install academic
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">academic import &lt;span class="s1">&amp;#39;notebooks/**.ipynb&amp;#39;&lt;/span> content/post/ --verbose
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The notebooks will be published to the folder you specify above. In this case, they will be published to your &lt;code>content/post/&lt;/code> folder.&lt;/p></description></item><item><title>dopaminergic modulation of replay-mediated memory updating</title><link>https://jnthorp.github.io/project/reconsolidation/</link><pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/reconsolidation/</guid><description>&lt;p>Our understanding of when and how memories update is a burgeoning area of research. Prior work has shown that partial reminders open up a window in which memories can be modified. Recent neuroimaging work has provided evidence that hippocampal univariate activity after these reminders relates to the extent to which memories are updated. We were interested in whether and how partial reminders facilitate reconsolidation by examining neural processes associated with memory consolidation. To this end, we examined post-reminder memory replay as well as functional connectivity with the dopaminergic ventral tegmental area during rest. Replay was examined locally in the hippocampus as well as across the default-mode network, separated into the medial-prefrontal network, the anterior-lateral network, and the posterior-medial network. We found that the frequency of replay events for interrupted videos was generally significantly enhanced compared to uninterrupted, or full, videos across both the hippocampus and cortical networks. Functional connectivity with the VTA modulated this effect across the cortical networks, and particularly strongly in the posterior-medial network. In this region, resting functional connectivity with the VTA significantly increased the effect of replay on memory updating specifically for the interrupted videos. That is, replay under conditions of low VTA connectivity were better stabilized and left with fewer errors, while replay under conditions of high VTA connectivity were more strongly updated and left with a greater number of errors. To further specify the nature of the errors explored here, a secondary analysis showed a very similar relationship between the proximity with which two stories were replayed and the similarity with which they were subsequently recalled, as measured by semantic embedding vectors. Specifically, that proximal replay within the posterior-medial network under conditions of low VTA connectivity led to semantic differentiation, while proximal replay under conditions of high VTA connectivity led to semantic integration. This work therefore shows, for the first time, that the role of replay in reconsolidation is dependent on dopaminergic signals, long known to signal learning events and induce learning-related plasticity across the cortex.&lt;/p></description></item><item><title>inference guides retroactive effects of arousal on memory</title><link>https://jnthorp.github.io/project/tgif/</link><pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/tgif/</guid><description>&lt;p>Aversive category conditioning has been shown to retroactively increase recognition of related items through arousal-mediated reactivation. Schemas and incongruent, one-shot associations have also been shown to mediate reactivation, though in separate paradigms and through disparate neural pathways. Here, we design two experiments to test the relationship between the contingency structure of aversive learning and retroactive memory enhancements. Both experiments consist of a preconditioning phase in which participants view items congruent and incongruent with scenes belonging to two separate real-world schemas. Experiment 1 then associates an entire schema with aversive shock, with participants showing improved recognition for previously-encountered congruent, but not incongruent, items. Experiment 2 associates a schema with shock while maintaining one scene as safe, which leads to participants showing improved high-confidence recognition for all previously-encountered items, both congruent and incongruent. Individual differences in how strongly participants generalize shock expectancy ratings across the entire schema – that is, whether they infer the individual scenes or the schema broadly to be the source of the aversion – were then correlated with the memory effects from Experiment 1.&lt;/p></description></item><item><title>teaching observation fellowship</title><link>https://jnthorp.github.io/project/tof/</link><pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/tof/</guid><description>&lt;p>The teaching observation fellowship is an opportunity for graduate students to observe other teachers across the university as well as be observed teaching themselves. Through this program, I was given thorough feedback on my teaching strategies and classroom dynamics. Observers ran focus groups with my students to collect anonymous feedback on their experiences and I was directly observed teaching on multiple occassions. Below is a reflection on my experiences in the program.&lt;/p>
&lt;h2 id="development-as-a-teacher-this-year">Development as a teacher this year&lt;/h2>
&lt;p>One thing I really wanted to build over this year of teaching was making the preparation more efficient and myself more fluent in the actual teaching process. In previous years, my preparation for a simple discussion or lab section was taking more time than it should have, be it in preparing the visual materials, questions and activities, my verbal lecture, etc. Part of this preparation was then spent (over)thinking where to stand in the classroom, how to behave around students, and the other kinds of skills that simply aren’t present yet without more experience in the classroom.&lt;/p>
&lt;p>Both of these aspects felt a lot more natural by the end of this year. My preparation for discussion and lab sections felt much more efficient, such that I was able to feel prepared on a much more reasonable time budget. Much of this was due to my increased fluency and comfort within the classroom, such that moments that may have felt stilted or forced in previous years felt more natural and comfortable. I really think I was able to create an environment of camaraderie and community in my classroom that was centered around the student experience, and I think a lot of this was due to my firmer identity as a teacher this year. This sense of identity directly arose from the fluency and skills I’d developed as a teacher.&lt;/p>
&lt;h2 id="how-this-program-contributed-to-this-development">How this program contributed to this development&lt;/h2>
&lt;p>Nothing had a greater impact on this fluency than the TOF program. For the first time, I knew I’d be observed teaching my own classes in front of others who cared about teaching themselves, which pushed me in a way that no other system at the university has. This was also my first opportunity to dedicate time towards thinking and reflecting on the act of teaching generally, not simply my own specific material or activities. This holistic view brought with it the instincts of teaching that would be the backbone of a fluent teaching style, an eye for visual materials, and an intuition for roadmap and structure that wouldn’t require top-down effort.&lt;/p>
&lt;p>The system of reflection and observation was also absolutely imperative to reframing and reattributing causes from the teaching episode, which I take to be a primary feature of the CTL reflections. In other words, what may have seemed to be an ambiguous network of events – why didn’t that activity work, why did that question get derailed, were my slides clear ­­– could often only be clarified and properly understood after reflection on and reappraisal of the myriad causes at play.&lt;/p>
&lt;h2 id="challenges-and-lessons-learned-in-the-program-this-year">Challenges and lessons learned in the program this year&lt;/h2>
&lt;p>It felt like a serious challenge for me to provide meaningful feedback to the instructors during the debrief sessions. The people I was observing were all committed pedagogues dedicated to centering students, structuring a class around a clear roadmap, using space in an engaging way, etc. So, during debriefs, I often felt much more comfortable bringing up things they had brought up having trouble with, or just decisions I had noticed they made (using lots of devices, standing in a particular place, building slides around certain aesthetics) and asking about the motivations that went into those decisions from a relatively open-ended and valence neutral way. In a capacity where I’m observing instructors who have requested to be observed, I would imagine there’s more basic issues to address that have certain clear answers. In the current context, though, I felt much more comfortable coming from a place of open-ended curiosity that would give instructors a moment to reflect on their decisions and why things might be the way they were.&lt;/p>
&lt;h2 id="building-on-strengths-in-teaching">Building on strengths in teaching&lt;/h2>
&lt;p>My enthusiasm for the roadmap was invigorated over the course of the year, and if there’s anything I want to focus on making more central to my teaching style it is the roadmap and the returns of the roadmap. By the end of my tenure in the TOF program, there was no advice I was giving more often than to bring the roadmap back after every break or opportunity. Earlier in my career, I had a tendency to lean more towards open-ended narrative that was less heavy-handed. When practicing being a student in the classrooms I’ve observed, though, I was reminded just how confusing and clueless one can feel at the other end of the classroom, and more than anything wanted to be overtly oriented more often.&lt;/p>
&lt;h2 id="advice-to-future-tofs">Advice to future TOFs&lt;/h2>
&lt;p>One piece of advice to future TOFs would be to coordinate teaching in both semesters, which I probably could have done for the program and would have made the semester I didn’t teach a bit easier. I loved observing the rest of my pod a few times, but from a purely developmental standpoint it would have made sense to keep practicing teaching throughout the whole year.&lt;/p></description></item><item><title>Context-mediated retroactive memory effects</title><link>https://jnthorp.github.io/publication/thorp-2023-context/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/publication/thorp-2023-context/</guid><description/></item><item><title>contextual stability as a continuous moderator of event segmentation</title><link>https://jnthorp.github.io/project/timewarp/</link><pubDate>Sat, 31 Dec 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/timewarp/</guid><description>&lt;p>Our senses receive a constant stream of information, with one moment leading continuously to the next. Afterwards, however, we remember our experiences as discrete events. These events are thought to be typically organized around stable contexts, with context often consisting of an unchanging goal or physical location. Studies of the individual differences in this segmentation process have contributed insights into basic cognition and mapped novel clinical markers. For instance, the ability to normatively detect the boundaries between these events is weakened across such wide-reaching disorders as Alzheimer’s disorder, schizophrenia, autism-spectrum disorder, and even during healthy aging. While the hippocampus is known to hold a critical role in event segmentation broadly, current functional models have yet to be extended to its role in event segmentation. A major limitation of the existing literature to parse these individual differences and neural functional models, however, is that it has treated event boundaries as binary occurrences. Theoretical accounts hold that more stable contexts should lead to stronger event boundaries, and that the ability to gradate these event boundaries ought to rely on mechanisms of cognitive control. Critically, these claims have yet be tested. This ommission leaves sources of variance that, in tandem with cognitive control functions, may provide meaningful clinical markers as well as provide theoretical insight.&lt;/p>
&lt;p>To test this, I built a paradigm that modulates the stability of a context as a continuous function rather than a binary occurence. This allowed me to test how individuals&amp;rsquo; event segmentation behaviors evolved over a continuous range of contextual stability, and particularly how these developed non-linearly and differently from each other. I found that the difference in participants&amp;rsquo; memory for boundary and non-boundary item-color memory (a standard measure of event segmentation) increased non-linearly as contexts became more stable and that participants did this very differently, with some increasing very smoothly and others increasing suddenly at an inflection point. Future work will tie these behaviors to existing clinical markers and cognitive control measures known to covary with clinical outcomes. fMRI studies can then examine how univariate signals evolve across the body of the hippocampus as well as how multivariate signals in the lateral entorhinal cortex process temporal context at different levels of contextual stability.&lt;/p></description></item><item><title>eeg markers of mind-wandering in the real-world classroom</title><link>https://jnthorp.github.io/project/spagna/</link><pubDate>Sun, 31 Jul 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/spagna/</guid><description>&lt;p>Paper coming soon!&lt;/p></description></item><item><title>lead teaching fellowship</title><link>https://jnthorp.github.io/project/ltf/</link><pubDate>Tue, 31 May 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/ltf/</guid><description>&lt;p>The lead teaching fellowship is an opportunity for current PhD students to lead pedagogical workshops and make resources from the Center for Teaching and Learning available to their home department. In the 2021-2022 year, my workshops focused on lessons learned from online teaching and a survey of approaches to ungrading. Below is a reflection handed back to the CTL that summarizes the work and lessons learned over that year&lt;/p>
&lt;h2 id="what-goals-did-you-have-for-your-ltf-role-what-progress-did-you-make-toward-these-goals-what-challenges-did-you-encounter-how-might-these-experiences-translate-more-broadly">What goals did you have for your LTF role? What progress did you make toward these goals? What challenges did you encounter? How might these experiences translate more broadly?&lt;/h2>
&lt;p>A major goal I had for myself as an LTF was to continue to bring the graduate students within the Psychology department together in a meaningful way. I know I’m a better teacher when I have a strong support system of other teachers, and I was set up in a departmental administrative role to put together the kinds of events that might strengthen that network. This was relatively easy to work towards, it mostly relied on sending out some very comprehensive emails at the beginning of each semester making clear I could be a point person for any departmental or pedagogical needs, and then coordinating between students and the various staff to make sure we had time and space to meet up. I tried to make an opportunity for us all to see each other every two weeks – especially once it was warm and we could use departmental money to meet indoors.&lt;/p>
&lt;p>The greatest challenge was in properly motivating people to get together. Weirdly – and I don’t know how generalizable this is – my biggest success in this domain was by hosting a methods workshop in Amity Hall in which we were all at a table and someone was presenting on the TV above the table, and then at the end of the workshop people just stayed in the bar and all caught up. Other events that were mostly post-talk receptions where people left from the talk and went to a separate locale – typically well attended – were far less popular. I really think there’s something about hijacking people’s training goals to get them to actually hang out with each other.&lt;/p>
&lt;p>It’s that kind of insight that makes the LTF probably the most useful role I’ve been in for gaining skills useful to any professional context. Motivating dispersed groups of people, uniting them around a common narrative, and creating the space for genuine interactions is critical to any form of leadership.&lt;/p>
&lt;h2 id="what-did-you-learn-about-modeling-or-leading-as-a-result-of-facilitating-your-ltf-events-or-resource">What did you learn about modeling or leading as a result of facilitating your LTF events (or resource)?&lt;/h2>
&lt;p>I think probably what I learned most was how critical “putting in the work” is to both leading and modeling. That sounds very simple, but there’s so much about teaching that feels just about energy and tone and instincts that it’s easy to pass over how much of our pedagogical practices rely on being actively steeped in the method, literature, and practice. For my second LTF event on ungrading, this was obviously apparent during the portion that was mostly literature review I had done in preparation, but it was just as much true that I would not have had the instincts for leading any discussion on the topics had I not done the thorough literature review myself.&lt;/p>
&lt;h2 id="please-describe-a-resource-that-was-helpful-to-you-this-year-as-you-developed-your-ltf-events-or-online-resource">Please describe a resource that was helpful to you this year as you developed your LTF events (or online resource).&lt;/h2>
&lt;p>Having Ana DiGiovanni as a co-LTF was incredibly meaningful. From reading previous reports from the departmental LTFs, it seems the hardest part of this job was doing it alone. Having another LTF in the department felt like the interest in pedagogy was distributed, and all the more cultural rather than personal. I hope the department keeps the budget for it. It makes things easier on the individual LTFs as much as it tangibly demonstrates to the rest of the department just how committed we are and ought to be to the practice.&lt;/p>
&lt;p>Lucy Wang, my SLTF, has been a bottomless and effervescent resource during my time, and has made herself available and made sure I was connected with my fellow LTFs in a way that really connected me with the role. Her and Emily Fitzgerald’s learning community was also incredibly impactful on my ungrading event as well as my line of research generally!&lt;/p>
&lt;p>The last resource that was indispensable was the archive of LTF documentation. It was absolutely fundamental to how I contextualized myself within the LTF role and in regard to the other graduate students. It is a brilliant resource that provided me countless ideas and tangible materials.&lt;/p>
&lt;h2 id="if-you-were-planning-a-third-ltf-event-or-resource-what-might-that-event-be-and-is-there-something-in-particular-you-would-do-differently">If you were planning a third LTF event or resource, what might that event be, and is there something in particular you would do differently?&lt;/h2>
&lt;p>I was so inspired by Lucy and Emily’s learning community I would have a hard time not making a third LTF event about embodied knowledge! There were so many critical insights as to what exactly it was we all missed over Zoom and how we relate to our materials and each other that were so fun to pick apart together. It really resonated with my ungrading LTF event about how we can be so encouraged to consider one another and the objects of our study as abstractions of themselves, whose physical properties and phenomenological experiences are overwritable, exchangeable, and ultimately irrelevant.&lt;/p>
&lt;p>Thinking about teaching programming, particularly, as teaching a craft is a really valuable insight. It resonates with earlier language classes I’ve had where the structural syntax and rules reign supreme over the meaning of the actual words or what they’re supposed to sound like to the ear. In a similar way, we too often think functions and syntax are all the students need, rather than the actual lived experience of understanding why things go where they go, trying things, having them not work, and overall building an interactive system that models how one might fix a bike or pot a plant or make dumplings. Brain research is beginning to show that supervised learning – the process of backpropagating errors onto the network that made the error – is enacted by the cerebellum, the area responsible for fine motor control. All to say that treating our material as a craft to be learned ought to enact those same areas that develop learning in a much more naturalistic way.&lt;/p>
&lt;h2 id="what-goals-guided-your-liaison-work-what-are-some-highlights-you-can-share-from-your-liaison-activities">What goals guided your liaison work? What are some highlights you can share from your liaison activities?&lt;/h2>
&lt;p>My primary goal was creating space for graduate students to connect after the pandemic. I knew I was in a relatively special position being an LTF with a departmental role that gave me access to some funds allocated for graduate students to use however we wished. Most of my liaison work was therefore spent towards organizing these relatively informal events, which almost invariably centered around teaching in the department.&lt;/p>
&lt;p>Ana and I did manage to get some meetings with directors of undergraduate studies within the department to try to work out how graduate students could more readily become instructors of record on courses they wanted to teach. We compiled a list and are readying an open resource for future graduate students on what options there are and how to navigate them. Because there aren’t many strictly through Columbia undergraduate classes, it was all the more crucial to centralize and document opportunities in the surrounding area at secondary and other undergraduate institutions.&lt;/p>
&lt;h2 id="how-do-you-think-your-ltf-events-andor-liaising-may-have-impacted-the-teaching-related-conversations-culture-andor-training-in-your-home-department">How do you think your LTF events and/or liaising may have impacted the teaching-related conversations, culture, and/or training in your home department?&lt;/h2>
&lt;p>I think my LTF events acted as a scaffold for a lot of the discourse I saw happen at the informal events throughout the year. In the way that Greek dramas made explicit the moral standards of society in a way that structured individual relationships, the LTF events made explicit what the goals and means of teaching were in the department in a way that structured ongoing informal interactions. Everything we covered about empathy, self-care, and teacher-student relationships set a standard of what the graduate student body was generally invested in that I felt reverberated through the community.&lt;/p>
&lt;h2 id="what-advice-would-you-impart-to-an-incoming-ltf-in-your-department">What advice would you impart to an incoming LTF in your department?&lt;/h2>
&lt;p>My advice would then be to make sure those casual events and interactions keep happening. This department is full of students who will take on seemingly endless amounts of noble work that makes our department, university, and city a better place – very few of them will spontaneously put their feet up and spend time with each other. A year and however many months of Zoom has only fed into that instinct, with every interaction taking on the appearance and feeling of a business meeting rather than an interpersonal exchange. The thing about teaching is that it often happens best in moments that feel more like the latter, and leading people towards those moments means modeling that kind of behavior and creating the space for them to happen.&lt;/p>
&lt;p>Another initiative that is gaining traction within the department is unofficially documenting processes and opportunities. These have been as simple as which appointments to register for, how to get access to the computing cluster, or what teaching opportunities lie outside Columbia. Up to now the process was that a generation of students might learn things like this, utilize it, never share it, and forget about it, leaving it up to the next generation of students to figure it all out again. Centralizing and sharing this information has been critical to the department feeling unified and progressing. The CTL figured this out early on with its documentation procedures, but it’s just as relevant to the life of the department. The LTF offers a unique position to document the resources and procedures as they relate to teaching, which have never been officially codified by the department to the same degree that, say, grant writing or research procedures have been.&lt;/p>
&lt;h2 id="2021-22-liaising">2021-22 liaising&lt;/h2>
&lt;h3 id="september">September:&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Sent introductory email to department introducing Ana and I as the department lead teaching fellows&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Represented the CTL at graduate student orientation, specifically promoting the teaching development program&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="october">October:&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Held two graduate student receptions where Ana and I promoted our LTF events to the gathered graduate students&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Attended Ana DiGiovanni&amp;rsquo;s LTF event that acts as a &amp;ldquo;Part 1&amp;rdquo; to my &amp;ldquo;Part 2&amp;rdquo;&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Promoted my event through department-wide emails and individual solicitations.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Held my &amp;ldquo;Part 2&amp;rdquo; LTF event&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="november">November:&lt;/h3>
&lt;ul>
&lt;li>Mediated between departmental faculty and staff to allow graduate workers and TAs to gather using our allocated departmental funds.&lt;/li>
&lt;/ul>
&lt;h3 id="january">January:&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Reached out to the department to collect graduate student teaching needs that could be addressed in upcoming LTF events&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Coordinated with the Directors of Academic Affairs &amp;amp; Undergraduate Studies about how to increase Instructor-of-Record opportunities for graduate students.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="february">February:&lt;/h3>
&lt;ul>
&lt;li>Coordinated and executed a number of informal meet-ups with graduate students to talk about personal and departmental needs, typically mostly to do with teaching.&lt;/li>
&lt;/ul>
&lt;h3 id="march">March:&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Drummed up support and attendance for my and Ana&amp;rsquo;s LTF events through various emails, slack messages, and in-person reminders.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Held a department-funded reception for the incoming graduate students that also acted as a debriefer for our LTF events&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="april">April:&lt;/h3>
&lt;ul>
&lt;li>Held two more department-funded graduate receptions where students could informally discuss about personal and departmental needs in relation to teaching&lt;/li>
&lt;/ul></description></item><item><title>representational granularity across the hippocampus</title><link>https://jnthorp.github.io/project/granularity/</link><pubDate>Tue, 31 May 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/granularity/</guid><description>&lt;p>A particularly elusive puzzle concerning the hippocampus is how the structural differences along its long anteroposterior axis might beget meaningful functional differences, particularly in terms of the granularity of information processing. One measure posits to quantify this granularity by calculating the average statistical independence of the BOLD signal across neighboring voxels, or intervoxel similarity (IVS), and has shown the anterior hippocampus to process coarser-grained information than the posterior hippocampus. This measure, however, has yielded opposing results in studies of developmental and healthy aging samples, which also varied in fMRI acquisition parameters and hippocampal parcellation methods. To reconcile these findings, we measured IVS across two separate resting-state fMRI acquisitions and compared the results across many of the most widely used parcellation methods in a large young-adult sample of male and female humans (Acquisition 1, N = 233; Acquisition 2, N = 176). Finding conflicting results across acquisitions and parcellations, we reasoned that a data-driven approach to hippocampal parcellation is necessary. To this end, we implemented a group masked independent components analysis to identify functional subunits of the hippocampus, most notably separating the anterior hippocampus into separate anterior-medial, anterior-lateral, and posteroanterior-lateral components. Measuring IVS across these components revealed a decrease in IVS along the medial-lateral axis of the anterior hippocampus but an increase from anterior to posterior. We conclude that intervoxel similarity is deeply affected by parcellation and that grounding one&amp;rsquo;s parcellation in a functionally informed approach might allow for a more complex and reliable characterization of the hippocampus.&lt;/p></description></item><item><title>quantifying bias in assessments of medical students</title><link>https://jnthorp.github.io/project/bias/</link><pubDate>Mon, 31 Jan 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/bias/</guid><description>&lt;p>Paper coming soon!&lt;/p></description></item><item><title>Data-driven clustering of functional signals reveals gradients in processing both within the anterior hippocampus and across its long axis</title><link>https://jnthorp.github.io/publication/thorp-2022-data/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/publication/thorp-2022-data/</guid><description/></item><item><title>Studying the Link between Attention and Reward-learning: Implications for Attentional Exploration and Attentional Exploitation Theory.</title><link>https://jnthorp.github.io/publication/masha-2021-studying/</link><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/publication/masha-2021-studying/</guid><description/></item><item><title>Welcome to Hugo Blox Builder, the website builder for Hugo</title><link>https://jnthorp.github.io/post/getting-started/</link><pubDate>Sun, 13 Dec 2020 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/post/getting-started/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">libr&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;hello&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="overview">Overview&lt;/h2>
&lt;ol>
&lt;li>The Wowchemy website builder for Hugo, along with its starter templates, is designed for professional creators, educators, and teams/organizations - although it can be used to create any kind of site&lt;/li>
&lt;li>The template can be modified and customised to suit your needs. It&amp;rsquo;s a good platform for anyone looking to take control of their data and online identity whilst having the convenience to start off with a &lt;strong>no-code solution (write in Markdown and customize with YAML parameters)&lt;/strong> and having &lt;strong>flexibility to later add even deeper personalization with HTML and CSS&lt;/strong>&lt;/li>
&lt;li>You can work with all your favourite tools and apps with hundreds of plugins and integrations to speed up your workflows, interact with your readers, and much more&lt;/li>
&lt;/ol>
&lt;p>&lt;a href="https://hugoblox.com" target="_blank" rel="noopener">
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://raw.githubusercontent.com/wowchemy/wowchemy-hugo-modules/main/starters/academic/preview.png" alt="The template is mobile first with a responsive design to ensure that your site looks stunning on every device." loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/a>&lt;/p>
&lt;h2 id="get-started">Get Started&lt;/h2>
&lt;ul>
&lt;li>👉 &lt;a href="https://hugoblox.com/templates/" target="_blank" rel="noopener">&lt;strong>Create a new site&lt;/strong>&lt;/a>&lt;/li>
&lt;li>📚 &lt;a href="https://docs.hugoblox.com/" target="_blank" rel="noopener">&lt;strong>Personalize your site&lt;/strong>&lt;/a>&lt;/li>
&lt;li>💬 &lt;a href="https://discord.gg/z8wNYzb" target="_blank" rel="noopener">Chat with the &lt;strong>Wowchemy community&lt;/strong>&lt;/a> or &lt;a href="https://discourse.gohugo.io" target="_blank" rel="noopener">&lt;strong>Hugo community&lt;/strong>&lt;/a>&lt;/li>
&lt;li>🐦 Twitter: &lt;a href="https://twitter.com/wowchemy" target="_blank" rel="noopener">@wowchemy&lt;/a> &lt;a href="https://twitter.com/GeorgeCushen" target="_blank" rel="noopener">@GeorgeCushen&lt;/a> &lt;a href="https://twitter.com/search?q=%23MadeWithWowchemy&amp;amp;src=typed_query" target="_blank" rel="noopener">#MadeWithWowchemy&lt;/a>&lt;/li>
&lt;li>💡 &lt;a href="https://github.com/HugoBlox/hugo-blox-builder/issues" target="_blank" rel="noopener">Request a &lt;strong>feature&lt;/strong> or report a &lt;strong>bug&lt;/strong> for &lt;em>Wowchemy&lt;/em>&lt;/a>&lt;/li>
&lt;li>⬆️ &lt;strong>Updating Wowchemy?&lt;/strong> View the &lt;a href="https://docs.hugoblox.com/hugo-tutorials/update/" target="_blank" rel="noopener">Update Tutorial&lt;/a> and &lt;a href="https://hugoblox.com/updates/" target="_blank" rel="noopener">Release Notes&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="crowd-funded-open-source-software">Crowd-funded open-source software&lt;/h2>
&lt;p>To help us develop this template and software sustainably under the MIT license, we ask all individuals and businesses that use it to help support its ongoing maintenance and development via sponsorship.&lt;/p>
&lt;h3 id="-click-here-to-become-a-sponsor-and-help-support-wowchemys-future-httpshugobloxcomsponsor">&lt;a href="https://hugoblox.com/sponsor/" target="_blank" rel="noopener">❤️ Click here to become a sponsor and help support Wowchemy&amp;rsquo;s future ❤️&lt;/a>&lt;/h3>
&lt;p>As a token of appreciation for sponsoring, you can &lt;strong>unlock &lt;a href="https://hugoblox.com/sponsor/" target="_blank" rel="noopener">these&lt;/a> awesome rewards and extra features 🦄✨&lt;/strong>&lt;/p>
&lt;h2 id="ecosystem">Ecosystem&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://github.com/GetRD/academic-file-converter" target="_blank" rel="noopener">Hugo Academic CLI&lt;/a>:&lt;/strong> Automatically import publications from BibTeX&lt;/li>
&lt;/ul>
&lt;h2 id="inspiration">Inspiration&lt;/h2>
&lt;p>&lt;a href="https://academic-demo.netlify.com/" target="_blank" rel="noopener">Check out the latest &lt;strong>demo&lt;/strong>&lt;/a> of what you&amp;rsquo;ll get in less than 10 minutes, or &lt;a href="https://hugoblox.com/user-stories/" target="_blank" rel="noopener">view the &lt;strong>showcase&lt;/strong>&lt;/a> of personal, project, and business sites.&lt;/p>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Page builder&lt;/strong> - Create &lt;em>anything&lt;/em> with &lt;a href="https://docs.hugoblox.com/page-builder/" target="_blank" rel="noopener">&lt;strong>widgets&lt;/strong>&lt;/a> and &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/" target="_blank" rel="noopener">&lt;strong>elements&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Edit any type of content&lt;/strong> - Blog posts, publications, talks, slides, projects, and more!&lt;/li>
&lt;li>&lt;strong>Create content&lt;/strong> in &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/" target="_blank" rel="noopener">&lt;strong>Markdown&lt;/strong>&lt;/a>, &lt;a href="https://docs.hugoblox.com/import/jupyter/" target="_blank" rel="noopener">&lt;strong>Jupyter&lt;/strong>&lt;/a>, or &lt;a href="https://docs.hugoblox.com/install-locally/" target="_blank" rel="noopener">&lt;strong>RStudio&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Plugin System&lt;/strong> - Fully customizable &lt;a href="https://docs.hugoblox.com/customization/" target="_blank" rel="noopener">&lt;strong>color&lt;/strong> and &lt;strong>font themes&lt;/strong>&lt;/a>&lt;/li>
&lt;li>&lt;strong>Display Code and Math&lt;/strong> - Code highlighting and &lt;a href="https://en.wikibooks.org/wiki/LaTeX/Mathematics" target="_blank" rel="noopener">LaTeX math&lt;/a> supported&lt;/li>
&lt;li>&lt;strong>Integrations&lt;/strong> - &lt;a href="https://analytics.google.com" target="_blank" rel="noopener">Google Analytics&lt;/a>, &lt;a href="https://disqus.com" target="_blank" rel="noopener">Disqus commenting&lt;/a>, Maps, Contact Forms, and more!&lt;/li>
&lt;li>&lt;strong>Beautiful Site&lt;/strong> - Simple and refreshing one page design&lt;/li>
&lt;li>&lt;strong>Industry-Leading SEO&lt;/strong> - Help get your website found on search engines and social media&lt;/li>
&lt;li>&lt;strong>Media Galleries&lt;/strong> - Display your images and videos with captions in a customizable gallery&lt;/li>
&lt;li>&lt;strong>Mobile Friendly&lt;/strong> - Look amazing on every screen with a mobile friendly version of your site&lt;/li>
&lt;li>&lt;strong>Multi-language&lt;/strong> - 34+ language packs including English, 中文, and Português&lt;/li>
&lt;li>&lt;strong>Multi-user&lt;/strong> - Each author gets their own profile page&lt;/li>
&lt;li>&lt;strong>Privacy Pack&lt;/strong> - Assists with GDPR&lt;/li>
&lt;li>&lt;strong>Stand Out&lt;/strong> - Bring your site to life with animation, parallax backgrounds, and scroll effects&lt;/li>
&lt;li>&lt;strong>One-Click Deployment&lt;/strong> - No servers. No databases. Only files.&lt;/li>
&lt;/ul>
&lt;h2 id="themes">Themes&lt;/h2>
&lt;p>Wowchemy and its templates come with &lt;strong>automatic day (light) and night (dark) mode&lt;/strong> built-in. Alternatively, visitors can choose their preferred mode - click the moon icon in the top right of the &lt;a href="https://academic-demo.netlify.com/" target="_blank" rel="noopener">Demo&lt;/a> to see it in action! Day/night mode can also be disabled by the site admin in &lt;code>params.toml&lt;/code>.&lt;/p>
&lt;p>&lt;a href="https://docs.hugoblox.com/customization" target="_blank" rel="noopener">Choose a stunning &lt;strong>theme&lt;/strong> and &lt;strong>font&lt;/strong>&lt;/a> for your site. Themes are fully customizable.&lt;/p>
&lt;h2 id="license">License&lt;/h2>
&lt;p>Copyright 2016-present &lt;a href="https://georgecushen.com" target="_blank" rel="noopener">George Cushen&lt;/a>.&lt;/p>
&lt;p>Released under the &lt;a href="https://github.com/HugoBlox/hugo-blox-builder/blob/master/LICENSE.md" target="_blank" rel="noopener">MIT&lt;/a> license.&lt;/p></description></item><item><title>Two routes to incidental memory under arousal: dopamine and norepinephrine</title><link>https://jnthorp.github.io/publication/thorp-2020-two/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/publication/thorp-2020-two/</guid><description/></item><item><title>Variability in the analysis of a single neuroimaging dataset by many teams</title><link>https://jnthorp.github.io/publication/botvinik-2020-variability/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/publication/botvinik-2020-variability/</guid><description/></item><item><title>Writing technical content in Markdown</title><link>https://jnthorp.github.io/post/writing-technical-content/</link><pubDate>Fri, 12 Jul 2019 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/post/writing-technical-content/</guid><description>&lt;p>Hugo Blox Builder is designed to give technical content creators a seamless experience. You can focus on the content and Wowchemy handles the rest.&lt;/p>
&lt;p>&lt;strong>Highlight your code snippets, take notes on math classes, and draw diagrams from textual representation.&lt;/strong>&lt;/p>
&lt;p>On this page, you&amp;rsquo;ll find some examples of the types of technical content that can be rendered with Wowchemy.&lt;/p>
&lt;h2 id="examples">Examples&lt;/h2>
&lt;h3 id="code">Code&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for highlighting code syntax. You can customize the styles under the &lt;code>syntax_highlighter&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;pre>&lt;code>```python
import pandas as pd
data = pd.read_csv(&amp;quot;data.csv&amp;quot;)
data.head()
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read_csv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;data.csv&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">head&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="mindmaps">Mindmaps&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for mindmaps.&lt;/p>
&lt;p>Simply insert a Markdown &lt;code>markmap&lt;/code> code block and optionally set the height of the mindmap as shown in the example below.&lt;/p>
&lt;p>A simple mindmap defined as a Markdown list:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap {height="200px"}
- Hugo Modules
- wowchemy
- blox-plugins-netlify
- blox-plugins-netlify-cms
- blox-plugins-reveal
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 200px;">
&lt;pre>- Hugo Modules
- wowchemy
- blox-plugins-netlify
- blox-plugins-netlify-cms
- blox-plugins-reveal&lt;/pre>
&lt;/div>
&lt;p>A more advanced mindmap with formatting, code blocks, and math:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap
- Mindmaps
- Links
- [Wowchemy Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/hugo-blox-builder)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 500px;">
&lt;pre>- Mindmaps
- Links
- [Wowchemy Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/hugo-blox-builder)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$&lt;/pre>
&lt;/div>
&lt;h3 id="charts">Charts&lt;/h3>
&lt;p>Wowchemy supports the popular &lt;a href="https://plot.ly/" target="_blank" rel="noopener">Plotly&lt;/a> format for interactive charts.&lt;/p>
&lt;p>Save your Plotly JSON in your page folder, for example &lt;code>line-chart.json&lt;/code>, and then add the &lt;code>{{&amp;lt; chart data=&amp;quot;line-chart&amp;quot; &amp;gt;}}&lt;/code> shortcode where you would like the chart to appear.&lt;/p>
&lt;p>Demo:&lt;/p>
&lt;div id="chart-856927341" class="chart">&lt;/div>
&lt;script>
(function() {
let a = setInterval( function() {
if ( typeof window.Plotly === 'undefined' ) {
return;
}
clearInterval( a );
Plotly.d3.json("./line-chart.json", function(chart) {
Plotly.plot('chart-856927341', chart.data, chart.layout, {responsive: true});
});
}, 500 );
})();
&lt;/script>
&lt;p>You might also find the &lt;a href="http://plotly-json-editor.getforge.io/" target="_blank" rel="noopener">Plotly JSON Editor&lt;/a> useful.&lt;/p>
&lt;h3 id="math">Math&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for $\LaTeX$ math. You can enable this feature by toggling the &lt;code>math&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;p>To render &lt;em>inline&lt;/em> or &lt;em>block&lt;/em> math, wrap your LaTeX math with &lt;code>{{&amp;lt; math &amp;gt;}}$...${{&amp;lt; /math &amp;gt;}}&lt;/code> or &lt;code>{{&amp;lt; math &amp;gt;}}$$...$${{&amp;lt; /math &amp;gt;}}&lt;/code>, respectively. (We wrap the LaTeX math in the Wowchemy &lt;em>math&lt;/em> shortcode to prevent Hugo rendering our math as Markdown. The &lt;em>math&lt;/em> shortcode is new in v5.5-dev.)&lt;/p>
&lt;p>Example &lt;strong>math block&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="nv">\gamma&lt;/span>&lt;span class="nb">_{n} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{ &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> | &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n} &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb">^T &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">]&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> |}{&lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|&lt;/span>&lt;span class="nb">^&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}$$
&lt;p>Example &lt;strong>inline math&lt;/strong> &lt;code>{{&amp;lt; math &amp;gt;}}$\nabla F(\mathbf{x}_{n})${{&amp;lt; /math &amp;gt;}}&lt;/code> renders as
$\nabla F(\mathbf{x}_{n})$.&lt;/p>
&lt;p>Example &lt;strong>multi-line math&lt;/strong> using the math linebreak (&lt;code>\\&lt;/code>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">f&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nb">k;p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\begin&lt;/span>&lt;span class="nb">{cases}p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">, &lt;/span>&lt;span class="nv">\\&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb">p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">.&lt;/span>&lt;span class="nv">\end&lt;/span>&lt;span class="nb">{cases}&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$
f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} &amp; \text{if }k=1, \\
1-p_{0}^{*} &amp; \text{if }k=0.\end{cases}
$$
&lt;h3 id="diagrams">Diagrams&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for diagrams. You can enable this feature by toggling the &lt;code>diagram&lt;/code> option in your &lt;code>config/_default/params.toml&lt;/code> file or by adding &lt;code>diagram: true&lt;/code> to your page front matter.&lt;/p>
&lt;p>An example &lt;strong>flowchart&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
graph TD
A[Hard] --&amp;gt;|Text| B(Round)
B --&amp;gt; C{Decision}
C --&amp;gt;|One| D[Result 1]
C --&amp;gt;|Two| E[Result 2]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
&lt;/div>
&lt;p>An example &lt;strong>sequence diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
sequenceDiagram
Alice-&amp;gt;&amp;gt;John: Hello John, how are you?
loop Healthcheck
John-&amp;gt;&amp;gt;John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John--&amp;gt;&amp;gt;Alice: Great!
John-&amp;gt;&amp;gt;Bob: How about you?
Bob--&amp;gt;&amp;gt;John: Jolly good!
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
&lt;/div>
&lt;p>An example &lt;strong>Gantt diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
&lt;/div>
&lt;p>An example &lt;strong>class diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
classDiagram
Class01 &amp;lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --&amp;gt; C2 : Where am i?
Class09 --* C3
Class09 --|&amp;gt; Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &amp;lt;--&amp;gt; C2: Cool label
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">classDiagram
Class01 &lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &lt;--> C2: Cool label
&lt;/div>
&lt;p>An example &lt;strong>state diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
stateDiagram
[*] --&amp;gt; Still
Still --&amp;gt; [*]
Still --&amp;gt; Moving
Moving --&amp;gt; Still
Moving --&amp;gt; Crash
Crash --&amp;gt; [*]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">stateDiagram
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
&lt;/div>
&lt;h3 id="todo-lists">Todo lists&lt;/h3>
&lt;p>You can even write your todo lists in Markdown too:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [x]&lt;/span> Write math example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">- [x]&lt;/span> Write diagram example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [ ]&lt;/span> Do something else
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write math example
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write diagram example&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Do something else&lt;/li>
&lt;/ul>
&lt;h3 id="tables">Tables&lt;/h3>
&lt;p>Save your spreadsheet as a CSV file in your page&amp;rsquo;s folder and then render it by adding the &lt;em>Table&lt;/em> shortcode to your page:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&amp;lt;&lt;/span> &lt;span class="nx">table&lt;/span> &lt;span class="nx">path&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;results.csv&amp;#34;&lt;/span> &lt;span class="nx">header&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;true&amp;#34;&lt;/span> &lt;span class="nx">caption&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;Table 1: My results&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;table class="table">
&lt;tr> &lt;th>customer_id&lt;/th> &lt;th>score&lt;/th> &lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;td data-table-dtype="number">0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">2&lt;/td>
&lt;td data-table-dtype="text">0.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">3&lt;/td>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;/tr>
&lt;caption>Table 1: My results&lt;/caption>
&lt;/table>
&lt;h3 id="callouts">Callouts&lt;/h3>
&lt;p>Academic supports a &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/#callouts" target="_blank" rel="noopener">shortcode for callouts&lt;/a>, also referred to as &lt;em>asides&lt;/em>, &lt;em>hints&lt;/em>, or &lt;em>alerts&lt;/em>. By wrapping a paragraph in &lt;code>{{% callout note %}} ... {{% /callout %}}&lt;/code>, it will render as an aside.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{% callout note %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% /callout %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/div>
&lt;/div>
&lt;h3 id="spoilers">Spoilers&lt;/h3>
&lt;p>Add a spoiler to a page to reveal text, such as an answer to a question, after a button is clicked.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">spoiler&lt;/span> &lt;span class="na">text&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Click to view the spoiler&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">You found me!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="nt">spoiler&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;details class="spoiler " id="spoiler-6">
&lt;summary>Click to view the spoiler&lt;/summary>
&lt;p>You found me!&lt;/p>
&lt;/details>
&lt;h3 id="icons">Icons&lt;/h3>
&lt;p>Academic enables you to use a wide range of &lt;a href="https://docs.hugoblox.com/getting-started/page-builder/#icons" target="_blank" rel="noopener">icons from &lt;em>Font Awesome&lt;/em> and &lt;em>Academicons&lt;/em>&lt;/a> in addition to &lt;a href="https://docs.hugoblox.com/content/writing-markdown-latex/#emojis" target="_blank" rel="noopener">emojis&lt;/a>.&lt;/p>
&lt;p>Here are some examples using the &lt;code>icon&lt;/code> shortcode to render icons:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;terminal&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fas&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Terminal
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;python&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Python
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;r-project&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} R
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;p>
&lt;i class="fas fa-terminal pr-1 fa-fw">&lt;/i> Terminal&lt;br>
&lt;i class="fab fa-python pr-1 fa-fw">&lt;/i> Python&lt;br>
&lt;i class="fab fa-r-project pr-1 fa-fw">&lt;/i> R&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item><item><title>delivering real-time neurofeedback from emotiv epoc+</title><link>https://jnthorp.github.io/project/emotiv/</link><pubDate>Fri, 31 May 2019 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/emotiv/</guid><description/></item><item><title>monitoring real-time eyetracking data</title><link>https://jnthorp.github.io/project/tobii/</link><pubDate>Fri, 31 May 2019 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/tobii/</guid><description/></item><item><title>Slides</title><link>https://jnthorp.github.io/slides/example/</link><pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/slides/example/</guid><description>&lt;h1 id="create-slides-in-markdown-with-hugo-blox-builder">Create slides in Markdown with Hugo Blox Builder&lt;/h1>
&lt;p>&lt;a href="https://hugoblox.com/" target="_blank" rel="noopener">Hugo Blox Builder&lt;/a> | &lt;a href="https://docs.hugoblox.com/content/slides/" target="_blank" rel="noopener">Documentation&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 id="features">Features&lt;/h2>
&lt;ul>
&lt;li>Efficiently write slides in Markdown&lt;/li>
&lt;li>3-in-1: Create, Present, and Publish your slides&lt;/li>
&lt;li>Supports speaker notes&lt;/li>
&lt;li>Mobile friendly slides&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="controls">Controls&lt;/h2>
&lt;ul>
&lt;li>Next: &lt;code>Right Arrow&lt;/code> or &lt;code>Space&lt;/code>&lt;/li>
&lt;li>Previous: &lt;code>Left Arrow&lt;/code>&lt;/li>
&lt;li>Start: &lt;code>Home&lt;/code>&lt;/li>
&lt;li>Finish: &lt;code>End&lt;/code>&lt;/li>
&lt;li>Overview: &lt;code>Esc&lt;/code>&lt;/li>
&lt;li>Speaker notes: &lt;code>S&lt;/code>&lt;/li>
&lt;li>Fullscreen: &lt;code>F&lt;/code>&lt;/li>
&lt;li>Zoom: &lt;code>Alt + Click&lt;/code>&lt;/li>
&lt;li>&lt;a href="https://revealjs.com/pdf-export/" target="_blank" rel="noopener">PDF Export&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="code-highlighting">Code Highlighting&lt;/h2>
&lt;p>Inline code: &lt;code>variable&lt;/code>&lt;/p>
&lt;p>Code block:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">porridge&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;blueberry&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="n">porridge&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;blueberry&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Eating...&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="math">Math&lt;/h2>
&lt;p>In-line math: $x + y = z$&lt;/p>
&lt;p>Block math:&lt;/p>
&lt;p>$$
f\left( x \right) = ;\frac{{2\left( {x + 4} \right)\left( {x - 4} \right)}}{{\left( {x + 4} \right)\left( {x + 1} \right)}}
$$&lt;/p>
&lt;hr>
&lt;h2 id="fragments">Fragments&lt;/h2>
&lt;p>Make content appear incrementally&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{% fragment %}} One {{% /fragment %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% fragment %}} **Two** {{% /fragment %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% fragment %}} Three {{% /fragment %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Press &lt;code>Space&lt;/code> to play!&lt;/p>
&lt;span class="fragment " >
One
&lt;/span>
&lt;span class="fragment " >
&lt;strong>Two&lt;/strong>
&lt;/span>
&lt;span class="fragment " >
Three
&lt;/span>
&lt;hr>
&lt;p>A fragment can accept two optional parameters:&lt;/p>
&lt;ul>
&lt;li>&lt;code>class&lt;/code>: use a custom style (requires definition in custom CSS)&lt;/li>
&lt;li>&lt;code>weight&lt;/code>: sets the order in which a fragment appears&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="speaker-notes">Speaker Notes&lt;/h2>
&lt;p>Add speaker notes to your presentation&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{% speaker_note %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">-&lt;/span> Only the speaker can read these notes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">-&lt;/span> Press &lt;span class="sb">`S`&lt;/span> key to view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{% /speaker_note %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Press the &lt;code>S&lt;/code> key to view the speaker notes!&lt;/p>
&lt;aside class="notes">
&lt;ul>
&lt;li>Only the speaker can read these notes&lt;/li>
&lt;li>Press &lt;code>S&lt;/code> key to view&lt;/li>
&lt;/ul>
&lt;/aside>
&lt;hr>
&lt;h2 id="themes">Themes&lt;/h2>
&lt;ul>
&lt;li>black: Black background, white text, blue links (default)&lt;/li>
&lt;li>white: White background, black text, blue links&lt;/li>
&lt;li>league: Gray background, white text, blue links&lt;/li>
&lt;li>beige: Beige background, dark text, brown links&lt;/li>
&lt;li>sky: Blue background, thin dark text, blue links&lt;/li>
&lt;/ul>
&lt;hr>
&lt;ul>
&lt;li>night: Black background, thick white text, orange links&lt;/li>
&lt;li>serif: Cappuccino background, gray text, brown links&lt;/li>
&lt;li>simple: White background, black text, blue links&lt;/li>
&lt;li>solarized: Cream-colored background, dark green text, blue links&lt;/li>
&lt;/ul>
&lt;hr>
&lt;section data-noprocess data-shortcode-slide
data-background-image="/media/boards.jpg"
>
&lt;h2 id="custom-slide">Custom Slide&lt;/h2>
&lt;p>Customize the slide style and background&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">background-image&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;/media/boards.jpg&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">background-color&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;#0000FF&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">slide&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;my-style&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="custom-css-example">Custom CSS Example&lt;/h2>
&lt;p>Let&amp;rsquo;s make headers navy colored.&lt;/p>
&lt;p>Create &lt;code>assets/css/reveal_custom.css&lt;/code> with:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-css" data-lang="css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h1&lt;/span>&lt;span class="o">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h2&lt;/span>&lt;span class="o">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">reveal&lt;/span> &lt;span class="nt">section&lt;/span> &lt;span class="nt">h3&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">color&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">navy&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h1 id="questions">Questions?&lt;/h1>
&lt;p>&lt;a href="https://discord.gg/z8wNYzb" target="_blank" rel="noopener">Ask&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://docs.hugoblox.com/content/slides/" target="_blank" rel="noopener">Documentation&lt;/a>&lt;/p></description></item><item><title>python package to reconnect muse headset</title><link>https://jnthorp.github.io/project/muse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jnthorp.github.io/project/muse/</guid><description>&lt;p>Seems to be an issue endemic to the use of Muse headsets that the headsets will randomly llose connection with the laptop. This is particularly bad whenever multiple headsets are connected to multiple laptops within tight proximity. Because of this, our classroom study of multiple students wearing headsets being observed by one RA during a real lecture was nearly impossible to conduct.&lt;/p>
&lt;p>To solve this, I adapted the popular muse-lsl package to monitor the connection with the headset and, in the event of a disconnect, safely end all the existing processes and set them up again. This sounded relatively trivial when I started, but a number of requirements and oddities pushed it towards non-triviality.&lt;/p>
&lt;p>Firstly, muse-lsl requires a new terminal for every stream of data (EEG, ACC, GYRO, PPG). There might be a way to open all the ports necessary from one terminal, but I never figured it out. This brought about the necessity of opening up a number of terminals that could be monitored and quit in a controlled manner. On a Windows machine, this required a wrapper function that mimics the standard subprocess.Popen syntax but opens a socket, receives the subprocess cmd, then waits for the termination request.&lt;/p></description></item></channel></rss>