Skip to content

Commit

Permalink
jekyll build from Action 9164b5b
Browse files Browse the repository at this point in the history
  • Loading branch information
garrekstemo committed Feb 2, 2024
0 parents commit 12b6c64
Show file tree
Hide file tree
Showing 53 changed files with 3,342 additions and 0 deletions.
Empty file added .nojekyll
Empty file.
238 changes: 238 additions & 0 deletions 2021/08/19/future-of-scientific-software-development.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Garrek.org</title>

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/css/styles.css">
<link rel="icon" href="/assets/favicon.png">
</head>
<body class="wrapper">
<header class="main-head" id="masthead">
<h1>
<a href="/">Garrek Stemo</a>
</h1>
</header>
<nav>
<ul>
<li><a href="/research/">Research</a></li>
<li><a href="/projects/"</a>Projects</a></li>
<li><a href="/archive/">Archive</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contact/">Contact</a></li>
</ul>
</nav>
<div class="sidenav" id="sidenav">
<a href="/research/">Research</a><hr align="left">
<a href="/projects/"</a>Projects</a><hr align="left">
<a href="/archive/">Archive</a><hr align="left">
<a href="/about/">About</a><hr align="left">
<a href="/contact/">Contact</a><hr align="left">
<a href="https://mastodon.social/@GarrekStemo">Mastodon</a>
<a href="https://github.com/garrekstemo">GitHub</a><hr align="left">
<a href="/feed.xml">RSS</a>
</div>

<main>

<h2>The Future of Software Development in Science</h2>
<h6 class="dateline">Thursday, August 19, 2021 <a class="permalinkanchor" title="Permalink" href="/2021/08/19/future-of-scientific-software-development.html">&emsp;⚓︎</a></h6>

<p>The future of scientific software development will be cloud-based
together with apps that use web technologies rather than
platform-specific (“native”) applications despite recent mobile
computing hardware advances. Advancements in computing tools and
languages are already changing science to, for example, improve
reproducibility of results and facilitate better collaboration. These
same tools are helping to move development itself into the cloud and are
migrating the community to web-based technologies and away from native
apps and frameworks.</p>

<p>Mobile development for the scientific community now means programming on
a laptop since there are very few scientific tools available on tablets
and phones. “Mobile” in the everyday sense refers to, of course,
smartphones and tablets. Eventually, scientific programming will move to
these mobile platforms. I’m thinking of a tablet that can perform
analysis, run a notebook environment, or even run certain kinds of
simulations. You will be able to hook it up to measurement devices<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> or
controllers. At conferences, you will be able to answer questions by
running your actual simulation live with different variables and show it
to someone. There is a lot of great desktop-class software, proprietary
and open-source, that powers science today. None of this will be a part
of the mobile future. It will all be done in the cloud and with web
technologies.</p>

<p>The discussion around native versus web technology frameworks is already
robust in programming circles<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>, so I approach the topic as a
researcher looking for mobile and cross-platform solutions. I try to
answer these two questions:</p>

<ul>
<li>What does software development look like in the future for science?</li>
<li>How are existing cross-platform and mobile frameworks shaping the future of scientific development?</li>
</ul>

<p>I briefly describe the problems of the current fragmented ecosystem, how
that ecosystem is converging on open-source tools, and then how the
emerging cloud-based computing paradigm will shape scientific computing
on mobile devices.</p>

<h3 id="the-fragmented-ecosystem">The fragmented ecosystem</h3>

<p>The trajectory of scientific programming is interesting because it seems
to be converging on a few tools from a historically fragmented and
siloed ecosystem. Chemists, for example, use their particular flavors of
modeling and analysis software (like Gaussian or ORCA), and Fortran is
used for much of climate science. The fragmentation makes sense because
of the wide range of applications that scientific programming must
serve, including modeling, analysis, visualization, and instrument
control. Furthermore, scientists are often not trained in programming,
leading to large gaps in ability even within a single laboratory.</p>

<p>These factors lead to several problems and realities within the
programmatic scientific community. These include:</p>

