ser

Delhi HC seeks CBI’s response on plea to preserve CCTV footage in coaching centre deaths




ser

Cannot change rules of the game once recruitment to public services commences: SC

The Constitution Bench says laws, rules and procedure governing recruitments to public services must be governed by the overarching principles of fundamental rights of equality and non-discrimination




ser

ARRL VEC Services Update During Systems Disruption

Updated 10/30/2024

ARRL previously reported that we are responding to a serious incident involving access to our network and headquarters-based systems. Several services have been affected, including those administered by the ARRL Volunteer Examiner Coordinator (ARRL VEC).

Exam Registrations and Materials. ARRL Volunteer Examiners (VEs) should continue to submit exam registrations and material re...




ser

Most top scientists at ICAR hired through lateral entry since 2007, bypassing reservation norms

Over 2,700 senior scientists, including HoDs, ADGs, DDGs, are hired through interviews only, sans reservations; those recruited through examinations seek ban on lateral entry, as it creates a “toxic” work culture, blocks advancement




ser

Home cooks in Thiruvananthapuram are championing artificial additive-free jams, preserves, juice, ethnic eats and more

Four home cooks in Thiruvananthapuram are turning fruits into value-added products without using artificial flavours or preservatives





ser

Observability and mathematics [electronic resource] : Quantum Yang-Mills theory and modelling / Boris Khots.




ser

Netflix to make first original series in India




ser

Helpshift raises $23 m in Series B funding




ser

‘Restore stops for mofussil buses on Samayapuram service road’




ser

Agriculture officials conduct surprise checks at fertiliser outlets in Tiruchi district

63 outlets were checked across various agricultural blocks for illegal hoarding and also to check adherence to maximum retail price; dealers asked to comply with guidelines




ser

Crocodile Conservation Centre to come up at Anaikarai

The Centre is to be established at a cost of ₹2.5 crore based on a detailed proposal sent by the Principal Chief Conservator of Forests and Chief Wildlife Warden, Chennai




ser

Microbrowsers are Everywhere

Colin Bendell gets into the minutia of microbrowsers - the small previews of your site that are pervasive all around the web and through social media apps and search engines whenever an item of content on your site is referenced.


You’ve seen it everywhere - that little thumbnail preview of a website mentioned in a tweet, the expanded description in a Slack channel, or in WhatsApp group chat.

Figure 1: The preview shown in a group chat provides a hint of what the real webpage looks like

These link previews are so commonplace that we hardly pay any attention to how our site design might be impacting the generated preview. Yet, these previews can be the most influential part for attracting new audiences and increasing engagement - possibly more than SEO. Even more alarming is that most web analytics are blind to this traffic and can’t show you how these Microbrowsers are interacting with your site.

As we close out the year, here are five essential questions and ideas that every web dev should know about Microbrowsers.

1. What are Microbrowsers? How are they different from “normal” browser?

We are all very familiar with the main browsers like Firefox, Safari, Chrome, Edge and Internet Explorer. Not to mention the many new browsers that use Chromium as the rendering engine but offer unique user experiences like Samsung Internet or Brave.

In contrast, Microbrowsers are a class of User-Agents that also visit website links, parse HTML and generate a user experience. But unlike those traditional browsers, the HTML parsing is limited and the rendering engine is singularly focused. The experience is not intended to be interactive. Rather the experience is intended to be representational - to give the user a hint of what exists on the other side of the URL.

Creating link previews is not new. Facebook and Twitter have been adding these link previews in posts for nearly a decade. That used to be the primary use case. Marketing teams created backlog items to adopt different microdata - from Twitter Cards and Open Graph annotations for Facebook. LinkedIn likewise embraced both Open Graph and OEmbed tags to help generate the previews

<meta name="description" content="seo description long">
<meta name="keywords" content="seo keyword list">

<link rel="shortcut icon" href="favicon.ico" 
                          type="image/x-icon">
<link rel="icon" href="favicon_32.png" sizes="32x32">
<link rel="icon" href="favicon_48.png" sizes="48x48">
<link rel="icon" href="favicon_96.png" sizes="96x96">
<link rel="icon" href="favicon_144.png" sizes="144x144">

<meta property="og:title" content="Short title here" />
<meta property="og:description" content="shortish description" />
<meta name="twitter:title" content="Short title here">
<meta name="twitter:description" content="shortish description">

<meta property="og:image"
      content="https://res.cloudinary.com/.../hero-img.png" />

<meta name="twitter:image:src"
      content="https://res.cloudinary.com/.../hero-img.png">

As group chats and other collaboration tools have become more prevalent, we have seen many features from the big social media platforms emerge. Particularly in recent years we’ve seen the adoption of the link unfurling behaviour in these chat platforms. Rather than reinventing the wheel, each platform looks for pre-existing microdata to generate the preview.

