<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>the smaller things</title><link href="https://smallerthings.org/" rel="alternate"></link><link href="https://smallerthings.org/feeds/all.atom.xml" rel="self"></link><id>https://smallerthings.org/</id><updated>2024-12-01T22:00:00-07:00</updated><subtitle>states &amp; transitions</subtitle><entry><title>2024: State and Transition</title><link href="https://smallerthings.org/2024-state-and-transition.html" rel="alternate"></link><published>2024-12-01T22:00:00-07:00</published><updated>2024-12-01T22:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2024-12-01:/2024-state-and-transition.html</id><summary type="html">&lt;p&gt;life&amp;#8217;s second&amp;nbsp;act&lt;/p&gt;</summary><content type="html">&lt;p&gt;I feel I am entering my life&amp;#8217;s second&amp;nbsp;act.&lt;/p&gt;
&lt;p&gt;My first act was about finding identity, self-esteem, my power.
It took me 35 years to do it, but it was a necessary path to arrive at where I am in time and space, among the confluence of forces that now accelerate me forward on the path&amp;nbsp;ahead.&lt;/p&gt;
&lt;p&gt;The pains and pleasures of existence are necessary to shape us into the people we are meant to be.
What is up to us is how we respond to what we are presented with, giving intention to the choices and actions we take.
The most painful moments in my life are also the moments that drove the most growth, and I&amp;#8217;m thankful for the lessons they taught&amp;nbsp;me.&lt;/p&gt;
&lt;p&gt;But there are also moments that are epochal, marking an inflection point in what would otherwise be inertial drifting.
I&amp;#8217;ve gathered the will, knowledge, and strength over the last several years to become what I need to be to have the impact I want on the world.
There will always be more to learn, but what comes next is&amp;nbsp;execution.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m standing at the top of one mountain; I&amp;#8217;ve learned all I can from it.
Higher ones extend before me.
I&amp;#8217;ll never be more ready than I am right now, and time will not&amp;nbsp;wait.&lt;/p&gt;
&lt;p&gt;Deep&amp;nbsp;breaths.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="personal"></category><category term="life"></category><category term="purpose"></category><category term="threads"></category></entry><entry><title>2020: State and Transition</title><link href="https://smallerthings.org/2020-state-and-transition.html" rel="alternate"></link><published>2020-01-01T20:00:00-07:00</published><updated>2020-01-01T20:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2020-01-01:/2020-state-and-transition.html</id><summary type="html">&lt;p&gt;Where we&amp;#8217;ve been, where we are, where we&amp;#8217;re&amp;nbsp;going.&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s been some time since I&amp;#8217;ve shared what I&amp;#8217;ve been up to on this blog.
Time for an update.
&lt;strong&gt;Strap yourself&amp;nbsp;in.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;TLDR&lt;/span&gt;&lt;/strong&gt;: I&amp;#8217;ve developed a more stable motivational approach for myself, and this is the first iteration.
We&amp;#8217;re boldly going in a select few directions this year. Skip to the numbered lists for details without all the&amp;nbsp;context.&lt;/p&gt;
&lt;h1&gt;Where we&amp;#8217;ve&amp;nbsp;been&lt;/h1&gt;
&lt;p&gt;2019 was a good year.
In roughly chronological order, here is a list of some&amp;nbsp;highlights:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I snowboarded for the first time in over ten years&amp;#8230;twice.
   The first time was on New Year&amp;#8217;s Eve (technically 2018) in Flagstaff, &lt;span class="caps"&gt;AZ&lt;/span&gt;.
   The second time was in the French Alps; I made it down my first black piste without any crazy&amp;nbsp;wipeouts.&lt;/li&gt;
&lt;li&gt;I made my first trip to Asia by way of Thailand.
   Although it&amp;#8217;s a pretty heavy tourist destination these days, I challenged myself by going it alone, with only a backpack as my companion.
   I had friends in Bangkok to show me around and spend time with, but I did quite a bit of the trip on my own.
   Also experienced my first food poisoning in a foreign country&amp;#8212;in the airport right before my flight&amp;nbsp;home.&lt;/li&gt;
&lt;li&gt;While on Kho Phi Phi, in the spirit of &lt;a href="https://andrewgreer.com/less/"&gt;Arthur Less&lt;/a&gt;, I took some time to reflect and write.
   My goal was to develop a 20-year plan for myself, starting at age 50 and working back to where I sit now, at age 30.
   I came away from that trip with a sense of direction and purpose I hadn&amp;#8217;t felt in a long time.
   More on that later in this&amp;nbsp;post.&lt;/li&gt;
&lt;li&gt;I turned 30.&amp;nbsp;:D&lt;/li&gt;
&lt;li&gt;I celebrated my fifth SciPy in Austin, and came away with some new means to execute on my 20-year plan in the near term.
   More on this&amp;nbsp;below.&lt;/li&gt;
&lt;li&gt;I traveled to Seattle to attend the International Space Elevator Consortium annual meeting.
   More on this&amp;nbsp;below.&lt;/li&gt;
&lt;li&gt;I took my Dad on his first trip outside of North America.
   We spent time in Paris, ate amazing food, and enjoyed so much of the culture the city has to offer.
   We made a pilgrimage to the American cemetery in Normandy as well; my Dad never thought he&amp;#8217;d be standing in it&amp;nbsp;himself.&lt;/li&gt;
&lt;li&gt;Last but certainly not least: I developed a closer connection with my partner, whose presence I&amp;#8217;m incredibly grateful for.
   He challenges me out of my comfort zone, and I do the same for him.
   He makes me a better version of myself with each passing day.
   It&amp;#8217;s the kind of relationship I&amp;#8217;ve always wanted, but thought I&amp;#8217;d never&amp;nbsp;find.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There&amp;#8217;s certainly more to this list, but some things I cannot share&amp;#8230;yet.
Perhaps in a future&amp;nbsp;post.&lt;/p&gt;
&lt;h1&gt;Where we&amp;nbsp;are&lt;/h1&gt;
&lt;p&gt;2019 is over.
2020 is about to&amp;nbsp;begin.&lt;/p&gt;
&lt;p&gt;In 2019, I drafted a 20-year plan, starting at age 50 and working back to where I sit now, at age 30.
Although it has some specific milestones I&amp;#8217;m interested in hitting, emerging from this plan are three threads for my professional interests and efforts.
These&amp;nbsp;are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Health and&amp;nbsp;Medicine&lt;/li&gt;
&lt;li&gt;Molecules and&amp;nbsp;Materials&lt;/li&gt;
&lt;li&gt;Space&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I spent 2019 laying out this plan and performing some of the groundwork for execution.
In 2020, I will begin execution in earnest, while continuing to clear the path forward for subsequent phases.
Although they appear unrelated, these threads possess some useful cross-synergies, which I plan to take advantage of to speed them all&amp;nbsp;along.&lt;/p&gt;
&lt;h2&gt;Health and&amp;nbsp;Medicine&lt;/h2&gt;
&lt;p&gt;My efforts in thread (1), health and medicine, are tied together with my current employment.
I will be able to share more of this at a later time.
However, in vague terms, at this time I am focused on problems in operations and systems efficiencies.
More&amp;nbsp;soon.&lt;/p&gt;
&lt;h2&gt;Molecules and&amp;nbsp;Materials&lt;/h2&gt;
&lt;p&gt;My central thread (2) is a continuation of the path I started on in my Ph.D work, but focused on pushing forward the state of the field using my atypical positioning.
As an independent researcher not seeking a faculty position in academia, I do not operate under the same incentive structures as many of my peers working in the field.
I can therefore do work that is of high-value but under-incentivized, such as software engineering, and I can do so without being as dependent on funding cycles and publication&amp;nbsp;demands.&lt;/p&gt;
&lt;p&gt;In 2020, my energy is going into the following&amp;nbsp;projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://openforcefield.org/"&gt;Open Force Field Initiative&lt;/a&gt; - an effort that is poised to reshape the landscape of forcefield development, providing a needed refresh of the approaches we take developing this foundational layer of biomolecular simulation and enabling the rapid advancement of this layer into the&amp;nbsp;future.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://qcarchive.molssi.org/"&gt;MolSSI Quantum Chemistry Archive&lt;/a&gt; - a key enabler of the Open Force Field Initiative, this effort is building a massive archive of quantum chemistry data, working to cover large swaths of chemical space with chemical property&amp;nbsp;calculations.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alchemistry/alchemlyb"&gt;alchemlyb&lt;/a&gt; - a library for performing (alchemical) free energy calculations using data from a variety of simulation (and experimental) sources, with an &lt;span class="caps"&gt;API&lt;/span&gt; similar to that of &lt;a href="https://scikit-learn.org/"&gt;scikit-learn&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These projects operate at the core of drug design and materials development, likely revealing opportunities in threads (1) and&amp;nbsp;(3).&lt;/p&gt;
&lt;h2&gt;Space&lt;/h2&gt;
&lt;p&gt;My last thread (3) is the most pie-in-the sky, literally and otherwise.
When I was a teenager, I developed an obsession with the concept of a &lt;a href="https://en.wikipedia.org/wiki/Space_elevator"&gt;space elevator&lt;/a&gt;.
It was the mid-2000s, and this idea was experiencing a surge of popular science interest from Brad Edwards&amp;#8217; 2003 book &lt;em&gt;The Space Elevator: A Revolutionary Earth-to-Space Transportation System&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Like most things from childhood, when I went on to college, and subsequently grad school, other priorities demanded my attention.
I forgot about orbital elevators for about a decade.
But this year, an unlikely conversation with a friend brought these thoughts rushing back into the foreground.
Mental pathways I hadn&amp;#8217;t traversed in years were once more the center of my&amp;nbsp;attention.&lt;/p&gt;
&lt;p&gt;This thread, a ribbon to the stars, forms the pillar on which the other two derive meaning for me.
By the time I am 50 years old, I intend to be working full-time on an orbital elevator, assuming it is not realized already by then (in which case I may still be involved, or doing other&amp;nbsp;things).&lt;/p&gt;
&lt;p&gt;There are two components needed for this effort that I intend to push&amp;nbsp;on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A manufacturing process for a tether with the required material properties has yet to be fully realized.
  There is excitement around graphene and boron nitride as candidate materials, as well as some manufacturing processes with real potential.
  &lt;a href="https://www.nationalgrapheneassociation.com/news/graphene-and-space-elevators-interview-with-adrian-nixon/"&gt;Adrian Nixon&amp;#8217;s&lt;/a&gt; work and thoughts on this topic are particularly enticing.
  I want to assist with computational approaches where&amp;nbsp;feasible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Simulation software for architectural design and failure analysis.
  This software may also evolve into key components to control systems for a real orbital elevator.
  The &lt;a href="https://isec.org/wp-content/uploads/2018/04/ISEC2017Study.pdf"&gt;&lt;span class="caps"&gt;ISEC&lt;/span&gt; 2017 Study&lt;/a&gt; lays out many of the high-value requirements of a simulation engine.
  I want to lead or contribute software engineering&amp;nbsp;effort.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Where we&amp;#8217;re&amp;nbsp;going&lt;/h1&gt;
