Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech News - Front-End Web Development

158 Articles
article-image-introducing-web-high-level-shading-language-whlsl-a-graphics-shading-language-for-webgpu
Bhagyashree R
14 Nov 2018
3 min read
Save for later

Introducing Web High Level Shading Language (WHLSL): A graphics shading language for WebGPU

Bhagyashree R
14 Nov 2018
3 min read
Yesterday, the W3C GPU for the Web Community Group introduced a new graphics shading language for the WebGPU API called Web High Level Shading Language (WHLSL, pronounced “whistle”). The language extends HLSL to provide better security and safety. Last year, a W3C GPU for the Web Community Group was formed by the engineers from Apple, Mozilla, Microsoft, Google, and others. This group is working towards bringing in a low-level 3D graphics API to the Web called WebGPU. WebGPU, just like other modern 3D graphics API, uses shaders. Shaders are programs that take advantage of the specialized architecture of GPUs. For instance, apps designed for Metal use the Metal Shading Language, apps designed for Direct3D 12 use HLSL, and apps designed for Vulkan use SPIR-V or GLSL. That’s why the WebKit team introduced WHLSL for the WebGPU API. Here are some of the requirements WHLSL aims to fulfill: Need for a safe shader language Irrespective of what an application does, the shader should only be allowed to read or write data from the Web page’s domain. Without this safety insurance, malicious websites can run a shader that reads pixels out of other parts of the screen, even from native apps. Well-specified language To ensure interoperability between browsers, a shading language for the Web must be precisely specified. Also, often rendering teams write shaders in their own custom in-house language, and are later cross-compiled to whichever language is necessary. That is why the shader language should have a reasonably small set of unambiguous grammar and type checking rules that compiler writers can reference when emitting this language. Translatable to other languages As WebGPU is designed to work on top of Metal, Direct3D 12, and Vulkan, the shader should be translatable to Metal Shading Language, HLSL (or DXIL), and SPIR-V. There should be a provision to represent the shaders in a form that is acceptable to APIs other than WebGPU. Performant language To provide an overall improved performance the compiler needs to run quickly and programs produced by the compiler need to run efficiently on real GPUs. Easy to read and write The shader language should be easy to read and write for a developer. It should be familiar to both GPU and CPU programmers. GPU programmers are important clients as they have experience in writing shaders. As GPUs are now popularly being used in various fields other than rendering including machine learning, computer vision, and neural networks, the CPU programmers are also important clients. To learn more in detail about WLHSL, check out WebKit’s post. Working with shaders in C++ to create 3D games Torch AR, a 3D design platform for prototyping mobile AR Bokeh 1.0 released with a new scatter, patches with holes, and testing improvements
Read more
  • 0
  • 0
  • 15164

article-image-debian-10-codenamed-buster-released-along-with-debian-gnu-hurd-2019-as-a-port
Vincy Davis
08 Jul 2019
4 min read
Save for later

Debian 10 codenamed ‘buster’ released, along with Debian GNU/Hurd 2019 as a port

Vincy Davis
08 Jul 2019
4 min read
Two days ago, the team behind Debian announced the release of Debian stable version 10 (codename - ‘buster’), which will be supported for the next 5 years. Debian 10 will use the Wayland display server by default, includes over 91% of source reproducible projects, and ships with several desktop applications and environments.  Yesterday, Debian also released the GNU/Hurd 2019, which is a port release. It is currently available for the i386 architecture with about 80% of the Debian archive. What's new in Debian 10 Wayland display server In this release, GNOME will use the Wayland display server by default, instead of Xorg. Wayland’s simple and modern design provides advantages in terms of security. The Xorg display server is installed in Debian 10, by default. Users can use the default display manager to change the display server in their session. Reproducible Builds project In Debian 10, the Reproducible Builds project plans to have over 91% of the source packages  built in bit-for-bit identical binary packages. This will work as an important verification feature for users as it will protect them against malicious attempts to tamper with compilers and build networks.  Desktop applications Debian 10 “buster” ships with several desktop applications and environments. Some of the desktop environments include: Cinnamon 3.8 GNOME 3.30 KDE Plasma 5.14 LXDE 0.99.2 Other highlights in Debian 10 AppArmor, a mandatory access control framework for restricting programs' capabilities, is installed and enabled by default for security-sensitive environments. All methods provided by Advanced Package Tool (APT) (except cdrom, gpgv, and rsh) can optionally make use of seccomp-BPF sandboxing. The https method for APT is included in the apt package and does not need to be installed separately.  Network filtering, based on the nftables framework is set by default. Starting with iptables v1.8.2, the binary package includes two variants of the iptables command line interface: iptables-nft and iptables-legacy. The UEFI (Unified Extensible Firmware Interface), which is a specification for a software program that connects a computer's firmware to its operating system, introduced in Debian 7, has been greatly improved in Debian 10.  The Secure Boot support is included in this release for amd64, i386 and arm64 architectures and will work on most Secure Boot-enabled machines. This means that users will not have to disable the Secure Boot support in the firmware configuration. The cups and cups-filters packages installed by default in Debian 10, allows users to take advantage of driverless printing.  This release includes numerous updated software packages such as Apache 2.4.38, BIND DNS Server 9.11, Chromium 73.0, Emacs 26.1, Firefox 60.7 and more.  Visit the Debian official website, for more details on Debian 10. What’s new in Debian GNU/Hurd 2019 An Advanced Configuration and Power Interface Specification (ACPI) translator has been made available, it is currently only used to shut down the system.  The LwIP TCP/IP stack, which is a widely used open-source TCP/IP stack designed for embedded systems, is now available as an option.  A Peripheral Component Interconnect (PCI) arbiter has been introduced and will be useful to properly manage PCI access, as well as to provide fine-grain hardware access.   New optimizations now include protected payloads, better paging management and message dispatch, and gsync synchronization.  Support for LLVM has also been introduced.  Besides the Debian installer, a pre-installed disk image is also available for installing ISO images.  The general reaction to both the Debian news has been positive with users praising Debian for always staying up to date with the latest features. A Redditor says, “Through the years I've seen many a "popular" distro come and go, yet Debian remains.” Another user on Hacker News adds, “I left Redhat at 8.0(long time ago, before Fedora) and started using debian/ubuntu and never looked back, in my opinion, while Redhat made a fortune by its business model, Debian and ubuntu are the true community OS, I can't ask for more. Debian has been my primary Server for the last 15 years, life is good with them. Thank you so much to the maintainers and contributors for putting so much effort into them.” Read the Debian mailing list, for more information on Debian GNU/Hurd. Debian GNU/Linux port for RISC-V 64-bits: Why it matters and roadmap Debian maintainer points out difficulties in Deep Learning Framework Packaging Debian project leader elections goes without nominations. What now?
Read more
  • 0
  • 0
  • 15074

