cta

Acta Agrícola y Pecuaria [electronic journal].

Facultad de Ciencias Agropecuarias




cta

2019 International Conference on Theoretical and Applicative Aspects of Computer Science (ICTAACS) [electronic journal].

IEEE / Institute of Electrical and Electronics Engineers Incorporated




cta

2019 International Conference on Electrical and Computing Technologies and Applications (ICECTA) [electronic journal].

IEEE / Institute of Electrical and Electronics Engineers Incorporated




cta

2019 IEEE International Conference on Integrated Circuits, Technologies and Applications (ICTA) [electronic journal].




cta

2019 IEEE 31st International Conference on Tools with Artificial Intelligence (ICTAI) [electronic journal].

IEEE / Institute of Electrical and Electronics Engineers Incorporated




cta

2019 12th International Conference on Intelligent Computation Technology and Automation (ICICTA) [electronic journal].




cta

2012 IEEE 24th International Conference on Tools with Artificial Intelligence (ICTAI 2012) [electronic journal].

IEEE Computer Society




cta

2011 International Conference on Intelligent Computation Technology and Automation (ICICTA) [electronic journal].

IEEE Computer Society




cta

[ASAP] Charge and Electrical Double Layer Formation in a Nonpolar Solvent Using a Nonionic Surfactant

Langmuir
DOI: 10.1021/acs.langmuir.0c00311




cta

[ASAP] Microcompression Method for Determining the Size-Dependent Elastic Properties of PMMA Microcapsules Containing <italic toggle="yes">n</italic>-Octadecane

Langmuir
DOI: 10.1021/acs.langmuir.0c00399




cta

[ASAP] Role of Alcohol as a Cosurfactant at the Brine–Oil Interface under a Typical Reservoir Condition

Langmuir
DOI: 10.1021/acs.langmuir.0c00494




cta

[ASAP] Competitive Interactions at Electrolyte/Octanol Interfaces: A Molecular Perspective

The Journal of Physical Chemistry C
DOI: 10.1021/acs.jpcc.0c00302




cta

[ASAP] Synthesis and Characterization of a Chromo-Extractant to the Probe Liquid–Liquid Interface in a Solvent Extraction Process

The Journal of Physical Chemistry C
DOI: 10.1021/acs.jpcc.0c00253




cta

Structured fluids: polymers, culloids, surfactants / Thomas A. Witten, Philip A. Pincus

Online Resource




cta

Rhamnolipid biosurfactant: recent trends in production and application / Rajesh Kumar, Amar Jyoti Das

Online Resource




cta

Biobased surfactants and detergents: synthesis, properties, and applications / editors, Douglas G. Hayes [and others]

Online Resource




cta

Hydrophobic tail length in spin crossover active iron(II) complexes predictably tunes T½ in solution and enables surface immobilisation

Inorg. Chem. Front., 2020, Advance Article
DOI: 10.1039/C9QI01478K, Research Article
Sriram Sundaresan, Jonathan A. Kitchen, Sally Brooker
Linear correlation of the hydrophobic alkyl tail length R employed in [FeII(LH-OR)(NCBH3)2] with the spin crossover switching temperature is a very convenient method of predictably tuning the iron(II) spin state.
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




cta

Aerobic Oxidation Catalyzed by Polyoxometalates Associated to an Artificial Reductase at Room Temperature and in Water

Inorg. Chem. Front., 2020, Accepted Manuscript
DOI: 10.1039/D0QI00442A, Research Article
Ahmad Naim, Yoan Chevalier, Younes Bouzidi, Priyanka Gairola, Pierre Mialane, Anne Dolbecq-Bastin, Frédéric Avenier, Jean-Pierre Mahy
Four polyoxometalates (POMs) were combined with an artificial reductase based on polyethyleneimine (PEI) and flavin mononucleotide (FMN) which is capable of delivering single electrons upon addition of nicotinamide adenine dinucleotide...
The content of this RSS Feed (c) The Royal Society of Chemistry