<ol>
<li>
<p><strong>Code that is often not reusable or readable across (or within) scientific disciplines.</strong> An example of this is the graduate student who writes software for their project, which nobody knows how to modify after they leave.</p>
</li>
<li>
<p><strong>Domain-specific applications that inhibit cross-disciplinary collaboration.</strong> This includes proprietary software that, while effective, is not shareable because of cost or underutilization. Barriers to entry exist also because only a subset of people learn how to use a particular piece of software and would-be collaborators use something different.</p>
</li>
<li>
<p><strong>Complicated old code that stalls development.</strong> Changing an old code base is a monumental task because the expertise that created the code has moved on. This is often the case with complex and large code bases that work, but nobody knows how. Making changes or sharing can require a complete rewrite.</p>
</li>
</ol>

<p>The problems are more apparent today because the frontiers of science
are increasingly cross-disciplinary. Without shareable and reusable
code, there is considerable friction when trying to collaborate<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>.</p>

<h3 id="convergence-to-open-source-tools">Convergence to open-source tools</h3>

<p>Several technologies are now maturing and their convergence is solving
some of these problems. The transition will take a long time —
decades-old code bases need to be rewritten and new libraries need to be
built — but I expect the scientific programming landscape to be very
different ten years from now.</p>

<p>The wide-spread adoption of Python, R, and Jupyter in the scientific
community has solved many of the readability the share-ability
problems<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>. Many projects now bundle Jupyter notebooks to demonstrate
how the code works. Python is easy to read, easy to write, and
open-source, making it an obvious choice for many to replace proprietary
analysis software. The interactive coding environment of Jupyter is also
having a
<a href="https://crd.lbl.gov/news-and-publications/news/2021/project-jupyter-a-computer-code-that-transformed-science/">major impact on scientific coding</a>. Someone reading a
scientific paper no longer has to take the author’s word that the
modeling and analysis are sound; they can go on GitHub and run the
software themselves.</p>

<p>A level above programming languages is apps for developing scientific
software and doing analysis. There are a lot of apps out there, but a
major component of development will use web technologies because of
their inherent interoperability. Jupyter notebooks, for example, can be
opened in the browser, meaning anyone can create and share something
created in Jupyter without obscure or proprietary software. Jupyter can
now also be used in <a href="https://code.visualstudio.com">Visual Studio Code</a>,
the popular, flexible, and rapidly-improving editor that is based on the
web-technology platform, Electron.</p>

<p>The growing popularity of web technologies in science foreshadows the
biggest change on the horizon, the move to cloud-based computing.</p>

<h3 id="cloud-based-computing-for-science">Cloud-based computing for science</h3>

<p>Mobile devices are finally powerful and flexible enough that most
people’s primary computing device is a smartphone. If this is the case,
then one might think that they must be powerful enough for scientific
applications. So, where are all of these great tools?</p>

<p>Ever since the iPad Pro came out in 2018<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>, I have been searching for
ways to fit it into my research workflow. So far, the best use-case for
it is reading and annotating journal articles. This great, but nowhere
near the mobile computing workstation I outlined above. The reason I
still cannot do analysis or share a simulation on an iPad is that
Python, Jupyter, an editor, graphing software, etc. are not available
for it — and my iPad is faster and more powerful (in many respects) than
my Mac<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>.</p>

<p>As I look around for solutions, it seems that the answer is to wait for
cloud-based development to mature. Jupyter already has notebooks in the
cloud via <a href="https://jupyterhub.readthedocs.io/en/stable/">JupyterHub</a>. A
service called <a href="https://mybinder.org">Binder</a> promises to host notebook
repositories and make code “immediately reproducible by anyone,
anywhere”. Github will soon debut its
<a href="https://github.com/features/codespaces">Codespaces</a> cloud platform, and
the Julia community (a promising open-source scientific programming
language) has put their resources into Jupyter and VS Code. Julia
Computing has also introduced <a href="https://juliahub.com">JuliaHub</a>, Julia’s
answer to cloud computing. Legacy tools for science trying to stay
relevant are also moving to the cloud (see MatLab in the cloud,
Mathematica Online, etc.). Any app or platform that does not make the
move will likely become irrelevant as code-bases transition.</p>

<p>There are no mobile-first solutions from any of the major players in
scientific software despite the incredible progress in mobile
hardware<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>. Today I can write and run my software in a first-generation
cloud-based environment or switch to my traditional computing
workstation.</p>