article-image-mozilla-introduces-iodide-a-tool-for-data-scientists-to-create-interactive-documents-using-web-technologies
Bhagyashree R
14 Mar 2019
3 min read
Save for later

Mozilla introduces Iodide, a tool for data scientists to create interactive documents using web technologies

Bhagyashree R
14 Mar 2019
3 min read
On Tuesday, Brendan Colloran, a data scientist at Mozilla, introduced an experimental tool called Iodide. This tool allows data scientists to create interactive documents using web technologies. As the tool is currently in alpha stage, it is not recommended to use it for critical work. Why Iodide is needed? Data scientists not only need to write code and analyze data, as a part of their job, they also have to share results and insights with the decision making teams. While they have a wide range of tools for analyzing the data like Jupyter Notebook and RStudio, there are a very few options for sharing the results in an effective way using web technologies. Often times, data scientists just copy the key figures and summary statistics to a Google Doc. Iodide aims to eliminate the round trips between exploring data in code and creating an understandable report. It also aims to make collaboration among data scientist very convenient. When a data scientist is reading another’s final report and wants to look at the code behind it, he can easily do so. How does Iodide work? Iodide provides a “explore view”, which consists of a set of panes. These include an editor for writing code, a console for viewing the output from code, and a workspace viewer for examining the variables you’ve created. In addition to these, it also has a “report preview” pane which shows the preview of your report. Source: Mozilla When you click on the REPORT button, the contents of your report preview will expand to fill the entire window. This is very useful for the readers who are not interested in the technical details as it will hide the code. Source: Mozilla Once the report is ready, users can send a link directly to their colleagues and collaborators. This will give them access to the clean and readable document as well as the underlying code and the editing environment. So, in case, they want to review your code, they can switch to the “explore mode”. If they want to use your code for their own work, they can fork it and start working on their own version, similar to the GitHub fork option. To know more in detail, check the blog post shared by Mozilla. Mozilla’s Firefox Send is now publicly available as an encrypted file sharing service Mozilla Firefox will soon support ‘letterboxing’, an anti-fingerprinting technique of the Tor Browser Mozilla shares key takeaways from the Design Tools survey
Read more
  • 0
  • 0
  • 15002

article-image-mozilla-optimizes-calls-between-javascript-and-webassembly-in-firefox-making-it-almost-as-fast-as-js-to-js-calls
Bhagyashree R
09 Oct 2018
4 min read
Save for later

Mozilla optimizes calls between JavaScript and WebAssembly in Firefox, making it almost as fast as JS to JS calls