cta

Road ahead: A diet chart dictated by your genes




cta

Speciation of Be2+ in acidic liquid ammonia and formation of tetra- and octanuclear beryllium amido clusters

Chem. Sci., 2020, Accepted Manuscript
DOI: 10.1039/D0SC01112F, Edge Article
Open Access
Matthias Müller, Antti J Karttunen, Magnus Richard Buchner
The hexa-μ2-amido-tetraammine-tetraberyllium compounds [Be4(NH2)6(NH3)4]X2 (X = Cl, Br, I, CN, SCN, N3) have been prepared from beryllium metal and NH4X or [Be(NH3)4]X2 in liquid ammonia at ambient temperature. The obtained...
The content of this RSS Feed (c) The Royal Society of Chemistry




cta

Cyber security intelligence and analytics: proceedings of the 2020 International Conference on Cyber Security Intelligence and Analytics (CSIA 2020). / Zheng Xu, Reza M. Parizi, Mohammad Hammoudeh, Octavio Loyola-González, editors

Online Resource




cta

Cyber security intelligence and analytics: Proceedings of the 2020 International Conference on Cyber Security Intelligence and Analytics (CSIA 2020). / Zheng Xu, Reza M. Parizi, Mohammad Hammoudeh, Octavio Loyola-González, editors

Online Resource




cta

Recent advances in theoretical, applied, computational and experimental mechanics: proceedings of ICTACEM 2017 / B. N. Singh, Arnab Roy, Dipak Kumar Maiti, editors

Online Resource




cta

[ASAP] Cov_FB3D: A De Novo Covalent Drug Design Protocol Integrating the BA-SAMP Strategy and Machine-Learning-Based Synthetic Tractability Evaluation

Journal of Chemical Information and Modeling
DOI: 10.1021/acs.jcim.9b01197




cta

Living with hate in American politics and religion: how popular culture can defuse intractable differences / Jeffrey Israel

Dewey Library - BL65.P7 I87 2019




cta

'NOT recommended under any circumstances': Health Ministry issues advisory on use of disinfectant on people

Several images and videos have emerged from different parts of the country where authorities are using disinfectant on people as part of the strategy against coronavirus.




cta

Acta sociológica (Mexico City, Mexico : 1990 : Online)




cta

The fractal organization [electronic resource] : creating enterprises of tomorrow / Pravir Malik

Malik, Pravir




cta

[ASAP] Immobilized Carbodiimide Assisted Flow Combinatorial Protocol to Facilitate Amide Coupling and Lactamization

ACS Combinatorial Science
DOI: 10.1021/acscombsci.0c00001




cta

The twins climbing Mount Everest for science, and the fractal nature of human bone

To study the biological differences brought on by space travel, NASA sent one twin into space and kept another on Earth in 2015. Now, researchers from that project are trying to replicate that work planet-side to see whether the differences in gene expression were due to extreme stress or were specific to being in space. Sarah Crespi talks with Online News Editor Catherine Matacic about a “control” study using what might be a comparably stressful experience here on Earth: climbing Mount Everest. Catherine also shares a recent study that confirmed what one reddit user posted 5 years ago: A single path stretching from southern Pakistan to northeastern Russia will take you on the longest straight-line journey on Earth, via the ocean. Finally, Sarah talks with Roland Kröger of the University of York in the United Kingdom about his group’s study published this week in Science. Using a combination of techniques usually reserved for materials science, the group explored the nanoscale arrangement of mineral in bone, looking for an explanation of the tissue’s contradictory combination of toughness and hardness. This week’s episode was edited by Podigy. Listen to previous podcasts. [Image: Human bone (20X) by Berkshire Community College Bioscience Image Library; Music: Jeffrey Cook]




cta

Comparison of surfactant-mediated liquid chromatographic modes with sodium dodecyl sulphate for the analysis of basic drugs