<h3 id="conclusion">Conclusion</h3>

<p>What lies ahead for scientific programming? Maybe Julia will continue
its meteoric trajectory and become the <em>de facto</em> programming language
for science and scientific papers will come attached with Jupyter
notebooks. Maybe code will become so easy to share and reuse that the
niche and proprietary software that keeps the disciplines siloed will
become obsolete. These would be huge changes for the scientific
community, but I think any of these kinds of changes in the software
space are compounded by the coming cloud computing shift. Scientific
development will happen in the cloud and code will be more reproducible
and shareable than it is today as a result.</p>

<p>This future is different from the mobile computing world that I
imagined, where devices would shrink and simultaneously become powerful
enough that a thin computing slab empowered by a suite of on-device
scientific tools could fulfill most of my computing needs. Instead, the
mobile device will become a window to servers that will host my
software. Reproducible and reusable code will proliferate as a result,
but where does that leave the raw power of mobile computing devices?</p>

<hr class="ref" />

<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:1" role="doc-endnote">
<p>This just became possible with the Moku devices coming out of <a href="https://liquidinstruments.com">Liquid Instruments</a><a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:2" role="doc-endnote">
<p>See the <a href="https://sixcolors.com/post/2021/08/not-important-enough-1password-abandons-its-native-mac-app">current controversy</a> over <a href="https://blog.1password.com/1password-8-for-mac-is-now-in-early-access/">OnePassword choosing to make their macOS app using Electron</a> instead of one of Apple’s frameworks. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:3" role="doc-endnote">
<p>Katharine Hyatt describes these problems in the first few minutes of <a href="https://youtu.be/4giNd6HLUQg">an excellent talk</a> on using Julia for Quantum Physics. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:4" role="doc-endnote">
<p>Another potential avenue for convergence is the ascent of the Julia open-source programming language, which promises to replace both high-performance code, higher-level analysis software, while making code reuse easy and natural. The language is still far from any sort of standard, but there are promising <a href="https://www.nature.com/articles/d41586-019-02310-3">examples of its use</a><a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:5" role="doc-endnote">
<p>The iPad is, unfortunately, the only real contender in the mobile platform space. The Android ecosystem has not yet come up with a serious competitor that matches the performance of the iPad. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:6" role="doc-endnote">
<p>Specifically, Apple does not allow code execution on its mobile operating systems. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:7" role="doc-endnote">
<p>A great <a href="https://twitter.com/stevesi/status/1240327411478061056?s=21">Twitter thread by Steven Sinofsky</a>, former head of Windows, details the evolution of computing devices. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
</ol>
</div>


</main>

<footer>
Projects can be found on <a href="https://github.com/garrekstemo">GitHub</a>.<br>
<a href="/feed.xml">Site RSS feed</a>.<br>
<p>©2021&ndash;2023 Garrek Stemo</p>
</footer>
53 changes: 53 additions & 0 deletions 2022/09/27/Webb-Space-Telescope-Images.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Garrek.org</title>

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/css/styles.css">
<link rel="icon" href="/assets/favicon.png">
</head>
<body class="wrapper">
<header class="main-head" id="masthead">
<h1>
<a href="/">Garrek Stemo</a>
</h1>
</header>
<nav>
<ul>
<li><a href="/research/">Research</a></li>
<li><a href="/projects/"</a>Projects</a></li>
<li><a href="/archive/">Archive</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contact/">Contact</a></li>
</ul>
</nav>
<div class="sidenav" id="sidenav">
<a href="/research/">Research</a><hr align="left">
<a href="/projects/"</a>Projects</a><hr align="left">
<a href="/archive/">Archive</a><hr align="left">
<a href="/about/">About</a><hr align="left">
<a href="/contact/">Contact</a><hr align="left">
<a href="https://mastodon.social/@GarrekStemo">Mastodon</a>
<a href="https://github.com/garrekstemo">GitHub</a><hr align="left">
<a href="/feed.xml">RSS</a>
</div>

<main>

<h2>Webb Space Telescope Images</h2>
<h6 class="dateline">Tuesday, September 27, 2022 <a class="permalinkanchor" title="Permalink" href="/2022/09/27/Webb-Space-Telescope-Images.html">&emsp;⚓︎</a></h6>