Bhagyashree R
09 Oct 2018
4 min read
Yesterday, Mozilla announced that in the latest version of Firefox Beta, calls between JS and WebAssembly are faster than non-inlined JS to JS function calls. They have made these optimizations keeping two aspects of engine’s work in mind: reducing bookkeeping and cutting out intermediaries. How they made WebAssembly function calls faster They have optimized the calls in both directions, that is, from JavaScript to WebAssembly and WebAssembly to JavaScript with their recent work in Firefox. All these optimizations have been done to make the engine’s work easier. The improvements fall into two groups: Reducing bookkeeping: This means getting rid of unnecessary work to organize stack frames Cutting out intermediaries: This means taking the most direct path between functions How they optimized WebAssembly to JavaScript calls The browser engine has to deal with two different kinds of languages while going through your code even if the code is all written in JavaScript: bytecode and machine code. The engine needs to be able to go back and forth between these two languages. When it does these jumps, it needs to have some information in place, like the place from where it needs to resume. The engine also must separate the frames that it needs. To organize its work, the engine gets a folder and puts this information in it. When the Firefox developers first added WebAssembly support, they had a different type of folder for it. So even though JIT-ed JavaScript code and WebAssembly code were both compiled and speaking machine language, it was treated as if they were speaking different languages. This was unnecessarily costly in two ways: An unnecessary folder is created which adds up setup and teardown costs It requires trampolining through C++ to create the folder and do other setup They fixed this by generalizing the code to use the same folder for both JIT-ed JavaScript and WebAssembly. This made calls from WebAssembly to JS almost as fast as JS to JS calls. How they optimized JavaScript to WebAssembly calls JavaScript and WebAssembly use different customs even if they are speaking the same language. For instance, to handle dynamic types, JavaScript uses something called boxing. As JavaScript doesn’t have explicit types, they need to be figured out at runtime. To keep track of the types of values, the engine attaches a tag to the value. This turns one simple operation into four operations. This is the reason why WebAssembly expects parameters to be unboxed and doesn’t box its return values. Since it is statically typed, it doesn’t need to add this overhead. So, before the engine gives the parameters to the WebAssembly function, the engine needs to unbox the values and put them in registers. It has to go through C++ again to prepare the values when going from JS to WebAssembly. Going to this intermediary step is a huge cost, especially for something that’s not that complicated. To solve this, they took the code that C++ was running and made it directly callable from JIT code. So, when the engine goes from JavaScript to WebAssembly, the entry stub unboxes the values and places them in the right place. Along with these calls, they have also optimized monomorphic and built-in calls. To understand the optimizations well, check out Lin Clark’s official announcement on Mozilla’s website. Mozilla updates Firefox Focus for mobile with new features, revamped design, and Geckoview for Android Mozilla releases Firefox 62.0 with better scrolling on Android, a dark theme on macOS, and more Mozilla, Internet Society, and web foundation wants G20 to address “techlash” fuelled by security and privacy concerns
Read more
  • 0
  • 0
  • 14991

article-image-mozillas-updated-policies-will-ban-extensions-with-obfuscated-code
Bhagyashree R
03 May 2019
3 min read
Save for later

Mozilla’s updated policies will ban extensions with obfuscated code

Bhagyashree R
03 May 2019
3 min read
Yesterday, Mozilla announced that according to its updated policies, extensions with obfuscated code will not be accepted on its add-ons platform. It is also becoming much stricter regarding blocking extensions that fail to abide by its policies. These policies will come into effect from June 2019. Last year in October, Google also announced a similar policy, which came into effect with the start of this year, to prevent malicious extensions from reaching its extensions store. If you do not know what obfuscated code means, it is basically writing code that is difficult for a human to understand. Common practices of writing obfuscated code include replacing function or variable names with weird but allowed characters, using reversed array indexing, using look-alike characters, etc. “Generally speaking, just try to find good coding guidelines and to try to violate them all,” said a developer on Stack Overflow. However, obfuscated code should not be confused with minified, concatenated, or otherwise machine-generated code, which are acceptable. Minification refers to the act of removing all unnecessary or redundant data that do not have any effect on the output, such as whitespaces, code comments, or shortening variable names, and so on. “We will no longer accept extensions that contain obfuscated code. We will continue to allow minified, concatenated, or otherwise machine-generated code as long as the source code is included. If your extension is using obfuscated code, it is essential to submit a new version by June 10th that removes it to avoid having it rejected or blocked,” Caitlin Neiman said in a blog post. If your code contains transpiled, minified or otherwise machine-generated code, you are required to submit a copy of human-understandable source code and also instructions on how to reproduce that build. Here is a snippet from Mozilla’s policies: “Add-ons are not allowed to contain obfuscated code, nor code that hides the purpose of the functionality involved. If external resources are used in combination with add-on code, the functionality of the code must not be obscured. To the contrary, minification of code with the intent to reduce file size is permitted.” Mozilla also plans to take stricter steps for those extensions that are found to violate its policies. Neiman said, “We will be blocking extensions more proactively if they are found to be in violation of our policies. We will be casting a wider net, and will err on the side of user security when determining whether or not to block.” If users are already using the extensions which have obfuscated, once the policies are employed, these extensions will be disabled. Many developers are supporting this decision. One Redditor commented, “This is great, obfuscated code doesn't really belong anywhere in the frontend, since you have access to the code and can figure out what the program does given enough time, so why not just make it readable.” Read the announcement on Mozilla blog and to go through the policies visit MDN web docs. Mozilla re-launches Project Things as WebThings, an open platform for monitoring and controlling devices Mozilla introduces Pyodide, a Python data science stack compiled to WebAssembly Mozilla developers have built BugBug which uses machine learning to triage Firefox bugs  
Read more
  • 0
  • 0
  • 14977

article-image-duckduckgo-chooses-to-improve-its-products-without-sacrificing-user-privacy
Amrata Joshi
14 Nov 2018
3 min read
Save for later

DuckDuckGo chooses to improve its products without sacrificing user privacy

