using

[ASAP] Optical Control of CRAC Channels Using Photoswitchable Azopyrazoles

Journal of the American Chemical Society
DOI: 10.1021/jacs.0c02949




using

[ASAP] The First Quantitative Synthesis of a Closed Three-Link Chain (6<sub arrange="stack">1</sub><sup arrange="stack">3</sup>) Using Coordination and Noncovalent Interactions-Driven Self-Assembly

Journal of the American Chemical Society
DOI: 10.1021/jacs.0c01406




using

[ASAP] Kinetically Controlled Fast Crystallization of M<sub>12</sub>L<sub>8</sub> Poly-[<italic toggle="yes">n</italic>]-catenanes Using the 2,4,6-Tris(4-pyridyl)benzene Ligand and ZnCl<sub>2</sub>

Journal of the American Chemical Society
DOI: 10.1021/jacs.0c03319




using

T'gana to audit 36 units using industrial gases

Authorities in Telangana have identified 36 units dealing with industrial gases and will carry out an audit of these industries considering the gas leak at LG Polymers in Visakhapatnam.




using

A high-throughput and untargeted lipidomics approach reveals new mechanistic insight and the effects of salvianolic acid B on the metabolic profiles in coronary heart disease rats using ultra-performance liquid chromatography with mass spectrometry

RSC Adv., 2020, 10,17101-17113
DOI: 10.1039/D0RA00049C, Paper
Open Access
Ying-peng Li, Cong-ying Wang, Hong-tao Shang, Rui-rui Hu, Hui Fu, Xue-feng Xiao
High-throughput lipidomics provides the possibility for the development of new therapeutic drugs.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Detection of L-band electron paramagnetic resonance in the DPPH molecule using impedance measurements

RSC Adv., 2020, 10,17311-17316
DOI: 10.1039/D0RA03285A, Paper
Open Access
Ushnish Chaudhuri, R. Mahendiran
(a) Schematic diagram of our experimental set up. (b) Resistance and reactance of the DPPH molecule for 2 GHz current in the strip coil.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Using HTML5 elements in WordPress post content

Here are two ways to include HTML5 elements in your WordPress post content without WordPress’ wpautop function wrapping them in p tags or littering your code with line breaks.

HTML5 has several new elements that you may want to use in your post content to markup document sections, headers, footers, pullquotes, figures, or groups of headings. One way to safely include these elements in your posts is simple; the other way is a bit more complicated. Both ways rely on hand-coding the HTML5 markup in the WordPress editor’s HTML view.

If you are adding HTML5 elements to your post content then you should use an HTML5 doctype.

Disable wpautop for your theme

This is the simple way. Disable the wpautop function so that WordPress makes no attempt to correct your markup and leaves you to hand-code every line of your posts. If you want total control over every line of your HTML then this is the option for you.

To disable wpautop entirely add these lines to your theme’s functions.php:

remove_filter('the_excerpt', 'wpautop');
remove_filter('the_content', 'wpautop');

However, wpautop is generally quite useful if most of your posts are simple text content and you only occasionally want to include HTML5 elements. Therefore, modifying wpautop to recognise HTML5 elements might be more practical.

Modify wpautop to recognise HTML5 elements

WordPress’ wpautop is part of the core functions and can be found in this file within your WordPress installation: wp-includes/formatting.php. It controls how and where paragraphs and line breaks are inserted in excerpts and post content.

In order to create a modified version of WordPress’ core wpautop function I started off by duplicating it in my theme’s functions.php file.

What I’ve experimented with is disabling wpautop and adding a modified copy of it – which includes HTML5 elements in its arrayss – to my theme’s functions.php file.

Add the following to your theme’s functions.php file and you’ll be able to use section, article, aside, header, footer, hgroup, figure, details, figcaption, and summary in your post content. (Probably best to try this in a testing environment first!)

/* -----------------------------
MODIFIED WPAUTOP - Allow HTML5 block elements in wordpress posts
----------------------------- */

