Compare commits

...

4 commits

Author SHA1 Message Date
acda78c6d0
Apply Prettier formatting 2023-02-24 23:13:45 -06:00
4230057dae
Add HTML to lint-staged config 2023-02-24 23:13:30 -06:00
59c7d6412b
Remove asset fingerprinting for JavaScript 2023-02-24 23:10:48 -06:00
5d4a2d8242
Replace FontAwesome icons JavaScript with module
The BuildJS process used by Hugo can't tree-shake the `index.js` file
currently used. Replace it with a tree-shakable `index.mjs` file to
reduce page size.
2023-02-24 23:06:15 -06:00
16 changed files with 658 additions and 162 deletions

View file

@ -17,7 +17,7 @@ import {
faUserAstronaut,
faVideo,
faW,
} from "./pro-duotone-svg-icons";
} from "./pro-duotone-svg-icons/index.mjs";
import {
faDiscord,
faGithub,

Binary file not shown.

View file

@ -70,6 +70,7 @@ Image courtesy [Guy McCutcheon Photography](https://www.guymccutcheon.com/)
{{% imgproc wy-in-ks Resize "768x" "float-md-start w-md-50 p-3" / %}}
<p>
I am a Wyomingite sojurning in Kansas. That ought to lead to some interesting
stories.

View file

@ -1,5 +1,7 @@
---
title: "Investigation of Hydronium Diffusion in Poly(vinyl alcohol) Hydrogels: A Critical First Step to Describe Acid Transport for Encapsulated Bioremediation"
title:
"Investigation of Hydronium Diffusion in Poly(vinyl alcohol) Hydrogels: A
Critical First Step to Describe Acid Transport for Encapsulated Bioremediation"
date: 2022-09-02
featured: false
keywords:
@ -20,4 +22,23 @@ link: https://doi.org/10.1021/acsestengg.2c00107
journal: "ACS ES&T Engineering"
---
Bioremediation of chlorinated aliphatic hydrocarbon-contaminated aquifers can be hindered by high contaminant concentrations and acids generated during remediation. Encapsulating microbes in hydrogels may provide a protective, tunable environment from inhibiting compounds; however, current approaches to formulate successful encapsulated systems rely on trial and error rather than engineering approaches because fundamental information on mass-transfer coefficients is lacking. To address this knowledge gap, hydronium ion mass-transfer rates through two commonly used hydrogel materials, poly(vinyl alcohol) and alginic acid, under two solidification methods (chemical and cryogenic) were measured. Variations in hydrogel crosslinking conditions, polymer composition, and solvent ionic strength were investigated to understand how each influenced hydronium ion diffusivity. A three-way ANOVA indicated that the ionic strength, membrane type, and crosslinking method significantly (_p_ < 0.001) contributed to changes in hydronium ion mass transfer. Hydronium ion diffusion increased with ionic strength, counter to what is observed in aqueous-only (no polymer) solutions. Co-occurring mechanisms correlated to increased hydronium ion diffusion with ionic strength included an increased water fraction within hydrogel matrices and hydrogel contraction. Measured diffusion rates determined in this study provide first principal design information to further optimize encapsulating hydrogels for bioremediation.
Bioremediation of chlorinated aliphatic hydrocarbon-contaminated aquifers can be
hindered by high contaminant concentrations and acids generated during
remediation. Encapsulating microbes in hydrogels may provide a protective,
tunable environment from inhibiting compounds; however, current approaches to
formulate successful encapsulated systems rely on trial and error rather than
engineering approaches because fundamental information on mass-transfer
coefficients is lacking. To address this knowledge gap, hydronium ion
mass-transfer rates through two commonly used hydrogel materials, poly(vinyl
alcohol) and alginic acid, under two solidification methods (chemical and
cryogenic) were measured. Variations in hydrogel crosslinking conditions,
polymer composition, and solvent ionic strength were investigated to understand
how each influenced hydronium ion diffusivity. A three-way ANOVA indicated that
the ionic strength, membrane type, and crosslinking method significantly (_p_ <
0.001) contributed to changes in hydronium ion mass transfer. Hydronium ion
diffusion increased with ionic strength, counter to what is observed in
aqueous-only (no polymer) solutions. Co-occurring mechanisms correlated to
increased hydronium ion diffusion with ionic strength included an increased
water fraction within hydrogel matrices and hydrogel contraction. Measured
diffusion rates determined in this study provide first principal design
information to further optimize encapsulating hydrogels for bioremediation.

View file

@ -113,7 +113,10 @@
<div class="col-3 align-self-center">
{{ $brandedbull := resources.Get "images/brandedbull.png" }}
{{ $brandedbullsmall := $brandedbull.Resize "x95" }}
<img src="{{ $brandedbullsmall.RelPermalink }}" height="95rem" />
<img
src="{{ $brandedbullsmall.RelPermalink }}"
height="95rem"
/>
</div>
<div class="col-3 align-self-center">
<div
@ -164,7 +167,7 @@
</div>
<!-- Font Awesome -->
{{ $fontawesome := resources.Get "scripts/fa-icons.js" | js.Build "js/fontawesome.js" | minify | fingerprint }}
{{ $fontawesome := resources.Get "scripts/fa-icons.js" | js.Build "js/fontawesome.js" | minify }}
<script src="{{ $fontawesome.RelPermalink }}"></script>
<!-- JQuery -->
@ -173,14 +176,14 @@
{{ $fittextjs := resources.Get "scripts/fittext/jquery.fittext.js" | minify }}
{{ $scrolljs := resources.Get "scripts/scroll-effect.js" | minify }}
{{ $maskjs := resources.Get "scripts/phone-masking.js" | minify }}
{{ $jquerybundle := slice $jquery $jqmaskjs $fittextjs $scrolljs $maskjs | resources.Concat "js/jquery-bundle.js" | fingerprint }}
{{ $jquerybundle := slice $jquery $jqmaskjs $fittextjs $scrolljs $maskjs | resources.Concat "js/jquery-bundle.js" }}
<script src="{{ $jquerybundle.RelPermalink }}"></script>
<!-- Bootstrap -->
{{ $popperjs := resources.Get "scripts/popper/popper.min.js" }}
{{ $twbsjs := resources.Get "scripts/bootstrap/bootstrap.min.js" }}
{{ $ttjs := resources.Get "scripts/tooltip-enable.js" | minify }}
{{ $bootstrapbundle := slice $popperjs $twbsjs $ttjs | resources.Concat "js/bootstrap-bundle.js" | fingerprint }}
{{ $bootstrapbundle := slice $popperjs $twbsjs $ttjs | resources.Concat "js/bootstrap-bundle.js" }}
<script src="{{ $bootstrapbundle.RelPermalink }}"></script>
<!-- GoatCounter -->

View file

@ -1,4 +1,3 @@
{{ define "main" }}
{{ partial "scrolling-image-header" . }}
<section class="container-fluid list-main">

View file

@ -1,5 +1,4 @@
{{ define "main" }}
<section class="container-fluid list-main">
<div class="container px-5">
{{ .Content }}

View file

@ -2,9 +2,6 @@
{{ partial "scrolling-image-header" . }}
<section class="container-fluid list-main">
<div class="container px-5">
<h2>Selected Presentations</h2>
{{ $featuredpubs := where .Pages ".Params.featured" "==" true }}
{{ range $featuredpubs }}
@ -18,7 +15,6 @@
{{ partial "academia/list-single.html" . }}
{{ end }}
</div>
</section>
{{ end }}

View file

@ -1,4 +1,3 @@
{{ $img := .Page.Resources.GetMatch (printf "*%s*" (.Get 0)) }}
{{ $command := .Get 1 }}
{{ $options := .Get 2 }}
@ -16,7 +15,12 @@
{{ errorf "Invalid image processing command: Must be one of Crop, Fit, Fill or Resize." }}
{{ end }}
<figure class="figure {{ $figclass }}">
<img class="figure-img img img-fluid" src="{{ $img.RelPermalink }}" width="{{ $img.Width }}" height="{{ $img.Height }}">
<img
class="figure-img img img-fluid"
src="{{ $img.RelPermalink }}"
width="{{ $img.Width }}"
height="{{ $img.Height }}"
/>
{{ with .Inner }}
<figcaption class="figure-caption">
<small>

View file

@ -4,11 +4,9 @@
<section class="container-fluid list-main">
<div class="container px-5">
{{ .Content }}
<div class="row">
{{ range .Pages }}
<div class="col-sm-4">
@ -23,11 +21,6 @@
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}

View file

@ -1,8 +1,6 @@
{{ define "main" }}
<section class="container-fluid list-main">
<div class="container px-5">
{{ if eq .Params.storage "yt" }}
{{ .Scratch.Set "embedLink" (print "https://www.youtube-nocookie.com/embed/" .Params.storageId) }}
{{ end }}
@ -29,14 +27,6 @@
</div>
{{ .Content }}
</div>
</section>
{{ end }}

View file

@ -1,12 +1,9 @@
{{ define "main" }}
{{ partial "scrolling-image-header" . }}
<section class="container-fluid list-main">
<div class="container px-5">
{{ range .Pages }}
<section class="card mb-3">
<div class="card-body d-flex align-items-center">
@ -14,20 +11,35 @@
{{ $thumbimg := $thumbnail.Resize "250x" }}
<div class="flex-shrink-0">
{{ $image := . }}
<img class="img-thumbnail rounded" src="{{ $thumbimg.RelPermalink }}" alt="Thumbnail of {{ .Title }}">
<img
class="img-thumbnail rounded"
src="{{ $thumbimg.RelPermalink }}"
alt="Thumbnail of {{ .Title }}"
/>
</div>
<div class="flex-grow-1 ms-3 py-1">
<h3 class="card-title">{{ .Title }}</h3>
<h4 class="card-subtitle"><a href="{{ .Params.deployURL }}">{{ .Params.deployURL }}</a></h4>
<h4 class="card-subtitle">
<a href="{{ .Params.deployURL }}">{{ .Params.deployURL }}</a>
</h4>
{{ .Content }}
</div>
<div class="flex-shrink-0">
<div class="btn-group-vertical">
<a class="btn btn-secondary" data-bs-toggle="tooltip" title="{{ .Params.platform }}"
href="{{ .Params.platformURL }}">
<a
class="btn btn-secondary"
data-bs-toggle="tooltip"
title="{{ .Params.platform }}"
href="{{ .Params.platformURL }}"
>
<i class="{{ .Params.platformIcon }}"></i>
</a>
<a class="btn btn-secondary" data-bs-toggle="tooltip" title="Source code" href="{{ .Params.sourceURL }}">
<a
class="btn btn-secondary"
data-bs-toggle="tooltip"
title="Source code"
href="{{ .Params.sourceURL }}"
>
<i class="fab fa-github"></i>
</a>
</div>
@ -36,14 +48,6 @@
</section>
{{ end }}
</div>
</section>
{{ end }}

View file

@ -33,7 +33,7 @@
"prettier-plugin-toml": "^0.3.1"
},
"lint-staged": {
"*.{js,css,scss,md,toml,yml,yaml,json}": "prettier --write"
"*.{js,css,scss,md,toml,yml,yaml,json,html}": "prettier --write"
},
"scripts": {
"prepare": "husky install"

View file

@ -6,7 +6,7 @@ const purgecss = require("postcss-purgecss")({
},
});
if (process.env.HUGO_ENVIRONMENT === 'production') {
if (process.env.HUGO_ENVIRONMENT === "production") {
module.exports = {
plugins: [purgecss],
};

View file

@ -3,7 +3,493 @@
<code id="dname"></code>
<script>
"use strict";const left=["admiring","adoring","affectionate","agitated","amazing","awesome","beautiful","beloved","blissful","bold","brave","busy","caprine","charming","clever","cool","compassionate","competent","confident","dazzling","determined","distracted","dreamy","eager","ecstatic","elastic","elated","elegant","eloquent","epic","exciting","fervent","festive","flamboyant","focused","friendly","frosty","funny","gallant","gifted","goofy","gracious","great","happy","hardcore","heuristic","hircine","hopeful","hungry","infallible","inspiring","interesting","intelligent","jolly","jovial","keen","kind","laughing","lucid","magical","mystifying","modest","musing","nervous","nice","nifty","nostalgic","objective","optimistic","peaceful","practical","priceless","problematic","quirky","quizzical","recursing","relaxed","reverent","ruminant","sad","serene","sharp","silly","sleepy","stoic","strange","sweet","tender","thirsty","trusting","unruffled","upbeat","vibrant","vigilant","vigorous","wizardly","wonderful","xenodochial","youthful","zealous","zen"],right=["albattani","allen","almeida","antonelli","agnesi","archimedes","ardinghelli","aryabhata","austin","babbage","banach","banzai","bardeen","bartik","bassi","bell","benz","bhabha","bhaskara","black","blackburn","blackwell","bohr","booth","borg","bose","bouman","boyd","brahmagupta","brattain","brown","buck","burnell","cannon","carson","cartwright","carver","cerf","chandrasekhar","chaplygin","chatelet","chatterjee","chebyshev","cohen","chaum","clarke","colden","cori","cray","curran","curie","darwin","davinci","dewdney","dhawan","diffie","dijkstra","dirac","driscoll","dubinsky","edison","einstein","elbakyan","elgamal","elion","ellis","engelbart","euclid","euler","faraday","feistel","fermat","fermi","feynman","franklin","gagarin","galileo","galois","ganguly","gates","gauss","germain","goldberg","goldstine","goldwasser","golick","goodall","gould","greider","grothendieck","haibt","hamilton","haslett","hawking","hellman","heisenberg","henderson","hermann","herschel","hertz","heyrovsky","hodgkin","hofstadter","hoover","hopper","hugle","hungate","hypatia","ishizaka","jackson","jang","jemison","jennings","jepsen","joliot","jones","kalam","kaminsky","kapitsa","kare","karpinski","keldysh","keller","kepler","khayyam","khorana","kilby","kirch","knuth","kowalevski","lalande","lamarr","lamport","leakey","leavitt","lederberg","lehmann","levenspiel","lewin","lichterman","liskov","lovelace","lumiere","lush","mahavira","margulis","matsumoto","maxwell","mayer","mccarthy","mcclintock","mclaren","mclean","mcnulty","mendel","mendeleev","meitner","meninsky","merkle","mestorf","mirzakhani","montalcini","moore","morse","murdock","moser","napier","nash","neumann","newton","nightingale","nobel","noether","northcutt","noyce","panini","pare","pascal","pasteur","payne","perlman","pike","poincare","poitras","proskuriakova","ptolemy","raman","ramanujan","ritchie","rhodes","robinson","roentgen","rosalind","rubin","saha","sammet","sanderson","satoshi","shamir","shannon","shaw","shirley","shockley","shtern","sinoussi","snyder","solomon","spence","stonebraker","sutherland","swanson","swartz","swirles","taussig","tereshkova","tesla","tharp","thiele","thompson","torvalds","tu","turing","varahamihira","vaughan","visvesvaraya","volhard","villani","wescoff","wilbur","wiles","williams","williamson","wilson","wing","wozniak","wright","wu","yalow","yonath","zhukovsky","ago","amir","ansell","bieron","bitincka","bondo","chung","easley","emmy","fritze","goozy","gilbert","heady","hoffman","jeebus","katz","krueger","litras","maislin","marko","quick","rochette","romito","shanaghy","sharp","smith","sobolewski","strong","suara","tankersley","vandoren","wilk","vandoren","wilkins","reeder","shannon","geary","walker","denver","medary","robinson","carney","crawford","green","harvey","osborn","anthony","john","glick","martin","humphrey","lewelling","morrill","leedy","stanley","bailey","hoch","stubbs","hodges","capper","allen","davis","paulen","reed","woodring","landon","huxman","ratner","schoeppel","carlson","hagaman","arn","hall","mccuish","docking","anderson","avery","docking","bennett","carlin","hayden","finney","graves","sebelius","parkinson","brownback","colyer","kelly","campbell","thayer","hoyt","hale","morgan","warren","baxter","moonlight","barber","osborne","richards","chatterton","brooks","carey","kendrick","houx","ross","lucas","emerson","clark","miller","smith","hunt","crane","barrett","simpson","hickey","gage","hansen","hathaway","herschler","sullivan","geringer","freudenthal","mead","gordon"];function generateName(){return left[Math.floor(Math.random()*left.length)]+"-"+right[Math.floor(Math.random()*right.length)]}function generateNameWithNumber(){return generateName()+"_"+(Math.floor(6*Math.random())+1)}function generateNameWithDate(){var e=new Date;return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e.toISOString().slice(0,10).replace(/-/g,"")+"_"+generateName()}
document.getElementById('dname').innerHTML = generateNameWithDate()
"use strict";
const left = [
"admiring",
"adoring",
"affectionate",
"agitated",
"amazing",
"awesome",
"beautiful",
"beloved",
"blissful",
"bold",
"brave",
"busy",
"caprine",
"charming",
"clever",
"cool",
"compassionate",
"competent",
"confident",
"dazzling",
"determined",
"distracted",
"dreamy",
"eager",
"ecstatic",
"elastic",
"elated",
"elegant",
"eloquent",
"epic",
"exciting",
"fervent",
"festive",
"flamboyant",
"focused",
"friendly",
"frosty",
"funny",
"gallant",
"gifted",
"goofy",
"gracious",
"great",
"happy",
"hardcore",
"heuristic",
"hircine",
"hopeful",
"hungry",
"infallible",
"inspiring",
"interesting",
"intelligent",
"jolly",
"jovial",
"keen",
"kind",
"laughing",
"lucid",
"magical",
"mystifying",
"modest",
"musing",
"nervous",
"nice",
"nifty",
"nostalgic",
"objective",
"optimistic",
"peaceful",
"practical",
"priceless",
"problematic",
"quirky",
"quizzical",
"recursing",
"relaxed",
"reverent",
"ruminant",
"sad",
"serene",
"sharp",
"silly",
"sleepy",
"stoic",
"strange",
"sweet",
"tender",
"thirsty",
"trusting",
"unruffled",
"upbeat",
"vibrant",
"vigilant",
"vigorous",
"wizardly",
"wonderful",
"xenodochial",
"youthful",
"zealous",
"zen",
],
right = [
"albattani",
"allen",
"almeida",
"antonelli",
"agnesi",
"archimedes",
"ardinghelli",
"aryabhata",
"austin",
"babbage",
"banach",
"banzai",
"bardeen",
"bartik",
"bassi",
"bell",
"benz",
"bhabha",
"bhaskara",
"black",
"blackburn",
"blackwell",
"bohr",
"booth",
"borg",
"bose",
"bouman",
"boyd",
"brahmagupta",
"brattain",
"brown",
"buck",
"burnell",
"cannon",
"carson",
"cartwright",
"carver",
"cerf",
"chandrasekhar",
"chaplygin",
"chatelet",
"chatterjee",
"chebyshev",
"cohen",
"chaum",
"clarke",
"colden",
"cori",
"cray",
"curran",
"curie",
"darwin",
"davinci",
"dewdney",
"dhawan",
"diffie",
"dijkstra",
"dirac",
"driscoll",
"dubinsky",
"edison",
"einstein",
"elbakyan",
"elgamal",
"elion",
"ellis",
"engelbart",
"euclid",
"euler",
"faraday",
"feistel",
"fermat",
"fermi",
"feynman",
"franklin",
"gagarin",
"galileo",
"galois",
"ganguly",
"gates",
"gauss",
"germain",
"goldberg",
"goldstine",
"goldwasser",
"golick",
"goodall",
"gould",
"greider",
"grothendieck",
"haibt",
"hamilton",
"haslett",
"hawking",
"hellman",
"heisenberg",
"henderson",
"hermann",
"herschel",
"hertz",
"heyrovsky",
"hodgkin",
"hofstadter",
"hoover",
"hopper",
"hugle",
"hungate",
"hypatia",
"ishizaka",
"jackson",
"jang",
"jemison",
"jennings",
"jepsen",
"joliot",
"jones",
"kalam",
"kaminsky",
"kapitsa",
"kare",
"karpinski",
"keldysh",
"keller",
"kepler",
"khayyam",
"khorana",
"kilby",
"kirch",
"knuth",
"kowalevski",
"lalande",
"lamarr",
"lamport",
"leakey",
"leavitt",
"lederberg",
"lehmann",
"levenspiel",
"lewin",
"lichterman",
"liskov",
"lovelace",
"lumiere",
"lush",
"mahavira",
"margulis",
"matsumoto",
"maxwell",
"mayer",
"mccarthy",
"mcclintock",
"mclaren",
"mclean",
"mcnulty",
"mendel",
"mendeleev",
"meitner",
"meninsky",
"merkle",
"mestorf",
"mirzakhani",
"montalcini",
"moore",
"morse",
"murdock",
"moser",
"napier",
"nash",
"neumann",
"newton",
"nightingale",
"nobel",
"noether",
"northcutt",
"noyce",
"panini",
"pare",
"pascal",
"pasteur",
"payne",
"perlman",
"pike",
"poincare",
"poitras",
"proskuriakova",
"ptolemy",
"raman",
"ramanujan",
"ritchie",
"rhodes",
"robinson",
"roentgen",
"rosalind",
"rubin",
"saha",
"sammet",
"sanderson",
"satoshi",
"shamir",
"shannon",
"shaw",
"shirley",
"shockley",
"shtern",
"sinoussi",
"snyder",
"solomon",
"spence",
"stonebraker",
"sutherland",
"swanson",
"swartz",
"swirles",
"taussig",
"tereshkova",
"tesla",
"tharp",
"thiele",
"thompson",
"torvalds",
"tu",
"turing",
"varahamihira",
"vaughan",
"visvesvaraya",
"volhard",
"villani",
"wescoff",
"wilbur",
"wiles",
"williams",
"williamson",
"wilson",
"wing",
"wozniak",
"wright",
"wu",
"yalow",
"yonath",
"zhukovsky",
"ago",
"amir",
"ansell",
"bieron",
"bitincka",
"bondo",
"chung",
"easley",
"emmy",
"fritze",
"goozy",
"gilbert",
"heady",
"hoffman",
"jeebus",
"katz",
"krueger",
"litras",
"maislin",
"marko",
"quick",
"rochette",
"romito",
"shanaghy",
"sharp",
"smith",
"sobolewski",
"strong",
"suara",
"tankersley",
"vandoren",
"wilk",
"vandoren",
"wilkins",
"reeder",
"shannon",
"geary",
"walker",
"denver",
"medary",
"robinson",
"carney",
"crawford",
"green",
"harvey",
"osborn",
"anthony",
"john",
"glick",
"martin",
"humphrey",
"lewelling",
"morrill",
"leedy",
"stanley",
"bailey",
"hoch",
"stubbs",
"hodges",
"capper",
"allen",
"davis",
"paulen",
"reed",
"woodring",
"landon",
"huxman",
"ratner",
"schoeppel",
"carlson",
"hagaman",
"arn",
"hall",
"mccuish",
"docking",
"anderson",
"avery",
"docking",
"bennett",
"carlin",
"hayden",
"finney",
"graves",
"sebelius",
"parkinson",
"brownback",
"colyer",
"kelly",
"campbell",
"thayer",
"hoyt",
"hale",
"morgan",
"warren",
"baxter",
"moonlight",
"barber",
"osborne",
"richards",
"chatterton",
"brooks",
"carey",
"kendrick",
"houx",
"ross",
"lucas",
"emerson",
"clark",
"miller",
"smith",
"hunt",
"crane",
"barrett",
"simpson",
"hickey",
"gage",
"hansen",
"hathaway",
"herschler",
"sullivan",
"geringer",
"freudenthal",
"mead",
"gordon",
];
function generateName() {
return (
left[Math.floor(Math.random() * left.length)] +
"-" +
right[Math.floor(Math.random() * right.length)]
);
}
function generateNameWithNumber() {
return generateName() + "_" + (Math.floor(6 * Math.random()) + 1);
}
function generateNameWithDate() {
var e = new Date();
return (
e.setMinutes(e.getMinutes() - e.getTimezoneOffset()),
e.toISOString().slice(0, 10).replace(/-/g, "") + "_" + generateName()
);
}
document.getElementById("dname").innerHTML = generateNameWithDate();
</script>
</body>