Amrata Joshi
14 Nov 2018
3 min read
DuckDuckGo, an internet privacy company, empowers users to seamlessly take control of their personal information online, without any tradeoffs. DuckDuckGo doesn’t store IP addresses and doesn’t create unique cookies. It doesn’t even collect or share any type of personal information. The Improvements Lately, the company came up with some improvements. If you ever happen to search for  DuckDuckGo, you might have come across a "&atb=" URL parameter in the web address at the top of your browser. This parameter allows DuckDuckGo to anonymously  A/B (split) test product changes. To explain this further, let’s take, for example, users in the A group would get blue links and users in the B group would get red links. From this, it would be easier for the team at DuckuckGo to measure how the usage of DuckDuckGo has been impacted by different color links. The team at DuckDuckGo also measures the engagement of specific events on the page (e.g. A misspelling message is displayed, when it is clicked). It allows them to run experiments where they can test different misspelling messages and use CTR (click through rate) to determine the message's efficacy. The requests made for improving DuckDuckGo are anonymous and the information is used only for improving the products. Similar "atb.js" or "exti" requests are made by browser extensions and mobile apps. The browser extensions and mobile apps will only send one type of these requests a day. This means an approximate count of the devices which accessed DuckDuckGo can be known. But this would be done without knowing anything about those devices or the searches made by users. These requests are all fully encrypted, such that nobody else can see them except for DuckDuckGo. There is no personal information attached to the request. So, DuckDuckGo cannot ever tell what individual people are doing since everyone is anonymous. The team has developed systems from scratch, instead of relying on third-party services. This is how they stick to their privacy promise of not collecting and leaking any personal information. This move by the company centered around anonymity might benefit a lot to the company, as data breach incidents on various organizations are trending lately.  With the daily searches crossing the 30 million mark, the company has already experienced 50% growth in the last year. These improvements prove to be cherry on the cake! Could DDG possibly pose a real threat to the leading search engine, Google? Read more about this news on the official website of DuckDuckGo. 10 great tools to stay completely anonymous online Google’s prototype Chinese search engine ‘Dragonfly’ reportedly links searches to phone numbers Google launches a Dataset Search Engine for finding Datasets on the Internet
Read more
  • 0
  • 0
  • 14777
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime
article-image-mozilla-is-funding-a-project-for-bringing-julia-to-firefox-and-the-general-browser-environment
Bhagyashree R
09 Jul 2019
3 min read
Save for later

Mozilla is funding a project for bringing Julia to Firefox and the general browser environment

Bhagyashree R
09 Jul 2019
3 min read
Last week, Mozilla disclosed the winners of Mozilla Research Grants for the first half of 2019. Among the winning proposals was “Bringing Julia to the Browser” that aligns with Mozilla’s goal to bring data science and scientific computing tools to the browser. Mozilla had said it was specifically interested in receiving submissions about supporting R or Julia at the browser level. Every six months Mozilla awards grants of value $25,000 to support research in emerging technologies and also topics relevant to Mozilla. It started accepting proposals for 2019 H1 funding series in April this year. https://twitter.com/jofish/status/1121860158835978241 These proposals were expected to address any one of the twelve research questions under the following three categories: Growing the Web: WASM, Rust, Digital trust for cost-conscious users, Beyond online behavioral advertising (OBA) New Interaction Modes: Iodide: R or Julia in the Browser, Fathom, Futures, Mixed Reality, Voice, Common Voice Privacy & Security: Data, Privacy & Security for Firefox Mozilla has been constantly putting its efforts to make the life of data scientists easier on the web. In March, it introduced Iodide that allows data scientists to create interactive documents using web technologies. In April, it came up with Pyodide that brings the Python runtime to the browser via WebAssembly. By funding this research by Valentin Churavy, an MIT Ph.D. student and a member of the official Julia team, Mozilla is taking the next step towards improving access to popular data science tools on the web. They are planning to port R or Julia, languages that are popular among statisticians and data miners, to WebAssembly. Their ultimate goal is to introduce a plugin for Iodide that will automatically convert data basic types between R/Julia and Javascript and will be able to share class instances between R/Julia and Javascript. Though Python and R have been developers’ first choice, Julia is also catching up in becoming one of the promising languages for scientific computing. Its execution speeds are comparable to that of C/C++ and high-level abstractions are comparable to MATLAB. It offers support for modern machine learning frameworks such as TensorFlow and MXNet. Developers can also use Flux, a Julia machine learning library to easily write neural networks. Following are all the Mozilla Research Grants for 2019H1: Source: Mozilla Research Mozilla will be opening a new round of grants in fall this year (probably in November). To know more, check out its official announcement and also join the mailing list. Mozilla introduces Pyodide, a Python data science stack compiled to WebAssembly Mozilla introduces Iodide, a tool for data scientists to create interactive documents using web technologies Mozilla’s Firefox Send is now publicly available as an encrypted file sharing service
Read more
  • 0
  • 0
  • 14726

article-image-angular-6-is-here-packed-with-exciting-new-features
Sugandha Lahoti
04 May 2018
4 min read
Save for later

Angular 6 is here packed with exciting new features!

