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
All 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 - Web Development

354 Articles
article-image-firefox-60-exciting-updates-web-developers
Sugandha Lahoti
15 May 2018
2 min read
Save for later

Firefox 60 arrives with exciting updates for web developers: Quantum CSS engine, new Web APIs and more

Sugandha Lahoti
15 May 2018
2 min read
Today, web developers are greeted with a new update of the popular Firefox web browser. Firefox 60 hosts a variety of feature additions and updates targeted specifically to the web developer community. Quantum CSS for Android available now Firefox has brought their new CSS engine called Quantum CSS (previously known as Stylo) in Firefox for Android. This engine takes advantage of modern hardware, parallelizing the work across all of the cores in your machine running upto almost 18 times faster. New Web APIs Two new Web APIs have been added. The Web Authentication API has been enabled which allows USB tokens for website authentication. The WebVR API has also been enabled by default on macOS. It provides support for exposing virtual reality devices to web apps. Firefox 60 also brings a new policy engine and Group Policy support for customized enterprise deployments, using Windows Group Policy or a cross-platform JSON file. Changes in Javascript ECMAScript 2015 modules have been enabled by default. The Array.prototype.values() method has been added again. It was disabled due to compatibility issues in earlier versions. Changes in CSS The align-content, align-items, align-self, justify-content, and place-content property values have been updated as per the latest CSS Box Alignment Module Level 3 spec. The paint-order property has been implemented. Changes in Developer Tools In the CSS Pane rules view, the keyboard shortcuts for precise value increments (increase/decrease by 0.1) have changed from Alt + Up/Down to Ctrl + Up/Down and the CSS variable names will now auto-complete. In Responsive Design Mode, a Reload when... dropdown has been added to allow users to enable/disable automatic page reloads when touch simulation is toggled, or simulated user agent is changed. Changes in DOM The dom.workers.enabled pref has been removed, meaning workers can no longer be disabled. PerformanceResourceTiming is now available in workers. The PerformanceObserver.takeRecords() method has been implemented. The Animation.updatePlaybackRate() method has been implemented. The Gecko-only options object storage option of the IDBFactory.open() method has been deprecated. Promises can now be used within IndexedDB code. The entire list of developer centric changes are available on the Mozilla Developer page. You can also file a bug in Bugzilla or see the system requirements of this release. Get ready for Bootstrap v4.1; Web developers to strap up their boots npm v6 is out! What’s new in ECMAScript 2018 (ES9)?
Read more
  • 0
  • 0
  • 4927

article-image-xamarin-forms-3-the-popular-cross-platform-ui-toolkit-is-here
Sugandha Lahoti
10 May 2018
3 min read
Save for later

Xamarin Forms 3, the popular cross-platform UI Toolkit, is here!

Sugandha Lahoti
10 May 2018
3 min read
Cross-platform app development is the rage now! And to add fuel to the fire, Xamarin has released its latest cross-platform toolkit upgrade. The latest stable release of Xamarin Forms 3 is here! Version 3 hosts new layout and styling updates to improve how developers build UI. These include updates to Visual State Manager, Flex Layout, Style Sheets, and Right-to-Left support to name a few. XAML compilation has also received specific attention with build times reduced by as much as 88% in some benchmarks. Let us look at each of the above features in detail. Visual State Manager Visual State Manager is now available in Xamarin Forms. The VSM provides a structured way to make visual changes to the user interface from code. The VSM introduces the concept of visual states. Visual states are collected in visual state groups. Developers can now define the various states for layouts and controls declaratively in XAML or C# and easily update their UI. The Xamarin.Forms Visual State Manager defines one visual state group named "CommonStates" with three visual states: Normal Disabled Focused FlexLayout FlexLayout is a new layout inspired by the web’s Flexbox. FlexLayout promotes flat, performant, and flexible UIs. It is ideal for handling distribution and spacing of content within layouts. It also provides control of the direction of layout, the justification, and alignment among other properties. FlexLayout defines six public bindable properties and five attached bindable properties that affect the size, orientation, and alignment of its child elements. StyleSheets Xamarin.Forms 3.0 introduces the ability to style an app using CSS. StyleSheets come in companionship with Flex Layouts. A style sheet consists of a list of rules, with each rule consisting of one or more selectors and a declaration block. They can be added as separate CSS files or inline with Resources. In Xamarin.Forms, CSS style sheets are parsed and evaluated at runtime, rather than compile time, and are re-parsed on use. Right-To-Left Localization Xamarin.Forms 3.0 are now equipped with FlowDirection property to make it easier to flip layouts to match language direction.  This is especially beneficial to Arabic and Hebrew scripts that flow from right-to-left. FlowDirection property apart from supporting right-to-left layouts also offers flexibility to customize layouts as seen fit by developers. Xamarin.Forms 3.0 is now available on NuGet. Read the full release notes for the list of entire bug fixes. Five reasons why Xamarin will change mobile development Hybrid Mobile apps: What you need to know Creating Hello World in Xamarin.Forms_sample
Read more
  • 0
  • 0
  • 3704

article-image-whats-new-in-vapor-3-the-popular-swift-based-web-framework
Sugandha Lahoti
08 May 2018
3 min read
Save for later

What’s new in Vapor 3, the popular Swift based web framework