Anal. Methods, 2020, Advance Article
DOI: 10.1039/D0AY00526F, Paper
N. Pankajkumar-Patel, E. Peris-García, M. J. Ruiz-Angel, M. C. García-Alvarez-Coque
A comprehensive overview of the performance of MLC, HSLC and MELC for the analysis of basic compounds.
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




cta

Cyclic boronates as versatile scaffolds for KPC-2 β-lactamase inhibition

RSC Med. Chem., 2020, 11,491-496
DOI: 10.1039/C9MD00557A, Research Article
Catherine L. Tooke, Philip Hinchliffe, Alen Krajnc, Adrian J. Mulholland, Jürgen Brem, Christopher J. Schofield, James Spencer
Mono- (vaborbactam) and bi-cyclic (taniborbactam) boronate inhibitors bind KPC-2 similarly, but the latter is essentially irreversible.
The content of this RSS Feed (c) The Royal Society of Chemistry




cta

No spectators allowed at Hungarian GP

'We do believe that staging the event behind closed doors, which our fans can still watch on television, is preferable to not having a race at all.'




cta

Surfactants for enhanced oil recovery applications Muhammad Sagir, Muhammad Mushtaq, M. Suleman Tahir, Muhammad Bilal Tahir, Abdul Ravoof Shaik

Online Resource




cta

European dictatorships, 1918-1945 / Stephen J. Lee

Lee, Stephen J., 1945-




cta

The Italian dictatorship : problems and perspectives in the interpretation of Mussolini and fascism / R.J.B. Bosworth

Bosworth, R. J. B. (Richard J. B.), 1943-




cta

[ASAP] MALDI-2 Mass Spectrometry and Immunohistochemistry Imaging of Gb3Cer, Gb4Cer, and Further Glycosphingolipids in Human Colorectal Cancer Tissue

Analytical Chemistry
DOI: 10.1021/acs.analchem.0c00480




cta

[ASAP] Metal–Organic Framework-Enhanced Solid-Phase Microextraction Mass Spectrometry for the Direct and Rapid Detection of Perfluorooctanoic Acid in Environmental Water Samples

Analytical Chemistry
DOI: 10.1021/acs.analchem.9b05524




cta

[ASAP] Fold-Change Compression: An Unexplored But Correctable Quantitative Bias Caused by Nonlinear Electrospray Ionization Responses in Untargeted Metabolomics

Analytical Chemistry
DOI: 10.1021/acs.analchem.0c00246




cta

Profile of SSI and DI Beneficiaries with Work Goals and Expectations in 2015

This brief presents an updated profile of work-oriented beneficiaries and compares them to other SSI and DI beneficiaries who are not interested in work.




cta

Effects of sodium chloride on rheological behaviour of the gemini-like surfactants

Soft Matter, 2020, 16,4024-4031
DOI: 10.1039/D0SM00243G, Paper
Xinxin Li, Pengxiang Wang, Xiaoyu Hou, Fang Wang, Han Zhao, Bobo Zhou, Hongwen Zhang, Hongbin Yang, Wanli Kang
Effects of NaCl on the rheological behaviour of the gemini-like surfactants and the mechanism of the effects were investigated.
The content of this RSS Feed (c) The Royal Society of Chemistry




cta

[ASAP] Hierarchical Plasmon Resonances in Fractal Structures

ACS Photonics
DOI: 10.1021/acsphotonics.0c00110




cta

Building a Dictaphone Using Media Recorder and getUserMedia

Chris Mills brushes up his shorthand and shows how the MediaStream Recording API in modern browsers can be used to capture audio directly from the user’s device. Inching ever closer to the capabilities of native software, it truly is an exciting time to be a web developer.


The MediaStream Recording API makes it easy to record audio and/or video streams. When used with MediaDevices.getUserMedia(), it provides an easy way to record media from the user’s input devices and instantly use the result in web apps. This article shows how to use these technologies to create a fun dictaphone app.