Sugandha Lahoti
04 May 2018
4 min read
Angular 6 finally arrives! This is a major production release of Angular, the popular JavaScript framework for building web and mobile applications. This release mainly focuses on the toolchain and on making it easier for developers to migrate to future versions of Angular quickly. With this release, major framework packages (@angular/core, @angular/common, @angular/compiler, etc), the Angular CLI, and Angular Material + CDK are also synchronizing their releases. All are releasing as 6.0.0 today. Here’s a quick rundown of all major features: New CLI commands Two new CLI commands have been added. The ng-update command recommends updates to an application by analyzing the package.json. ng-update will help developers adopt the right version of dependencies while keeping them in sync. The ng-add CLI command adds new capabilities to a project by using the package manager to download new dependencies and invoke an installation script. ng add @angular/pwa —Converts your app into a PWA by adding an app manifest and service worker ng add @ng-bootstrap/schematics — Adds ng-bootstrap to your application ng add @angular/material — Install and setup Angular Material and theming and register new starter components into ng generate CLI Workspaces CLI v6, which is a part of Angular 6 release, now supports workspaces containing multiple projects, such as multiple applications or libraries. CLI projects will now use angular.json instead of .angular-cli.json for build and project configuration. It also adds support for creating and building libraries with the command ng generate library <name>. This command will create a library project within the CLI workspace, and configure it for testing and building. Angular Elements Angular 6 also comes with the first release of Angular Elements. Angular elements allow bootstrapping Angular components within an existing Angular application by registering them as Custom Elements. They replace the need to manually bootstrap Angular components found in static html content. Angular Material + CDK Components Angular 6 features a new tree component for displaying hierarchical data. The Tree component in Angular Material and the Component Dev Kit helps in better visualization of tree structures such as a list of files. Alongside the tree, there are new badge and bottom-sheet components. Badges help display small bits of helpful information, such as unread item counts. Bottom-sheets are a special type of mobile-centric dialogs, commonly used to present a list of options following an action. With the release of v6, the @angular/cdk/overlay package includes new positioning logic that helps make pop-ups which remain on-screen in all situations. The angular material also includes 3 new starter components. Material Sidenav: Generates a starter component including a toolbar with the app name and the side navigation. Material Dashboard: Generates a starter dashboard component containing a dynamic grid list of cards. Material Data Table: Generates a starter data table component that is pre-configured with a datasource for sorting and pagination. Updated to use RxJS v6 Angular has been updated to use RxJS v6. RxJS v6 was introduced at ng-conf and brings several major changes, along with a backwards compatibility package rxjs-compat for keeping applications working without breaking components. Long Term Support Expansion The angular community has extended the long-term support to all major releases starting with v4. Each major release will be supported for 18 months with around 6 months of active development followed by 12 months of critical bug fixes and security patches. A common complaint among developers about Angular has been about the messy migrations from one version to another. This announcement aims to make updating from one major to the next easier, and give bigger projects more time to plan updates. How can you upgrade to the new version? The update will take advantage of the new ng update tool. Here are the steps for updating. Update @angular/cli Update your Angular framework packages Update other dependencies Checkout the Angular blog for detailed release notes and steps on how to update. ng-conf 2018 highlights, the popular angular conference Why switch to Angular for web development – Interview with Minko Gechev 8 built-in Angular Pipes in Angular 4 that you should know  
Read more
  • 0
  • 0
  • 14560

article-image-google-announces-the-general-availability-of-amp-for-email-faces-serious-backlash-from-users
Bhagyashree R
27 Mar 2019
3 min read
Save for later

Google announces the general availability of AMP for email, faces serious backlash from users

Bhagyashree R
27 Mar 2019
3 min read
After launching the developer preview of accelerated mobile pages or AMP for email last year, Google announced its general availability yesterday. For utilizing AMP for email, you do not have to be restricted to Gmail as other major email providers including Yahoo Mail, Outlook.com, and Mail.Ru have also added support for AMP. What is AMP for email? AMP for email aims to take the simple text emails to the next level by making them interactive and engaging, which Google calls “dynamic emails”, like web pages without having the user to hit the browser. AMP for email promises that users will now be able to actually get things done within the email. For instance, users will be able to take actions like RSVP to an event, fill out a questionnaire, browse a catalog, or respond to a comment. AMP emails are designed to be compatible with the current email ecosystem using a new MIME part called “text/x-amp-html”. AMP for email supports many a subset of AMP markups, which includes carousels, forms, and lists. Also, if an email provider does not support AMP emails, it allows emails to fallback to HTML. How users and developers are reacting to this? Since the AMP initiative was first announced, it has faced criticism by many, so much so that there is a Twitter account named “GoogleAMPSucks”. Google AMP for email has also sparked a huge discussion on Hacker News. Many users think that this opens up an alternate channel for sending ads to users. One user commented, “Google is looking for alternative channels to sell ads through. Adding more complicated media to email increases the type of ads that can be sold. It won’t be right away, but it’s coming.” AMP for email provides senders new ways to revise the information in an email they have already sent. This will make emails mutable which is a concern for many users. Explaining how this feature can be misused, one of the users on Hacker News, said, “Sent an ad claiming that you had a given price for a full week, and then decided you didn't want to sell it for that anymore two days later? Handy that you can remove all evidence of your advertisement after you sent it.” Bron Gondwana, CEO of FastMail, also believes that the immutable behavior of emails is, in fact, its strength. He wrote in a blog post, “The email in your mailbox is your copy of what was said, and nobody else can change it or make it go away. The fact that the content of an email can’t be edited is one of the best things about POP3 and IMAP email standards. I admit it annoyed me when I first ran into it – why can’t you just fix up a message in place – but the immutability is the real strength of email. You can safely forget the detail of something that you read in an email, knowing that when you go back to look at it, the information will be exactly the same.” To read the official announcement, check out Google’s blog. European Union fined Google 1.49 billion euros for antitrust violations in online advertising Google announces Stadia, a cloud-based game streaming service, at GDC 2019 Google is planning to bring Node.js support to Fuchsia  
Read more
  • 0
  • 0
  • 14551