But which data should be used? How should this be arranged? As it turns out, each platform behaves slightly differently; presenting information in slightly different ways.

Figure 2: The same amazon link shared in iMessage (left), Hangouts and WhatsApp (right)

2. If Microbrowsers are everywhere, why don’t I see them in my analytics reports?

It’s easy to miss the traffic from Microbrowsers. This is for a number of reasons:

First, page requests from Microbrowsers don’t run JavaScript and they don’t accept cookies. The Google Analytics <script> block won’t be run or executed. And all cookie will be ignored by the rendering agent.

Second, if you were to do a log analysis based on HTTP logs from your CDN or web stack, you would see a relatively small volume of traffic. That is assuming you can identify the User-Agent strings. Some of these Microbrowsers impersonate real browsers and others impersonate Facebook or twitter. For example, iMessage uses the same User-Agent string for all these requests and it hasn’t changed since iOS 9.

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) 
             AppleWebKit/601.2.4 (KHTML, like Gecko) 
             Version/9.0.1 Safari/601.2.4 
             facebookexternalhit/1.1  
             Facebot Twitterbot/1.0

Finally, many platforms - particularly Facebook Messenger and Hangouts use centralized services to request the preview layout. This, in contrast to WhatsApp and iMessage where you will see one request per user. In the centralized consumer approach your web servers will only see one request, but this one request might represent thousands of eyeballs.

3. Microbrowser are probably more important than google bot

We all know the importance of having our web sites crawled by search engines like googlebot. These bots are the lifeblood for lead generation and for discovering new users.

However, the real gold for marketers is from word-of-mouth discussions. Those conversations with your friends when you recommend a TV show, a brand of clothing, or share a news report. This is the most valuable kind of marketing.

Last year when assembling the data for Cloudinary’s State of the Visual Media report, I discovered that there was a very prominent usage pattern over the USA holiday season. During thanksgiving, all the way to Black Friday, the rate of link sharing skyrocketed as group chats shared deals and insights.

Zooming out (and normalizing for time-of-day), we can see that there is a daily cadence of link sharing and word of mouth referrals. It probably isn’t a shock to see that we predominantly share links in Slack between Monday and Friday, while WhatsApp is used all week long. Likewise, WhatsApp is most often used during our ‘break’ times like lunch or in the evening after we put the kids to bed.

While the link preview is increasingly common, there are two user behaviours to balance:

  • Users can be skeptical of links sent via SMS and other chats. We don’t want to be fooled into clicking a phishing links and so we look for other queues to offer validation. This is why most platforms use the preview while also emphasize the website url host name.

  • Skimming. I’m sure you’ve had the experience coming out of a meeting or grocery store to find a group chat with 100 messages. As you scroll to catch up on the conversation, links can easily be skipped. In this way, users expect the preview to act as a summary to tell them how important it is to visit the link.

Figure 4: Nielsen Norman Group summarizes the research in a dynamic image preview

Figure 5: A mockup of how an ecommerce product could create compelling previews showcasing colors, stock and price in the preview

4. Microbrowsers are not real browsers (they just play one on TV)

As I previously mentioned, Microbrowsers pretend to be a browser in that they send the right HTTP headers and often send impersonating User-Agent strings. Yet, there are several characteristics that a web dev should be aware of.

First, Microbrowsers try to protect the User’s privacy. The user hasn’t decided to visit your site yet, and more importantly, the user is having a private conversation. The fact that your brand or website is mentioned should just make your ears burn, but you shouldn’t be able to listen in to the conversation.

For this reason, all Microbrowsers:

  • don’t execute JavaScript - so your react application won’t work
  • ignore all cookies - so your A/B or red/green cookies will be ignored
  • some will follow redirects, but will quickly time out after a few seconds and give up trying to expand the link.
  • there won’t be a referer: HTTP header when the user clicks the link for the full browser. In fact, a new user will appear as ‘direct’ traffic - as though they typed in the url.

Second, Microbrowsers have a very small brain and very likely don’t use an advanced network algorithm. Most browsers will use a tokenizer to parse the HTML markup and send requests to the network stack asynchronously. Better yet, browsers will do some analysis of the resources needed before sending the async request to the network.

Based on observational experimentation, most platforms simply use a glorified for loop when parsing the HTML and often request the resources synchronously. This might be ok for fast wifi experiences, but it can cause inconsistent experiences on flaky wifi.

For example, iMessage will discover and load all <link rel="icon" > favicon, all <meta property="og:image" images, and all <meta name="twitter:image:src" before deciding what to render. Many sites still advertise 5 or more favicon sizes. This means that iMessage will download all favicons regardless of size and then not use them if it decides to instead render the image.