A sample application: Web Dictaphone

To demonstrate basic usage of the MediaRecorder API, we have built a web-based dictaphone. It allows you to record snippets of audio and then play them back. It even gives you a visualisation of your device’s sound input, using the Web Audio API. We’ll just concentrate on the recording and playback functionality in this article, for brevity’s sake.

You can see this demo running live, or grab the source code on GitHub. This has pretty good support on modern desktop browsers, but pretty patchy support on mobile browsers currently.

Basic app setup

To grab the media stream we want to capture, we use getUserMedia(). We then use the MediaRecorder API to record the stream, and output each recorded snippet into the source of a generated <audio> element so it can be played back.

We’ll first declare some variables for the record and stop buttons, and the <article> that will contain the generated audio players:

const record = document.querySelector('.record');
const stop = document.querySelector('.stop');
const soundClips = document.querySelector('.sound-clips');

Next, we set up the basic getUserMedia structure:

if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
   console.log('getUserMedia supported.');
   navigator.mediaDevices.getUserMedia (
      // constraints - only audio needed for this app
      {
         audio: true
      })

      // Success callback
      .then(function(stream) {

      })

      // Error callback
      .catch(function(err) {
         console.log('The following `getUserMedia` error occured: ' + err);
      }
   );
} else {
   console.log('getUserMedia not supported on your browser!');
}

The whole thing is wrapped in a test that checks whether getUserMedia is supported before running anything else. Next, we call getUserMedia() and inside it define:

  • The constraints: Only audio is to be captured for our dictaphone.
  • The success callback: This code is run once the getUserMedia call has been completed successfully.
  • The error/failure callback: The code is run if the getUserMedia call fails for whatever reason.

Note: All of the code below is found inside the getUserMedia success callback in the finished version.

Capturing the media stream

Once getUserMedia has created a media stream successfully, you create a new Media Recorder instance with the MediaRecorder() constructor and pass it the stream directly. This is your entry point into using the MediaRecorder API — the stream is now ready to be captured into a <Blob>, in the default encoding format of your browser.

const mediaRecorder = new MediaRecorder(stream);

There are a series of methods available in the MediaRecorder interface that allow you to control recording of the media stream; in Web Dictaphone we just make use of two, and listen to some events. First of all, MediaRecorder.start() is used to start recording the stream once the record button is pressed:

record.onclick = function() {
  mediaRecorder.start();
  console.log(mediaRecorder.state);
  console.log("recorder started");
  record.style.background = "red";
  record.style.color = "black";
}

When the MediaRecorder is recording, the MediaRecorder.state property will return a value of “recording”.

As recording progresses, we need to collect the audio data. We register an event handler to do this using mediaRecorder.ondataavailable:

let chunks = [];

mediaRecorder.ondataavailable = function(e) {
  chunks.push(e.data);
}

Last, we use the MediaRecorder.stop() method to stop the recording when the stop button is pressed, and finalize the Blob ready for use somewhere else in our application.

stop.onclick = function() {
  mediaRecorder.stop();
  console.log(mediaRecorder.state);
  console.log("recorder stopped");
  record.style.background = "";
  record.style.color = "";
}

Note that the recording may also stop naturally if the media stream ends (e.g. if you were grabbing a song track and the track ended, or the user stopped sharing their microphone).

Grabbing and using the blob

When recording has stopped, the state property returns a value of “inactive”, and a stop event is fired. We register an event handler for this using mediaRecorder.onstop, and construct our blob there from all the chunks we have received:

mediaRecorder.onstop = function(e) {
  console.log("recorder stopped");

  const clipName = prompt('Enter a name for your sound clip');

  const clipContainer = document.createElement('article');
  const clipLabel = document.createElement('p');
  const audio = document.createElement('audio');
  const deleteButton = document.createElement('button');

  clipContainer.classList.add('clip');
  audio.setAttribute('controls', '');
  deleteButton.innerHTML = "Delete";
  clipLabel.innerHTML = clipName;

  clipContainer.appendChild(audio);
  clipContainer.appendChild(clipLabel);
  clipContainer.appendChild(deleteButton);
  soundClips.appendChild(clipContainer);

  const blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
  chunks = [];
  const audioURL = window.URL.createObjectURL(blob);
  audio.src = audioURL;

  deleteButton.onclick = function(e) {
    let evtTgt = e.target;
    evtTgt.parentNode.parentNode.removeChild(evtTgt.parentNode);
  }
}

Let’s go through the above code and look at what’s happening.

First, we display a prompt asking the user to name their clip.

Next, we create an HTML structure like the following, inserting it into our clip container, which is an <article> element.

<article class="clip">
  <audio controls></audio>
  <p>_your clip name_</p>
  <button>Delete</button>
</article>

After that, we create a combined Blob out of the recorded audio chunks, and create an object URL pointing to it, using window.URL.createObjectURL(blob). We then set the value of the <audio> element’s src attribute to the object URL, so that when the play button is pressed on the audio player, it will play the Blob.

Finally, we set an onclick handler on the delete button to be a function that deletes the whole clip HTML structure.

So that’s basically it — we have a rough and ready dictaphone. Have fun recording those Christmas jingles! As a reminder, you can find the source code, and see it running live, on the MDN GitHub.


This article is based on Using the MediaStream Recording API by Mozilla Contributors, and is licensed under CC-BY-SA 2.5.


About the author

Chris Mills manages the MDN web docs writers’ team at Mozilla, which involves spreadsheets, meetings, writing docs and demos about open web technologies, and occasional tech talks at conferences and universities. He used to work for Opera and W3C, and enjoys playing heavy metal drums and drinking good beer.

More articles by Chris




cta

Reluctant warriors: Germany, Japan, and their U.S. alliance dilemma / Alexandra Sakaki, Hanns W. Maull, Kerstin Lukner, Ellis S. Krauss, Thomas U. Berger

Dewey Library - UA710.S135 2020




cta

How to be a dictator: the cult of personality in the twentieth century / Frank Dikötter

Dewey Library - JC495.D55 2019




cta

With Mamata Banerjee as CM,WB moved from one dictatorship to another: Jairam Ramesh



  • DO NOT USE West Bengal
  • India

cta

Amit Shah attacks Mamata govt for failing to live up to people’s expectations



  • DO NOT USE West Bengal
  • India

cta

JSJ 364: Ember Octane with Sam Selikoff

Sponsors

Panel

  • AJ O’Neal

Joined by special guest: Sam Selikoff

Episode Summary

In this episode of JavaScript Jabber, Sam Selikoff, Co-Founder at EmberMap, Inc. starts with giving a brief background about himself and his work followed by a discussion with AJ O’Neal about the Ember community. Sam mentions some of the biggest advantages in using Ember, and what it should and should not be used for. He explains the architecture of Ember apps, addresses some of the performance concerns and then dives into Octane in detail. He talks about a bunch of Ember components, compiler compatibility, relative weight of Ember apps compared to other frameworks, the underlying build system, and security considerations. Sam then helps listeners understand the usage of ES6 classes and decorators in Ember at length. At the end, they discuss component rendering and element modifiers and move onto picks.

Links

Follow JavaScript Jabber on Devchat.tv, Facebook and Twitter.

Picks

AJ O’Neal:

Sam Selikoff:




cta

[ASAP] pH-Activated Single Molecule Conductance and Binding Mechanism of Imidazole on Gold

Nano Letters
DOI: 10.1021/acs.nanolett.0c01710




cta

Association Between Genetically Proxied Inhibition of HMG-CoA Reductase and Epithelial Ovarian Cancer

This study uses mendelian randomization to estimate the associations between genetic variants related to reduced HMG-CoA reductase activity and epithelial ovarian cancer in the general population and in BRCA1/2 mutation carriers.