Sugandha Lahoti
08 May 2018
3 min read
Vapor, the popular web framework written in Swift has released its next major update. Vapor 3 is a complete rewrite of the existing versions and all of its related packages. The release is centered around three new features. Async: Vapor 3 is all ready to handle high levels of concurrency as it is completely non-blocking and runs on Apple’s SwiftNIO. Services: With Vapor’s new Dependency Injection framework Services, all JSON configuration files are replaced by Swift. Codable: Codable integration throughout all of Vapor brings type safety and better performance to Parsing and serializing content from HTTP messages, creating database models, and rendering views. The main focus of this release is on building a foundation for developers to work on based on the growth of Vapor and server-side Swift over the past two years. The release is updated across four major categories. Packages Vapor 3 offers a couple of new packages this release. Most notable are the MySQL and PostgreSQL packages which are now non-blocking and built on SwiftNIO. Some of these packages include: SQLite: SQLite 3 wrapper for Swift. PostgreSQL: Non-blocking, event-driven Swift client for PostgreSQL. MySQL: Pure Swift MySQL client built on non-blocking, event-driven sockets. Fluent: Swift ORM framework (queries, models, and relations) for building NoSQL and SQL database integrations. FluentSQLite: Swift ORM (queries, models, relations, etc) built on SQLite 3. Auth: Authentication and Authorization layer for Fluent. JWT: JSON Web Token signing and verification. Leaf: An expressive, performant, and extensible templating language built for Swift. A complete list of packages is available in the vapor documentation. Better updated Documentation A large part of the release focuses on better documentation. Subsequently, Vapor 3 improves API docs with 100% docblock coverage including: Helpful code samples where possible. Method parameter descriptions. MARK and code re-org to help make things readable in API doc form. Also, the main docs are moving more toward a guide / tutorial feel. These guide docs cover broad use cases and practices, in contrast to the API docs which heavily focus on particular methods and protocols. Moving to Discord and introducing Books Vapor’s official team chat is now moved to Discord. The team has also announced two books (Server Side Swift with Vapor and Server-side Swift (Vapor Edition)) written specifically for Vapor 3. Benchmarks Vapor 3 introduces certain benchmarks for this release available on GitHub. The benchmarks were run on two identical Digital Ocean droplets. One for hosting the frameworks and one for running the benchmark. The benchmarker program is a small script written in Swift that runs wrk and captures the results. It is capable of doing multiple runs and averaging the results. Vapor achieved state-of-the-art results on both the plaintext benchmarks. To know further updates and other minor changes, be sure to Check out the updated website. Your First Swift Program [tutorial] Swift for TensorFlow is now open source [news] RxSwift Part 1: Where to Start? Beginning with Hot and Cold Observables [tutorial]
Read more
  • 0
  • 0
  • 3346
Visually different images

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
  • 3987

article-image-ng-conf-2018-highlights-the-popular-angular-conference
Sugandha Lahoti
03 May 2018
4 min read
Save for later

ng-conf 2018 highlights, the popular angular conference