function html5autop($pee, $br = 1) {
   if ( trim($pee) === '' )
      return '';
   $pee = $pee . "
"; // just to make things a little easier, pad the end
   $pee = preg_replace('|<br />s*<br />|', "

", $pee);
   // Space things out a little
    // *insertion* of section|article|aside|header|footer|hgroup|figure|details|figcaption|summary
   $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|fieldset|legend|section|article|aside|header|footer|hgroup|figure|details|figcaption|summary)';
   $pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "
$1", $pee);
   $pee = preg_replace('!(</' . $allblocks . '>)!', "$1

", $pee);
   $pee = str_replace(array("
", "
"), "
", $pee); // cross-platform newlines
   if ( strpos($pee, '<object') !== false ) {
      $pee = preg_replace('|s*<param([^>]*)>s*|', "<param$1>", $pee); // no pee inside object/embed
      $pee = preg_replace('|s*</embed>s*|', '</embed>', $pee);
   }
   $pee = preg_replace("/

+/", "

", $pee); // take care of duplicates
// make paragraphs, including one at the end
   $pees = preg_split('/
s*
/', $pee, -1, PREG_SPLIT_NO_EMPTY);
   $pee = '';
   foreach ( $pees as $tinkle )
      $pee .= '<p>' . trim($tinkle, "
") . "</p>
";
   $pee = preg_replace('|<p>s*</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace
// *insertion* of section|article|aside
   $pee = preg_replace('!<p>([^<]+)</(div|address|form|section|article|aside)>!', "<p>$1</p></$2>", $pee);
   $pee = preg_replace('!<p>s*(</?' . $allblocks . '[^>]*>)s*</p>!', "$1", $pee); // don't pee all over a tag
   $pee = preg_replace("|<p>(<li.+?)</p>|", "$1", $pee); // problem with nested lists
   $pee = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee);
   $pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee);
   $pee = preg_replace('!<p>s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
   $pee = preg_replace('!(</?' . $allblocks . '[^>]*>)s*</p>!', "$1", $pee);
   if ($br) {
      $pee = preg_replace_callback('/<(script|style).*?</\1>/s', create_function('$matches', 'return str_replace("
", "<WPPreserveNewline />", $matches[0]);'), $pee);
      $pee = preg_replace('|(?<!<br />)s*
|', "<br />
", $pee); // optionally make line breaks
      $pee = str_replace('<WPPreserveNewline />', "
", $pee);
   }
   $pee = preg_replace('!(</?' . $allblocks . '[^>]*>)s*<br />!', "$1", $pee);
// *insertion* of img|figcaption|summary
   $pee = preg_replace('!<br />(s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol|img|figcaption|summary)[^>]*>)!', '$1', $pee);
   if (strpos($pee, '<pre') !== false)
      $pee = preg_replace_callback('!(<pre[^>]*>)(.*?)</pre>!is', 'clean_pre', $pee );
   $pee = preg_replace( "|
</p>$|", '</p>', $pee );

   return $pee;
}

// remove the original wpautop function
remove_filter('the_excerpt', 'wpautop');
remove_filter('the_content', 'wpautop');

// add our new html5autop function
add_filter('the_excerpt', 'html5autop');
add_filter('the_content', 'html5autop');

The results are not absolutely perfect but then neither is the original wpautop function. Certain ways of formatting the code will result in unwanted trailing </p> tags or a missing opening <p> tags.

For example, to insert a figure with caption into a post you should avoid adding the figcaption on a new line because an image or link appearing before the figcaption will end up with a trailing </p>.

<!-- this turns out ok -->
<figure>
  <a href="#"><img src="image.jpg" alt="" /></a><figcaption>A figure caption for your reading pleasure</figcaption>
</figure>

<!-- this turns out not so ok -->
<figure>
  <a href="#"><img src="image.jpg" alt="" /></a>
  <figcaption>A figure caption for your reading pleasure</figcaption>
</figure>

Another example would be when beginning the contents of an aside with a paragraph. You’ll have to leave a blank line between the opening aside tag and the first paragraph.

<aside>

This content could be a pullquote or information that is tangentially related to the surrounding content. But to get it wrapped in a paragraph you have to leave those blank lines either side of it before the tags.

</aside>

Room for improvement

Obviously there are still a few issues with this because if you format your post content in certain ways then you can end up with invalid HTML, even if it doesn’t actually affect the rendering of the page. But it seems to be pretty close!

Leave a comment or email me if you are using this function and find there that are instances where it breaks down. I ran numerous tests and formatting variations to try and iron out as many problems as possible but it’s unlikely that I tried or spotted everything.

Hopefully someone with more PHP and WordPress experience will be able to improve upon what I’ve been experimenting with, or find a simpler and more elegant solution that retains the useful wpautop functionality while allowing for the use of HTML5 elements in posts. Please share anything you find!




using

Better float containment in IE using CSS expressions

Research into improving the cross-browser consistency of both the “clearfix” and “overflow:hidden” methods of containing floats. The aim is to work around several bugs in IE6 and IE7.

This article introduces a new hack (with caveats) that can benefit the “clearfix” methods and the new block formatting context (NBFC) methods (e.g. using overflow:hidden) of containing floats. It’s one outcome of a collaboration between Nicolas Gallagher (that’s me) and Jonathan Neal.

If you are not familiar with the history and underlying principles behind methods of containing floats, I recommend that you have a read of Easy clearing (2004), Everything you know about clearfix is wrong (2010), and Clearfix reloaded and overflow:hidden demystified (2010).

Consistent float containment methods

The code is show below and documented in this GitHub gist. Found an improvement or flaw? Please fork the gist or leave a comment.

Micro clearfix hack: Firefox 3.5+, Safari 4+, Chrome, Opera 9+, IE 6+

.cf {
  /* for IE 6/7 */
  *zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif");
  /* non-JS fallback */
  *zoom: 1;
}

.cf:before,
.cf:after {
  content: "";
  display: table;
}

.cf:after {
  clear: both;
}

Overflow hack (NBFC): Firefox 2+, Safari 2+, Chrome, Opera 9+, IE 6+

.nbfc {
  overflow: hidden;
  /* for IE 6/7 */
  *zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif");
  /* non-JS fallback */
  *zoom: 1;
}

The GitHub gist also contains another variant of the clearfix method for modern browsers (based on Thierry Koblentz’s work). It provides greater visual consistency (avoiding edge-case bugs) for even older versions of Firefox.

The only difference from existing float-containment methods is the inclusion of a CSS expression that inserts a clearing line-break in IE 6 and IE 7. Jonathan and I found that it helps to resolve some of the visual rendering differences that exist between these browsers and more modern ones. First I’ll explain what some of those differences are and when they occur.

Containing floats in IE 6/7

In IE 6 and IE 7, the most common and robust method of containing floats within an element is to give it “layout” (find out more: On having Layout). Triggering “layout” on an element in IE 6/7 creates a new block formatting context (NBFC). However, certain IE bugs mean that previous float containment methods don’t result in cross-browser consistency. Specifically, this is what to expect in IE 6/7 when creating a NBFC:

  1. The top- and bottom-margins of non-floated child elements are contained within the ancestor element that has been given “layout”. (Also expected in other browsers when creating a NBFC)
  2. The bottom-margins of any right-floated descendants are contained within the ancestor. (Also expected in other browsers when creating a NBFC)
  3. The bottom-margins of any left-floated children are not contained within the ancestor. The margin has no effect on the height of the ancestor and is truncated, having no affect outside of the ancestor either. (IE 6/7 bug)
  4. In IE 6, if the right edge of the margin-box of a left-floated child is within 2px of the left edge of the content-box of its NBFC ancestor, the float’s bottom margin reappears and is contained within the parent. (IE 6 bug)
  5. Unwanted white-space can appear at the bottom of a float-container. (IE 6/7 bug)

There is a lack of consistency between IE 6/7 and other browsers, and between IE 6 and IE 7. Thanks to Matthew Lein for his comment that directed me to this IE 6/7 behaviour. It was also recently mentioned by “Suzy” in a comment on Perishable Press.

IE 6/7’s truncation of the bottom-margin of left-floats is not exposed in many of the test-cases used to demonstrate CSS float containment techniques. Using an IE-only CSS expression helps to correct this bug.

The CSS expression

Including the much maligned <br style="clear:both"> at the bottom of the float-container, as well as creating a NBFC, resolved all these inconsistencies in IE 6/7. Doing so prevents those browsers from collapsing (or truncating) top- and bottom-margins of descendant elements.

Jonathan suggested inserting the clearing line-break in IE 6/7 only, using CSS expressions applied to fictional CSS properties. The CSS expression is the result of many iterations, tests, and suggestions. It runs only once, the first time an element receives the associated classname.

*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif");

It is applied to zoom, which is already being used to help contain floats in IE 6/7, and the use of the runtimeStyle object ensures that the expression is replaced once it has been run. The addition of font:0/0 serif prevents the occasional appearance of white-space at the bottom of a float-container. And the * hack ensures that only IE 6 and IE 7 parse the rule.

It’s worth noting that IE 6 and IE 7 parse almost any string used as CSS property. An earlier iteration used the entirely fictitious properties “-ms-inject” or “-ie-x” property to exploit this IE behaviour.

*-ie-x: expression(this.x||(this.innerHTML+='&lt;br style="clear:both;font:0/0">',this.x=1));

However, this expression is evaluated over and over again. Using runtimeStyle instead avoids this. Sergey Chikuyonok also pointed out that using innerHTML destroys existing HTML elements that may event handlers attached to them. By using document.createElement and appendChild you can insert the new element without removing all the events attached to other descendant elements.

Containing floats in more modern browsers

There are two popular methods to contain floats in modern browsers. Creating a new block formatting context (as is done in IE 6/7 when hasLayout is triggered) or using a variant of the “clearfix” hack.

Creating a NBFC results in an element containing any floated children, and will prevent top- and bottom-margin collapse of non-floated children. When combined with the enhanced IE 6/7 containment method, it results in consistent cross-browser float containment.

The other method, known as “clearfix”, traditionally used a single :after pseudo-element to clear floats in a similar fashion to a structural, clearing HTML line-break. However, to prevent the top-margins of non-floats from collapsing into the margins of their float-containing ancestor, you also need to use the :before pseudo-element. This is the approach taken in Thierry Koblentz’s “clearfix reloaded”. In contemporary browsers, the micro clearfix hack is also suitable.

The method presented in this article should help improve the results of cross-browser float containment, whether you predominantly use “clearfix” or the NBFC method. The specific limitations of both the “clearfix” and various NBFC methods (as outlined in Thierry’s articles) remain.

Problems

Using a CSS expression to change the DOM in IE 6/7 creates problems of its own. Obviously, the DOM in IE 6/7 is now different to the DOM in other browsers. This affects any JavaScript DOM manipulation that may depend on :last-child or appending new children.

This is still an experimental work-in-progress that is primarily research-driven rather than seeking to become a practical snippet of production code. Any feedback, further testing, and further experimentation from others would be much appreciated.

Thanks to these people for contributing improvements: Jonathan Neal, Mathias Bynens, Sergey Chikuyonok, and Thierry Koblentz.




using

Responsive images using CSS3

Future CSS implementations should allow for some form of responsive images via CSS alone. This is an early idea for how that might be done. However, a significant drawback is that it would not prevent both “mobile optimised” and larger size images from being requested at larger screen resolutions.

Note that the CSS presented here is not supported in any browsers at the time of writing.

This method relies on the use of @media queries, CSS3 generated content, and the CSS3 extension to the attr() function.

The principles are basically the same as those underpinning Filament Group’s work on Responsive Images. The source image is “mobile optimised” and the urls of larger size images are included using HTML data-* attributes.

<img src="image.jpg"
     data-src-600px="image-600px.jpg"
     data-src-800px="image-800px.jpg"
     alt="">

Using CSS @media queries you can target devices above certain widths. Within each media query block, images with larger alternatives can be targeted using an attribute selector.

CSS3 generated content allows you to replace the content of any element using the content property. At the moment, only Opera 10+ supports it. In CSS 2.1, the content property is limited to use with the :before and :after pseudo-elements.

By combining the content property with the CSS3 extension to attr(), you will be able to specify that an attribute’s value is interpreted as the URL part of a url() expression. In this case, it means you will be able to replace an image’s content with the image found at the destination URL stored in a custom HTML data-* attribute.

@media (min-device-width:600px) {
  img[data-src-600px] {
    content: attr(data-src-600px, url);
  }
}

@media (min-device-width:800px) {
  img[data-src-800px] {
    content: attr(data-src-800px, url);
  }
}

Fork the Gist

Issues

Unfortunately, there are a number of issues with this technique.

  1. It doesn’t prevent multiple assets being downloaded at larger screen widths because network activity kicks in before CSS is applied. That means, for example, that desktop environments would make 2 HTTP requests for an image and have to load more assets than if they had been served only the larger image in the source.
  2. It makes the assumption that wider screens are tied to better internet connections.
  3. It forces authors to create and maintain multiple image sizes for each image.
  4. At present, using the context menu (or drag and drop) to copy the image will result in the source file being copied and not the replacement image.
  5. It doesn’t account for devices with different pixel densities.




using

How to test React components using Karma and webpack

I’m working on a project at Twitter that uses React and webpack. After a few conversations with @sokra last year, this is the setup I put in place for testing React components (authored using JSX and ES6) using Karma.

Dependencies

You’ll need to install various packages. It looks like a lot of dependencies, but all the non-Karma packages will be necessary for general module bundling during development.

Full set of required packages:

webpack entry file

If you use webpack-specific features in your modules (e.g., loaders, plugins) you will need to use webpack to build a test bundle. The fastest and simplest approach is to create a single, test-specific entry file.

Create a file named tests.bundle.js. Within this file, you create a webpack context to match all the files that conform to a naming pattern – in this case *.spec.js(x).

var context = require.context('.', true, /.+.spec.jsx?$/);
context.keys().forEach(context);
module.exports = context;

Next, you point Karma to this file.

Karma config

Karma is configured using a karma.conf.js file. The browsers, plugins, and frameworks are specified in the standard way.

Point Karma at the tests.bundle.js file, and run it through the relevant preprocessor plugins (see example below).

The karma-webpack plugin relies on 2 custom properties of the Karma config: webpack and webpackMiddleware. The value of the former must be a webpack config object.

module.exports = function (config) {
  config.set({
    browsers: [ 'Chrome' ],
    // karma only needs to know about the test bundle
    files: [
      'tests.bundle.js'
    ],
    frameworks: [ 'chai', 'mocha' ],
    plugins: [
      'karma-chrome-launcher',
      'karma-chai',
      'karma-mocha',
      'karma-sourcemap-loader',
      'karma-webpack',
    ],
    // run the bundle through the webpack and sourcemap plugins
    preprocessors: {
      'tests.bundle.js': [ 'webpack', 'sourcemap' ]
    },
    reporters: [ 'dots' ],
    singleRun: true,
    // webpack config object
    webpack: {
      devtool: 'inline-source-map',
      module: {
        loaders: [
          {
            exclude: /node_modules/,
            loader: 'babel-loader,
            test: /.jsx?$/
          }
        ],
      }
    },
    webpackMiddleware: {
      noInfo: true,
    }
  });
};

Rather than duplicating your webpack config, you can require it in the Karma config file and override the devtool value to get sourcemaps working.

var webpackConfig = require('./webpack.config');
webpackConfig.devtool = 'inline-source-map';

module.exports = function (config) {
  config.set({
    ...
    webpack: webpackConfig
  });
};

That’s all you need to do to configure Karma to use webpack to load your JSX, ES6 React components.




using

Using canvas to fix SVG scaling in Internet Explorer

Internet Explorer 9–11 suffer from various bugs that prevent proper scaling of inline SVG’s. This is particularly problematic for SVG icons with variable widths. This is the canvas-based hack I’ve been using to work around the issue.

A popular way to use SVG icons is to generate a spritemap of SVG symbol‘s that you then reference from elsewhere in a document. Most articles on the topic assume your icon dimensions are uniformly square. Twitter’s SVG icons (crafted by @sofo) are variable width, to produce consistent horizontal whitespace around the vectors.

Most browsers will preserve the intrinsic aspect ratio of an SVG. Ideally, I want to set a common height for all the icons (e.g., 1em), and let the browser scale the width of each icon proportionally. This also makes it easy to resize icons in particular contexts – just change the height.

Unfortunately, IE 9–11 do not preserve the intrinsic aspect ratio of an inline SVG. The svg element will default to a width of 300px (the default for replaced content elements). This means it’s not easy to work with variable-width SVG icons. No amount of CSS hacking fixed the problem, so I looked elsewhere – and ended up using canvas.

canvas and aspect ratios

A canvas element – with height and width attributes set – will preserve its aspect ratio when one dimension is scaled. The example below sets a 3:1 aspect ratio.

<canvas height="1" width="3"></canvas>

You can then scale the canvas by changing either dimension in CSS.

canvas {
  display: block;
  height: 2rem;
}

Demo: proportional scaling of canvas.

Fixing SVG scaling in IE

This makes canvas useful for creating aspect ratios. Since IE doesn’t preserve the intrinsic aspect ratio of SVG icons, you can use canvas as a shim. A canvas of the correct aspect ratio provides a scalable frame. The svg can then be positioned to fill the space created by this frame.

The HTML is straightforward:

<div class="Icon" role="img" aria-label="Twitter">
  <canvas class="Icon-canvas" height="1" width="3"></canvas>
  <svg class="Icon-svg">
    <use fill="currentcolor" xlink:href="#icon-twitter"></use>
  </svg>
</div>

So is the CSS:

.Icon {
  display: inline-block;
  height: 1em; /* default icon height */
  position: relative;
  user-select: none;
}

.Icon-canvas {
  display: block;
  height: 100%;
  visibility: hidden;
}

.Icon-svg {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

Setting the canvas height to 100% means it will scale based on the height of the component’s root element – just as SVG’s do in non-IE browsers. Changing the height of the Icon element scales the inner SVG icon while preserving its 3:1 aspect ratio.

Demo: proportional scaling of svg in IE.

Creating an Icon component

The hack is best added to (and eventually removed from) an existing icon component’s implementation.

If you’re generating and inlining an SVG spritemap, you will need to extract the height and width (usually from viewBox) of each of your icons during the build step. If you’re already using the gulp-svgstore plugin, it supports extracting metadata.

Those dimensions need to be set on the canvas element to produce the correct aspect ratio for a given icon.

Example React component (built with webpack):

import iconData from './lib/icons-data.json';
import React from 'react';
import './index.css';

class Icon extends React.Component {
  render() {
    const props = this.props;
    const height = iconData[props.name.height];
    const width = iconData[props.name.width];

    // React doesn't support namespaced attributes, so we have to set the
    // 'use' tag with innerHTML
    const useTag = `<use fill="currentcolor"
                      xlink:href="#icon-${props.name}">
                    </use>`;

    return (
      <span className="Icon">
        <canvas className="Icon-canvas"
          height={height}
          width={width}
        />
        <svg className="Icon-svg"
          dangerouslySetInnerHTML={{__html: useTag}}
          key={props.name}
        />
      </span>
    );
  }
}

export default Icon;

When I introduced this hack to a code base at Twitter, it had no impact on the the rest of the team or the rest of the code base – one of the many benefits of a component-based UI.




using

Strategic excellence in the architecture, engineering, and construction industries [electronic resource] : how AEC firms can develop and execute strategy using lean Six Sigma / Gerhard Plenert and Joshua J. Plenert

Plenert, Gerhard Johannes, author




using

Tibco spotfire [electronic resource] : a comprehensive primer : create innovative enterprise-class informatics solutions using TIBCO Spotfire / Michael Phillips

Phillips, Michael, author




using

Using 360-degree feedback successfully [electronic resource] / Maxine A. Dalton

Dalton, Maxine A., author




using

Using IBM DB2 UDB with IBM System Storage N series [electronic resource] / [Alex Osuna ... et al.]




using

Using Microsoft OneNote 2010 [electronic resource] / Michael C. Oldenburg

Oldenburg, Michael C




using

Using technology to sell [electronic resource] : tactics to ratchet up results / Jonathan London, Martin Lucas

London, Jonathan




using

Using the project management maturity model [electronic resource] : strategic planning for project management / Harold Kerzner, Ph.D

Kerzner, Harold, author




using

Visuals matter! [electronic resource] : designing and using effective visual representations to support project and portfolio decisions / Joana Geraldi, Mario Arlt

Geraldi, Joana G., 1979- author




using

Web development with MongoDB and Node JS [electronic resource] : build an interactive and full-featured web application from scratch using Node.js and MongoDB / Mithun Sathessh, Bruno Joseph D'mello, Jason Krol

Satheesh, Mithun, author




using

Wise money [electronic resource] : how the smart money invests using the endowment investment approach to minimize volatility and increase control / Daniel Wildermuth

Wildermuth, Daniel





using

Efficient CO2 electroreduction to CO at low overpotentials using a surface-reconstructed and N-coordinated Zn electrocatalyst

Dalton Trans., 2020, 49,5434-5439
DOI: 10.1039/D0DT00800A, Communication
Wanan Deng, Shixiong Min, Fang Wang, Zhengguo Zhang, Chao Kong
A surface-reconstructed and N-coordinated Zn electrocatalyst exhibits enhanced activity and selectivity for CO2 electroreduction to CO at reduced overpotentials.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Design and synthesis of photoluminescent active interpenetrating metal–organic frameworks using N-2-aryl-1,2,3-triazole ligands

Dalton Trans., 2020, 49,5429-5433
DOI: 10.1039/D0DT00933D, Communication
Jingyang Li, Ying He, Li Wang, Qinhe Pan, Zhiguang Song, Xiaodong Shi
N-2-aryl-1,2,3-triazole derivatives were synthesized as new ligand systems for the construction of photoluminescent active metal–organic frameworks (MOFs).
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Rapid mechanochemical synthesis of metal–organic frameworks using exogenous organic base

Dalton Trans., 2020, Advance Article
DOI: 10.1039/D0DT01240H, Paper
Zihao Wang, Zongzhe Li, Marcus Ng, Phillip J. Milner
We describe the mechanochemical, solvent-free synthesis of metal–organic frameworks using liquid organic base for the first time.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

PhD 'Imaging and Nuclear Waste Characterisation using laser plasma accelerators': University of Strathclyde

£Funded position: University of Strathclyde
For more latest jobs and jobs in Scotland visit brightrecruits.com




using

[ASAP] One-Step Dynamic Imine Chemistry for Preparation of Chitosan-Stabilized Emulsions Using a Natural Aldehyde: Acid Trigger Mechanism and Regulation and Gastric Delivery

Journal of Agricultural and Food Chemistry
DOI: 10.1021/acs.jafc.9b08301




using

How to add a carbonyl to a molecule using carbon monoxide and light

Palladium-catalyzed reaction makes acid chlorides, amides, esters, and ketones from both alkyl and aryl halides




using

Xiaogang Liu is using fluorescence to tackle the problem of illicit cooking oil

The Singapore-based physical chemist is building a database of fluorescence fingerprints to help nab adulterated food products




using

Enhanced removal of organic pollutants from super heavy oil wastewater using specially modified lignite activated coke

Environ. Sci.: Water Res. Technol., 2020, Advance Article
DOI: 10.1039/D0EW00033G, Paper
Kun Tong, Guodong Ji, Fan Nie, Mingdong Zhang, Wen Ren, Shuixiang Xie
Lignite activated coke (LAC) has been modified in situ by adsorbing the biodegradation effluent of super heavy oil wastewater (SHOW) to extract organic pollutants from raw SHOW before biodegradation is investigated.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Stepwise ammonium enrichment using selective battery electrodes

Environ. Sci.: Water Res. Technol., 2020, Advance Article
DOI: 10.1039/D0EW00010H, Paper
Moon Son, Eric Kolvek, Taeyoung Kim, Wulin Yang, Johannes S. Vrouwenvelder, Christopher A. Gorski, Bruce E. Logan
Electrochemical cells containing battery electrodes (battery deionization) can be effective in recovering and concentrating ammonium in wastewater with a low energy demand.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Recovery of ammonium and phosphate using battery deionization in a background electrolyte

Environ. Sci.: Water Res. Technol., 2020, Advance Article
DOI: 10.1039/D0EW00183J, Paper
Moon Son, Benjamin L. Aronson, Wulin Yang, Christopher A. Gorski, Bruce E. Logan
The electrochemical cell containing ammonium selective battery electrodes can be effective for recovering ammonium, but not phosphate, from solutions due to its high mass capacity for ammonium ions, with a low energy demand.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Balancing water quality and flows in combined sewer systems using real-time control

Environ. Sci.: Water Res. Technol., 2020, 6,1357-1369
DOI: 10.1039/C9EW00882A, Paper
Sara C. Troutman, Nancy G. Love, Branko Kerkez
An open-source control algorithm for combined sewers demonstrates how treatment plant benefits can be balanced with operation of the collection system.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Field testing of an onsite sanitation system on apartment building blackwater using biological treatment and electrochemical disinfection

Environ. Sci.: Water Res. Technol., 2020, 6,1400-1411
DOI: 10.1039/C9EW01106D, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Siva Kumar Varigala, Meghan Hegarty-Craver, Srinivas Krishnaswamy, Prakash Madhavan, Milan Basil, Praveen Rosario, Antony Raj, Viswa Barani, Clement A. Cid, Sonia Grego, Michael Luettgen
Demonstration of an electrochemical toilet wastewater treatment and disinfection technology at the scale of an apartment building and translation of the system into a commercial product.
The content of this RSS Feed (c) The Royal Society of Chemistry




using

Informality Revisited: Latin American Perspectives on Housing, the State and the Market


 

Informality Revisited offers an overview of recent debates about Latin American government programmes for the formalisation of informal settlements and housing provision in a neo-liberal context. Contributions from Latin American researchers analyse the contradictions in government actions and evaluate the consequences for urban poverty.



Read More...




using

Optics using MATLAB / Scott W. Teare

Barker Library - QC355.3.T43 2017




using

Defocusing nonlinear Schrödinger equations / Benjamin Dodson (The Johns Hopkins University)

Hayden Library - QC174.26.W28 D63 2019




using

Using Mathematica for quantum mechanics: a Students Manual / Roman Schmied

Online Resource




using

An introductory path to quantum theory: using mathematics to understand the ideas of physics / Stephen Bruce Sontz

Online Resource




using

Housing estates in the Baltic Countries: the legacy of central planning in Estonia, Latvia and Lithuania / Daniel Baldwin Hess, Tiit Tammaru, editors

Online Resource




using

HU: common spaces in Housing Units / [Rozana Montiel Estudio de Arquitectura ; author: Rozana Montiel]

Rotch Library - HT165.53.M6 M668 2018




using

Preservation News: 2/14 Lecture, Using CT Scans to Read Obscured Text

Next Topics in Preservation Series lecture from the Library of Congress: The Digital Restoration Initiative -- Reading the Invisible Library

Date: Wednesday, February 14, 2018, 1:30 - 2:30 pm EST

Speaker: W. Brent Seales, Professor and Chairman of the Department of Computer Science and Director of the Center for Visualization and Virtual Environments at the University of Kentucky

Click here for more information and to register for the live webcast.




using

[ASAP] Dissecting the Structural Organization of Multiprotein Amyloid Aggregates Using a Bottom-Up Approach

ACS Chemical Neuroscience
DOI: 10.1021/acschemneuro.0c00110




using

PNB Housing Finance cuts lending rates by 15 bps for existing customers

The company offers its retail customers housing and non-housing loans




using

[ASAP] Nonintrusive Monitoring of Mental Fatigue Status Using Epidermal Electronic Systems and Machine-Learning Algorithms

ACS Sensors
DOI: 10.1021/acssensors.9b02451




using

[ASAP] Highly Sensitive Determination of 2,4,6-Trichlorophenol by Using a Novel SiO<sub>2</sub>@MIPIL Fluorescence Sensor with a Double Recognition Functional Monomer

ACS Sensors
DOI: 10.1021/acssensors.0c00368




using

[ASAP] A Portable and Accurate Phosphate Sensor Using a Gradient Fabry–Pérot Array

ACS Sensors
DOI: 10.1021/acssensors.0c00090




using

[ASAP] Optimizing the Specificity Window of Biomolecular Receptors Using Structure-Switching and Allostery

ACS Sensors
DOI: 10.1021/acssensors.0c00237




using

Enhancing fieldwork learning using mobile technologies / Derek France [and 7 others]

Online Resource




using

A year in the life of a third space urban teacher residency: using inquiry to reinvent teacher education / Monica Taylor (Montclair State University, USA) and Emily J. Klein (Montclair State University, USA) ; with contributions from Linda Abrams [and 28

Online Resource