article-image-firefox-61-builds-on-firefox-quantum-adds-tab-warming-webextensions-and-tls-1-3
Sugandha Lahoti
27 Jun 2018
3 min read
Save for later

Firefox 61 builds on Firefox Quantum, adds Tab Warming, WebExtensions, and TLS 1.3

Sugandha Lahoti
27 Jun 2018
3 min read
After releasing Firefox 60 last month, Mozilla has launched Firefox 61 for Windows, Mac, Linux, and Android devices. This release builds on Firefox Quantum, adding even more power to Quantum CSS by parallelizing the parsing step. This is especially beneficial to websites with large stylesheets and complex layouts. UI changes Firefox 61 now ships with an accessibility inspector that lets developers easily make pages for users with accessibility requirements. The new-look Console UI has been enabled by default for the Browser Console & Browser Toolbox. CSS variables now autocomplete with color swatches, allowing developers to see exactly what color value is stored in each variable The main toolbox's toolbar has also been redesigned. Highlights are better responsiveness for narrow and wide viewports with a new overflow dropdown and sortable tabs. The Network Monitor's main toolbar got redesigned to be more responsive on smaller viewports and visually aligned with the Console. It also includes a Throttling dropdown which throttles network speed to emulate various different network speed conditions. Performance improvements Tab management gets a boost in Firefox 61, with the new Tab warming feature which allows users to manage browser tabs more effectively. Tab Warming will watch the user's mouse cursor and start painting content inside a tab whenever the user hovers his/her mouse over one. There is also faster page rendering with Quantum CSS improvements and the new retained display list feature. Moreover, Firefox 61 now has retained display lists which means users can quickly access the pages they visit more frequently. WebExtensions now run in their own process on MacOS. They can now hide tabs and manage the behavior of the browser when a tab is opened or closed. Users are also provided a convenient access to more search engines. Users can add their favorite search engines to the address bar with the “Search with” tool. MacOS users can also share the URL of an active tab from the page actions menu in the address bar. Security Updates Firefox 61 on all four platforms have provided support for TLS 1.3, the latest version of Transport Layer Security (TLS). TLS 1.3 brings major improvements in security, privacy, and performance. It only includes support for algorithms with no known vulnerabilities and is also able to negotiate a secure session within a single round-trip. Read the release notes for a complete list of updates. Mozilla has also released the Firefox 61 changelog specifically catering to developers. Firefox 60 arrives with exciting updates for web developers: Quantum CSS engine, new Web APIs and more Mozilla is building a bridge between Rust and JavaScript Google announces Chrome 67 packed with powerful APIs, password-free logins, PWA support, and more
Read more
  • 0
  • 0
  • 14542
article-image-react-16-6-0-releases-with-a-new-way-of-code-splitting-and-more
Bhagyashree R
24 Oct 2018
4 min read
Save for later

React 16.6.0 releases with a new way of code splitting, and more!

Bhagyashree R
24 Oct 2018
4 min read
After the release of React 16.5.0 last month, the React team announced the release of React 16.6.0 yesterday. This release comes with a few new convenient features including support for code splitting, easier way to consume Context from class components, and more. Let’s see what changes have been made in this release: React.memo() as an alternative to PureComponent for functions React.memo() is similar to React.PureComponent but for function components instead of class. It can be used in cases when the function component renders the same result given the same props. You can wrap the function component in a call to React.memo() for a performance boost in some cases by memorizing the result. This will make React skip rendering the component and reuse the last rendered result. React.lazy() for code splitting components You can now render a dynamic import as a regular component with the help of React.lazy() function. To do code splitting you can use the Suspense component by wrapping a dynamic import in a call to React.lazy(). Library authors can leverage this Suspense component to start building data fetching with Suspense support in the future. Note that the feature is not yet available for server-side rendering. Added Class.contextType In React 16.3 a new Context API was introduced as a replacement to the previous Legacy Context API, which will be removed in a future major version. React 16.6 comes with contextType, which makes it convenient to consume a context value from within a class component. A Context object created by React.createContext() can be assigned to the contextType property. This enables you to consume the nearest current value of that Context type using this.context. This update is done because developers were having some difficulties adopting the new render prop API in class components. getDerivedStateFromError() to render the fallback UI React 16 introduced error boundaries to solve the problem of a JavaScript error in a part of the UI breaking the whole app. What Error boundaries do is, they: Catch JavaScript errors anywhere in their child component tree Log those errors Display a fallback UI instead of the component tree that crashed An already existing method, componentDidCatch() gets fired after an error has occurred. But before it is fired, null is rendered in place of the tree that causes an error. This sometimes results in breaking the parent components that don’t expect their refs to be empty. This version introduces another lifecycle method called getDerivedStateFromError() that lets you render the fallback UI before the render completes. Deprecations in StrictMode The StrictMode component was released in React 16.3 that lets you opt-in early warnings for any deprecations. Two more APIs are now added to the deprecated APIs list: ReactDOM.findDOMNode() and Legacy Context. The reason these APIs are deprecated are: ReactDOM.findDOMNode(): This API was supported to allow searching the tree for a DOM node given a class instance. Typically, you don’t require this because you can directly attach a ref to a DOM node. Most uses of this API are often misunderstood and are unnecessary. Legacy Context: It makes React slightly slower and bigger than it needs to be. Instead of the Legacy Context, you can use the new Context API that was introduced in React 16.3. Miscellaneous changes unstable_AsyncMode renamed to unstable_ConcurrentMode unstable_Placeholder renamed to Suspense and delayMs to maxDuration To read the entire changelog of React 16.6, check out their official announcement and also React’s GitHub repository. React 16.5.0 is now out with a new package for scheduling, support for DevTools, and more! React Native 0.57 released with major improvements in accessibility APIs, WKWebView-backed implementation, and more! InfernoJS v6.0.0, a React-like library for building high-performance user interfaces, is now out
Read more
  • 0
  • 0
  • 14446