Sugandha Lahoti
03 May 2018
4 min read
The 2018 angular conference (ng-conf 2018) took place on April 18–20th 2018 at Salt Lake City, UT. The conference featured a large number of sessions, workshops, and speakers from the Angular team and the Angular community. ng-conf 2018 was live streamed and live transcripted for the home audience, to enjoy the same learning experiences as those of the actual attendees. Not to mention, the whole event was 80s themed, coinciding with the release of the movie Ready Player One which features a lot of 1980s pop-culture references. We have compiled a list of popular announcements and sessions which were the highlights of this year’s conference. Introducing RxJS6 Ben Lesh introduced version 6 of the ReactiveX library for JavaScript. RxJS is a library for reactive programming using Observables, that makes it easier to compose asynchronous or callback-based code. RxJS6 brings cleaner imports while having a smaller API, a backward compatibility package to update without changing your code, and automatic code migration for TypeScript. RxJS 6 Backward Compatibility: To make the migration path from RxJS 5 to RxJS 6, the RxJS team has released a sibling package called rxjs-compat. This package creates a compatibility layer between the APIs of v6 and v5. Automatic code migration: For TypeScript users, which cover the majority of Angular developers, RxJS introduces tslint, which offers a great deal of automated refactoring to make the transition from v5 to v6 even easier. Deprecations: A large no. of deprecations have been made. This includes Result selectors, Observable.if (replaced by iif() and Observable.throw replaced by throwError().  Apart from this, other deprecated methods include merge, concat, combineLatest, race, and zip. StackBlitz + Angular: A Better Way to Build PWA’s Albert Pai and Eric Simons conducted a session on building PWAs using StackBlitz with Angular. This suite of new developer tools makes building and debugging progressive web apps a lot easier. They run entirely in your browser with no setup or configuration required. NgRx Sessions A lot of sessions revolved around NgRx, the RxJS powered state management for Angular applications, inspired by Redux. Brandon Roberts talked about how to implement authentication with a reactive store by building an auth-based app with NgRx Store, Router, and Effects. Brandon Roberts and Mike Ryan presented a talk on Reactive Testing Strategies with NgRx. He talked about testing strategies such as unit testing presentation components, integration testing with smart components, testing observables, state management, and end-to-end tests, to make testing a reactive application easier and to simplify the testing triangle. Vitalii Bobrov talked about how NgRx Schematics is a huge time-saver. It will automate NgRx code generation and give you the ability to focus on application business logic. Mike Ryan presented a talk on Good Action Hygiene with NgRx and talked about how to write clean actions and avoid common anti-patterns. Jesse Sanders talked about how to handle complex forms using ngrx. David East and Todd Motto conducted a workshop on NgRx Selectors. They talked about multiple benefits of Selectors are easy to create and work well with teams. They allow you compute state from your store, which acts like a view model. Selectors are easily tested, memoized for performance, and compose-able for re-usability. By the end of this talk they promised to shake any store structure fears developers may have so that they can move forward boldly with selectors. Firebase, Cloud Functions, and Machine Learning Jason Dobry presented a workshop on how to use the Firebase SDK for Google Cloud Functions to improve an AngularFire Chat Web app. AngularFire is the officially supported AngularJS binding for Firebase. This binding lets you associate Firebase references with Angular models so that they will be transparently and immediately kept in sync with the database and with all other clients currently using your application. Jason also talked about how to use Cloud Functions to send notifications to users of the Chat app, use the Google Cloud Vision API to process images, and use the Google Natural Language API to process chat messages. The conference also featured workshops on the following How to hack an Angular app, Writing A Custom Angular Build Make your JS app search engine friendly, Building components with the Angular Component Dev Kit Strategies for Server Side Rendering Angular Apps Angular Elements in v6 and Beyond Hands-on Full-Stack development with Nx and Bazel, Using StackBlitz & Angular for Rapid App Prototyping Reusable Animations, Google’s serverless tools, VR Hero, and more.   You can have a look at the entire list of sessions and workshops on the ng-conf website. Why switch to Angular for web development – Interview with Minko Gechev 8 built-in Angular Pipes in Angular 4 that you should know Building Components Using Angular
Read more
  • 0
  • 0
  • 2388

article-image-facebooks-f8-conference-5-key-announcements
Richard Gall
02 May 2018
6 min read
Save for later

Facebook's F8 Conference - 5 key announcements

Richard Gall
02 May 2018
6 min read
This year's F8 Conference is one of the most closely watched ever, but not necessarily for the right reasons. Thanks to the Cambridge Analytica scandal and Mark Zuckerberg getting flustered in front of Congress, the spotlight is shining brightly over Facebook and its CEO. Zuckerberg's keynote speech was a focal point. Would he apologize? What would the big announcements be? In truth, the keynote was actually pretty interesting. There were some big surprises and interesting developments. Notably absent, however, was any form of apology from Zuckerberg. The MIT Technology Review were particularly incisive on this: '“Safety,” yes; “sorry,” no' runs the headline on their F8 Conference analysis. So while the F8 keynote speech may have lacked an apology, it was an interesting exercise in avoiding the issue. There was plenty of positivity, and lots of new initiatives that indicate that Facebook remains an optimistic and forward thinking organization. Either that, or labouring under considerable seld-deception - that depends on your viewpoint. 5 announcements from Facebook's F8 Conference you need to know So, let's take a look at 5 of the biggest announcements from Facebook's F8 Conference and what they might mean. Facebook is going to launch a dating app What's the best way to say sorry? Build a dating app! That way you can detract attention from the problems your product may or may not be causing civic society as people begin to get distracted by ill-advised crushes and unnecessary flirting. There are a number of ways you could view this announcement. On the one hand it looks a lot like Hubris, trying to beat established dating apps like Tinder at their own game. From this angle, it certainly looks like a feint to distract people from some of the thornier issues around the platform. But on the other hand it might just be a genius move from Zuckerberg. Literally billions of people live their lives on Facebook; why shouldn't their love lives be a part of that too? When you consider that the share value of Match Group - the organization that owns Tinder and OKCupid - took a tumble, Facebook might just be on to a winner to get itself out of a hole. Facebook is going to let you clear your history Although much of the commentary on Zuckerberg's F8 Conference keynote speech has been critical of the Facebook chief, one announcement did indicate that perhaps Facebook is actually learning its lessons. "Clear History" is a feature that does exactly what you think it does. It allows you to wipe any data that has been collected by sites and third party applications. Zuckerberg was keen to warn that this feature might make the experience 'worse' for users. This is what he said: "When you clear your cookies in a browser, you may have to sign back into dozens of websites... The same is going to be true here. Your Facebook won’t be quite as good as it relearns your preferences. But after going through our systems, this is the kind of control we think people should have.” It will be interesting to see whether users actually do want this level of control, or whether they're happy to give up some degree of privacy for greater personalization and convenience. The Facebook app review process is coming back By contrast, this announcement from Zuckerberg looks a lot more like an attempt to draw a line under the problems have been facing over the last few months. After closing the app review process following the Cambridge Analytica scandal, it was revealed that third party apps and chatbots would be able to go through the process once again. It's not clear how much this process will have changed and whether any other forms of governance will be in place - that remains to be seen. However, Zuckerberg didn't reveal a date as to when this might happen. Whether that means they need more time to refine the process or they're simply delaying it, it suggests that this announcement was as much to strike a tone of positivity with the developers in attendance. Facebook is simplifying the messenger app Anyone who has used Facebook messenger will know how irritating it can be too use. It certainly isn't minimal, and it would be hard to describe it as slick. This is something Zuckerberg seemed to appreciate, saying "when you’re messaging, you really want a simple and fast experience." This announcement was a nice counterpoint to news around the dating app. Just as it looks like Facebook has finally thrown the kitchen sink and everything else into the user experience, Zuckerberg takes a step back with a clear acknowledgement of user needs. A clean and slick application might not make you forgive him for undermining the foundations of western democracy, but it does make the bitter pill of reality in 2018 a little easier to swallow. Oculus Go is now available for $199 The VR headset market has been quietly growing. With the Oculus Go, Facebook have a product that might just capture the attention of millions of people who haven't yet felt comfortable with the options out there. Not only is it relatively cheap at $199, it's been described as a "game-changer" by TechCrunch. The reviewer writes that the headset "minimizes friction and promotes a surprisingly capable baseline for bringing new consumers into VR for the first time." With VR memories also touted to soon hit news feeds, Facebook might just be on course to make VR mainstream. Despite the hype, no one has been able to do that yet. F8 Conference: was Zuckerberg papering over the cracks? Clearly, there was plenty to get excited about in Zuckerberg's keynote speech. Whether you're a Facebook user or developer, there's enough to make you think there's still plenty of life and confidence in the platform yet. Perhaps rumours of its slow death have been exaggerated. But you can't deny there are problems at Facebook. A dating app isn't going to fix them. Oculus Go isn't going to transform the fortunes of the company overnight. What Facebook really needs is a frank conversation about what it does well. And that, really, is about delivering a platform users can't help but use. Once this year's F8 Conference is over, maybe that conversation can happen. Until then, let's just watch what happens over the next few days.
Read more
  • 0
  • 0
  • 2071
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 €14.99/month. Cancel anytime
article-image-npm-v6-is-out
Sugandha Lahoti
02 May 2018
2 min read
Save for later

npm v6 is out!

Sugandha Lahoti
02 May 2018
2 min read
After the recent release of Node 10.0.0, npm have released version 6 in collaboration with node.js. npm v6 is a major update of the popular package manager for the JavaScript runtime environment Node.js. Typically, npm release their newer versions every year around spring time and following this pattern npm v6 was introduced as on April 26, 2018. This update introduces powerful security features for every developer who works with open source code. Built in security features npm v6 is the result of the collaboration between npm and their acquisition of the Node Security Platform. This introduces two new security features: npm registry Every user of the npm v6 Registry will begin receiving automatic warnings if the code used has a known security issue. npm will automatically review install requests against the NSP database and return a warning if the code contains a vulnerability. npm audit npm v6, has a new command, ‘npm audit’, which allows developers to recursively analyze their dependency trees to identify specific insecurities, following which developers can swap in a new version or find a safer alternate dependency. Both these security features are available free of charge to every npm user, with no purchase or registration required. These resources are open sourced to maximize the community benefit. By alerting the entire community to security vulnerabilities within a tool, npm can make JavaScript development safer for everyone. Additional Features Apart from the security features, there are also a large number of other performance updates: npm v6 is up to 17x faster than the npm of one year ago. npm ci is optimized to use npm within the continuous integration/continuous deployment (CI/CD) workflow almost 2x–3x faster. Webhooks are now configurable directly within the npm CLI. Easy verification of package with respect to tampering and corruption, with more visibly integrated metadata. Teams can now more easily share reproducible builds with automatic resolution of lockfile conflicts. Also checkout the release notes for npm v6 release, and the roadmap of the year ahead. Node 10.0.0 released, packed with exciting new features How is Node.js Changing Web Development? How to deploy a Node.js application to the web using Heroku
Read more
  • 0
  • 0
  • 2615

article-image-node-10-0-0-released-packed-with-exciting-new-features
Kunal Chaudhari
30 Apr 2018
4 min read
Save for later

Node 10.0.0 released, packed with exciting new features

Kunal Chaudhari
30 Apr 2018
4 min read
Node.js 10.0.0 released, packed with exciting new features, it will be the next candidate in line for the Long Term Support (LTS) in October 2018. So what exactly is an LTS and why is the Node.js foundation releasing a major version every six months?   Node.js History and the Significance of LTS When Ryan Dhal first created Node.js, he decided to follow Linux kernel style odd/even version releases. Odd version releases represented internal development with no guarantee for stable releases, whereas even releases guaranteed stability. But this release scheme didn’t last long, as version 0.12 represented the last release under that versioning scheme. Later in 2015, Node.js 4.0 was announced, dubbed famously as the “Converged Release”. This meant that both io.js and Node.js projects under the Node foundation were merged together, providing a unified release plan for all Node products. In order to attract more enterprise users and to provide more stability to the platform, the Node foundation announced the “Long Term Support” strategy. The plan was simple, every six months a major version of the platform will be released which would follow semantic versioning. The even releases would be scheduled in April while the odd ones would come out in October and every even-numbered release will automatically become a candidate for the LTS. Long Term Support release lines focus on stability, extended support and provide a reliable platform for applications of any scale. Most Node.js users and companies prefer to use the Long Term Support releases. A candidate covered in the LTS plan is actively maintained for a period of 18 months from the date it enters LTS coverage. Following those 18 months of active support, they transition into "maintenance" mode for 12 additional months. To read more about the LTS release plan and schedule visit the official Node.js Foundation Release Working Group page. Source: Node.js Foundation Release Working Group Node.js 10 features Codenamed “Dubnium” Node.js 10.x comes with plenty of new features like OpenSSL 1.1.0 security toolkit, upgraded npm, N-API, and much more. Let’s take a closer look at each one of them. N-API and Native Node HTTP/2 becomes stable N-API, an abbreviation for Native API is used for building native addon, while Native HTTP/2 is module that improves the standard HTTP protocol. Both these features were first announced as experimental projects in Node.js 8 release and now have been confirmed as stable features in the 10.x release. N-API aims to solve two main problems namely, reducing the maintenance cost for native modules and reducing difficulties in upgrading Node.js versions in production deployments for users. The native HTTP/2 module will help improve Node servers and the web experience that they provide. Upgraded npm npm has recently been upgraded from v5.7 to v6.0, while Node.js 10 ships with npm 5.7, the 10.x line will be upgraded to npm Version 6 later on. This major version increase in npm provides improvements in all areas including performance, security, and stability. OpenSSL Version 1.1.0 With the recent finalization of the TLS 1.3 specification, a huge step forward for the security of the web, OpenSSL release their newest version of the security toolkit which supports this TLS specification. It didn’t take long for Node.js to start supporting OpenSSL, since it would provide more secure communication between applications on the Node platform. While Node is just supporting OpenSSL version 1.1.0 in this latest release, it plans to upgrade it in the future versions of the 10.x release, bringing the brand new TLS support for the developers.   What to expect in the future releases Plenty of exciting features like better support for the ECMAScript (ES) modules, JavaScript Promises, new infrastructure for build/automation support, and functional testing for third party modules are in line for the next releases. Node 10 will remain in LTS from October 2018 until April 2021. This LTS release will also mark the deprecation of Node.js 4. While the features released so far are already very impressive, the Node team remains adamant on bringing even more cutting edge technology to the platform, making the life of developers easier. To get a more detailed description of the new features or to download the latest version of Node.js, please visit their official web page. How is Node.js Changing Web Development? How to deploy a Node.js application to the web using Heroku
Read more
  • 0
  • 0
  • 2876

article-image-build-achatbot-with-microsoft-bot-framework
Kunal Chaudhari
27 Apr 2018
8 min read
Save for later

How to build a chatbot with Microsoft Bot framework

Kunal Chaudhari
27 Apr 2018
8 min read
The Microsoft Bot Framework is an increbible tool from Microsoft. It makes building chatbots easier and more accessible than ever. That means you can build awesome conversational chatbots for a range of platforms, including Facebook and Slack. In this tutorial, you'll learn how to build an FAQ chatbot using Microsoft Bot Framework and ASP.NET Core. This tutorial has been taken from .NET Core 2.0 By Example. Let's get started. You're chatbot that can respond to simple queries such as: How are you? Hello! Bye! This should provide a good foundation for you to go further and build more complex chatbots with the Microsoft Bot Framework, The more you train the Bot and the more questions you put in its knowledge base, the better it will be. If you're a UK based public sector organisation then ICS AI offer conversational AI solutions built to your needs. Their Microsoft based infrastructure runs chatbots augmented with AI to better serve general public enquiries. Build a basic FAQ Chabot with Microsoft Bot Framework First of all, we need to create a page that can be accessed anonymously, as this is frequently asked questions (FAQ ), and hence the user should not be required to be logged in to the system to access this page. To do so, let's create a new controller called FaqController in our LetsChat.csproj. It will be a very simple class with just one action called Index, which will display the FAQ page. The code is as follows: [AllowAnonymous] public class FaqController : Controller { // GET: Faq public ActionResult Index() { return this.View(); } } Notice that we have used the [AllowAnonymous] attribute, so that this controller can be accessed even if the user is not logged in. The corresponding .cshtml is also very simple. In the solution explorer, right-click on the Views folder under the LetsChat project and create a folder named Faq and then add an Index.cshtml file in that folder. The markup of the Index.cshtml would look like this: @{ ViewData["Title"] = "Let's Chat"; ViewData["UserName"] = "Guest"; if(User.Identity.IsAuthenticated) { ViewData["UserName"] = User.Identity.Name; } } <h1> Hello @ViewData["UserName"]! Welcome to FAQ page of Let's Chat </h1> <br /> Nothing much here apart from the welcome message. The message displays the username if the user is authenticated, else it displays Guest. Now, we need to integrate the Chatbot stuff on this page. To do so, let's browse http://qnamaker.ai. This is Microsoft's QnA (as in questions and answers) maker site which a free, easy-to-use, REST API and web-based service that trains artificial intelligence (AI) to respond to user questions in a more natural, conversational way. Compatible across development platforms, hosting services, and channels, QnA Maker is the only question and answer service with a graphical user interface—meaning you don’t need to be a developer to train, manage, and use it for a wide range of solutions. And that is what makes it incredibly easy to use. You would need to log in to this site with your Microsoft account (@microsoft/@live/@outlook). If you don't have one, you should create one and log in. On the very first login, the site would display a dialog seeking permission to access your email address and profile information. Click Yes and grant permission: You would then be presented with the service terms. Accept that as well. Then navigate to the Create New Service tab. A form will appear as shown here: The form is easy to fill in and provides the option to extract the question/answer pairs from a site or .tsv, .docx, .pdf, and .xlsx files. We don't have questions handy and so we will type them; so do not bother about these fields. Just enter the service name and click the Create button. The service should be created successfully and the knowledge base screen should be displayed. We will enter probable questions and answers in this knowledge base. If the user types a question that resembles the question in the knowledge base, it will respond with the answer in the knowledge base. Hence, the more questions and answers we type, the better it will perform. So, enter all the questions and answers that you wish to enter, test it in the local Chatbot setup, and, once you are happy with it, click on Publish. This would publish the knowledge bank and share the sample URL to make the HTTP request. Note it down in a notepad. It contains the knowledge base identifier guide, hostname, and subscription key. With this, our questions and answers are ready and deployed. We need to display a chat interface, pass the user-entered text to this service, and display the response from this service to the user in the chat user interface. To do so, we will make use of the Microsoft Bot Builder SDK for .NET and follow these steps: Download the Bot Application project template from http://aka.ms/bf-bc-vstemplate. Download the Bot Controller item template from http://aka.ms/bf-bc-vscontrollertemplate. Download the Bot Dialog item template from http://aka.ms/bf-bc-vsdialogtemplate. Next, identify the project template and item template directory for Visual Studio 2017. The project template directory is located at %USERPROFILE%DocumentsVisual Studio 2017TemplatesProjectTemplatesVisual C# and the item template directory is located at %USERPROFILE%DocumentsVisual Studio 2017TemplatesItemTemplatesVisual C#. Copy the Bot Application project template to the project template directory. Copy the Bot Controller ZIP and Bot Dialog ZIP to the item template directory. In the solution explorer of the LetsChat project, right-click on the solution and add a new project. Under Visual C#, we should now start seeing a Bot Application template as shown here: Name the project FaqBot and click OK. A new project will be created in the solution, which looks similar to the MVC project template. Build the project, so that all the dependencies are resolved and packages are restored. If you run the project, it is already a working Bot, which can be tested by the Microsoft Bot Framework emulator. Download the BotFramework-Emulator setup executable from https://github.com/Microsoft/BotFramework-Emulator/releases/. Let's run the Bot project by hitting F5. It will display a page pointing to the default URL of http://localhost:3979. Now, open the Bot framework emulator and navigate to the preceding URL and append api/messages; to it, that is, browse to http://localhost:3979/api/messages and click Connect. On successful connection to the Bot, a chat-like interface will be displayed in which you can type the message. The following screenshot displays this step:   We have a working bot in place which just returns the text along with its length. We need to modify this bot, to pass the user input to our QnA Maker service and display the response returned from our service. To do so, we will need to check the code of MessagesController in the Controllers folder. We notice that it has just one method called Post, which checks the activity type, does specific processing for the activity type, creates a response, and returns it. The calculation happens in the Dialogs.RootDialog class, which is where we need to make the modification to wire up our QnA service. The modified code is shown here: private static string knowledgeBaseId = ConfigurationManager.AppSettings["KnowledgeBaseId"]; //// Knowledge base id of QnA Service. private static string qnamakerSubscriptionKey = ConfigurationManager.AppSettings["SubscriptionKey"]; ////Subscription key. private static string hostUrl = ConfigurationManager.AppSettings["HostUrl"]; private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result) { var activity = await result as Activity; // return our reply to the user await context.PostAsync(this.GetAnswerFromService(activity.Text)); context.Wait(MessageReceivedAsync); } private string GetAnswerFromService(string inputText) { //// Build the QnA Service URI Uri qnamakerUriBase = new Uri(hostUrl); var builder = new UriBuilder($"{qnamakerUriBase}/knowledgebases /{knowledgeBaseId}/generateAnswer"); var postBody = $"{{"question": "{inputText}"}}"; //Add the subscription key header using (WebClient client = new WebClient()) { client.Headers.Add("Ocp-Apim-Subscription-Key", qnamakerSubscriptionKey); client.Headers.Add("Content-Type", "application/json"); try { var response = client.UploadString(builder.Uri, postBody); var json = JsonConvert.DeserializeObject<QnAResult> (response); return json?.answers?.FirstOrDefault().answer; } catch (Exception ex) { return ex.Message; } } } The code is pretty straightforward. First, we add the QnA Maker service subscription key, host URL, and knowledge base ID in the appSettings section of Web.config. Next, we read these app settings into static variables so that they are available always. Next, we modify the MessageReceivedAsync method of the dialog to pass the user input to the QnA service and return the response of the service back to the user. The QnAResult class can be seen from the source code. This can be tested in the emulator by typing in any of the questions that we have stored in our knowledge base, and we will get the appropriate response, as shown next: Our simple FAQ bot using the Microsoft Bot Framework and ASP.NET Core 2.0 is now ready! Read more about building chatbots: How to build a basic server side chatbot using Go
Read more
  • 0
  • 1
  • 7976

article-image-web-development-news-tuesday-24-april
Richard Gall
24 Apr 2018
1 min read
Save for later

Web Development news bulletin - Tuesday 24 April

Richard Gall
24 Apr 2018
1 min read
Welcome to this week's web development news bulletin. There's plenty of new software releases you might want to take note of... Web development news from the Packt Hub What's new in ECMAScript 2018? Get ready for Bootstrap 4.1. New software releases Quid has been released. It's a new tool that aims to support web component composition. Jekyll 3.8.0 has been released. The Jekyll team recently announced an update to their static website publishing tool with lots of new features. It includes some future-proofing improvements, and some bug fixes. Laravel 5.6.17 has been released. Laravel News notes that the release features "helpers to make subquery joins more straightforward, along with a few minor changes and locking Carbon at 1.25.* on the Laravel 5.6 branch." ReactiveSearch v2.6: Elasticsearch UI Components for Web. Version 2 of Google's Client library is now generally available. TypeORM 0.2.0 released - An ORM for TypeScript and JavaScript.
Read more
  • 0
  • 0
  • 1938
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
  • 2428

article-image-whats-new-in-ecmascript-2018
Pravin Dhandre
20 Apr 2018
4 min read
Save for later

What's new in ECMAScript 2018 (ES9)?

Pravin Dhandre
20 Apr 2018
4 min read
ECMAScript 2018 -  also known as ES9 - is now complete with lots of features. Since the major features released with ECMAScript 2015 the language has matured with yearly update releases. After multiple draft submissions and completion of the 5-stage process, the TC39 committee has finalized the set of features that will be rolled out in June. The full list of proposals that were submitted to TC39 committee can be viewed in Github repository. What are the key features of ECMAScript 2018? Let’s have a quick look at the key ES9 features and how it is going to add value to web developers. Lifting template literal restriction Template literals generally allow the embedding of languages such as DSLs. However, restrictions on escape sequences make this quite complicated. Removing the restriction will create difficulty in handling cooked template values containing illegal escape sequences. The proposed feature will redefine the cooked value for illegal escape sequences to “undefined”. This lifting of restriction will allow illegal values like \xerxes and makes embedding of language simpler. The detailed proposal with templates can be viewed at Github. Asynchronous iterators The newer version will provide syntactic support for asynchronous iteration with both AsyncIterable and AsyncIterator protocols. The syntactic support will help in reading lines of text from HTTP connection easily. In my opinion, this is one of the most important and useful features which make the code looks simpler. It introduces a new IterationStatement, for-await-of, and also adds syntax which can create async generator functions. The detailed proposal can be viewed at Github. Promise.prototype.finally library As you are aware promise make execution of callback functions easy. Many promise libraries have a "finally" method through which you can run code no matter how the Promise provides resolution. It works by registering a callback which gets invoked when a promise gets fulfilled or denied. Bluebird, Q, and when are some examples. The detailed proposal can be viewed at Github. Unicode property escapes in regular expressions The ECMAScript 2018 version will have addition of Unicode property escapes `\p{…}` and `\P{…}` to regular expressions. These are a new and unique type of escape sequences with u flag set. With this feature, one can create Unicode-aware regular expressions with utmost ease. These escapes are easily readable, compact and get updated automatically from ECMAScript engine. The detailed proposal can be viewed at Github. RegExp lookbehind assertions Assertions are regular expressions which consist of anchors and lookarounds that either succeeds or fails based on the match found. ECMAScript has extended assertion, that does lookaround in forward direction, with lookbehind assertions that does in backward direction. This assertion will be helpful in instances like validating a dollar amount without capturing the dollar sign where a pattern/design is or is not preceded by another. The detailed proposal can be viewed at Github. Object Rest/spread properties The earlier version of ECMAScript includes rest and spread properties for array literals. Likewise, the newer version would be introducing rest and so read elements for object literals. Both these operations for Object would help in extracting properties which we want along with removing unwanted ones. The detailed proposal can be viewed at Github. RegExp named capture groups Capture Groups is another RegExp feature, similar to so called “named Groups” in Java and Python. With this, you can write RegExp to provide names in a format viz. (?<name>...) for different parts of the group. This allows you to use that name and grab whichever group you need in a simplistic way. The detailed proposal can be viewed at Github. s ‘dotAll’ flag for regular expressions In regular expression patterns, the earlier version allows dot (.) to match any character but with astral and line terminator characters like \n \f etc, creating regex was complicated. The newer version proposes addition of a new s flag which can match any character, including astral and line terminators. The detailed proposal can be viewed at Github. When will ECMAScript 2018 be available? All of the features above are expected to be implemented and available in browsers this year. It's in the name after all. But there are likely to be even more new features and capabilities in the 2019 release. Read this to get a clearer picture of what’s likely to feature in the 2019 release.
Read more
  • 0
  • 0
  • 14999

article-image-scrivito-launches-serverless-javascript-cms
Kunal Chaudhari
17 Apr 2018
2 min read
Save for later

Scrivito launches serverless JavaScript CMS

Kunal Chaudhari
17 Apr 2018
2 min read
Scrivito, a SaaS-based Content Management Service, launched a new breed of cloud-based serverless JavaScript CMS which is specifically targeted towards medium to large sized businesses. While the world is shifting to cutting-edge cloud technology, web CMS platforms are still stuck in the past. Thomas Witt, Co-Founder, and CTO of Scrivito said that “We’re at a tipping point. Agencies and dev teams that stick with Wordpress and the like are doomed to be overtaken by the inevitable shift to serverless computing and JavaScript development.” Scrivito checks the boxes for key trending tech innovations in the web development space. Serverless? Yes. Cloud native? Yes. So what’s unique about this cutting-edge content management interface and how exactly does it differentiate itself from the other traditional CMS? Scrivito requires zero maintenance thanks to the cloud This is the most unique feature of Scrivito. Since it is a cloud-based service, it allows developers to spin up a CMS instance without having to re-install anything or reconfigure databases, search engine indexing, backups or metadata. This leads to no downtime, no software patches, and minimal maintenance efforts. Component reusability powered by ReactJS Scrivito is powered by Facebook’s popular frontend framework-React. Thanks to its reusable UI components and its flexibility, developers can create complex and interactive functionalities such as configurators or multi-page forms with ease. Not only built for developers, it also makes it easier for agencies and marketing teams to build, edit and manage secure, reliable and cost-effective sites, microsites, and landing pages. Scrivito is extendable Scrivito is easily extendable because it doesn’t require any infrastructure. Developers and editors can create their own widgets and data structures on the fly. Due to its unique working copies technology, it brings version control technologies from software development to the CMS world, thus eliminating the need for a staging server and allowing parallel editing of content across teams. Plus, its API-driven approach provides the benefits of a serverless and a headless CMS together with WYSIWYG editing in a single solution. Scrivito has certainly ignited a revolution in the web development space by introducing serverless technologies to CMS applications. It is available at different price points for personal and enterprise users. To know more about other features and pricing options, check out the project's official webpage.
Read more
  • 0
  • 0
  • 3036
article-image-web-development-news-bulletin-tuesday-17-april
Richard Gall
17 Apr 2018
2 min read
Save for later

Web development news bulletin - Tuesday 17 April

Richard Gall
17 Apr 2018
2 min read
Welcome to this week's web development news bulletin. There's some interesting new releases, and also news of conflict between 4 of the planet's biggest tech companies and the W3C. Web development news from the Packt Hub Mozilla is building a bridge between Rust and JavaScript. Mozilla has a high level plan for Rust to become a web development language used for backend tasks within the stack. To do this, it has created something called wasm-bindgen, which makes Rust code interoperable with JavaScript via WebAssembly. Web development news from across the web You can now take a sneak peak at WebAssembly Studio. WebAssembly Studio is an online IDE that provides incredible support when using WebAssembly. It's also a neat place to learn how to use WebAssembly. Apple, Google, Mozilla and Microsoft push back against W3C. The 4 companies behind the world's most popular web browsers have expressed considerable dissatisfaction with W3C's new DOM 4.1 specification. Columbia University's engineering department launches web development bootcamp. Columbia Engineering has teamed up with Trilogy Education Services to create a 24 week course to teach aspiring developers full-stack skills. "Web development is one of the fastest growing careers in today's economy with a projected 15% percent growth by 2026" notes Professor Soulaymane Kachani, Vice Provost for Teaching and Learning at Columbia University. "We are proud to partner with Trilogy to expand access to the digital skills New Yorkers need." New software releases Vue Press, a 'Vue-powered' static site generator has been released. Designed to be incredibly simple and easy to use, Vue Press promises to be a useful new way to build single page web applications. Parcel V1.7.0 has been released, with lots of exciting new features and improvements. This release includes Vue support (which was a big request from users), and content hashed bundle names to provide support for long-term cacheable files. Ember 3.1 and 3.2 released. The release of version 3.1.0 of Ember.js, Ember CLI, and Ember Data has kicked off the beta cycle for Ember sub-projects. Devil Box v0.13 released. This is described as a 'major release which introduces various stabilization and performance fixes as well as ships a very detailed documentation about all customizable features" Rails 5.2.0 is out. Vulkan 1.1.73 released.
Read more
  • 0
  • 0
  • 1992

article-image-vue-js-developer-special-what-we-learnt-from-vueconf-us-2018
Sugandha Lahoti
17 Apr 2018
3 min read
Save for later

Vue.js developer special: What we learnt from VUECONF.US 2018

Sugandha Lahoti
17 Apr 2018
3 min read
After the successful conference at Amsterdam, Vuejs recently conducted the first ever VueConf.US in New Orleans on March 26th-28th 2018. The conference congregated hundreds of Vuejs developers from around the world and the VueJS Core team and featured workshops and talks from members of the Vuejs community and Vue experts. It also witnessed new releases and project processes. The conference commenced with an inaugural keynote by Evan You, the creator of Vue. He talked about the growth of Vue since 2016, also highlighting new developments coming soon. In his keynote, You said that “Vue will be moving to a standardized release cycle with new minor releases every three months and a minimum six-month notice prior to major releases.” They will also be shifting from a single release channel to four separated release channels. The VueConf.US conference covered 4 major workshops by Vuejs experts. In the first workshop, Evan You talked about building simple versions of libraries for features such as routing, state management, form validation and i18n using basic Vue features. Chris Fritz, conducted a second workshop on the basics of building world-class Vue applications. Topics included configuring Webpack for single-file components, setting up the most advanced workflows currently possible, and more. Sarah Drasner organized a workshop on animation in Vue to creating complex effects in performant and visually stunning patterns. Rachel Nabors, presented a talk, "Vue In Motion", on implementing animations and transitions in Vue. In the fourth workshop, Blake Newman presented his views on Vuex, a state management pattern. The VueConf.US conference also featured multiple presentations by key Vue experts. Daniel Rosenwasser, Program Manager on TypeScript at Microsoft, presented his views on making TypeScript and Vue seamless to make sure that JavaScript users of all communities can use Typescript. In another interesting presentation, Jen Looper talked about creating an Engaging Native Mobile App with Vue and NativeScript all the while retaining shared code between the Vue created website and mobile app. Edd Yerburgh, Vue core team member and author of "vue-test-utils", spoke about testing Vue applications. He presented an adapted the testing pyramid for the front end, consisting of end-to-end tests, snapshot tests, and unit tests. In a talk, “Vue & SSR: The best practices”, Sebastien Chopin talks about common problems with server-side rendering and how to deal with them. He also shows Nuxt.js as a possible solution to most of these problems. Community support was the highlight of the VueConf.US conference with a large number of talks mentioning the importance of Vue community support. The attendees were extremely positive about the conference and stated how comfortable and welcoming the community was. Each attendee shared a similar level of excitement about the platform and its possibilities and was excited about meeting the wide variety of developers and to know their experiences. All talks were recorded and will be posted soon on VueMastery.
Read more
  • 0
  • 0
  • 2039