<p>The modern news cycle is a periodic deluge. I don’t get the sense that the James Webb Space Telescope launch has hit the public in the same way that the Hubble did. It seems like everyone moved on pretty quickly. I can’t help but keep going back to the Webb images and looking at them in awe, with a much better viewing experience on modern computer displays unavailable to those seeing the Hubble images for the first time.</p>

<p><a href="https://webbtelescope.org">View Webb Space Telescope images</a></p>


</main>

<footer>
Projects can be found on <a href="https://github.com/garrekstemo">GitHub</a>.<br>
<a href="/feed.xml">Site RSS feed</a>.<br>
<p>©2021&ndash;2023 Garrek Stemo</p>
</footer>
73 changes: 73 additions & 0 deletions 2022/09/29/Martin-Rees-Economist-interview.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Garrek.org</title>

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/css/styles.css">
<link rel="icon" href="/assets/favicon.png">
</head>
<body class="wrapper">
<header class="main-head" id="masthead">
<h1>
<a href="/">Garrek Stemo</a>
</h1>
</header>
<nav>
<ul>
<li><a href="/research/">Research</a></li>
<li><a href="/projects/"</a>Projects</a></li>
<li><a href="/archive/">Archive</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contact/">Contact</a></li>
</ul>
</nav>
<div class="sidenav" id="sidenav">
<a href="/research/">Research</a><hr align="left">
<a href="/projects/"</a>Projects</a><hr align="left">
<a href="/archive/">Archive</a><hr align="left">
<a href="/about/">About</a><hr align="left">
<a href="/contact/">Contact</a><hr align="left">
<a href="https://mastodon.social/@GarrekStemo">Mastodon</a>
<a href="https://github.com/garrekstemo">GitHub</a><hr align="left">
<a href="/feed.xml">RSS</a>
</div>

<main>

<h2>Martin Rees: How Science Can Save the World</h2>
<h6 class="dateline">Thursday, September 29, 2022 <a class="permalinkanchor" title="Permalink" href="/2022/09/29/Martin-Rees-Economist-interview.html">&emsp;⚓︎</a></h6>

<p>Martin Rees talks to The Economist’s Alok Jha on existential risks to civilization and the
importance of science and science communication in the 21st century running up to his new book
coming out this November (I already pre-ordered).</p>

<p>There is a constant buzz on Twitter about the pains of academic research.
Martin Rees agrees that aspects of university research needs to be changed.
Administrative bloat and scientists staying in their positions past retirement age discourage blue-sky research and gum up the promotion pipeline.
He criticises the scope of UK ARIA (Advanced Research and Invention Agency) program, which is supposed to function similar to the US’s high-risk high-reward DARPA (Defence Advanced Research Projects Agency) program:</p>

<blockquote>
<p>In that perspective, it’s just a sideshow.
The ministers say this is a wonderful way in which scientists can work in a long-term way on blue skies research without too much administrative hassle.
They’d be doing far more good if they reduced the amount of such administrative hassle in those who are supported by UKRI,
which is supporting fifty times as much research as ARIA will ever do.</p>
</blockquote>

<p>Science in the last ten years or so, I feel, has really gotten bogged down.
I agree that blue-sky thinking has sort of gone out of fashion.
How much this is a function of perverse publishing incentives, administrative hurdles, or the constant firehose of publications to keep up with, I don’t know.
I’m glad a prominent and highly respected figure in the science community is calling out the inefficiencies and problems in the way science is practiced.</p>

<p>Listen on The Economist website: <a href="https://www.economist.com/podcasts/2022/09/20/how-science-can-save-the-world">How science can save the world</a> <br />
Listen on <a href="https://overcast.fm/+jFuIKsZ4">Overcast podcast app</a>.</p>


</main>

<footer>
Projects can be found on <a href="https://github.com/garrekstemo">GitHub</a>.<br>
<a href="/feed.xml">Site RSS feed</a>.<br>
<p>©2021&ndash;2023 Garrek Stemo</p>
</footer>
Loading

0 comments on commit 12b6c64

Please sign in to comment.