article-image-get-ready-for-bootstrap-v4-1-web-developers-to-strap-up-their-boots
Sugandha Lahoti
23 Apr 2018
2 min read
Save for later

Get ready for Bootstrap v4.1; Web developers to strap up their boots

Sugandha Lahoti
23 Apr 2018
2 min read
Bootstrap v4, made an initial appearance around the start of this year, as a major release of the popular front-end web development library. It was followed by 10 new themes built on Bootstrap 4 with its own build tools and customer support. It has been a month since the release of Bootstrap 4 and the version 4.1  is already here. Although, Bootstrap v4.1 is not massive in terms of new features or path-breaking changes, it hosts few smaller updates. Additionally, it has a basketful of fixes, doc updates, and build tool changes. Highlights of Bootstrap v4.1 New custom range form control is added. New .carousel-fade modifier is added to switch carousel from horizontal sliding to crossfade. Includes a new .dropdown-item-text for plaintext dropdown items. New .flex-fill, .flex-grow-*, and .flex-shrink-* utilities are added. New .table-borderless variant for tables added. New .text-monospace utility added. New .text-body (default body color), .text-black-50 (50% opacity black), and .text-white-50 (50% opacity white) utilities added. New .shadow-* utilities added for quickly adding box-shadows. Now you can disable Popper’s positioning in dropdowns. Theming docs are updated so now you will not be able to use CSS variables in media queries. The issue with Chrome rendering CSS columns incorrectly for cards is now fixed. .text-hide is deprecated as it’s a dated and undocumented feature. Dashboard and Offcanvas examples across Firefox and IE are now fixed. Breadcrumbs can now use non-string values as dividers. Find a detailed version of all fixes on the ship list and project board. With the Bootstrap version 4, it moved to a versioned docs setup. This means after each minor release, version 4 will have a new hosted version of Bootstrap docs. This would help developers avoid breaking URLs over the web who are yet to upgrade or want to stick to older versions of Bootstrap. The Bootstrap v4.1 release documentation is available on this new webpage and the older webpage remains the same. The upcoming Bootstrap release v4.1.1 would solve certain bug fixes for input groups and form fields that were missed in Bootstrap v4.1 due to insufficient time. Read More Web Development with React and Bootstrap Bootstrap 4 Objects, Components, Flexbox, and Layout Getting Started with ASP.NET Core and Bootstrap 4  
Read more
  • 0
  • 0
  • 14379

article-image-google-announces-chrome-67-packed-with-powerful-apis-password-free-logins-pwa-support-and-more
Sugandha Lahoti
01 Jun 2018
3 min read
Save for later

Google announces Chrome 67 packed with powerful APIs, password-free logins, PWA support, and more

Sugandha Lahoti
01 Jun 2018
3 min read
Google has launched Chrome 67 on Mac, Windows, Linux, and Android devices packed with exciting new features. The release features two powerful APIs, password-free logins, PWA support on desktops and more.  Let’s have a look at the features in detailed. Progressive web apps now supported on Desktops Chrome 67 now supports Desktop based progressive web apps.  They run the same way as other apps, in an app window, without an address bar or tabs. Service workers run the PWA to ensure they are engaging, fast, and smooth. As a developer, there are only certain breakpoints to consider while running your PWA in chrome. Essentially the process of creating it remains the same. If your app meets the standard PWA criteria, Chrome will fire the beforeinstallprompt event, However,  it won’t automatically prompt the user.  Here are the steps you need to follow: Save the event. Then, add some UI—like an install app button—to the app to tell the user your app can be installed As the user clicks the button, you need to call prompt on the saved event. Chrome will then show the prompt to the user If users click add, Chrome will add the PWA to their shelf and launcher AR and VR support with WebXR Device API Chrome 67 offers a special WebXR Device API, to create augmented reality and virtual reality experiences on desktops and mobile devices. It will be used to create immersive experiences across multiple AR/VR devices,  sensors and head-mounted displays including Google Daydream View, Samsung Gear VR, and desktop-hosted headsets like Oculus Rift, HTC Vive, and Windows Mixed Reality Headsets. This API will be used to develop AR and VR games, 360-degree videos, and also be used for data visualization, home shopping, and displaying art. Generic Sensor API for accelerometer support Updating mobile experiences, Chrome 67 offers a new Generic Sensor API. Websites can access a mobile device’s accelerometer, gyroscope, orientation sensor, and motion sensor. The API consists of a base Sensor interface with a set of sensor classes built on top. The base interface simplifies the implementation and specification process for the sensor classes. The goal of the Generic Sensor API is to promote consistency across sensor APIs, enable advanced use cases, and increase the pace at which new sensors can be exposed to the Web. Password-free logins Chrome 67 supports password-free logins based on the Web Authentication standard. These standards can be incorporated into browsers and allow additional ways for users to securely sign into most sites. These include biometric information such as fingerprint, retina, or facial recognition from either smartphone or a USB key. Changes in dev tools There are also a number of changes and updates in DevTools in Chrome 67.  Some of these include: Users can now search across all network headers. There are new audits, desktop configuration options, and viewing traces. Incorporation of user Timing in the Performance tabs. JavaScript VM instances are now clearly listed in the Memory panel. The Network tab in the Sources panel has been renamed as the Page tab. Certificate transparency information is available in the Security panel. Site isolation features now appear in the Performance panel. Check out the Google developer blog for a full list of updates. Chrome 67 can be updated by either using the browser’s built-in updater or downloading it directly from google.com/chrome. Firefox 60 arrives with exciting updates for web developers: Quantum CSS engine, new Web APIs and more Top 5 Google I/O 2018 conference Day 1 Highlights: Android P, Android Things, ARCore, ML kit and Lighthouse What can Google Duplex do for businesses?
Read more
  • 0
  • 0
  • 14342