For this reason the meta markup that is included is important. The lighter the content, the more likely it will be to be rendered.

5. Markup Matters

Since Microbrowsers are simple-brained browsers, it is all the more important to produce good markup. Here are a few good strategies:

  • It’s almost 2020, you only need one favicon size. Remove all the other <link rel="shortcut icon" and <link rel="icon" references.
  • Based on observational experimentation, the most commonly recognized microdata tags for preview are the Open-Graph tags. When the OG and twitter card tags are missing, the default SEO <meta name="description" is used. However, since the description is often nonsensical SEO optimized phrases, users’ eyes will likely glaze over.

  • On that note, use good descriptive text
  • Provide up to three <meta property="og:image" images. Most platforms will only load the first one, while others (notably iMessage) attempts to create a collage.

Figure 6: Amazon uses User-Agent detection which results in many link previews using the description meta tag.

  • Use <meta property="og:video* with progressive (not streaming) video experiences.
<meta property="og:type" content="video.other">
<meta property="og:video:url" 
               content="https://shoesbycolin.com/blue.mp4">
<meta property="og:video:secure_url" 
               content="https://shoesbycolin.com/blue.mp4">
<meta property="og:video:type" content="video/mp4">
<meta property="og:video:width" content="1280">
<meta property="og:video:height" content="720">
  • Don’t use UA sniffing to hide the <meta> tags. Sites like Amazon do this to try and show only Facebook/Twitter the microdata annotated website. But this can cause problems for some Microbrowsers that don’t use the same impersonation convention. The result is a simple link without a preview.
  • Use the opportunity to tell your product story or summarize your ideas.

Summary

As more of our conversations happen in group chats and slack channels, link previews are an important way for you to engage users before they start the journey on your site. Unfortunately, not all websites present good or compelling previews. (And now that you know what to look for, you won’t be able to unsee bad examples - I’m sorry). To help users take the leap and visit your site, we need to make sure that all our pages are annotated with microdata. Better yet, we can use these previews to create compelling visual summaries.


About the author

Colin is part of the CTO Office at Cloudinary and co-author of the O’Reilly book High Performance Images. He spends much of his time at the intersection of high volume data, media, browsers and standards. He recently helped the community effort writing chapters in the Web Almanac on Media and CDNs. You can find him on tweeting @colinbendell and at blogging at https://bendell.ca

More articles by Colin




ser

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




ser

Editorial. Gold users must get a transparent Re-based price

There is a need to provide consumers with a transparently derived domestic reference rate which is under regulatory supervision




ser

Editorial. Cautious and conservative

Budget is conservative but not averse to experimenting




ser

Editorial. TRAI rules can ring in better telecom service quality

The changes promise a better user experience, with faster load times for web pages and smoother live streams




ser

Editorial: Easy entry for market advisers is good, but not fee control

SEBI could have dispensed with controls on levy of fees. Also, the proposal to dilute the qualification criteria for registered advisers seems ill-advised




ser

Editorial. Satcom can complement telecom services in remote areas

Tech advancements have made it possible for satcom players to offer seamless broadband connectivity directly to the users’ smartphones, bypassing traditional cell towers




ser

Finova Capital raises $135 million in Series E round led by Avataar Venture Partners, Sofina, others

Finova will use the funds to grow its loan book, invest in technology, expand geographically and further its vision of enabling financial inclusion at scale



  • Money &amp; Banking

ser

Indian Overseas Bank launches online Re-KYC service for hassle-free updates

This new digital service allows customers to update their KYC information without visiting the bank branch, utilising three accessible channels: the IOB website, SMS, or email



  • Money &amp; Banking

ser

Bandhan Group enters IT services with the acquisition of Genisys Group

Genisys Group’s service spans digital application lifecycle management, cloud native solutions, data management, digital media operations and business process outsourcing



  • Money &amp; Banking

ser

Bevel Up - Drugs, Users and Outreach Nursing / directed by: Nettie Wild ; produced by: Fiona Gold, Juanita Maginley, Betsy Carson, Nettie Wild, Svend-Erik Eriksen, Rina Fraticelli ; production agencies: National Film Board of Canada (Montreal), British Co

Montreal : National Film Board of Canada, 2016




ser

Reflections on Practice : Pregnant Users / directed by: Nettie Wild ; production agencies: British Columbia Centre for Disease Control. Street Nurse Program (Vancouver), National Film Board of Canada (Montreal)

Montreal : National Film Board of Canada, 2019




ser

Andhra Pradesh poised for growth under visionary leadership, asserts Lanka Dinakar

The annual budget balances welfare and development commendably, says chairman of the 20-Point Programme Committee




ser

Maharashtra elections 2024: On Maratha reservation, there is near social consensus

