SpaceX Crew Dragon mission to ISS delayed yet again

first_img SpaceX preps Crew Dragon Enlarge ImageFalcon 9 and Crew Dragon get ready for a test flight. SpaceX SpaceX and NASA are no strangers to launch delays, and the latest involves the first major test flight of the SpaceX crew capsule, the Crew Dragon. NASA announced on Thursday it has pushed the schedule for the Demo-1 launch into February at the earliest.  Crew Dragon was previously set to head to orbit on Jan. 7, but that date was reset for Jan. 17. NASA did not specify a new target date, but it says SpaceX and NASA are still completing hardware testing and joint reviews. The uncrewed test flight to the International Space Station is designed to check how the launch, orbital, docking and landing systems function before actual astronauts take a ride to space inside the capsule.  Comment Crew Dragon is part of NASA’s Commercial Crew program, which also involves the Boeing Starliner. The space agency is hoping to bring astronaut launches back to US soil for the first time since 2011. Astronauts visiting the ISS have been hitching rides on Russian spacecraft.  The capsule and the Falcon 9 rocket that will launch it are sitting upright together on the historic Apollo 11 launchpad at the Kennedy Space Center in Florida. SpaceX founder Elon Musk tweeted over the weekend that the test flight will be “extremely intense” since there’s a lot of new hardware involved. If the test flight goes well, then astronauts could take the first crewed flight on Dragon later this year. NASA says it will confirm a new target launch date after coordinating with the Eastern Range rocket range and the ISS program. 10 Photos Tags 1 SpaceX Crew Dragon preps for ‘extremely intense’ first test flight NASA astronauts test SpaceX spacesuits in the Crew Dragon Share your voice Space cheese and 9 other weird items we’ve sent into orbit (pictures) NASA turns 60: The space agency has taken humanity farther than anyone else, and it has plans to go further. What NASA’s Kepler telescope sees: It’s helped amateurs spot an unusual new planet in a “Goldilocks zone.” Sci-Tech NASA Space SpaceXlast_img read more

India calls off meeting with Pakistan foreign minister