article-image-introducing-walt-a-syntax-for-webassembly-text-format-written-100-in-javascript-and-needs-no-llvm-binary-toolkits
Bhagyashree R
11 Oct 2018
2 min read
Save for later

Introducing Walt: A syntax for WebAssembly text format written 100% in JavaScript and needs no LLVM/binary toolkits

Bhagyashree R
11 Oct 2018
2 min read
Walt, an alternative syntax for WebAssembly text format, was introduced today. It allows developers to use JavaScript syntax to write to as “close to the metal” as possible. Its ultimate goal is to make WebAssembly accessible to regular JavaScript programmers. Written 100% in JavaScript it requires no LLVM/binary toolkits. What Walt tries to solve? Writing zero-overhead, optimized WebAssembly code is difficult. You need to write very plain C code, compile that to .wast and then optimize that result. Then, finally, you're ready to compile that into the final WebAssembly binary. Walt attempts to take C/Rust out of the equation and write “as close to the metal” as possible without losing readability. How it solves the problem? What Walt does is, it provides a thin layer of syntax sugar on top of .wat text format. This improved syntax will give developers direct control over the WebAssembly output. This means that there should be minimal to none post optimization to be done to the wast code generated. For example, here is what a .walt module, which exports a recursive Fibonacci function, looks like: Source: GitHub When this code is passed through the Walt compiler, you get a buffer which can be used to create a WebAssembly module with a fibonacci export. Al this is done with familiar JS syntax and without any external binary toolkits. What are some of its use cases? Anyone who is interested in WebAssembly but is not familiar with system languages can get a quick start with Walt. It can be used in the following scenarios: Web/Node libraries Games Web VR/AR Projects depending on heavy real-time computation from complex UIs to 3D visualizations To know more about Walt and how you can get started with it, check out its GitHub repository. Introducing Wasmjit: A kernel mode WebAssembly runtime for Linux Unity Benchmark report approves WebAssembly load times and performance in popular web browsers Why is everyone going crazy over WebAssembly?
Read more
  • 0
  • 0
  • 14264

article-image-d3-js-5-8-0-a-javascript-library-for-interactive-data-visualizations-in-browsers-is-now-out
Bhagyashree R
29 Jan 2019
2 min read
Save for later

D3.js 5.8.0, a JavaScript library for interactive data visualizations in browsers, is now out!

Bhagyashree R
29 Jan 2019
2 min read
Yesterday, the team behind D3.js rolled out D3.js 5.8.0. Data-Driven Documents or D3 is a JavaScript library using which you can create dynamic, interactive data visualizations in web browsers. Updates are introduced in the following modules: d3-force The iterations argument is added to simulation.tick. A bug is fixed when initializing nodes with fixed positions. d3-scale The following new features are added: The domain and range convenience constructors for all scale types Default constructors for sequential and diverging scales The d3.tickFormatReturns function, a number format function for displaying a tick value The d3.scaleSymlog function, which constructs a new continuous scale with the specified domain and range Transformed sequential scales, for example, d3.scaleSquentialLog Transformed diverging scales, for example, d3.scaleDivergingLog d3.scaleSequentialQuantile for p-quantiles scale.unknown for all scale types Unlimited band.paddingOuter and point.padding d3-selection The selection.join method is added, a convenient alternative to the more explicit selection.enter, selection.exit, selection.append, and selection.remove. selection.order is updated to enforce relative position, rather than exact siblings. Vendor fallback for element.matches in selection.filter and d3.matcher is removed. d3-transition The transition.end is added, which returns a promise that resolves when every selected element finishes transitioning. A cancel event is added to transition.on. Performance of transition.style and transition.attr is improved To read the full list of updates on the GitHub repository of D3.js. Introducing Cycle.js, a functional and reactive JavaScript framework Introducing Howler.js, a Javascript audio library with full cross-browser support 16 JavaScript frameworks developers should learn in 2019
Read more
  • 0
  • 0
  • 14209
Modal Close icon
Modal Close icon