&lt;p&gt;Passion and consistency are required.
I have not had either in the past several years as I wandered the desert, looking for meaningful things to direct my limited time and energy into.
This year made clear to me why I struggled for so long: I was too concerned with identifying things to do (&amp;#8220;what&amp;#8221;), but had no clear supporting reason for doing those things (&amp;#8220;why&amp;#8221;).
Without a visceral, motivating foundation, a list of things to do quickly becomes a list of chores, and without any other incentives (income, career progression, joy, etc.), they are deprioritized easily in the presence of other&amp;nbsp;options.&lt;/p&gt;
&lt;p&gt;My 20-year plan is a living document, and functions as a catalyst for progression and continued evolution.
It&amp;#8217;s less of a document and more of an ongoing process, which happens to have shape and content at each slice of time.
It&amp;#8217;s a wind for my sail, and it can change with time and circumstance, but its timescale of change is years, not days or weeks.
It is insensitive to swings in mood and short-term whims.
Its direction and consistency arise from deeper yearnings for meaning.
It doesn&amp;#8217;t matter so much where my boat ends up from this wind; what matters is that my boat is moving, and not in complete&amp;nbsp;circles.&lt;/p&gt;
&lt;p&gt;The threads that emerge from this process speak to areas I have excitement about, are core to my personality.
I will be doing less travel this year, instead applying focused and sustained effort on them.
These threads map downward into specific goals and action.
Here is a list of concrete goals for this year, stated here for the&amp;nbsp;record:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Re-take the reigns of &lt;code&gt;alchemlyb&lt;/code&gt;, which has been a project in hibernation for some time.
   We will establish a regular release schedule, and I will make responding quickly and consistently on the issue tracker a personal&amp;nbsp;priority.&lt;/li&gt;
&lt;li&gt;Publish a &lt;a href="https://joss.theoj.org/"&gt;&lt;span class="caps"&gt;JOSS&lt;/span&gt;&lt;/a&gt; article for &lt;code&gt;alchemlyb&lt;/code&gt;, promoting its purpose and use.
   This will provide a citeable reference for academics putting the library to&amp;nbsp;work.&lt;/li&gt;
&lt;li&gt;Collaborate on and contribute to this year&amp;#8217;s &lt;span class="caps"&gt;ISEC&lt;/span&gt;&amp;nbsp;study.&lt;/li&gt;
&lt;li&gt;Draft a computational material development pathway for an orbital elevator tether.
   This will require some correspondence with those working in this area, and at least one literature&amp;nbsp;review.&lt;/li&gt;
&lt;li&gt;Draft a design document for an orbital elevator simulation engine.
   This will map from the requirements listed in the &lt;a href="https://isec.org/wp-content/uploads/2018/04/ISEC2017Study.pdf"&gt;&lt;span class="caps"&gt;ISEC&lt;/span&gt; 2017 Study&lt;/a&gt;.
   We will use this document to guide implementation and recruit interested open source developers.
   This document will be developed in the&amp;nbsp;open.&lt;/li&gt;
&lt;li&gt;Draft the manuscript for the final project from my Ph.D. work.
   It&amp;#8217;s taken some time for that work to gestate, and there is now additional context to meaningfully place it in.
   This will be my first exercise in scientific publishing in many years, so it will&amp;nbsp;be&amp;#8230;interesting.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I will be pushing forward issues on the Open Force Field and QCArchive fronts as well, but those efforts are driven by others full time, with me operating in an at-will supporting role.
I also have goals aligning with thread (1), but these are tied to my employment and cannot be shared at this&amp;nbsp;time.&lt;/p&gt;
&lt;h2&gt;Some fun&amp;nbsp;distractions&lt;/h2&gt;
&lt;p&gt;Although I intend to focus my energies as much as possible into my threads this year, I also intend on the following&amp;nbsp;distractions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I plan to buy my first motorcycle this year, after some proper training to avoid injury or&amp;nbsp;death.&lt;/li&gt;
&lt;li&gt;While it&amp;#8217;s still winter, I plan to snowboard at least once.
   It&amp;#8217;s too fun not to take the&amp;nbsp;opportunity.&lt;/li&gt;
&lt;li&gt;My partner and I are planning a trip to Portugal, probably in the fall.
   It will be our first international trip&amp;nbsp;together.&lt;/li&gt;
&lt;li&gt;Once the Democratic presidential nominee is selected, I will participate as a volunteer in the campaign for Arizona with my&amp;nbsp;roommate.&lt;/li&gt;
&lt;li&gt;I&amp;#8217;ve been working to build muscle mass since 2017, and have made significant progress since then.
   I will continue on this path with my partner&amp;#8217;s help.
   This is a key component to our lifestyle and our plans for the&amp;nbsp;future.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I intend to be pretty ruthless about the distractions I allow into my headspace this year, so this list probably won&amp;#8217;t grow (much), barring major unexpected life&amp;nbsp;events.&lt;/p&gt;
&lt;h1&gt;Sound&amp;nbsp;fun?&lt;/h1&gt;
&lt;p&gt;I&amp;#8217;m always interested in meeting others whose interests align with mine.
If you&amp;#8217;re committed to action on threads similar to my own, please reach out.
I&amp;#8217;ve been fortunate to have many fruitful collaborations over the years, and they usually come&amp;nbsp;unexpectedly.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="personal"></category><category term="life"></category><category term="purpose"></category><category term="research"></category><category term="threads"></category></entry><entry><title>Leaving Academia: building a runway to a career outside of the ivory tower</title><link href="https://smallerthings.org/2017-leaving-academia.html" rel="alternate"></link><published>2017-12-19T18:00:00-07:00</published><updated>2017-12-19T18:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2017-12-19:/2017-leaving-academia.html</id><summary type="html">&lt;p&gt;A talk on making the jump from academia to&amp;nbsp;industry&lt;/p&gt;</summary><content type="html">&lt;p&gt;About a month ago, I gave a talk to a group of graduate students in the Center for Biological Physics at Arizona State University on the reasons one might have for leaving academia for industry, and strategies for making the jump.
The talk was well-received, with lots of questions throughout and at the end.
It featured my own perspective on the process, including a lot of personal experience and hard-earned&amp;nbsp;lessons.&lt;/p&gt;
&lt;p&gt;The slides can be viewed in their final form &lt;a href="http://smallerthings.org/leaving_academia/"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.
Use the spacebar to move forward, hold the shift key and press the spacebar to move&amp;nbsp;backward.&lt;/p&gt;
&lt;p&gt;It should be noted that this talk was not constructed as a criticism of academia. There&amp;#8217;s a lot to love about academic life, but it&amp;#8217;s important for young researchers to recognize 1) the hard realities to this career path and 2) that there are other options available.
The core message of this talk is to not limit oneself to an &amp;#8220;academia or bust&amp;#8221; mindset, as this is probably a bad idea, but instead to lay the groundwork for pursuing multiple possibilities&amp;nbsp;post-graduation.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m always happy to expand on the content of this talk. Feel free to ask in the comments below if anything seems unclear or incomplete&amp;nbsp;(likely!).&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="education"></category><category term="industry"></category><category term="academia"></category><category term="careers"></category></entry><entry><title>Stumbling about in 2017</title><link href="https://smallerthings.org/2017-stumbling-about.html" rel="alternate"></link><published>2017-12-19T13:23:00-07:00</published><updated>2017-12-19T13:23:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2017-12-19:/2017-stumbling-about.html</id><summary type="html">&lt;p&gt;A rambling retrospective on a strange&amp;nbsp;year&lt;/p&gt;</summary><content type="html">&lt;p&gt;I severely underestimated the degree of befuddled I would experience following
the end of my PhD.
After spending over half a decade in the academic world, with half of that
fully intending to leave it for a career in industry, I found myself saddled
with a new crisis of identity I did not anticipate.
Despite all my preparation over the years, mentally and otherwise, I felt&amp;nbsp;adrift.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been a year since then, and only now do I feel like I&amp;#8217;m starting to find a
footing, something resembling solid earth.
The post-defense hangover is morphing into clarity of purpose, but I had to
stumble around the living room through an afternoon that lasted months for it
to happen.
I can&amp;#8217;t help but wonder if this is a common experience for others?
I would love to hear your thoughts if you (yes, you!) have gone through a
similar&amp;nbsp;period.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve read in many places that people in academia exhibit a disproportionate
incidence of mental health disorders over the general population.
Whether this is due to the nature of the work, or due to the self-selection of
(often eccentric by nature) personalities it attracts, or both, is still an
open question.  But coming out of it, I learned there were many aspects of my
personality that were ill-suited to the world outside.  I also learned how
dependent I was on the environment for holding together whatever it was that
was there, and without that glue, I felt like my sense of self was falling into
pieces around&amp;nbsp;me.&lt;/p&gt;
&lt;p&gt;2017 was a weird year.
This is an understatement for many reasons, and I&amp;#8217;m certain for many people
besides myself.
I sought to find identity in new relationships, new activities, new things.
In all these areas, in different ways, I failed.
And now, at the end of 2017, I stand at the precipice of a new year with much
of the old already cleared away.
I would have expected to be in a deep depression from this, but instead I feel
an internal peace and joy that I can&amp;#8217;t quite put words&amp;nbsp;to.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve started the process of becoming my own friend.
I believe for a long time I&amp;#8217;ve avoided a friendship with myself, a real respect
and care for the person I&amp;#8217;m stuck with for life.
I did my damnedest to distract myself from his inadequacies, his failures, his
stupidity, often attempting to do so with more stupidity.
This of course didn&amp;#8217;t work.
But out of this mess I believe I&amp;#8217;ve found a new love, and his name is&amp;nbsp;David.&lt;/p&gt;
&lt;p&gt;Perhaps this was not the usual retrospective one might post on a personal blog.
It&amp;#8217;s also not something I&amp;#8217;d normally share, but frankly, I think it worth
sharing.
We all try to project an image of being &amp;#8220;put-together&amp;#8221; at all times, to keep up
appearances, to show maturity.
But we&amp;#8217;re not always put-together, and many of us may regularly be
high-functioning dysfunctionals in&amp;nbsp;life.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m feeling well for 2018.
I look forward to spending it with all of you, another year around the star on
this lovely rock we call home.
Cheers to new&amp;nbsp;adventures.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="personal"></category><category term="life"></category><category term="purpose"></category><category term="social"></category></entry><entry><title>development log, 2017.01.27</title><link href="https://smallerthings.org/2016-devlog-01-27.html" rel="alternate"></link><published>2017-01-27T13:50:00-07:00</published><updated>2017-01-27T13:50:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2017-01-27:/2016-devlog-01-27.html</id><summary type="html">&lt;p&gt;New year, new&amp;nbsp;developments&lt;/p&gt;</summary><content type="html">&lt;p&gt;2016 was a hell of a year, for many reasons (good, not so good, and everywhere in between).
I&amp;#8217;m hoping to share more about last year in a retrospective in the next week, but as part of the new year we are now living in, I wanted to start doing a weekly-ish series on what I&amp;#8217;ve been up to on development&amp;nbsp;fronts.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m now employed by the &lt;a href="http://becksteinlab.physics.asu.edu/"&gt;Beckstein Lab&lt;/a&gt; as a research software engineer, and with this role comes a shift in my focus to software development.
Over the course of my PhD I built a &lt;a href="http://datreant.org/"&gt;few&lt;/a&gt; &lt;a href="https://github.com/datreant/MDSynthesis"&gt;software&lt;/a&gt; &lt;a href="https://github.com/Becksteinlab/mdworks"&gt;libraries&lt;/a&gt; and contributed to at least a &lt;a href="http://www.mdanalysis.org/"&gt;couple&lt;/a&gt; &lt;a href="https://github.com/materialsproject/fireworks"&gt;others&lt;/a&gt;.
My efforts over the next few months (it&amp;#8217;s a short contract) are geared almost exclusively toward finishing up loose ends on many of these projects, plus at least one brand new one.
These projects form the core of our software stack, so getting them on a solid footing before I leave is&amp;nbsp;high-priority.&lt;/p&gt;
&lt;p&gt;As the first entry in this series, I think it&amp;#8217;s worthwhile to share the current status of these projects (from my perspective), and where I&amp;#8217;m hoping/expecting them to go.
The opportunity to have a focus on software in an academic setting is not common, so I really hope we can come out on the other end with some real interesting developments.&amp;nbsp;:)&lt;/p&gt;
&lt;h1&gt;datreant&lt;/h1&gt;
&lt;p&gt;Of all my software projects, &lt;a href="http://datreant.org/"&gt;&lt;code&gt;datreant&lt;/code&gt;&lt;/a&gt; is the library I poured the most effort into during my PhD, and it forms the core of my software environment.
Since I work with simulation data that can&amp;#8217;t easily be shoehorned into a database solution, this library gives a database-ish abstract interface to the filesystem, making it possible to work with my data at a high level while still being able to drill down to any level of detail.
This interface is also used heavily for my workflow automation, since it makes writing code that refers to filesystem components (files, directories) in an object-oriented way totally&amp;nbsp;cake.&lt;/p&gt;
&lt;p&gt;This library is pretty stable in terms of its overall behavior, though the &lt;a href="https://github.com/datreant/datreant.core/issues"&gt;issue tracker&lt;/a&gt; has a lot of things that are wide open and need to be resolved.
Some of these are relatively easy, but others will take some more thought.
My hope is to get at least one, if not two, releases out before I&amp;#8217;m finished here.
I&amp;#8217;ll probably continue to work on &lt;code&gt;datreant&lt;/code&gt; after my time in the lab is up, however.
It&amp;#8217;s a bit unique, and I think has a lot of potential use for a lot of people.
More on that&amp;nbsp;soon.&lt;/p&gt;
&lt;h1&gt;MDSynthesis&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;datreant&lt;/code&gt; started life as &lt;a href="https://github.com/datreant/MDSynthesis"&gt;&lt;strong&gt;MDSynthesis&lt;/strong&gt;&lt;/a&gt;, a library I developed to maintain my sanity in the face of increasing volume and variety of simulation data I was collecting.
Eventually the molecular dynamics-agnostic pieces of &lt;strong&gt;MDSynthesis&lt;/strong&gt; were stripped out and became &lt;code&gt;datreant&lt;/code&gt;, leaving &lt;strong&gt;MDSynthesis&lt;/strong&gt; itself as a pretty light library by comparison.
This library is how I use &lt;code&gt;datreant&lt;/code&gt; in practice, since it gives a lot of convenient functionality for working with &lt;span class="caps"&gt;MD&lt;/span&gt;&amp;nbsp;data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MDSynthesis&lt;/strong&gt; isn&amp;#8217;t a large codebase, and I&amp;#8217;d like to keep it that way.
Over the past few months I&amp;#8217;ve been leaning more toward making &lt;code&gt;datreant&lt;/code&gt;, in particular &lt;code&gt;datreant.core&lt;/code&gt;, the recommended library for doing all things datreant-like, and leaving &lt;strong&gt;MDSynthesis&lt;/strong&gt; in maintenance mode.
The trouble with the library is that by its nature it can tend to accumulate a lot of &lt;em&gt;ad hoc&lt;/em&gt; components, and it also has to track the development of both &lt;code&gt;datreant&lt;/code&gt; and &lt;strong&gt;MDAnalysis&lt;/strong&gt;, which makes it a bit a of a pain to maintain.
In a world of limited time and energy, I&amp;#8217;m more prone to say that users use &lt;code&gt;datreant&lt;/code&gt; and roll their own conveniences for working with their data, even if they&amp;#8217;re doing &lt;span class="caps"&gt;MD&lt;/span&gt;, but on the other hand &lt;strong&gt;MDSynthesis&lt;/strong&gt; remains a nice little library with incredible&amp;nbsp;utility.&lt;/p&gt;
&lt;p&gt;Future uncertain, but for now it persists.
If anyone is interested in taking on more of a maintenance role for this library, get in&amp;nbsp;touch.&lt;/p&gt;
&lt;h1&gt;MDAnalysis&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://www.mdanalysis.org/"&gt;&lt;strong&gt;MDAnalysis&lt;/strong&gt;&lt;/a&gt; has a strong developer base, and my contributions over the last year have been mostly in design discussions and as co-developer of the &lt;a href="https://github.com/MDAnalysis/mdanalysis/pull/815"&gt;shiny, new topology system&lt;/a&gt;.
There&amp;#8217;s a lot of cool stuff coming through the pipe in the next release, and I&amp;#8217;m not concerned about the library&amp;#8217;s&amp;nbsp;future.&lt;/p&gt;
&lt;p&gt;Over the next few months I&amp;#8217;m hoping we can get &lt;a href="https://github.com/MDAnalysis/mdanalysis/issues/878"&gt;pickling finally working for all objects&lt;/a&gt; so that parallelization can work more generally and as users expect, not just in a shared-memory environment as it does currently.
Since the new topology system encapsulates things much more cleanly in the &lt;code&gt;Universe&lt;/code&gt; object, this should be very doable, but we just have yet to settle on a specific choice of solution.
I&amp;#8217;m hoping to scrape together a chunk of time to put forth a working proposal; I already have a &lt;a href="https://github.com/MDAnalysis/mdanalysis/pull/831"&gt;prototype of a piece of this&lt;/a&gt; from a long time ago, but it needs to be picked up&amp;nbsp;again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MDAnalysis&lt;/strong&gt; is a great library with a great existing team, and so I&amp;#8217;m likely to put my larger efforts elsewhere over the next few months.
I&amp;#8217;m still going to be involved in discussions, though, since I think I&amp;#8217;m recognized among the group as someone who thinks a lot about the implications of design choices, duplication of effort and interfaces,&amp;nbsp;etc.&lt;/p&gt;
&lt;h1&gt;mdworks&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/Becksteinlab/mdworks"&gt;&lt;code&gt;mdworks&lt;/code&gt;&lt;/a&gt; is a prototype Python module with building blocks for building workflow graphs using &lt;a href="https://pythonhosted.org/FireWorks/"&gt;Fireworks&lt;/a&gt;, an automated workflow engine we&amp;#8217;ve started using in the lab.
It&amp;#8217;s very early development, and mostly functions as a code dump of things I currently use, but the things currently present are fairly&amp;nbsp;general-purpose.&lt;/p&gt;
&lt;p&gt;The trouble with using automated workflows is that they require not only code to generate the graphs, but also the infrastructure to serve and execute them, so it&amp;#8217;s nontrivial to get up and running.
One of my tasks over the next few months is to get &lt;code&gt;mdworks&lt;/code&gt; into a state that&amp;#8217;s fairly usable by other members in the lab (which means clear documentation, understandable design choices, functional pieces) and also provide what&amp;#8217;s needed to get up and running infrastructure-wise (the hard&amp;nbsp;part).&lt;/p&gt;
&lt;p&gt;I strongly believe using automated workflows is the way forward in this field, and if we can achieve our goals here it can pay dividends well into the future.
We can ask more complicated questions much more easily when the logistics of computing are largely fire-and-forget, and it makes expensive human time available for doing other&amp;nbsp;things.&lt;/p&gt;
&lt;h1&gt;alchemlyb&lt;/h1&gt;
&lt;p&gt;The final software project of note that I&amp;#8217;m putting effort into is &lt;a href="https://github.com/alchemistry/alchemlyb"&gt;&lt;code&gt;alchemlyb&lt;/code&gt;&lt;/a&gt;.
This library aims to make doing so-called &lt;em&gt;alchemical&lt;/em&gt; free energy calculations easier for the average computationalist, providing machinery for parsing data, preprocessing it, estimating free energies, and checking convergence and robustness.
It comes as a response to the rather wild-west nature of doing these calculations once you have data to do them with, as most every lab has their own in-house code to do these calculations.
This is a lot of duplication of effort, and it&amp;#8217;s prone to error.
Existing solutions that are publicly available, such as &lt;a href="https://github.com/MobleyLab/alchemical-analysis"&gt;&lt;code&gt;alchemical-analysis.py&lt;/code&gt;&lt;/a&gt;, although perhaps correct and useful, are often monolithic and inflexible.
These also generally don&amp;#8217;t scale beyond single-machine use, so growing datasets become a&amp;nbsp;problem.&lt;/p&gt;
&lt;p&gt;The development of this library is an informal collaboration between several folks in the field, with me loosely heading up the project (since I&amp;#8217;m paid to do software, not strictly science).
Because it is pretty well-defined from the start (these kind of calculations have the benefit of years of experience behind them), I think we can stand this library up within the next few months and push out at least a couple releases.
Because of the community interest I&amp;#8217;m not worried that we won&amp;#8217;t have maintenance long-term, but there&amp;#8217;s a lot of work to be done yet.
This next week we&amp;#8217;re laying out issues for all the major components so discussion and development can begin in&amp;nbsp;earnest.&lt;/p&gt;
&lt;p&gt;This is an exciting effort, the results of which should be a firm software foundation going forward for the field.
I&amp;#8217;m a strong believer in the idea that in order for us to focus our efforts on new, harder things, we have to make established techniques routine and easy.
This is a specific effort to make that so for alchemical free energy&amp;nbsp;calculations.&lt;/p&gt;
&lt;p&gt;Check out &lt;a href="https://gist.github.com/dotsdl/a41e5756a58e1775e3e3a915f07bfd37"&gt;this gist&lt;/a&gt; if you&amp;#8217;re interested in the design ideas behind this&amp;nbsp;library.&lt;/p&gt;
&lt;h1&gt;Let&amp;#8217;s get to&amp;nbsp;work&lt;/h1&gt;
&lt;p&gt;Obviously from this list there is no shortage of things to do, and I&amp;#8217;m realistic enough to know that we probably can&amp;#8217;t achieve everything.
We will, try, though, with the aim of inching forward to stability.
There are relatively few people in the lab who&amp;#8217;ve taken an interest in software engineering as I have, so the stack needs to persist long enough to survive without another software-focused person around to keep things going.
Whether that works out, only time will&amp;nbsp;tell.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="software"></category><category term="python"></category><category term="engineering"></category><category term="development"></category></entry><entry><title>datreant at SciPy</title><link href="https://smallerthings.org/2016-scipy-datreant.html" rel="alternate"></link><published>2016-09-22T13:30:00-07:00</published><updated>2016-09-22T13:30:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2016-09-22:/2016-scipy-datreant.html</id><summary type="html">&lt;p&gt;I gave a talk at SciPy 2016 on&amp;nbsp;datreant.&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s been a whirlwind of a summer, and now that it&amp;#8217;s officially fall I think I
should take a moment to mention one event I failed to document for posterity
here on my blog. This summer I had the opportunity to present a core project
of mine at &lt;a href="http://scipy2016.scipy.org/"&gt;SciPy 2016&lt;/a&gt;: &lt;a href="http://datreant.org"&gt;&lt;strong&gt;datreant&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This project forms the core of my data analysis workflow these days, both
automated and human components (also known as me). The talk functions as a nice
20-minute overview of &lt;strong&gt;datreant&lt;/strong&gt;, what problem it addresses, and how it works.
Give it a gander if you find yourself drowning in data but can&amp;#8217;t really escape
using the filesystem itself as your data store of&amp;nbsp;choice.&lt;/p&gt;
&lt;p&gt;Also, there&amp;#8217;s now a citable paper for &lt;strong&gt;datreant&lt;/strong&gt;. Check out the &lt;a href="http://conference.scipy.org/proceedings/scipy2016"&gt;SciPy 2016
proceedings&lt;/a&gt;, and consider
citing &lt;strong&gt;datreant&lt;/strong&gt; if it proves useful to you in your&amp;nbsp;work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;D. L.&lt;/span&gt; Dotson, &lt;span class="caps"&gt;S. L.&lt;/span&gt; Seyler, M. Linke, &lt;span class="caps"&gt;R. J.&lt;/span&gt; Gowers, O. Beckstein. &lt;a href="http://conference.scipy.org/proceedings/scipy2016/david_dotson.html"&gt;datreant:
persistent, Pythonic trees for heterogeneous
data&lt;/a&gt;. In
S. Benthall and S. Rostrup, editors, &lt;em&gt;Proceedings of the 15th Python in Science
Conference&lt;/em&gt;, pages 51-56, Austin, &lt;span class="caps"&gt;TX&lt;/span&gt;, 2016.&amp;nbsp;SciPy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This conference was particularly interesting because I managed to convince not only
my partner-in-crime and labmate &lt;a href="https://twitter.com/slseyler"&gt;Sean Seyler&lt;/a&gt; to attend,
but also my mentor and &lt;span class="caps"&gt;PI&lt;/span&gt; &lt;a href="https://twitter.com/orbeckst"&gt;Oliver Beckstein&lt;/a&gt; to check
it out for the first time. I&amp;#8217;m happy to say they came away &lt;a href="https://twitter.com/orbeckst/status/754143774121480196"&gt;very
satisfied&lt;/a&gt; with the&amp;nbsp;experience!&lt;/p&gt;
&lt;p&gt;I should mention that Oliver also gave a very nice talk on
&lt;a href="https://www.youtube.com/watch?v=zVQGFysYDew"&gt;MDAnalysis&lt;/a&gt;, giving special emphasis
on our vibrant community of active developers and users. We also produced a
&lt;a href="http://conference.scipy.org/proceedings/scipy2016/oliver_beckstein.html"&gt;proceedings
publication&lt;/a&gt;
that functions as an update to the &lt;a href="http://dx.doi.org/10.1002/jcc.21787"&gt;original MDAnalysis
paper&lt;/a&gt;, giving details on both new and
upcoming functionality and design changes in the library&amp;nbsp;since.&lt;/p&gt;
&lt;p&gt;With that, it&amp;#8217;s back to thesis writing. My projects are all nicely wrapped up
at the moment and I&amp;#8217;m currently in the throes of compiling it all into an
exhausting&amp;#8230;er, exhaustive document. I&amp;#8217;ll be fun again after November 4th.&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="software"></category><category term="python"></category><category term="data"></category><category term="filesystems"></category></entry><entry><title>or/and</title><link href="https://smallerthings.org/2016-or-and.html" rel="alternate"></link><published>2016-09-04T14:00:00-07:00</published><updated>2016-09-04T14:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2016-09-04:/2016-or-and.html</id><summary type="html">&lt;p&gt;often we think in &amp;#8216;or&amp;#8217;&lt;br&gt;
a choice between two or more&lt;br&gt;
when we could call it &amp;#8216;and&amp;#8217;&lt;br&gt;
and give ourselves the freedom to be all&lt;br&gt;
to enjoy all&lt;br&gt;
to have&amp;nbsp;all  &lt;/p&gt;
&lt;p&gt;we dichotomize, split,&lt;br&gt;
we say &amp;#8220;him or her&amp;#8221;&lt;br&gt;
we say &amp;#8220;me or him&amp;#8221;&lt;br&gt;
we say there&amp;#8217;s a choice …&lt;/p&gt;</summary><content type="html">&lt;p&gt;often we think in &amp;#8216;or&amp;#8217;&lt;br&gt;
a choice between two or more&lt;br&gt;
when we could call it &amp;#8216;and&amp;#8217;&lt;br&gt;
and give ourselves the freedom to be all&lt;br&gt;
to enjoy all&lt;br&gt;
to have&amp;nbsp;all  &lt;/p&gt;
&lt;p&gt;we dichotomize, split,&lt;br&gt;
we say &amp;#8220;him or her&amp;#8221;&lt;br&gt;
we say &amp;#8220;me or him&amp;#8221;&lt;br&gt;
we say there&amp;#8217;s a choice that must be&amp;nbsp;made  &lt;/p&gt;
&lt;p&gt;but &amp;#8216;and&amp;#8217; is an open set of arms&lt;br&gt;
it invites, and accepts&lt;br&gt;
it understands&lt;br&gt;
&amp;#8216;or&amp;#8217; seeks to partition the world&lt;br&gt;
our lives, our bonds&lt;br&gt;
&amp;#8216;and&amp;#8217; says, let&amp;#8217;s connect&lt;br&gt;
let&amp;#8217;s be&amp;nbsp;whole  &lt;/p&gt;</content><category term="personal"></category><category term="relationships"></category><category term="choices"></category><category term="bonds"></category></entry><entry><title>Blogging at BPS 2016!</title><link href="https://smallerthings.org/2016-blogging-at-bps.html" rel="alternate"></link><published>2016-02-25T11:00:00-07:00</published><updated>2016-02-25T11:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2016-02-25:/2016-blogging-at-bps.html</id><summary type="html">&lt;p&gt;Follow my posts on the &lt;span class="caps"&gt;BPS&lt;/span&gt;&amp;nbsp;blog!&lt;/p&gt;</summary><content type="html">&lt;p&gt;The &lt;a href="https://www.biophysics.org/2016meeting/"&gt;2016 Biophysical Society Annual Meeting&lt;/a&gt; 
in Los Angeles begins this Saturday, and I&amp;#8217;m happy to announce that I&amp;#8217;ll be
blogging for the &lt;a href="https://biophysicalsociety.wordpress.com/"&gt;conference blog&lt;/a&gt;
during the course of the week. My focus will be on new developments in
software, particularly open source&amp;nbsp;projects. &lt;/p&gt;
&lt;p&gt;If you have a project you&amp;#8217;d like some exposure for, or just want to talk shop,
feel free to ping me on twitter (&lt;a href="https://twitter.com/dotsdl"&gt;@dotsdl&lt;/a&gt;). See
you in &lt;span class="caps"&gt;LA&lt;/span&gt;!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;</content><category term="science"></category><category term="blogging"></category><category term="biophysics"></category><category term="conference"></category></entry><entry><title>2015: A retrospective</title><link href="https://smallerthings.org/2016-retrospective-2015.html" rel="alternate"></link><published>2016-01-17T17:00:00-07:00</published><updated>2016-01-17T17:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2016-01-17:/2016-retrospective-2015.html</id><summary type="html">&lt;p&gt;It&amp;#8217;s been some time since I last posted, but that&amp;#8217;s not because I&amp;#8217;ve been
twiddling my thumbs. The year 2015 saw some big changes, and I wanted to take some
time to reflect and share on where we&amp;#8217;ve been (and where we&amp;#8217;re&amp;nbsp;going).&lt;/p&gt;
&lt;p&gt;It was …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s been some time since I last posted, but that&amp;#8217;s not because I&amp;#8217;ve been
twiddling my thumbs. The year 2015 saw some big changes, and I wanted to take some
time to reflect and share on where we&amp;#8217;ve been (and where we&amp;#8217;re&amp;nbsp;going).&lt;/p&gt;
&lt;p&gt;It was about a year ago when I landed in Davis, &lt;span class="caps"&gt;CA&lt;/span&gt;, to attend &lt;a class="reference external" href="http://ivory.idyll.org/blog/2014-davis-swc-training.html"&gt;Titus Brown&amp;#8217;s
three-day Train-the-Trainers&lt;/a&gt; Software Carpentry instructor training. I met a
lot of folks that work in bioinformatics (not my field, but not far off), as
well as others involved in open science and open software. It was a
transformative experience, with the practical benefit that I was &lt;a class="reference external" href="https://smallerthings.org/2015-software-carpentry-instructor.html"&gt;offically able
to teach Software Carpentry workshops&lt;/a&gt; after finishing up some final requirements.
I went on to teach four in 2015, and a fifth just a week&amp;nbsp;ago.&lt;/p&gt;
&lt;p&gt;February saw &lt;a class="reference external" href="https://smallerthings.org/2015-biophysical-society-annual-meeting.html"&gt;my first trip to the Biophysical Society Annual Meeting&lt;/a&gt; with
research to present, having first gone in 2012 when I was just starting out.
I met many of Oliver&amp;#8217;s (my &lt;span class="caps"&gt;PI&lt;/span&gt;) colleagues from Oxford and elsewhere, but spent
a good deal of the meeting finishing up some exciting results that had just
come in. The trouble with giving a talk is that you can work on it up until
you get to the stage&amp;#8230;so you&amp;nbsp;will.&lt;/p&gt;
&lt;p&gt;The meeting was great, though shaping new results into a talk with short
turnaround was made possible by a software package I&amp;#8217;d been building called
&lt;a class="reference external" href="https://smallerthings.org/2015-introducing-mdsynthesis.html"&gt;MDSynthesis&lt;/a&gt;, which that winter was finally in a state to be (exceptionally)
useful. It sped up my ability to slice, dice, and aggregate datasets from
myriad simulations I had performed, taking advantage of &lt;a class="reference external" href="http://pandas.pydata.org/"&gt;pandas&lt;/a&gt; DataFrames and
&lt;a class="reference external" href="https://hdfgroup.org/wp/2015/08/answering-biological-questions-using-hdf5-and-physics-based-simulation-data/"&gt;&lt;span class="caps"&gt;HDF5&lt;/span&gt; persistence&lt;/a&gt; to make fast exploration possible. I was on fire, and the
Baltimore cold couldn&amp;#8217;t put me&amp;nbsp;out.&lt;/p&gt;
&lt;p&gt;I attended my first &lt;a class="reference external" href="https://smallerthings.org/2015-scipy.html"&gt;SciPy&lt;/a&gt; conference in July, where I presented MDSynthesis
as a poster. The conversations I had there influenced big changes in the package
that are still shaking out, one of which being the splitting out of the core
persistence functionality into a package called &lt;a class="reference external" href="https://github.com/datreant/datreant"&gt;datreant&lt;/a&gt;. A few other devs
from &lt;a class="reference external" href="http://www.mdanalysis.org/"&gt;MDAnalysis&lt;/a&gt; and I are now engaged with figuring out the future form of
this package, and the results are looking to be really quite&amp;nbsp;awesome.&lt;/p&gt;
&lt;p&gt;Speaking of &lt;a class="reference external" href="http://www.mdanalysis.org/"&gt;MDAnalysis&lt;/a&gt;, Google Code finally gasped its last breath, and this
forced the project to move elsewhere. Its new home became &lt;a class="reference external" href="http://github.com/mdanalysis"&gt;GitHub&lt;/a&gt;, and,
perhaps unexpectedly, this became perhaps &lt;a class="reference external" href="http://www.mdanalysis.org/2015/12/15/The_benefit_of_social_coding/"&gt;the best thing to happen to the
project in a long time&lt;/a&gt;. The great development tooling that GitHub provides
has catalyzed a flurry of new work, and has attracted new contributors,
including some that are now coredevs (yours truly&amp;nbsp;included).&lt;/p&gt;
&lt;p&gt;The value GitHub added to MDAnalysis development spurred us to (finally) make a
&lt;a class="reference external" href="https://github.com/Becksteinlab"&gt;Becksteinlab org&lt;/a&gt;, at which the open source projects incubated in our lab are
now hosted. I&amp;#8217;m proud to be in one of those &amp;#8220;with it&amp;#8221; labs, though a challenge
remains in getting busy lab members to actively work on projects that have a public
face and getting them in a useful state. I think this is a culture our lab
intends to encourage, but it&amp;#8217;s no secret that academia doesn&amp;#8217;t directly value
this kind of work today. But we&amp;#8217;re building for the world of&amp;nbsp;tomorrow.&lt;/p&gt;
&lt;p&gt;In October I traveled to Germany (my first time in Europe) for the &lt;a class="reference external" href="http://www.cecam.org/workshop-1214.html"&gt;&lt;span class="caps"&gt;CECAM&lt;/span&gt;
biomolecular simulation workshop-of-workshops&lt;/a&gt; in Jülich. Despite wifi issues
in both the venue and the hotel, &lt;a class="reference external" href="https://twitter.com/philipwfowler"&gt;Philip Fowler&lt;/a&gt; and I managed to start things
off with a &lt;a class="reference external" href="http://philipwfowler.me/2015/10/23/software-carpentry-workshop-julich-12-13-october-2015/"&gt;Software Carpentry workshop&lt;/a&gt; that covered the Unix shell, Python,
and Git.  Oliver and I followed this with a (too short) &lt;a class="reference external" href="https://github.com/Becksteinlab/MDAnalysis-workshop"&gt;MDAnalysis tutorial&lt;/a&gt;,
doing things &lt;span class="caps"&gt;SWC&lt;/span&gt;-style and live coding in the &lt;a class="reference external" href="http://jupyter.org/"&gt;Jupyter notebook&lt;/a&gt; (using
pre-made notebooks as cheat-sheets rendered with nbviewer on my phone, of
course; we&amp;#8217;re not magicians). Both workshops were very well-received, with
people appreciating most the interactivity and the ability to play directly
with the library during the breakout components of the live&amp;nbsp;sessions.&lt;/p&gt;
&lt;p&gt;In November, &lt;a class="reference external" href="https://github.com/richardjgowers"&gt;Richard Gowers&lt;/a&gt; visited our lab here in Arizona for a few weeks.
After treating him to some authentic &lt;a class="reference external" href="http://losdosmolinosphoenix.com/"&gt;New Mexican&lt;/a&gt; food (red or green?), he and I
got to work gutting the existing topology system of &lt;a class="reference external" href="http://www.mdanalysis.org/"&gt;MDAnalysis&lt;/a&gt;. The &lt;a class="reference external" href="https://github.com/MDAnalysis/mdanalysis/wiki/Issue363-Changes#search_word=topology"&gt;result&lt;/a&gt; is
more performant &lt;strong&gt;and&lt;/strong&gt; more flexible (a rarity!), and should finally get merged
ahead of the long-sought 1.0 release. We&amp;#8217;re still not finished adapting everything
in the old topology scheme into the new one, but we&amp;#8217;re in the last 10% (where
90% of the time is&amp;nbsp;spent).&lt;/p&gt;
&lt;p&gt;So where does that leave us in 2016? Well, this is my last year as a graduate
student, and I intend to defend my dissertation in the fall. I am in production
mode at the moment preparing new simulation systems to run over the coming months.
Once these are baking I&amp;#8217;ll be working on MDAnalysis and datreant/MDSynthesis
core components, while also preparing my analysis codebases for the data that
will be coming down the pipes. Writing (papers, dissertation) is also set to
begin in the next month or so. In February I&amp;#8217;ll be presenting work that should be
published soon at the upcoming &lt;a class="reference external" href="http://www.biophysics.org/2016meeting/Main/tabid/6230/Default.aspx"&gt;2016 Biophysical Society Annual Meeting&lt;/a&gt;.
There&amp;#8217;s no shortage of things to do.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;I also hope to attend SciPy again this summer, and will be applying to job
opportunities throughout the year in preparation for 2017. If you&amp;#8217;re an employer,
or know of anything I might be interested in, by all means, &lt;a class="reference external" href="mailto:dotsdl&amp;#64;gmail.com"&gt;shoot me an email&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cheers to a new&amp;nbsp;year!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="personal"></category><category term="yearend"></category><category term="musings"></category></entry><entry><title>Answering biological questions using HDF5 and physics-based simulation data</title><link href="https://smallerthings.org/2015-hdf5-physics-simulations.html" rel="alternate"></link><published>2015-09-17T15:00:00-07:00</published><updated>2015-09-17T15:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-09-17:/2015-hdf5-physics-simulations.html</id><summary type="html">&lt;p&gt;I recently had the privilege to share a bit of my work on the &lt;span class="caps"&gt;HDF&lt;/span&gt; Group blog by
way of a &lt;a class="reference external" href="http://hdfgroup.org/wp/2015/08/answering-biological-questions-using-hdf5-and-physics-based-simulation-data/"&gt;guest post&lt;/a&gt;. In &lt;a class="reference external" href="http://becksteinlab.physics.asu.edu/"&gt;our lab&lt;/a&gt; we generate increasingly large and
diverse simulation datasets, and maintaining sanity and productivity in spite
of these scale ups have been a challenge. This …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I recently had the privilege to share a bit of my work on the &lt;span class="caps"&gt;HDF&lt;/span&gt; Group blog by
way of a &lt;a class="reference external" href="http://hdfgroup.org/wp/2015/08/answering-biological-questions-using-hdf5-and-physics-based-simulation-data/"&gt;guest post&lt;/a&gt;. In &lt;a class="reference external" href="http://becksteinlab.physics.asu.edu/"&gt;our lab&lt;/a&gt; we generate increasingly large and
diverse simulation datasets, and maintaining sanity and productivity in spite
of these scale ups have been a challenge. This post details one approach to the
problem, and it makes heady use of &lt;span class="caps"&gt;HDF5&lt;/span&gt; for efficient data storage and&amp;nbsp;retrieval.&lt;/p&gt;
&lt;p&gt;If you have an interest in Big Data challenges and aren&amp;#8217;t already subscribed to
the &lt;a class="reference external" href="http://blog.hdfgroup.org/"&gt;&lt;span class="caps"&gt;HDF&lt;/span&gt; Group blog&lt;/a&gt;, one of those two things should change.&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="software"></category><category term="HDF5"></category><category term="python"></category><category term="PyTables"></category><category term="h5py"></category><category term="molecular dynamics"></category><category term="data"></category><category term="science"></category></entry><entry><title>SciPy 2015: come for the conference, stay for the people</title><link href="https://smallerthings.org/2015-scipy.html" rel="alternate"></link><published>2015-08-11T13:00:00-07:00</published><updated>2015-08-11T13:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-08-11:/2015-scipy.html</id><summary type="html">&lt;p&gt;It&amp;#8217;s now been several weeks since I returned from my first &lt;a class="reference external" href="http://scipy2015.scipy.org/"&gt;SciPy&lt;/a&gt;, and I realized I
had yet to actually write about it on my own blog. Well, late is better than
never. If nothing else, the time delay has allowed the dust to settle for a
more coherent …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s now been several weeks since I returned from my first &lt;a class="reference external" href="http://scipy2015.scipy.org/"&gt;SciPy&lt;/a&gt;, and I realized I
had yet to actually write about it on my own blog. Well, late is better than
never. If nothing else, the time delay has allowed the dust to settle for a
more coherent post.&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;Short version: &lt;strong&gt;SciPy was perhaps the most fun I&amp;#8217;ve had at a&amp;nbsp;conference.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Why? Several reasons. First, the audience is very diverse: most are working in
science but many others are working in tech and software development. This is
in contrast to many of the conferences I&amp;#8217;ve attended which are primarily
scientists working in my field, very few of which spend much of their time
developing and maintaining&amp;nbsp;software.&lt;/p&gt;
&lt;p&gt;Second, the conference itself is different than most in terms of its basic
structure, composed&amp;nbsp;of:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;2 days of&amp;nbsp;tutorials&lt;/li&gt;
&lt;li&gt;3 days of main&amp;nbsp;conference&lt;/li&gt;
&lt;li&gt;2 days of&amp;nbsp;sprints&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this was my first time attending, I decided to get the full SciPy
experience and attend the whole week. I&amp;#8217;m glad I&amp;nbsp;did.&lt;/p&gt;
&lt;p&gt;The two tutorials I most enjoyed were those on &lt;a class="reference external" href="https://github.com/amueller/scipy_2015_sklearn_tutorial"&gt;machine learning with
scikit-learn&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/chdoig/scipy2015-blaze-bokeh"&gt;using bokeh to create interactive plots&lt;/a&gt;. Although I had
played briefly with both packages before, these sessions offered a more
thorough view to what can be done with them, and most importantly, &lt;em&gt;how&lt;/em&gt;.
In particular, for &lt;a class="reference external" href="http://scikit-learn.org/"&gt;scikit-learn&lt;/a&gt; I was struck at how well thought-out
its built-in parameter sweeps and cross-validation machinery was, and it&amp;#8217;s given me
ideas for how to build similar robustness machinery for other packages, e.g.
&lt;a class="reference external" href="https://github.com/projectmesa/mesa"&gt;mesa&lt;/a&gt;. I&amp;#8217;m not entirely sure yet where I might make use of &lt;a class="reference external" href="http://bokeh.pydata.org/"&gt;bokeh&lt;/a&gt;, since
ultimately plots I produce need to be exported to a printable form. However,
for publishing data visualizations to the web it&amp;#8217;s a great&amp;nbsp;option.&lt;/p&gt;
&lt;p&gt;The conference itself sported three simultaneous tracks of talks, a poster
session, and daily lightning talks. A few of my&amp;nbsp;favorites:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/1kkFZ4P-XHg"&gt;Dask: Out-of-Core Numpy and Pandas through Task Scheduling&lt;/a&gt;: a talk on
&lt;a class="reference external" href="http://dask.pydata.org/"&gt;dask&lt;/a&gt;, which provides data structures that can do complex out-of-core
operations with an &lt;span class="caps"&gt;API&lt;/span&gt; similar to numpy and&amp;nbsp;pandas.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/nddj5OA8LJo"&gt;&lt;span class="caps"&gt;HDF5&lt;/span&gt; is Eating the World&lt;/a&gt;: a talk by Andrew Collette (author of &lt;a class="reference external" href="http://www.h5py.org/"&gt;h5py&lt;/a&gt;) on
ways to wield &lt;span class="caps"&gt;HDF5&lt;/span&gt; effectively, as well as exciting new developments in &lt;span class="caps"&gt;HDF5&lt;/span&gt;&amp;nbsp;itself.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/TBBtOeY2Q78"&gt;Deep Learning: Tips from the Road&lt;/a&gt;: a talk by Kyle Kastner on deep
learning, its uses, and its limitations. This is a great, short intro to
neural&amp;nbsp;networks.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/lcySLoprPMc"&gt;Agent Based Modeling in Python with Mesa&lt;/a&gt;: introduction of &lt;a class="reference external" href="https://github.com/projectmesa/mesa"&gt;mesa&lt;/a&gt;, a new
package that fills a hole in the python ecosystem: a package for building
agent-based&amp;nbsp;simulations.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/_3YoaeoiIFI"&gt;VisPy: Harnessing the &lt;span class="caps"&gt;GPU&lt;/span&gt; for Fast, High Level Visualization&lt;/a&gt;: a great talk
by Luke Campagnola on the capabilities of &lt;a class="reference external" href="http://vispy.org/"&gt;VisPy&lt;/a&gt; to generate complex visualizations
in real time using the &lt;span class="caps"&gt;GPU&lt;/span&gt; and&amp;nbsp;OpenGL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are many more where that came from,&amp;nbsp;including:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/ZSM-tmbBZ5E"&gt;Time Series Analysis for Network&amp;nbsp;Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/TGGGDpb04Yc"&gt;Statistical Thinking for Data&amp;nbsp;Science&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/X0pAhJgySxk"&gt;xray: &lt;span class="caps"&gt;ND&lt;/span&gt; Labeled Arrays and&amp;nbsp;Datasets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/JSFZ3i3WcjQ"&gt;RESTful &lt;span class="caps"&gt;HDF&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/OuhtpxGuboY"&gt;Teaching with IPython/Jupyter Notebooks and&amp;nbsp;JupyterHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/eYIPEDnp5C4"&gt;Accelerating Python with the Numba &lt;span class="caps"&gt;JIT&lt;/span&gt;&amp;nbsp;Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each day of the main conference featured a keynote, all three of which are
worth&amp;nbsp;watching.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/MNosMXFGtBE"&gt;Data Science at the New York Times by Chris&amp;nbsp;Wiggins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/kHdkFyGCxiY"&gt;My Data Journey with Python by Wes&amp;nbsp;McKinney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://youtu.be/5GlNDD7qbP4"&gt;State of the Tools by Jake&amp;nbsp;VanderPlas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since it&amp;#8217;s impossible to attend everything, I&amp;#8217;m extremely thankful all of these talks
can be viewed directly on YouTube. Check out the &lt;a class="reference external" href="https://www.youtube.com/playlist?list=PLYx7XA2nY5Gcpabmu61kKcToLz0FapmHu"&gt;full playlist&lt;/a&gt; for plenty&amp;nbsp;more.&lt;/p&gt;
&lt;p&gt;The last two days featured sprints. For the uninitiated: these are long blocks of time
during which you can work on issues in a codebase collaboratively and in-person
with others. At SciPy, however, mostly these are just a great way to get
involved in new projects and work alongside some of the core developers. I&amp;#8217;m
particularly interested in machine learning applications to simulation work, so
I split my time between working on &lt;a class="reference external" href="http://scikit-learn.org/"&gt;scikit-learn&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/projectmesa/mesa"&gt;mesa&lt;/a&gt;. Although I only
ended up submitting a couple PRs to &lt;a class="reference external" href="http://scikit-learn.org/"&gt;scikit-learn&lt;/a&gt; over the course of the
weekend, I got a good sense of the structure of the packages and had memorable
discussions with the developers. The only problem now is figuring out where
I&amp;#8217;m going to devote my (rather limited) time outside of graduate school to open
source projects that aren&amp;#8217;t &lt;a class="reference external" href="http://mdanalysis.org"&gt;mdanalysis&lt;/a&gt; related. The upside is there are
really no bad&amp;nbsp;choices.&lt;/p&gt;
&lt;p&gt;Besides all the new tools and technical developments SciPy made me aware of, what I
value most from the conference are the people that I met and the connections I
made with them. The scientific Python community includes some of the most
intelligent and passionate people I&amp;#8217;ve ever met. It was a pleasure to spend a
week with a few of&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="software"></category><category term="data"></category><category term="science"></category><category term="python"></category><category term="scipy"></category></entry><entry><title>SciPy 2015: Introducing MDSynthesis</title><link href="https://smallerthings.org/2015-introducing-mdsynthesis.html" rel="alternate"></link><published>2015-06-29T23:00:00-07:00</published><updated>2015-06-29T23:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-06-29:/2015-introducing-mdsynthesis.html</id><summary type="html">&lt;p&gt;Although I&amp;#8217;ve announced as much on &lt;a class="reference external" href="https://twitter.com/dotsdl/status/598638811581526016"&gt;Twitter&lt;/a&gt;, I&amp;#8217;m excited to present a poster
talk this year at &lt;a class="reference external" href="http://www.scipy2015.scipy.org"&gt;SciPy&lt;/a&gt;. It&amp;#8217;ll be my first time attending, and I&amp;#8217;m looking
forward to meeting others that are passionate in advancing science through
software, and in particular with&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Although I&amp;#8217;ve announced as much on &lt;a class="reference external" href="https://twitter.com/dotsdl/status/598638811581526016"&gt;Twitter&lt;/a&gt;, I&amp;#8217;m excited to present a poster
talk this year at &lt;a class="reference external" href="http://www.scipy2015.scipy.org"&gt;SciPy&lt;/a&gt;. It&amp;#8217;ll be my first time attending, and I&amp;#8217;m looking
forward to meeting others that are passionate in advancing science through
software, and in particular with&amp;nbsp;Python.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll be presenting a software package I&amp;#8217;ve been working on called
&lt;a class="reference external" href="https://github.com/Becksteinlab/MDSynthesis"&gt;MDSynthesis&lt;/a&gt;, which has vastly improved the way I do science with &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Molecular_dynamics"&gt;molecular
dynamics&lt;/a&gt; (&lt;span class="caps"&gt;MD&lt;/span&gt;) simulations. MDSynthesis addresses an important bottleneck in
&lt;span class="caps"&gt;MD&lt;/span&gt; research: going from raw simulation data (perhaps many terabytes, spread
over tens to hundreds of simulations) to information that allows us to answer
biophysical questions. I&amp;#8217;ll&amp;nbsp;explain&amp;#8230;&lt;/p&gt;
&lt;p&gt;One of the obstacles to using modern data science tools like &lt;a class="reference external" href="http://pandas.pydata.org/"&gt;pandas&lt;/a&gt; to analyze
&lt;span class="caps"&gt;MD&lt;/span&gt; data is the multitude of formats the &lt;span class="caps"&gt;MD&lt;/span&gt; ecosystem trades in. &lt;a class="reference external" href="http://www.charmm.org/"&gt;&lt;span class="caps"&gt;CHARMM&lt;/span&gt;&lt;/a&gt; and
&lt;a class="reference external" href="http://www.ks.uiuc.edu/Research/namd/"&gt;&lt;span class="caps"&gt;NAMD&lt;/span&gt;&lt;/a&gt; use &lt;span class="caps"&gt;DCD&lt;/span&gt; files, &lt;a class="reference external" href="http://ambermd.org/"&gt;&lt;span class="caps"&gt;AMBER&lt;/span&gt;&lt;/a&gt; uses a NetCDF-derived format, and &lt;a class="reference external" href="http://www.gromacs.org/"&gt;&lt;span class="caps"&gt;GROMACS&lt;/span&gt;&lt;/a&gt; uses
an &lt;span class="caps"&gt;XDR&lt;/span&gt; format; all told, there are at least 13 different formats used for
storage of &lt;span class="caps"&gt;MD&lt;/span&gt; trajectory data, each with unique strengths and limitations.
&lt;a class="reference external" href="http://mdanalysis.org"&gt;MDAnalysis&lt;/a&gt; is a python package that provides a common interface to many of
these formats, turning trajectory data into numpy arrays that can be handled
with the full power of the python&amp;nbsp;universe.&lt;/p&gt;
&lt;p&gt;But the diversity in trajectory formats isn&amp;#8217;t the only obstacle to distilling
information from &lt;span class="caps"&gt;MD&lt;/span&gt; data; what&amp;#8217;s also a problem is the variety of inputs
available for building any particular simulation system. For example, when
simulating a single protein, I have a lot of choices in: forcefields, starting
conformation, protonation states, solvent, ions, temperature and pressure
algorithm&amp;#8230;the list goes on. The picture becomes more complicated when one
wants to run different types of &lt;span class="caps"&gt;MD&lt;/span&gt;, as there are also a wide variety of
enhanced-sampling methods available for&amp;nbsp;use.&lt;/p&gt;
&lt;p&gt;And that&amp;#8217;s still not all: trajectory data can take a while to churn through
to extract measures we are interested in, depending on the measure and depending
on the number/length of trajectories. It&amp;#8217;s therefore useful to store intermediate
data so we can interactively explore&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;Managing this complexity is burdensome, and frankly, boring. I&amp;#8217;d rather spend
my limited time and energy doing science than managing my ever-growing
collection of data. Furthermore, I want quick, specific, and easy access to the
data I have so that I can begin answering&amp;nbsp;questions.&lt;/p&gt;
&lt;p&gt;MDSynthesis has done this for me. The basic idea behind the package is to
provide persistent objects that serve as data storage units, called
&lt;em&gt;containers&lt;/em&gt;.  One such container is the &lt;a class="reference external" href="http://mdsynthesis.readthedocs.org/en/master/Sim.html"&gt;Sim&lt;/a&gt; object. This can store any
number of MDAnalysis Universe definitions (topologies + trajectories), along
with atom selections for later use. Sims store their state directly to disk in
a thin &lt;span class="caps"&gt;HDF5&lt;/span&gt; database (using &lt;a class="reference external" href="http://www.pytables.org/"&gt;PyTables&lt;/a&gt;), allowing recall of the same Sim
instance later, or at the same time in another python session. Most
importantly, Sims give an interface for easily storing pandas and numpy data
structures in &lt;span class="caps"&gt;HDF5&lt;/span&gt; format with no fuss, with just as easy recall. Almost any
other python data structure can also be stored just as easily; the container
will pickle what it can&amp;#8217;t serialize to &lt;span class="caps"&gt;HDF5&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Beyond Sims, there are also &lt;a class="reference external" href="http://mdsynthesis.readthedocs.org/en/master/Group.html"&gt;Groups&lt;/a&gt;, which can store Sims and other Groups as
members for easy recall of whole ensembles of containers and easy aggregation
of their stored&amp;nbsp;data.&lt;/p&gt;
&lt;p&gt;Those are the basic elements; more details can be found in the &lt;a class="reference external" href="http://mdsynthesis.readthedocs.org/en/master/index.html"&gt;docs&lt;/a&gt;. We just
made an alpha release of the package last week which is already usable for
daily work, but the project is still very young. What&amp;#8217;s particularly exciting
for me is that development of the package has already fed back into development
of MDAnalysis, with even more performance and persistence functionality on the&amp;nbsp;way.&lt;/p&gt;
&lt;p&gt;If you find this software useful, let me know! If it&amp;#8217;s missing something
that it sorely needs, feel free to submit an &lt;a class="reference external" href="https://github.com/Becksteinlab/MDSynthesis/issues"&gt;issue&lt;/a&gt; and we&amp;#8217;ll get
cracking on it. Pull requests are also&amp;nbsp;welcome!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="software"></category><category term="molecular dynamics"></category><category term="data"></category><category term="science"></category></entry><entry><title>Software Carpentry workshop at Oklahoma State University post-mortem</title><link href="https://smallerthings.org/2015-software-carpentry-osu-postmortem.html" rel="alternate"></link><published>2015-05-30T18:00:00-07:00</published><updated>2015-05-30T18:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-05-30:/2015-software-carpentry-osu-postmortem.html</id><summary type="html">&lt;p&gt;This week I taught my first &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; workshop at Oklahoma State
University. The workshop had been in such demand that we had a total of four
instructors, including &lt;a class="reference external" href="http://www.jduck.net/"&gt;Jonah Duckles&lt;/a&gt;, &lt;a class="reference external" href="http://k8hert.blogspot.com/"&gt;Kate Hertweck&lt;/a&gt;, &lt;a class="reference external" href="https://about.me/timtom"&gt;Thomas Guignard&lt;/a&gt;,
and myself. I arrived at the hotel close to 2am the first day of the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This week I taught my first &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; workshop at Oklahoma State
University. The workshop had been in such demand that we had a total of four
instructors, including &lt;a class="reference external" href="http://www.jduck.net/"&gt;Jonah Duckles&lt;/a&gt;, &lt;a class="reference external" href="http://k8hert.blogspot.com/"&gt;Kate Hertweck&lt;/a&gt;, &lt;a class="reference external" href="https://about.me/timtom"&gt;Thomas Guignard&lt;/a&gt;,
and myself. I arrived at the hotel close to 2am the first day of the workshop,
and was running on nespresso during most of the morning&amp;nbsp;session.&lt;/p&gt;
&lt;p&gt;Though originally Thomas and I were set to teach one room together, due to
flight troubles Jonah took over the session on the Unix shell that kicked
things off. I spent most of the time fixing issues with GitBash (usually
fixed by reinstalling it) and helping people connect to the network (curse
those certificates!), but these issues didn&amp;#8217;t affect most of our learners. I
was able to spend at least a little time watching Jonah teach, too, and
I can say I learned a few things myself (e.g. that &lt;tt class="docutils literal"&gt;tr&lt;/tt&gt; is a&amp;nbsp;thing!).&lt;/p&gt;
&lt;p&gt;I taught the session on &lt;a class="reference external" href="http://www.python.org"&gt;Python&lt;/a&gt;, which was split into two parts over the
two days. This decision was made at the cost of omitting &lt;span class="caps"&gt;SQL&lt;/span&gt; for Day 2. It
worked out well because even though I went too fast the first day (this was
the dominant complaint from feedback), we still only barely touched on
&lt;a class="reference external" href="http://swcarpentry.github.io/python-novice-inflammation/06-func.html"&gt;functions&lt;/a&gt; by the end of it. The second day&amp;#8217;s session was entirely filled
by the second half of material, which built on that of the&amp;nbsp;first.&lt;/p&gt;
&lt;p&gt;This was my first time teaching the &lt;span class="caps"&gt;SWC&lt;/span&gt; Python lesson, and since it&amp;#8217;s become an
indispensable tool for doing my own research, I made use of the &lt;a class="reference external" href="http://ipython.org/"&gt;iPython Notebook&lt;/a&gt;.
To help combat the problem of learners getting behind and needing to see content
that I&amp;#8217;ve since scrolled past, I did all my work out of a &lt;a class="reference external" href="http://dropbox.com"&gt;Dropbox&lt;/a&gt; folder
and shared a link to my notebook file on the etherpad. Although a good idea, the
biggest problem was that most learners couldn&amp;#8217;t figure out how to view the file,
since downloading and clicking on it usually results in it being opened in a
text editor (they&amp;#8217;re &lt;span class="caps"&gt;JSON&lt;/span&gt; files), leading to more confusion than answers.
What&amp;#8217;s more, it&amp;#8217;s hard for many learners to find their working directory (where
they&amp;#8217;re working in a GitBash / terminal shell session) in the graphical file
manager, so telling them to download the file and move it to the directory
their notebook session is running from results mostly in blank&amp;nbsp;stares.&lt;/p&gt;
&lt;p&gt;Fortunately one of our helpers added the notebook link to &lt;a class="reference external" href="http://nbviewer.ipython.org/"&gt;NBViewer&lt;/a&gt;, which
renders the notebook directly in the browser so the students didn&amp;#8217;t need to
bother with the file at all. This required some fiddling to ensure that
NBViewer actually picked up the updates whenever I saved my working notebook,
but otherwise it worked &lt;em&gt;extremely well&lt;/em&gt;. The students very much appreciated
being able to click the nbviewer link in the etherpad and view my entire
running notebook, hitting refresh to see it as it updates. I should note,
however, that the time between me saving and the updated notebook showing up on
refresh was at least a couple minutes; Thomas did some troubleshooting on this
front to try and fix this, but I don&amp;#8217;t think we managed much better than this.
But I&amp;#8217;ll take that over nothing!&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve since removed the Dropbox share, but &lt;a class="reference external" href="http://nbviewer.ipython.org/gist/dotsdl/c360b1927323667e3c21"&gt;the final notebook can be viewed
here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After the session on Day 1, I cleaned up the working notebook. I didn&amp;#8217;t
add anything that wasn&amp;#8217;t discussed in the session, but instead recorded more
of my commentary in the notebook itself since there wasn&amp;#8217;t time to record
it live. The learners appreciated this the next morning, especially with
the NBViewer updates, since they could refer back to what we had done
in case their notebooks were missing things we would need that&amp;nbsp;day.&lt;/p&gt;
&lt;p&gt;I made a conscious effort on Day 2 to slooooow doooowwn, and I think I succeeded.
We ended up making it to the goal, which is how to write Python scripts that
behave like shell commands (showing that shell commands are &lt;em&gt;not&lt;/em&gt; magic, and
you, &lt;span class="caps"&gt;YES&lt;/span&gt; &lt;span class="caps"&gt;YOU&lt;/span&gt;!, can write your own!). The feedback was generally more positive
on this day, and the discussions that followed indicate that people were happy
with what they had spent the time&amp;nbsp;learning.&lt;/p&gt;
&lt;p&gt;Thomas closed out the day with a lesson on Git. Despite it being his first
time teaching that particular lesson (it didn&amp;#8217;t show!), he went at a good pace
and we were able to get through pair-wise collaboration on a publicly hosted
git repository (using &lt;a class="reference external" href="http://github.com"&gt;GitHub&lt;/a&gt;). Among the teaching tools
I plan to steal from him is his analogy of commits as group photos. That is,
putting things in the staging area can be thought of as bringing people into
the frame of the photo (and perhaps excluding others), while the commit is
taking the photo itself and then clearing the&amp;nbsp;frame.&lt;/p&gt;
&lt;p&gt;It was great to meet and learn from the learners, helpers, and my fellow
instructors. I got the full &lt;a class="reference external" href="https://twitter.com/jduckles/status/603906245989289984"&gt;Oklahoma experience&lt;/a&gt;, too little sleep,
and plenty of ideas for next time. Looking forward to many&amp;nbsp;more!&lt;/p&gt;
&lt;p&gt;Thanks especially to our host &lt;a class="reference external" href="https://twitter.com/danabrunson"&gt;Dana Brunson&lt;/a&gt; for putting this&amp;nbsp;together!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="education"></category><category term="teaching"></category><category term="swc"></category><category term="software"></category></entry><entry><title>Upcoming Software Carpentry workshop at Oklahoma State University</title><link href="https://smallerthings.org/2015-software-carpentry-osu.html" rel="alternate"></link><published>2015-05-13T18:00:00-07:00</published><updated>2015-05-13T18:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-05-13:/2015-software-carpentry-osu.html</id><summary type="html">&lt;p&gt;In two weeks from today I&amp;#8217;ll be in Stillwater, Oklahoma, teaching at my first
&lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; workshop.  The topics
will include learning the basics of a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Unix_shell"&gt;Unix shell&lt;/a&gt;, programming in &lt;a class="reference external" href="www.python.org"&gt;python&lt;/a&gt;, version control and collaboration with &lt;a class="reference external" href="http://git-scm.com/"&gt;git&lt;/a&gt;, and data management with &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SQL"&gt;&lt;span class="caps"&gt;SQL&lt;/span&gt;&lt;/a&gt;. Of these, perhaps &lt;span class="caps"&gt;SQL&lt;/span&gt; is my weakest …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In two weeks from today I&amp;#8217;ll be in Stillwater, Oklahoma, teaching at my first
&lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; workshop.  The topics
will include learning the basics of a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Unix_shell"&gt;Unix shell&lt;/a&gt;, programming in &lt;a class="reference external" href="www.python.org"&gt;python&lt;/a&gt;, version control and collaboration with &lt;a class="reference external" href="http://git-scm.com/"&gt;git&lt;/a&gt;, and data management with &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SQL"&gt;&lt;span class="caps"&gt;SQL&lt;/span&gt;&lt;/a&gt;. Of these, perhaps &lt;span class="caps"&gt;SQL&lt;/span&gt; is my weakest area
since I hardly ever have need of it, but it&amp;#8217;s a good excuse to brush up! Don&amp;#8217;t
worry folks: I doubt that will be one of the topics I&amp;#8217;ll be the lead
instructor on. I&amp;#8217;m very excited to teach any of the others.&amp;nbsp;:D&lt;/p&gt;
&lt;p&gt;Sharing the skillsets and tools with the researchers whose work can benefit
the most from them is why I got involved with Software Carpentry, and I&amp;#8217;m
excited to finally start contributing to this effort. I plan to share my
preparation and post-mortem (is &lt;em&gt;debriefing&lt;/em&gt; a better word?), so watch this
space in the coming&amp;nbsp;weeks!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="education"></category><category term="teaching"></category><category term="swc"></category><category term="software"></category></entry><entry><title>I’m now a Software Carpentry Instructor!</title><link href="https://smallerthings.org/2015-software-carpentry-instructor.html" rel="alternate"></link><published>2015-03-25T10:00:00-07:00</published><updated>2015-03-25T10:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-03-25:/2015-software-carpentry-instructor.html</id><summary type="html">&lt;p&gt;Back in January I had the privilege to attend an in-person &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; instructor training in Davis, &lt;span class="caps"&gt;CA&lt;/span&gt;, hosted by
&lt;a class="reference external" href="http://ivory.idyll.org/blog/"&gt;Titus Brown&lt;/a&gt;. Software Carpentry is a
non-profit volunteer organization that puts on &amp;#8220;bootcamps&amp;#8221; at institutions all
over the world teaching best practices for building software to do science
efficiently. The …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Back in January I had the privilege to attend an in-person &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt; instructor training in Davis, &lt;span class="caps"&gt;CA&lt;/span&gt;, hosted by
&lt;a class="reference external" href="http://ivory.idyll.org/blog/"&gt;Titus Brown&lt;/a&gt;. Software Carpentry is a
non-profit volunteer organization that puts on &amp;#8220;bootcamps&amp;#8221; at institutions all
over the world teaching best practices for building software to do science
efficiently. The three-day training helped to improve my own awareness of how
people learn the technical skills we teach, and I learned plenty about my own
teaching habits (good and bad). I also met many great people doing awesome work
in the open science community. It was well-worth the couch crashing and braving
the cold (Arizona weather makes you a&amp;nbsp;wuss).&lt;/p&gt;
&lt;p&gt;On Monday, I gave a five-minute lightning lesson as an introduction to Python
to &lt;a class="reference external" href="http://third-bit.com/"&gt;Greg Wilson&lt;/a&gt;, completing the final requirement
for becoming an instructor. I&amp;#8217;m looking forward to teaching bootcamps here at
&lt;span class="caps"&gt;ASU&lt;/span&gt; this year and next, and hopefully getting out a bit to teach some elsewhere
in the country. I also hope to contribute to the efforts of &lt;a class="reference external" href="http://datacarpentry.org/"&gt;Data Carpentry&lt;/a&gt; with material specific to working with molecular
dynamics data. I&amp;#8217;d be keen to discuss this topic with anyone else who&amp;#8217;s
interested. There&amp;#8217;s a lot that could be done on this&amp;nbsp;front.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="education"></category><category term="teaching"></category><category term="swc"></category><category term="software"></category></entry><entry><title>Bumming around Baltimore; or, the Biophysical Society Annual Meeting 2015</title><link href="https://smallerthings.org/2015-biophysical-society-annual-meeting.html" rel="alternate"></link><published>2015-02-11T22:45:00-07:00</published><updated>2015-02-11T22:45:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2015-02-11:/2015-biophysical-society-annual-meeting.html</id><summary type="html">&lt;p&gt;It&amp;#8217;s been a while since I last wrote a blog post, and this is for a couple
(very good) reasons. First, I&amp;#8217;ve been hard at work on a &lt;a class="reference external" href="http://github.com/dotsdl/MDSynthesis"&gt;software package for
making molecular dynamics data exploration more manageable&lt;/a&gt;. More on that in another post to
come soon. Second …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s been a while since I last wrote a blog post, and this is for a couple
(very good) reasons. First, I&amp;#8217;ve been hard at work on a &lt;a class="reference external" href="http://github.com/dotsdl/MDSynthesis"&gt;software package for
making molecular dynamics data exploration more manageable&lt;/a&gt;. More on that in another post to
come soon. Second, I had a major conference to prepare for, this being the
&lt;a class="reference external" href="http://www.biophysics.org/2015meeting"&gt;Biophysical Society Annual Meeting in Baltimore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I gave a talk at this meeting about our recent work on &lt;a class="reference external" href="http://dx.doi.org/10.1085/jgp.201411219"&gt;sodium proton
antiporters&lt;/a&gt;. The talk was
well-received and the questions allowed me to clarify details that I probably
flew through during the 12 minutes I had to speak. I&amp;#8217;m very happy to have
had the opportunity to share my work to a full&amp;nbsp;room.&lt;/p&gt;
&lt;p&gt;Though the talk was a success, for me this last week was more a personal test
in how quickly I can produce new data and distill useful information from it. I
spent a significant amount of time over winter break and the first bit of
January restructuring my workflow, and I am now significantly faster at this.
It isn&amp;#8217;t just pipeline, either; the new approach allows me to effectively
explore my data to generate new inferences and quickly test&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;As an example: I discovered what would become a key element of my talk on
Saturday night, and I gave that talk on Monday. It was a bit too much like
playing with fire than I&amp;#8217;d like to risk in future meetings, but it was
well-worth it this time. The fast turn-around itself is encouraging, since it&amp;#8217;s
looking to be an indication of a very productive&amp;nbsp;year.&lt;/p&gt;
&lt;p&gt;The meeting also brought me in contact with a host of great peers (and giants)
in the community. I&amp;#8217;m glad I got to meet the faces to so many names in such
a short period of time. I had great discussions and made new&amp;nbsp;friends.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll be spending the next few days relaxing in D.C., but I&amp;#8217;m looking forward to
getting back to the lab. Plenty of fresh ideas to work with in the coming year.
Despite being physically exhausted, I am very pleased with my time in&amp;nbsp;Baltimore.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="science"></category><category term="conferences"></category><category term="talks"></category></entry><entry><title>From Wordpress to Pelican</title><link href="https://smallerthings.org/from-wordpress-to-pelican.html" rel="alternate"></link><published>2014-12-26T22:15:00-07:00</published><updated>2014-12-26T22:15:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-12-26:/from-wordpress-to-pelican.html</id><summary type="html">&lt;p&gt;Back in September I decided to begin sharing some of my thoughts on science,
software, and education by blogging regularly on my exploits. I&amp;#8217;d previously
built a website on top of &lt;a class="reference external" href="https://wordpress.org/"&gt;Wordpress&lt;/a&gt; for
&lt;a class="reference external" href="http://sundial.physics.asu.edu"&gt;Sundial&lt;/a&gt;, so I decided to go with that
&lt;span class="caps"&gt;CMS&lt;/span&gt;. I purchased a domain name through &lt;a class="reference external" href="https://www.godaddy.com/"&gt;GoDaddy …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Back in September I decided to begin sharing some of my thoughts on science,
software, and education by blogging regularly on my exploits. I&amp;#8217;d previously
built a website on top of &lt;a class="reference external" href="https://wordpress.org/"&gt;Wordpress&lt;/a&gt; for
&lt;a class="reference external" href="http://sundial.physics.asu.edu"&gt;Sundial&lt;/a&gt;, so I decided to go with that
&lt;span class="caps"&gt;CMS&lt;/span&gt;. I purchased a domain name through &lt;a class="reference external" href="https://www.godaddy.com/"&gt;GoDaddy&lt;/a&gt;,
and out of convenience purchased Wordpress hosting through them as&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;Wordpress is a fine &lt;span class="caps"&gt;CMS&lt;/span&gt;, but I despised writing in the built-in editor. I&amp;#8217;m
a vim nerd, and really wanted to write in plaintext in my editor of choice.
Also, I wanted to start sharing code snippets and &lt;a class="reference external" href="http://ipython.org/notebook.html"&gt;iPython notebooks&lt;/a&gt;, and Wordpress was appearing an awkward
choice at best for&amp;nbsp;this.&lt;/p&gt;
&lt;p&gt;Enter &lt;a class="reference external" href="http://blog.getpelican.com/"&gt;pelican&lt;/a&gt;, a static site generator
written in Python that uses ReStructuredText as the markup of choice
for articles. It took a little time to set up, but most of this was
spent trying to approximate my old blog&amp;#8217;s look by way of a &lt;a class="reference external" href="https://github.com/dotsdl/pelican-bluemoon"&gt;custom theme&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested in blogging with a statically-generated site through
pelican, start by installing the python module locally with&amp;nbsp;pip:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
pip install --user pelican
&lt;/pre&gt;
&lt;p&gt;Then build a skeleton that includes everything you need to get started&amp;nbsp;with:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
pelican-quickstart
&lt;/pre&gt;
&lt;p&gt;The &lt;a class="reference external" href="http://docs.getpelican.com/"&gt;pelican docs&lt;/a&gt; have up-to-date information
on how to&amp;nbsp;proceed.&lt;/p&gt;
&lt;p&gt;Since pelican generates static html files, they can be cheaply hosted. In fact,
&lt;a class="reference external" href="https://github.com"&gt;GitHub&lt;/a&gt; provides free page hosting via &lt;a class="reference external" href="https://pages.github.com/"&gt;GitHub Pages&lt;/a&gt;. I created a &lt;a class="reference external" href="https://github.com/dotsdl/dotsdl.github.io"&gt;repository for my site&lt;/a&gt; and edited the Makefile included
in my pelican project directory to point to it. This allows me to regenerate
and publish my static site&amp;nbsp;with:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
make github
&lt;/pre&gt;
&lt;p&gt;It doesn&amp;#8217;t get much easier. I&amp;#8217;m very&amp;nbsp;pleased.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;EDIT&lt;/span&gt;: I have added my &lt;a class="reference external" href="https://github.com/dotsdl/smallerthings"&gt;blog source to GitHub&lt;/a&gt;. Perhaps if you&amp;#8217;re having trouble
getting something working it will be of&amp;nbsp;help.&lt;/p&gt;
</content><category term="personal"></category><category term="blogging"></category><category term="pelican"></category><category term="wordpress"></category></entry><entry><title>Attempting to be open in a (mostly) closed field</title><link href="https://smallerthings.org/open-in-a-closed-field.html" rel="alternate"></link><published>2014-12-26T16:23:00-07:00</published><updated>2014-12-26T16:23:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-12-26:/open-in-a-closed-field.html</id><summary type="html">&lt;p&gt;I&amp;#8217;ve been following &lt;a class="reference external" href="http://ivory.idyll.org/blog/"&gt;Titus Brown&amp;#8217;s blog&lt;/a&gt; for a
little while now, and this blog is part of an effort to emulate his
(&lt;a class="reference external" href="http://ivory.idyll.org/blog/blog-practicing-open-science.html"&gt;relatively conservative&lt;/a&gt;)
brand of open science. However, if it wasn&amp;#8217;t obvious from my lack of new content over
the past few months, I&amp;#8217;ve been …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I&amp;#8217;ve been following &lt;a class="reference external" href="http://ivory.idyll.org/blog/"&gt;Titus Brown&amp;#8217;s blog&lt;/a&gt; for a
little while now, and this blog is part of an effort to emulate his
(&lt;a class="reference external" href="http://ivory.idyll.org/blog/blog-practicing-open-science.html"&gt;relatively conservative&lt;/a&gt;)
brand of open science. However, if it wasn&amp;#8217;t obvious from my lack of new content over
the past few months, I&amp;#8217;ve been in a bit of a rut. What&amp;nbsp;gives?&lt;/p&gt;
&lt;p&gt;Well, for one thing I don&amp;#8217;t &amp;#8220;own&amp;#8221; the research I produce. Or, at the very
least, I don&amp;#8217;t &lt;em&gt;completely&lt;/em&gt; own it. There are my collaborators to think about,
not to mention my &lt;span class="caps"&gt;PI&lt;/span&gt;, whose ultimate permission I must obtain to openly
discuss the things we are hammering on. And in a competitive field, there is
the real fear (valid? I&amp;#8217;m not sure) of being&amp;nbsp;scooped.&lt;/p&gt;
&lt;p&gt;So, what to do? I think the landscape science operates in is changing, and the way science
is done &lt;strong&gt;must&lt;/strong&gt; change in order to cope. Funding is becoming &lt;a class="reference external" href="http://www.nature.com/nmeth/journal/v11/n11/full/nmeth.3171.html"&gt;harder to get&lt;/a&gt;.
Reproducing scientific work, even those dependent on software alone, is
difficult. And these days obtaining data is becoming less of a problem; instead,
in many fields the emerging problem is how to cope with data glut, which itself
&lt;a class="reference external" href="http://jakevdp.github.io/blog/2014/08/22/hacking-academia/"&gt;requires a new skill set&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The open science movement seeks in part to take the lessons from the open source
software movement and apply them to science. This is particularly salient for someone
in my field, since in simulation-based work raw and distilled data is both generated
by software. Open science finds little contradiction&amp;nbsp;here.&lt;/p&gt;
&lt;p&gt;But the more competitive a field is, the more perceived incentive there is to keep
work bottled up until the &lt;em&gt;big reveal&lt;/em&gt; in the form of a journal publication. Rarely
this publication includes the full data set (in my field, this would mean raw simulation
trajectories and the input parameters) and all code (mainly analysis code, though
not all molecular dynamics codes are open source). What&amp;#8217;s more, the main input
to our simulations are experimental structures, and the crystallography community
is known to be &lt;em&gt;very&lt;/em&gt; competitive. We are thus constrained by our experimentalist
collaborators&amp;#8217;&amp;nbsp;needs.&lt;/p&gt;
&lt;p&gt;If anything, I&amp;#8217;ll be using this space to share what I can about my work, especially
ideas with regard to software and scalable analysis (with a bent toward applications
to molecular dynamics problems). Change in science is slow, but I&amp;#8217;ll try to do my
part&amp;nbsp;here.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="science"></category><category term="openaccess"></category><category term="open science"></category></entry><entry><title>Paywalls and lost knowledge</title><link href="https://smallerthings.org/paywalls-and-lost-knowledge.html" rel="alternate"></link><published>2014-10-16T05:21:00-07:00</published><updated>2014-10-16T05:21:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-10-16:/paywalls-and-lost-knowledge.html</id><summary type="html">&lt;p&gt;It&amp;#8217;s taken me a while, but I now have a system for keeping up with
(however poorly) the exponentially growing scientific literature. I&amp;#8217;ll
expound more on my method of choice in another post, but no matter how
fast I try to get at processing papers, new and old …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It&amp;#8217;s taken me a while, but I now have a system for keeping up with
(however poorly) the exponentially growing scientific literature. I&amp;#8217;ll
expound more on my method of choice in another post, but no matter how
fast I try to get at processing papers, new and old, one thing disrupts
my flow more than any other:&amp;nbsp;&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Paywall"&gt;paywalls&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Every scientist knows them well. You&amp;#8217;re reading papers, and you see a
detail that piques your curiosity enough to check the reference. You
then type as much of the title as you care to into Google and click on
the first link that looks like it might have a manuscript behind it. Oh
no, it&amp;#8217;s just &lt;a class="reference external" href="http://www.ncbi.nlm.nih.gov/pubmed"&gt;Pubmed&lt;/a&gt;. But it
has links to the full text!&amp;nbsp;Click.&lt;/p&gt;
&lt;p&gt;Quickly you scan for a &lt;span class="caps"&gt;PDF&lt;/span&gt; download link. But there&amp;#8217;s a number next to
it. &lt;strong&gt;For the low, low price of $28.00, this article could be yours!&lt;/strong&gt;
Or you could &amp;#8220;rent&amp;#8221; it for $4.00, whatever that&amp;nbsp;means.&lt;/p&gt;
&lt;p&gt;I have roughly 400 articles in my Zotero library, and it&amp;#8217;s growing fast.
Luckily I&amp;#8217;m privileged to have access to
&lt;a class="reference external" href="https://lib.asu.edu/"&gt;&lt;span class="caps"&gt;ASU&lt;/span&gt;&lt;/a&gt;&amp;#8216;s library subscriptions for most (though
certainly not all) journals, but this requires me to engage in further
gymnastics to use the proxy server to get&amp;nbsp;access.&lt;/p&gt;
&lt;p&gt;By the time I&amp;#8217;ve pulled an article (or more likely several) into my
library, I&amp;#8217;ve forgotten the context of why I cared to find it&amp;nbsp;in the
first place. I may have jotted down a note or two, but the full moment
is lost, possibly forever. What&amp;#8217;s worse, though I may be able to scrap
most of my thoughts back together and carry on with chasing the rabbit
down the idea hole, imagine being a student at a smaller university with
a less-endowed library. That idea that led to the chase may never find
what it needs to bother&amp;nbsp;pursuing.&lt;/p&gt;
&lt;p&gt;Every paywall represents an opportunity lost, if not several. They are
plaque in the arteries of science, slowing down everyone. Luckily the
scene is changing with the efforts of the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Open_access"&gt;open access
movement&lt;/a&gt;. It&amp;#8217;s certainly&amp;nbsp;time.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="science"></category><category term="openaccess"></category></entry><entry><title>Software Carpentry @ ASU</title><link href="https://smallerthings.org/software-carpentry-asu.html" rel="alternate"></link><published>2014-09-29T04:54:00-07:00</published><updated>2014-09-29T04:54:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-09-29:/software-carpentry-asu.html</id><summary type="html">&lt;p&gt;As I mentioned in a &lt;a class="reference external" href="http://smallerthings.org/2014/09/software-carpentry-bootcamp-asu/"&gt;previous
post&lt;/a&gt;,
this weekend I participated in my first &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software
Carpentry&lt;/a&gt;bootcamp. I had the
pleasure of meeting the instructors and all the other helpers involved
on Friday&amp;nbsp;over pizza and beer, and in particular spent considerable time
nerding out with &lt;a class="reference external" href="http://naupaka.net/"&gt;Naupaka&lt;/a&gt;&amp;nbsp;over all things …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As I mentioned in a &lt;a class="reference external" href="http://smallerthings.org/2014/09/software-carpentry-bootcamp-asu/"&gt;previous
post&lt;/a&gt;,
this weekend I participated in my first &lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software
Carpentry&lt;/a&gt;bootcamp. I had the
pleasure of meeting the instructors and all the other helpers involved
on Friday&amp;nbsp;over pizza and beer, and in particular spent considerable time
nerding out with &lt;a class="reference external" href="http://naupaka.net/"&gt;Naupaka&lt;/a&gt;&amp;nbsp;over all things vim
and &lt;a class="reference external" href="http://vita.had.co.nz/papers/tidy-data.pdf"&gt;tidy data&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On Day 1, the topic of the morning was
&lt;a class="reference external" href="http://www.r-project.org/"&gt;R&lt;/a&gt;. From what I understand, it was only
recently that Software Carpentry decided to add R to their curriculum.
Though I certainly learned plenty myself as I rushed about helping
participants through small problems, there is a lot of good stuff (and
plenty of potential)&amp;nbsp;here.&lt;/p&gt;
&lt;p&gt;R is an analysis tool first and a programming language second. This
makes it a pragmatic choice for researchers but still a difficult one to
teach. We used&amp;nbsp;&lt;a class="reference external" href="http://www.rstudio.com/"&gt;RStudio&lt;/a&gt;&amp;nbsp;as the
environment for introducing things, and this may have taken the edge off
for the command-line averse. I didn&amp;#8217;t get a chance to follow along with
the exercises too much myself, but I&amp;#8217;m particularly interested in
learning more about the use of factors. If anyone has any resources for
understanding what factors are, why they are useful, etc., I&amp;#8217;d love to
hear about&amp;nbsp;them.&lt;/p&gt;
&lt;p&gt;That afternoon we switched topics to the shell, or more specifically
&lt;a class="reference external" href="http://www.gnu.org/software/bash/"&gt;bash&lt;/a&gt;. The session started well
enough, but given a distribution of participants that ranged from zero
experience to intermediate, it proved difficult to please everyone.
Also, as a note to anyone that does a bootcamp on the shell (or even any
topic): &lt;em&gt;give a motivation behind everything you demonstrate, both in
broad and immediate scope&lt;/em&gt;. Although it can be obvious why a given trick
is useful to an experienced user, the novice can often be left wondering
what benefit this has compared to what they already do to get work done.
This is especially true for the shell, since 90% of work done in the
shell is moving around a file system, which most scientists already
accomplish by clicking around a file browser. People have to see a clear
advantage to adopt new&amp;nbsp;practices.&lt;/p&gt;
&lt;p&gt;Day 2 (today) started off with &lt;a class="reference external" href="http://git-scm.com/"&gt;git&lt;/a&gt;. The
instructors did well to put extensive focus on giving motivation for
git&amp;#8217;s use, given the feedback from the previous day&amp;#8217;s session on the
shell. This was especially important for git, since for many scientists
it is considered to be non-essential in the toolbox of software things.
Software Carpentry hopes to change&amp;nbsp;this.&lt;/p&gt;
&lt;p&gt;The gist: &lt;strong&gt;git is great for more than just code.&lt;/strong&gt; Though originally
produced to address the needs of the software community, as a version
control system git works particularly well for paper writing, alone or
with collaborators. And even though git is optimal when working with
text-only files, it is perfectly happy to store away&amp;nbsp;&lt;strong&gt;anything&lt;/strong&gt; you
like and version control it.&amp;nbsp;Further, pushing the materials used to
build a manuscript to a public repository host like
&lt;a class="reference external" href="https://github.com/"&gt;GitHub&lt;/a&gt;&amp;nbsp;is a great way to address the
well-acknowledged problem of &lt;a class="reference external" href="http://www.nature.com/news/announcement-reducing-our-irreproducibility-1.12852"&gt;reproducibility in
science&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;During the afternoon we turned our focus to
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/SQL"&gt;&lt;span class="caps"&gt;SQL&lt;/span&gt;&lt;/a&gt;, using
an&amp;nbsp;&lt;a class="reference external" href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt;&amp;nbsp;database as our toy case for
running queries against. I was running out of steam by about this point,
and I mainly focused on helping the folks on Windows to get sqlite3
working under &lt;a class="reference external" href="http://msysgit.github.io/"&gt;Git Bash&lt;/a&gt;&amp;nbsp;(not hard, but
for beginners running around the filesystem is an expensive&amp;nbsp;operation).&lt;/p&gt;
&lt;p&gt;Overall, I&amp;#8217;m happy I got to help put this on and I hope to be involved
in a growing &lt;span class="caps"&gt;SC&lt;/span&gt; community here at &lt;span class="caps"&gt;ASU&lt;/span&gt; in the very near future. Assuming
space is still available, I&amp;#8217;m also hoping to attend &lt;a class="reference external" href="http://ivory.idyll.org/blog/2014-davis-swc-training.html"&gt;Titus Brown&amp;#8217;s
instructor training in Davis this coming
January&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to everyone involved! Looking forward to&amp;nbsp;more!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="education"></category><category term="bash"></category><category term="git"></category><category term="R"></category><category term="Software Carpentry"></category><category term="SQL"></category></entry><entry><title>Creationism’s beef with scientific theory</title><link href="https://smallerthings.org/creationisms-beef-with-scientific-theory.html" rel="alternate"></link><published>2014-09-25T20:48:00-07:00</published><updated>2014-09-25T20:48:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-09-25:/creationisms-beef-with-scientific-theory.html</id><summary type="html">&lt;p&gt;This post was originally posted to Facebook. It was a&amp;nbsp;response to a
creationist friend who posted a video of another creationist attempting
to discredit the usual set of scientific theories. I felt I should share
it for others because I&amp;#8217;m terminally optimistic, and I needed the&amp;nbsp;outlet.&lt;/p&gt;
&lt;p&gt;One …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This post was originally posted to Facebook. It was a&amp;nbsp;response to a
creationist friend who posted a video of another creationist attempting
to discredit the usual set of scientific theories. I felt I should share
it for others because I&amp;#8217;m terminally optimistic, and I needed the&amp;nbsp;outlet.&lt;/p&gt;
&lt;p&gt;One&amp;nbsp;recurring mistake made by creationists when trying to discredit
science is this: it is assumed that science must observe &lt;strong&gt;every&lt;/strong&gt;
phenomenon a theory posits to take place in order for that theory to be
considered valid. When a creationist says repeatedly that &amp;#8220;there is no
evidence for &lt;span class="caps"&gt;THEORY&lt;/span&gt; X&amp;#8221;, he is oftentimes operating on his standard that
&lt;strong&gt;every&lt;/strong&gt; prediction of that theory must be tested. This is unreasonable
for science to progress; worse, it&amp;#8217;s shown itself to be &lt;strong&gt;unnecessary&lt;/strong&gt;.
The value of theory is that it is better than a library of observations;
it gives greater insight into what&amp;#8217;s actually&amp;nbsp;happening.&lt;/p&gt;
&lt;p&gt;To use an analogy: many of my students in an introductory physics course
spent&amp;nbsp;the beginning of the semester doing physics problems with
arithmetic. They were literally throwing numbers around in ways that
&amp;#8220;made sense&amp;#8221; to them until they arrived at an (often wrong) answer.&amp;nbsp;To
break them of this, I began asking questions that required some higher
level thought. Instead of &amp;#8220;how high on the wall does the projectile
strike&amp;#8221; given some set of initial conditions, I asked &amp;#8220;what is the
minimum speed with which the projectile must be fired in order to go
over the wall.&amp;#8221; Those that tried arithmetic quickly realized they&amp;#8217;d have
to trial-and-error it to get the answer, which would be&amp;nbsp;silly.&lt;/p&gt;
&lt;p&gt;The ones that solved the problem instead used the theory they had
learned in class (2D kinematics, a purely descriptive part of classical
mechanics), algebraically finding the speed I asked for. I then asked
them how this speed changes with firing distance, and they could answer
this question by looking at the symbolic answer. I even asked them how
quickly this speed changes with a change in firing angle, effectively
requiring a&amp;nbsp;derivative.&lt;/p&gt;
&lt;p&gt;When creationists demand evidence for every single facet or prediction
of a theory, they are demanding that science do the arithmetic&amp;#8230;&lt;strong&gt;for
every variation of the problem the theory is addressing&lt;/strong&gt;. This is
unreasonable. Worse, it doesn&amp;#8217;t really tell us much more information
about the set of phenomena we are addressing, just like solving the same
problem over and over again with different numbers doesn&amp;#8217;t really give
insight into what&amp;#8217;s actually&amp;nbsp;happening.&lt;/p&gt;
&lt;p&gt;With a finite number of scientists working on a much larger set of
problems (and growing, as we are able to probe more and more of nature),
our limited resources are better spent proving the principles and then
moving on, using those principles to discover ever more. Quantum
mechanics has probably less direct evidence for it than biological
evolution, but we didn&amp;#8217;t waste time endlessly testing every boring case
the theory presents. Instead, we took advantage of it to build materials
that now allow the computer you are using to post emoticons on&amp;nbsp;Facebook.&lt;/p&gt;
&lt;p&gt;So, thank a theory&amp;#8230;or something. And have a nice&amp;nbsp;evening.&lt;/p&gt;
</content><category term="science"></category></entry><entry><title>Upcoming Software Carpentry bootcamp @ ASU</title><link href="https://smallerthings.org/software-carpentry-bootcamp-asu.html" rel="alternate"></link><published>2014-09-23T23:00:00-07:00</published><updated>2014-09-23T23:00:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-09-23:/software-carpentry-bootcamp-asu.html</id><summary type="html">&lt;p&gt;This weekend (September 26 &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; 27), I will be partaking in my first
&lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt;&amp;nbsp;bootcamp, held
right here at &lt;span class="caps"&gt;ASU&lt;/span&gt;. I will be helping with some of the sessions myself,
but otherwise I look forward to learning some R and &lt;span class="caps"&gt;SQL&lt;/span&gt; skills with some
like-minded&amp;nbsp;peers.&lt;/p&gt;
&lt;p&gt;For the uninitiated, Software …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This weekend (September 26 &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; 27), I will be partaking in my first
&lt;a class="reference external" href="http://software-carpentry.org/"&gt;Software Carpentry&lt;/a&gt;&amp;nbsp;bootcamp, held
right here at &lt;span class="caps"&gt;ASU&lt;/span&gt;. I will be helping with some of the sessions myself,
but otherwise I look forward to learning some R and &lt;span class="caps"&gt;SQL&lt;/span&gt; skills with some
like-minded&amp;nbsp;peers.&lt;/p&gt;
&lt;p&gt;For the uninitiated, Software Carpentry is an organization that actively
works to improve the computational, programming, and data analysis
skills of scientists. This is more than necessary, because though
science often pushes the boundaries of what computing can accomplish,
good software practices are relatively rare among scientists. Version
control, code readability, and software design is becoming increasingly
important as the complexity of computational science&amp;nbsp;increases.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll post about my experiences after having attended the two-day
bootcamp. If you are interested in attending yourself, &lt;a class="reference external" href="http://naupaka.github.io/2014-09-27-asu/"&gt;register
here&lt;/a&gt;. It should be a good&amp;nbsp;time!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="education"></category></entry><entry><title>Ahoy there!</title><link href="https://smallerthings.org/ahoy-there.html" rel="alternate"></link><published>2014-09-22T00:02:00-07:00</published><updated>2014-09-22T00:02:00-07:00</updated><author><name>dotsdl</name></author><id>tag:smallerthings.org,2014-09-22:/ahoy-there.html</id><summary type="html">&lt;p&gt;The last time I tried keeping a blog was when I was around 20 years old,
and the topics of the day were mainly of&amp;nbsp;interest to only 20-year-old
me. I was just coming out as gay, learning to deal with feelings I
didn&amp;#8217;t understand. I spent a lot …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The last time I tried keeping a blog was when I was around 20 years old,
and the topics of the day were mainly of&amp;nbsp;interest to only 20-year-old
me. I was just coming out as gay, learning to deal with feelings I
didn&amp;#8217;t understand. I spent a lot of time thinking about religion, and
plenty of time arguing about it with others. I didn&amp;#8217;t know much about
the world, but I was trying&amp;nbsp;learn.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m now 25, and in my fourth year of graduate school. I am invested in
my research (plenty to write about on that soon), and I am in a stable
and fulfilling relationship. Grad school started out (very) rough, but
I&amp;#8217;ve found my niche. I&amp;#8217;m generally&amp;nbsp;pleased.&lt;/p&gt;
&lt;p&gt;I decided it was appropriate to start sharing my thoughts and
experiences with others. It&amp;#8217;s not something I&amp;#8217;m used to, so it may take
a post or two before I&amp;#8217;ve found&amp;nbsp;my groove. Some posts will be about
science (both content and sociology thereof) and software development;
others will chronicle my teaching and thoughts on the state of
education. Yet others will be personal updates. I think there is space
for all of this&amp;nbsp;here.&lt;/p&gt;
&lt;p&gt;Plenty to&amp;nbsp;come.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;nbsp;david&lt;/p&gt;
</content><category term="personal"></category></entry></feed>