There is no battle between the Marathas and the OBCs on the issue of reservation to Marathas, as of now




ser

Undergraduate algebra [electronic resource] / Serge Lang

New York : Springer, 2005




ser

The maximum principle [electronic resource] / Patrizia Pucci, James Serrin

Basel ; Boston : Birkhauser, 2007




ser

Research problems in discrete geometry [electronic resource] / Peter Brass, William Moser, Janos Pach

New York : Springer, 2005




ser

Time series analysis and its applications [electronic resource] : with R examples / Robert H. Shumway, David S. Stoffer

New York : Springer, 2006




ser

The splendors and miseries of martingales [electronic resource] : their history from the casino to mathematics / Laurent Mazliak, Glenn Shafer, editors.

Cham : Birkhäuser, 2022




ser

Poojary asks officials to hasten Karavali junction-Malpe stretch highway widening project by paying compensation to land losers by November 10




ser

KSRTC seeks permits to operate services on six routes connecting areas on Mangaluru outskirts




ser

Odisha Civil Services prelims postponed due to Dana




ser

Conservation technologist Arpit Deomurari on his experience in using tech for Nature

Wearing many hats — ecologist, GIS expert, data scientist, and conservation technologist — allows for a view of the connections between different fields




ser

Those snatching central university teachers' right of reservation lecturing others: Kharge

RTI query has revealed that of the 18,940 sanctioned posts in 46 central universities, 27% teaching posts are vacant; 38% seats for the Scheduled Castes (SCs), Scheduled Tribes (STs) and Other Backward Classes (OBC) are not filled




ser

IIT Kanpur reserves seats in BTech, BS for Olympiad performers

IIT Kanpur reserves seats for BTech and BS programs through Olympiads, testing students’ knowledge and skills in various subjects.




ser

Amazon launches its first free facility to impart technological skills to underserved students in Bengaluru

The Amazon Future Engineer Makerspace aims to empower students with hands-on learning in robotics, AI, and 3D printing




ser

As its industry struggles, Germany services sector offers untapped growth potential




ser

War Dogs review: Guns and posers

Jonah Hill, who reportedly has put on more weight for this part, is a riot each time he’s raging, which is almost through the whole film.




ser

Neer Dose: Serving up a heavy dose of misogyny




ser

‘Dayaa’ web series review: A solid thriller drama series that has scope for a brilliant follow-up 

Director Pavan Sadineni’s Telugu web series ‘Dayaa’, headlined by J D Chakravarthy’s restrained brilliance, is a gritty series that can leave viewers curious to know more




ser

Non-IT services tenants, SEZ conversions aid occupancies in REITs

Brookfield India Real Estate Trust, which was hit by exits by tenants in the IT and IT services segments, has only 26 per cent of its tenant base in the technology sector




ser

Transition-metal-free skeletal editing of benzoisothiazol-3-ones to 2,3-dihydrobenzothiazin-4-ones via single-carbon insertion

Org. Chem. Front., 2024, Advance Article
DOI: 10.1039/D4QO01714E, Research Article
Ke Yang, Qin Li, Yanqi Luo, Dan Yuan, Chunjian Qi, Zhengyi Li, Bijin Li, Xiaoqiang Sun
Transition-metal-free ring expansion of benzoisothiazol-3-ones has been established to construct various 2,3-dihydrobenzothiazin-4-ones via single-carbon insertion.
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




ser

Telangana pharmaceutical industries logged 97 major fire accidents in past decade: Fire Services Director-General Y. Nagi Reddy

The new government would like to decentralise and set up pharma villages, in 10 clusters, Special Chief Secretary Jayesh Ranjan said




ser

Livingstone rises to the occasion as England levels ODI series against West Indies

England finished its successful run chase on 329-5 in the second one-day international with 15 balls remaining




ser

Ind vs NZ 3rd Test: New Zealand scripts history as India suffers Test series whitewash

No team had been able to win all the Test matches in India in a series featuring three or more Test matches in nine decades.




ser

BCCI to discuss New Zealand whitewash, some senior players could be phased out post-Australia series

There is a high possibility that the five-match Test series against Australia could be the final one for at least two of the four seniors among Rohit Sharma, Virat Kohli, Ravindra Jadeja and Ravichandran Ashwin.




ser

India vs New Zealand: Will Young shines in New Zealand’s historic Test series win in India

His biggest contributions came in the third Test at Mumbai when Young’s 71 and 51 across the two innings helped New Zealand become the first team ever to beat India 3-0 in their own backyard




ser

India’s coaching staff under the scanner ahead of the Border-Gavaskar series

Gambhir & Co. gets captain Rohit’s backing after the home Test series loss against New Zealand; the head coach says the team has to be honest and keep working hard