first_imgPakistan`s new foreign minister Shah Mehmood Qureshi listens during a news conference at the foreign ministry in Islamabad, Pakistan on 20 August 2018. Reuters File PhotoIndia called off on Friday a planned meeting of its foreign minister with her Pakistani counterpart on the sidelines of the UN General Assembly later this month.India has decided to drop the idea of the proposed meeting, the first such high-level talk planned in years between the nuclear rivals, to protest about the killing of Indian security personnel and the glorification of a militant and militancy by Pakistan, India’s foreign office said in a statement.The ministry had announced the meeting after Pakistan prime minister Imran Khan wrote to his Indian counterpart, Narendra Modi, suggesting their foreign ministers meet in New York.But the statement said that since its announcement “two deeply disturbing developments have taken place”.It cited “the latest brutal killings of our security personnel by Pakistan-based entities” and the recent release of postage stamps by Pakistan which it said glorified “a terrorist and terrorism”.Pakistan’s foreign minister Shah Mehmood Qureshi blamed Indian politics. “Some elements don’t want resumption of talks between India and Pakistan. The elections in India are near and it appears that internal politics have influenced the government,” he told the local Samaa TV channel.An Indian general election is due by May.The Modi government has insisted that Pakistan act against anti-India Islamist militant groups that operate from its soil before it can resume peace talks to resolve long standing differences over the Himalayan region of Kashmir and other disputes.Pakistan denies aiding and abetting attacks in India including in Kashmir and says it is fighting militant groups for its own security.last_img

Grub Fest Most awaited food festival returns to Delhi

first_imgDelectable food, uncontrollable fun and unparalleled entertainment – all comes together under one roof at ‘The Grub Fest’, India’s most renowned culinary affair. This year’s edition, which will take place from March 6-8, makes its way back to the capacious Jawaharlal Nehru Stadium in the national capital. The Grub Fest is India’s foremost culinary affair with the most famed restaurants displaying their signature delicacies over some good music and hearty performances. The fest has manifested a remarkable journey starting from 30,000 visitors and 100 exhibitors in 2015 to 75000 visitors and 150 exhibitors in their latest edition. Also Read – Add new books to your shelfThis year, the major highlights of Grub fest include restaurant exhibitors comprising of prominent names like Baking Bad, iHOP, Wok to Walk, Big Yellow Door, and others. Moreover, for the first time, this festival is introducing ‘The Grub Star Access’, a luxury food and dining experience giving each recipient the access to make them feel like a VIP.The next interesting addition is ‘Grub Street’ – the lifestyle zone where one can find upcoming brands selling fashion accessories, pop up shops, gifts etc. Also, ‘Grub Market’ dedicated to packed products, fresh produce, organic products and an assortment of delicious homemade delicacies will surely be grabbing eyeballs. Also Read – Over 2 hours screen time daily will make your kids impulsive’Grub Arena’ will witness artist performances, on-stage games and much more that will undoubtedly leave audiences mesmerized. The festival highlights some of Bollywood’s top artists like Guru Randhawa, DJ Frenzy, Jasmine Sandlers, who will fill the night with melody and bring the audience together for a festival to remember.Apart from the aforementioned attractions, ‘iSkate ring’, an exclusive ice-skating arena where one can strap on a pair of roller skates and wheel away their worries, ‘Edinger Beer Garden’ to sit back and enjoy and the ‘Juke Box’ that would provide a platform for young talented artists and DJ’s to showcase their skills are worth looking forward. You can enjoy the non-stop culinary treat and entertainment from 12 Noon to 10 PM. The early bird ticket is for Rs 250 at cleartrip.com whereas the regular is for Rs 399. Grub Star on clear trip, early bird would cost you Rs 600 whereas regular is for Rs 999. After 3 successful editions in Delhi, the event was also successfully launched for the first time in new cities, Gurgaon, Mumbai, Pune, and Chandigarh in 2017. With a collective footfall of over 3 lakh food enthusiasts, 300 restaurants, a line-up of prominent chefs and some of the top artistes in the country for entertainment, The Grub Fest has fast become the most awaited food festival of the country.last_img read more

Will the Workplace Lead Wearable Technology Adoption

first_img 3 min read Consumer adoption of devices such as smart watches, eyeglasses, or fitness monitors is far from mainstream, at least from a global view. Still, almost three-quarters of the 9,100-plus people surveyed last month by Harris Interactive see potential benefits in workplace efficiency, productivity, and safety. Positive sentiment is especially high in Mexico, India and China.The research was conducted on behalf of the Workforce Institute at human resources software and services company Kronos. The online poll during early September (right around the time of the Apple Watch launch) reached 9,126 adults ages 18 or older in Australia, China, France, Germany, Great Britain, India, Mexico, and the United States.“There’s a strong belief that wearable technology will take off in the workplace before the home because devices such as smart watches, intelligent ID badges, and fitness and health monitors can provide organizations with uncharted data collection points to greatly improve safety, productivity, collaboration, and overall workplace effectiveness,” says Workforce Institute director Joyce Maroney, in a statement about the findings.She notes: “And while more and more types of wearable technologies have hit the market, the concept of wearables at work isn’t new. Workers have been wearing uniforms, safety gear, ID badges, communications headsets, and so on for years to do their jobs better.”As a whole, U.S. adults were the least optimistic respondents. For example, only 48% saw a workplace benefit from wearables, versus almost 96% in Mexico, 94% in China and 91% in India. Approximately 13% of the U.S. respondents used wearables in their personal lives, compared with 73% of those from China.The U.S. prospects for wearables in the workplace look far brighter if you look at responses from just those classified as students: almost 72% could cite at least one business benefit (compared with 48% of all U.S. respondents).That finding echoes separate survey results released last week by PricewaterhouseCoopers that suggest 53% of Millennials are “excited” about the future of wearables, particularly in retail, entertainment, and personal healthcare applications.To that end, it’s worth noting that data generated by wearables, particularly fitness bracelets that monitor exercise and health vitals, is fast becoming a must-have component of products and services offered by weight-loss businesses.On Tuesday, Medifast disclosed a partnership with Fitbit and joined competitors Weight Watchers and Nutrisystems in launching apps for tracking nutrition, weight, sleep patterns and other data integral to gauging progress. “Studies show that people who use journaling and tracking systems have far greater success with healthy weight management than those who do not,” said Medifast CEO Mike MacDonald, in a statement.Whether the weight-loss industry is getting ahead of itself remains to be seen. Then again, there could be 130 million wearable devices on people’s wrists, heads and bodies by 2018—an adoption rate akin to those for tablet computers. Growing a business sometimes requires thinking outside the box. Register Now » Free Webinar | Sept. 9: The Entrepreneur’s Playbook for Going Global This story originally appeared on Fortune Magazine October 29, 2014last_img read more

8 recipes to master Promises in ECMAScript 2018

first_img console.log(‘Before promise created’); console.log(‘Before promise created’); console.log(‘Before promise created’); console.log(‘Before promise created’); console.log(‘After promise created’); } Create a function addBoosters that throws an error: function addBoosters (rocket) { throw new Error(‘Unable to add Boosters’); } Create a function performGuidanceDiagnostic that returns a promise that rejects an error: function performGuidanceDiagnostic (rocket) { return new Promise(function (resolve, reject) { reject(new Error(‘Unable to finish guidance diagnostic’)); }); } Use Promise.resolve to pass the rocket object to these functions, and chain a catch off each of them: export function main() { new Promise(function (resolve) { }); console.log(‘Before promise created’); const rocket = {}; Promise.all([]) console.log(‘After promise created’); } Attach a then call to the chain and log that the rocket is ready for launch: const rocket = {}; Promise.all([ Promise.resolve(rocket).then(addBoosters), Promise.resolve(rocket).then(performGuidanceDiagnostic), Promise.resolve(rocket).then(loadCargo) ]).then(function (results) { console.log(‘Rocket ready for launch’); console.log(results); }); Start your Python web server and open the following link in your browser:http://localhost:8000/. You should see the following output: How it works… Promise.all is similar to Promise.resolve; the arguments are resolved as promises. The difference is that instead of a single result, Promise.all accepts an iterable argument, each member of which is resolved individually. In the preceding example, you can see that each of the promises is initiated immediately. Two of them are able to complete while performGuidanceDiagnostic continues. The promise returned by Promise.all is fulfilled when all the constituent promises have been resolved. The results of the promises are combined into an array and propagated down the chain. You can see that three references to rocket are packed into the results argument. And you can see that the operations of each promise have been performed on the resulting object. There’s more As you may have guessed, the results of the constituent promises don’t have to return the same value. This can be useful, for example, when performing multiple independent network requests. The index of the result for each promise corresponds to the index of the operation within the argument to Promise.all. In these cases, it can be useful to use array destructuring to name the argument of the then callback: Promise.all([ findAstronomers, findAvailableTechnicians, findAvailableEquipment ]).then(function ([astronomers, technicians, equipment]) { // use results for astronomers, technicians, and equipment }); Handling errors with Promise.catch In a previous recipe, we saw how to fulfill a promise with an error state using reject, and we saw that this triggers the next catch callback in the promise chain. Because promises are relatively easy to compose, we need to be able to handle errors that are reported in different ways. Luckily promises are able to handle this seamlessly. In this recipe, we’ll see how Promises.catch can handle errors that are reported by being thrown or through rejection. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-07-handle-errors-promise-catch. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file with a main function that creates an object named rocket: export function main() { return new Promise(function (resolve) { setTimeout(function () { console.log(‘guidance diagnostic complete’); rocket.guidanceDiagnostic = ‘Completed’; resolve(rocket); }, 2000); }); } Create a function named loadCargo that adds a payload to the cargoBay: function loadCargo (rocket) { console.log(‘loading satellite’); rocket.cargoBay = [{ name: ‘Communication Satellite’ }] return rocket; } Use Promise.resolve to pass the rocket object to these functions within Promise.all: export function main() { console.log(‘Before promise created’); Promise.resolve(Math.random() > 0.5) .then(addBoosters) .then(() => console.log(‘Ready for launch: ‘)) What are Promises in ECMAScript? In earlier versions of JavaScript, the callback pattern was the most common way to organize asynchronous code. It got the job done, but it didn’t scale well. With callbacks, as more asynchronous functions are added, the code becomes more deeply nested, and it becomes more difficult to add to, refactor, and understand the code. This situation is commonly known as callback hell. Promises were introduced to improve on this situation. Promises allow the relationships of asynchronous operations to be rearranged and organized with more freedom and flexibility. In this context, today we will learn about Promises and how to use it to create and organize asynchronous functions. We will also explore how to handle error conditions. Creating and waiting for Promises Promises provide a way to compose and combine asynchronous functions in an organized and easier to read way. This recipe demonstrates a very basic usage of promises. This recipe assumes that you already have a workspace that allows you to create and run ES modules in your browser for all the recipes given below: How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 03-01-creating-and-waiting-for-promises. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that creates a promise and logs messages before and after the promise is created, as well as while the promise is executing and after it has been resolved: // main.js export function main () { const rocket = {}; console.log(‘After promise created’); } Create a function named addBoosters that throws an error if its first parameter is false: function addBoosters(shouldFail) { if (shouldFail) { throw new Error(‘Unable to add Boosters’); } console.log(‘After promise created’); } Create a function named addBoosters that creates an object with boosters to an object: function addBoosters (rocket) { console.log(‘attaching boosters’); rocket.boosters = [{ count: 2, fuelType: ‘solid’ }, { count: 1, fuelType: ‘liquid’ }]; return rocket; } Create a function named performGuidanceDiagnostic that returns a promise of a successfully completed task: function performGuidanceDiagnostic (rocket) { console.log(‘performing guidance diagnostic’); center_img console.log(‘After promise created’); } Start your Python web server and open the following link in your browser:http://localhost:8000/. You will see the following output: How it works… By looking at the order of the log messages, you can clearly see the order of operations. First, the initial log is executed. Next, the promise is created with an executor method. The executor method takes resolve as an argument. The resolve function fulfills the promise. Promises adhere to an interface named thenable. This means that we can chain then callbacks. The callback we attached with this method is executed after the resolve function is called. This function executes asynchronously (not immediately after the Promise has been resolved). Finally, there is a log after the promise has been created. The order the logs messages appear reveals the asynchronous nature of the code. All of the logs are seen in the order they appear in the code, except the Finished promise message. That function is executed asynchronously after the main function has exited! Resolving Promise results In the previous recipe, we saw how to use promises to execute asynchronous code. However, this code is pretty basic. It just logs a message and then calls resolve. Often, we want to use asynchronous code to perform some long-running operation, then return that value. This recipe demonstrates how to use resolve in order to return the result of a long-running operation. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-02-resolving-promise-results. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that creates a promise and logs messages before and after the promise is created: // main.js export function main () { return { boosters: [{ count: 2, fuelType: ‘solid’ }, { count: 1, fuelType: ‘liquid’ }] }; } Use Promise.resolve to pass a Boolean value that is true if a random number is greater than 0.5 to addBoosters: export function main() { const rocket = {}; Promise.resolve(rocket).then(addBoosters) .catch(console.error); Promise.resolve(rocket).then(performGuidanceDiagnostic) .catch(console.error); console.log(‘After promise created’); } Within the promise, resolve a random number after a 5-second timeout: new Promise(function (resolve) { setTimeout(function () { resolve(Math.random()); }, 5000); }) Chain a then call off the promise. Pass a function that logs out the value of its only argument: new Promise(function (resolve) { setTimeout(function () { resolve(Math.random()); }, 5000); }).then(function (result) { console.log(‘Long running job returned: %s’, result); }); Start your Python web server and open the following link in your browser:http://localhost:8000/. You should see the following output: How it works… Just as in the previous recipe, the promise was not fulfilled until resolve was executed (this time after 5 seconds). This time however, we passed the called resolve immediately with a random number for an argument. When this happens, the argument is provided to the callback for the subsequent then function. We’ll see in future recipes how this can be continued to create promise chains. Rejecting Promise errors In the previous recipe, we saw how to use resolve to provide a result from a successfully fulfilled promise. Unfortunately, the code doesn’t always run as expected. Network connections can be down, data can be corrupted, and uncountable other errors can occur. We need to be able to handle those situations as well. This recipe demonstrates how to use reject when errors arise. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-03-rejecting-promise-errors. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that creates a promise, and logs messages before and after the promise is created and when the promise is fulfilled: new Promise(function (resolve) { resolve(); }).then(function (result) { console.log(‘Promise Completed’); }); Add a second argument to the promise callback named reject, and call reject with a new error: new Promise(function (resolve, reject) { reject(new Error(‘Something went wrong’); }).then(function (result) { console.log(‘Promise Completed’); }); Chain a catch call off the promise. Pass a function that logs out its only argument: new Promise(function (resolve, reject) { reject(new Error(‘Something went wrong’); }).then(function (result) { console.log(‘Promise Completed’); }).catch(function (error) { console.error(error); }); Start your Python web server and open the following link in your browser:http://localhost:8000/. You should see the following output: How it works… Previously we saw how to use resolve to return a value in the case of a successful fulfillment of a promise. In this case, we called reject before resolve. This means that the Promise finished with an error before it could resolve. When the Promise completes in an error state, the then callbacks are not executed. Instead we have to use catch in order to receive the error that the Promise rejects. You’ll also notice that the catch callback is only executed after the main function has returned. Like successful fulfillment, listeners to unsuccessful ones execute asynchronously. See also Handle errors with Promise.catch Simulating finally with Promise.then Chaining Promises So far in this article, we’ve seen how to use promises to run single asynchronous tasks. This is helpful but doesn’t provide a significant improvement over the callback pattern. The real advantage that promises offer comes when they are composed. In this recipe, we’ll use promises to combine asynchronous functions in series. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-04-chaining-promises. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that creates a promise. Resolve a random number from the promise: new Promise(function (resolve) { resolve(Math.random()); }); ); Chain a then call off of the promise. Return true from the callback if the random value is greater than or equal to 0.5: new Promise(function (resolve, reject) { resolve(Math.random()); }).then(function(value) { return value >= 0.5; }); Chain a final then call after the previous one. Log out a different message if the argument is true or false: new Promise(function (resolve, reject) { resolve(Math.random()); }).then(function (value) { return value >= 0.5; }).then(function (isReadyForLaunch) { if (isReadyForLaunch) { console.log(‘Start the countdown! ‘); } else { console.log(‘Abort the mission. ‘); }}); Start your Python web server and open the following link in your browser:http://localhost:8000/. If you are lucky, you’ll see the following output: If you are unlucky, we’ll see the following output: How it works… We’ve already seen how to use then to wait for the result of a promise. Here, we are doing the same thing multiple times in a row. This is called a promise chain. After the promise chain is started with the new promise, all of the subsequent links in the promise chain return promises as well. That is, the callback of each then function is resolve like another promise. See also Using Promise.all to resolve multiple Promises Handle errors with Promise.catch Simulating finally with a final Promise.then call Starting a Promise chain with Promise.resolve In this article’s preceding recipes, we’ve been creating new promise objects with the constructor. This gets the jobs done, but it creates a problem. The first callback in the promise chain has a different shape than the subsequent callbacks. In the first callback, the arguments are the resolve and reject functions that trigger the subsequent then or catch callbacks. In subsequent callbacks, the returned value is propagated down the chain, and thrown errors are captured by catch callbacks. This difference adds mental overhead. It would be nice to have all of the functions in the chain behave in the same way. In this recipe, we’ll see how to use Promise.resolve to start a promise chain. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-05-starting-with-resolve. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that calls Promise.resolve with an empty object as the first argument: export function main () { Promise.resolve({}) } Chain a then call off of resolve, and attach rocket boosters to the passed object: export function main () { Promise.resolve({}).then(function (rocket) { console.log(‘attaching boosters’); rocket.boosters = [{ count: 2, fuelType: ‘solid’ }, { count: 1, fuelType: ‘liquid’ }]; return rocket; })} Add a final then call to the chain that lets you know when the boosters have been added: export function main () { Promise.resolve({}) .then(function (rocket) { console.log(‘attaching boosters’); rocket.boosters = [{ count: 2, fuelType: ‘solid’ }, { count: 1, fuelType: ‘liquid’ }]; return rocket; }) .then(function (rocket) { console.log(‘boosters attached’); console.log(rocket); })} Start your Python web server and open the following link in your browser: http://localhost:8000/. You should see the following output: How it works… Promise.resolve creates a new promise that resolves the value passed to it. The subsequent then method will receive that resolved value as it’s argument. This method can seem a little roundabout but can be very helpful for composing asynchronous functions. In effect, the constituents of the promise chain don’t need to be aware that they are in the chain (including the first step). This makes transitioning from code that doesn’t use promises to code that does much easier. Using Promise.all to resolve multiple promises So far, we’ve seen how to use promises to perform asynchronous operations in sequence. This is useful when the individual steps are long-running operations. However, this might not always be the more efficient configuration. Quite often, we can perform multiple asynchronous operations at the same time. In this recipe, we’ll see how to use Promise.all to start multiple asynchronous operations, without waiting for the previous one to complete. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-06-using-promise-all. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file that creates an object named rocket, and calls Promise.all with an empty array as the first argument: export function main() { console.log(‘Before promise created’); console.log(‘After promise created’); } Add a then function to the chain that logs a success message: export function main() { console.log(‘Before promise created’); Promise.resolve(Math.random() > 0.5) .then(addBoosters) const rocket = {}; Promise.all([ Promise.resolve(rocket).then(addBoosters), Promise.resolve(rocket).then(performGuidanceDiagnostic), Promise.resolve(rocket).then(loadCargo) ]); console.log(‘After promise created’); } Start your Python web server and open the following link in your browser:http://localhost:8000/. You should see the following output: How it works… As we saw before, when a promise is fulfilled in a rejected state, the callback of the catch functions is triggered. In the preceding recipe, we see that this can happen when the reject method is called (as with performGuidanceDiagnostic). It also happens when a function in the chain throws an error (as will addBoosters). This has similar benefit to how Promise.resolve can normalize asynchronous functions. This handling allows asynchronous functions to not know about the promise chain, and announce error states in a way that is familiar to developers who are new to promises. This makes expanding the use of promises much easier. Simulating finally with the promise API In a previous recipe, we saw how catch can be used to handle errors, whether a promise has rejected, or a callback has thrown an error. Sometimes, it is desirable to execute code whether or not an error state has been detected. In the context of try/catch blocks, the finally block can be used for this purpose. We have to do a little more work to get the same behavior when working with promises In this recipe, we’ll see how a final then call to execute some code in both successful and failing fulfillment states. How to do it… Open your command-line application and navigate to your workspace. Create a new folder named 3-08-simulating-finally. Copy or create an index.html that loads and runs a main function from main.js. Create a main.js file with a main function that logs out messages for before and after promise creation: export function main() { console.log(‘Before promise created’); console.log(‘After promise created’); } Add a catch to the chain and log out the error if thrown: export function main() { console.log(‘Before promise created’); Promise.resolve(Math.random() > 0.5) .then(addBoosters) .then(() => console.log(‘Ready for launch: ‘)) .catch(console.error) console.log(‘After promise created’); } Add a then after the catch, and log out that we need to make an announcement: export function main() { new Promise(function (resolve) { console.log(‘Executing promise’); resolve(); }).then(function () { console.log(‘Finished promise’); }); console.log(‘Before promise created’); Promise.resolve(Math.random() > 0.5) .then(addBoosters) .then(() => console.log(‘Ready for launch: ‘)) .catch(console.error) .then(() => console.log(‘Time to inform the press.’)); console.log(‘After promise created’); } Start your Python web server and open the following link in your browser:http://localhost:8000/. If you are lucky and the boosters are added successfully, you’ll see the following output: 12. If you are unlucky, you’ll see an error message like the following: How it works… We can see in the preceding output that whether or not the asynchronous function completes in an error state, the last then callback is executed. This is possible because the catch method doesn’t stop the promise chain. It simply catches any error states from the previous links in the chain, and then propagates a new value forward. The final then is then protected from being bypassed by an error state by this catch. And so, regardless of the fulfillment state of prior links in the chain, we can be sure that the callback of this final then will be executed. To summarize, we learned how to use the Promise API to organize asynchronous programs. We also looked at how to propagate results through promise chains and handle errors. You read an excerpt from a book written by Ross Harrison, titled ECMAScript Cookbook. It’s a complete guide on how to become a better web programmer by writing efficient and modular code using ES6 and ES8. Read Next: What’s new in ECMAScript 2018 (ES9)? ECMAScript 7 – What to expect? Modular Programming in ECMAScript 6last_img read more

Verizon chooses Amazon Web ServicesAWS as its preferred cloud provider

first_imgVerizon Communications Inc. recently announced that it is migrating about 1000 of its business-critical applications and database back-end systems to the popular cloud provider, Amazon Web Services ( AWS). Verizon had bought Terramark, a cloud and service provider, in 2011 as part of its public and private cloud strategy. This strategy included building its own cloud that offered infrastructure-as-a-service to its customers. AWS has stayed ahead of competition, where it offered added services to its customers. On the other hand, Verizon could not stay in the race for longer as it was usurped by Microsoft and Google. Due to this, two years ago, in 2016, Verizon closed down its public cloud offering and then sold off its cloud and managed hosting service assets to IBM and also sold a number of data centres to Equinix. Verizon had first started working with AWS in 2015 and has many business and consumer applications already running in the cloud. The current migrations to AWS is part of Verizon’s corporate-wide initiative, which is, to increase agility and reduce costs through the use of cloud computing. Some benefits of this migration include: With the help of AWS, Verizon will enable it to access more comprehensive set of cloud capabilities. This will ensure that its developers are able to invent on behalf of its customers. Verizon has built AWS-specific training facilities where its employees can quickly update themselves on the AWS technologies and learn how to innovate with speed and at scale. AWS enables Verizon to quickly deliver the best, most efficient customer experiences. Verizon also aims to make the public cloud a core part of its digital transformation, upgrading its database management approach to replace its proprietary solutions with Amazon Aurora To know more about AWS and Verizon’s partnership, read the AWS blog post. Read Next Linux Foundation launches the Acumos Al Project to make AI accessible Analyzing CloudTrail Logs using Amazon Elasticsearch How to create your own AWS CloudTraillast_img read more