POPULARITY
Have you found debugging asynchronous JavaScript to be hard? You're not alone. In this episode, we are joined by Jenn Creighton from Netflix to talk with us about a talk she'll be giving at Reactathon on debugging async JavaScript to help make it a bit easier. Guests: Jenn Creighton - @gurlcode Panelists: Ryan Burgess - @burgessdryan Jem Young - @JemYoung Picks: Jenn Creighton - Blue Star Ferns Jenn Creighton - Yoga Ryan Burgess - Dropout Jem Young - Media Malpractice in the war in Ukraine Jem Young - Drive to Survive S4 Episode transcript: https://www.frontendhappyhour.com/episodes/debugging-asynchronous-javascript-awaiting-my-drink
In this episode I'm joined by Corbin Crutchley, a seasoned JavaScript developer with extensive knowledge of various frameworks such as Vue.js, Angular, and React.js. Corbin also operates his own development blog, Unicorn Utterances. The topic of this episode is around asynchronous development using JavaScript and no particular framework. If you're coming from other programming languages, the concept of promises, callbacks, async / await, and similar all might seem daunting when it comes to working with remote web services or even resource intensive proccesses. Corbin and I shed some light into the world of doing things asynchronously and hopefully clear things up and even make the concepts easier to wrap your head around. A brief writetup to this episode can be found via https://www.thepolyglotdeveloper.com/2019/07/tpdp-e29-asynchronous-javascript-development/
Justin Searls chats with us on testing Asynchronous JavaScript as well as best practices for Continuous Integration, Unit testing vs. Integration testing, and tools we can use to help us understand how to test code. Resources Test Double - https://testdouble.com Talks & articles by Justin: http://blog.testdouble.com/posts/2016-06-05-happier-tdd-with-testdouble-js.html http://blog.testdouble.com/posts/2015-11-16-how-to-stop-hating-your-tests.html http://blog.testdouble.com/posts/2016-09-16-surgical-refactors-with-suture.html http://blog.testdouble.com/posts/2016-12-01-a-creativity-talk.html Justin on JSJ - https://devchat.tv/js-jabber/226-jsj-test-doubles-with-justin-searls Supertest - https://github.com/visionmedia/supertest Pretender - https://github.com/pretenderjs/pretender Sinon - http://sinonjs.org/ Testim - https://www.testim.io/ Cabybara - http://teamcapybara.github.io/capybara/ TestDouble's alternative to Sinon - http://blog.testdouble.com/posts/2016-03-13-testdouble-vs-sinon.html Testem - https://github.com/testem/testem Guests Justin Searls (@searls) Jan Tenpas (@jtp4) Panel Danny Blue (@dee_bloo) Erik Isaksen (@eisaksen)
03:04 - Jafar Husain Introduction Twitter GitHub Netflix TC39 03:29 - The Great Name Debate (ES6, ES7 = ES2015, ES2016!!) 05:35 - The Release Cycle What This Means for Browsers 08:37 - Babel and ECMAScript 09:50 - WebAssembly 13:01 - Google’s NACL 13:23 - Performance > Features? ES6 Feature Performance (JavaScript Weekly Article) Features Implemented as Polyfills (Why Bother?) 20:12 - TC39 24:22 - New Features Decorators Performance Benefit? 28:53 -Transpilers 34:48 - Object.observe() 37:51 - Immutable Types 45:32 - Structural Types 47:11 - Symbols 48:58 - Observables 52:31 - Async Functions asyncawait 57:31 - Rapid Fire Round - When New Feature Will Be Released in ES2015 or ES2016 let - 15 for...of - 15 modules - 15 destructuring - 15 promises - 15 default function argument expressions - 15 asyncawait - 16 Picks ES6 and ES7 on The Web Platform Podcast (AJ) Binding to the Cloud with Falcor Jafar Husain (AJ) Asynchronous JavaScript at Netflix by Jafar Husain @ MountainWest Ruby 2014 (AJ) Let's Encrypt on Raspberry Pi (AJ) adventures in haproxy: tcp, tls, https, ssh, openvpn (AJ) Let's Encrypt through HAProxy (AJ) Mandy's Fiancé's Video Game Fund (AJ) The Murray Gell-Mann Amnesia Effect (Dave) The Majority Illusion (Dave) [Egghead.io] Asynchronous Programming: The End of The Loop (Aimee) Study: You Really Can 'Work Smarter, Not Harder' (Aimee) Elm (Jamison) The Katering Show (Jamison) Sharding Tweet (Jamison) The U.S. Women's National Soccer Team (Joe) mdn.io (Joe) Aftershokz AS500 Bluez 2 Open Ear Wireless Stereo Headphones (Chuck) Autonomy, Mastery, Purpose: The Science of What Motivates Us, Animated (Jafar) Netflix (Jafar) quiescent (Jafar) Clojurescript (Jafar)
03:04 - Jafar Husain Introduction Twitter GitHub Netflix TC39 03:29 - The Great Name Debate (ES6, ES7 = ES2015, ES2016!!) 05:35 - The Release Cycle What This Means for Browsers 08:37 - Babel and ECMAScript 09:50 - WebAssembly 13:01 - Google’s NACL 13:23 - Performance > Features? ES6 Feature Performance (JavaScript Weekly Article) Features Implemented as Polyfills (Why Bother?) 20:12 - TC39 24:22 - New Features Decorators Performance Benefit? 28:53 -Transpilers 34:48 - Object.observe() 37:51 - Immutable Types 45:32 - Structural Types 47:11 - Symbols 48:58 - Observables 52:31 - Async Functions asyncawait 57:31 - Rapid Fire Round - When New Feature Will Be Released in ES2015 or ES2016 let - 15 for...of - 15 modules - 15 destructuring - 15 promises - 15 default function argument expressions - 15 asyncawait - 16 Picks ES6 and ES7 on The Web Platform Podcast (AJ) Binding to the Cloud with Falcor Jafar Husain (AJ) Asynchronous JavaScript at Netflix by Jafar Husain @ MountainWest Ruby 2014 (AJ) Let's Encrypt on Raspberry Pi (AJ) adventures in haproxy: tcp, tls, https, ssh, openvpn (AJ) Let's Encrypt through HAProxy (AJ) Mandy's Fiancé's Video Game Fund (AJ) The Murray Gell-Mann Amnesia Effect (Dave) The Majority Illusion (Dave) [Egghead.io] Asynchronous Programming: The End of The Loop (Aimee) Study: You Really Can 'Work Smarter, Not Harder' (Aimee) Elm (Jamison) The Katering Show (Jamison) Sharding Tweet (Jamison) The U.S. Women's National Soccer Team (Joe) mdn.io (Joe) Aftershokz AS500 Bluez 2 Open Ear Wireless Stereo Headphones (Chuck) Autonomy, Mastery, Purpose: The Science of What Motivates Us, Animated (Jafar) Netflix (Jafar) quiescent (Jafar) Clojurescript (Jafar)
03:04 - Jafar Husain Introduction Twitter GitHub Netflix TC39 03:29 - The Great Name Debate (ES6, ES7 = ES2015, ES2016!!) 05:35 - The Release Cycle What This Means for Browsers 08:37 - Babel and ECMAScript 09:50 - WebAssembly 13:01 - Google’s NACL 13:23 - Performance > Features? ES6 Feature Performance (JavaScript Weekly Article) Features Implemented as Polyfills (Why Bother?) 20:12 - TC39 24:22 - New Features Decorators Performance Benefit? 28:53 -Transpilers 34:48 - Object.observe() 37:51 - Immutable Types 45:32 - Structural Types 47:11 - Symbols 48:58 - Observables 52:31 - Async Functions asyncawait 57:31 - Rapid Fire Round - When New Feature Will Be Released in ES2015 or ES2016 let - 15 for...of - 15 modules - 15 destructuring - 15 promises - 15 default function argument expressions - 15 asyncawait - 16 Picks ES6 and ES7 on The Web Platform Podcast (AJ) Binding to the Cloud with Falcor Jafar Husain (AJ) Asynchronous JavaScript at Netflix by Jafar Husain @ MountainWest Ruby 2014 (AJ) Let's Encrypt on Raspberry Pi (AJ) adventures in haproxy: tcp, tls, https, ssh, openvpn (AJ) Let's Encrypt through HAProxy (AJ) Mandy's Fiancé's Video Game Fund (AJ) The Murray Gell-Mann Amnesia Effect (Dave) The Majority Illusion (Dave) [Egghead.io] Asynchronous Programming: The End of The Loop (Aimee) Study: You Really Can 'Work Smarter, Not Harder' (Aimee) Elm (Jamison) The Katering Show (Jamison) Sharding Tweet (Jamison) The U.S. Women's National Soccer Team (Joe) mdn.io (Joe) Aftershokz AS500 Bluez 2 Open Ear Wireless Stereo Headphones (Chuck) Autonomy, Mastery, Purpose: The Science of What Motivates Us, Animated (Jafar) Netflix (Jafar) quiescent (Jafar) Clojurescript (Jafar)
Flat Word Strategies: New Technologies Create Interactive Learning Introduction In "The World is Flat," Thomas Friedman makes the case that a number of forces have converged to flatten and restructure the global competitive landscape, and that this process is continuing and accelerating. This flattening has empowered individuals to compete and collaborate on a global scale like never before. As educators, we must understand the implications for us, our students and our institutions and more globally on education and learning. Key flatteners that are already impacting education include the Internet, open source software, search, wireless/mobility, VoIP, digitalization, personalization and virtualization. One of the key observations of this less predictable, less hierarchical flattened world is that knowledge is widely distributed and rapidly changing leaving traditional course-based learning increasingly unable to meet the needs of students. Bridging this divide requires new paradigms in education that incorporate "flat' world strategies such as informal learner-driven knowledge transfer and new technologies and forms of learning. Question from Mike: Gordon, can you give us a little background on some of the new tools being used? In the 1990's many of us first started to use the Internet to deliver and supplement content for our courses. We developed relatively static web pages that included text and pictures in similar format to traditional textbooks. Today with the combination of high bandwidth access and new development tools, fresh web content looks and feels much different. With "Web 2.0" tools and delivery methods, instructors are discovering new ways to develop and deliver content to and engage their students. Among the new tools finding their way into business and into the hands of our students are: Search,Instant Messaging, Blogging/Podcasting,Wikis,RSS/Subscription, andWireless/Mobility. While many faculty are well-versed at using websites, email, and course management systems to interact and engage with their students, most have been slow to adopt some of these "new" technologies into and outside of their classroom. These new tools are part of the dynamic, interactive new Internet many are calling Web 2.0. According to techtarget.com, the term Web 2.0 was first used by O'Reilly Media and MediaLive International in 2004 during a next generation web conference. Web 2.0 based technological advances have continued over the last two years and new applications are coming out daily that allow faculty and their students to experience new ways of interacting and learning. Much of this new technology is built around two fundamental technologies, AJAX and RSS. Question from Gordon: AJAX � that�s soap, right Mike? Jesse James Garrett of Adaptive Path (www.adaptivepath.com) is responsible for coining the acronym AJAX in a February 2005 article. In the article, Garrett describes AJAX or Asynchronous JavaScript and XML, as a new approach to web applications. In terms of user interaction, what makes AJAX stand out is that it allows developers to create web applications that start to approach the richness and responsiveness of desktop applications. AJAX is not a technology, nor is it code or an application that can be downloaded. Instead, it is a collection of technologies that have all matured and when combined together provide for a new paradigm for the architecture of web applications. More precisely, AJAX includes XHTML and CSS; DOM or the Document Object Model; XML and XSLT; XMLHttpRequest; and JavaScript. Technologies Role XHTML + CSS Standards-based presentation Document Object Model (DOM) Dynamic display and interaction XML + XSLT data exchange and manipulation XMLHttpRequest Asynchronous data retrieval JavaScript Binds everything together To understand how AJAX works, we first have to understand the classic or traditional client-server web application model. In this model, user actions (typically through a web browser interface) trigger an HTTP request back to the web server, which processes the request (retrieving data, performing calculations, etc) and responds to the client (user) with an HTML page. While this model has been extremely successful at building out the Internet, it breaks down when developers try to replicate the user experience of desktop applications. That�s where AJAX comes in. AJAX represents a fundamental shift in what's possible on the Web. To provide this functionality, we introduce an AJAX engine as an intermediary into the traditional client-server model. Simply put, instead of loading a web page at the start of the session, the browser loads the AJAX engine on the client side of the relationship. This engine is JavaScript code that coexists with the browser, usually in a hidden frame, and is responsible for rendering the web interface and communicating with the web server on the user's behalf. Practically speaking, what this does is ensures that the user is never looking at an empty browser window waiting for the server to respond and the page to refresh. With first generation web technology, user actions would generate an HTTP request; with AJAX these requests are JavaScript calls to the AJAX engine. Many user actions don't require communication with the server and can be handled by the engine. If the server is needed, the engine makes the request asynchronously using XML, with no interruption of the user-application interaction. Question from Mike: Gordon could you tell us a little bit about RSS? RSS (RDF Site Summary and also referred to as Really Simple Syndication) is a technology used to push content out to subscribers using an aggregator application like My.Yahoo or Google Reader. In addition web browsers like FireFox and Internet Explorer 7.0, along with Mac OS X and Microsoft's upcoming Vista operating system, have built in aggregator functionality. These applications allow the user to subscribe to different feeds and have content pushed out to the aggregator. Here's an example of how you can use this technology � if you have a free Yahoo account, you can configure your account to aggregate, or collect, different types of content. Once setup, you can go to any computer with a browser and an Internet connection, go to My.Yahoo.com, log in with your username and password and have your custom page come up with all of your subscribed feeds listed. Your feeds are selected by you and you can add and remove as you see fit. Here are some the feeds we like and subscribe to: Gizmodo for breaking gadget news, Broadband Reports for news on delivery technology and Information Week for breaking IT news. Let's look at how it works � let's say Information Week publishes an article on a IT workforce needs � if you are logged in to your aggregator and subscribed to the Information Week feed, you see the title, a brief summary of the article and how long ago it was published (minutes, hours, days, weeks, etc) on your aggregator page. If the article looks interesting you can click the link and then read the entire article. This technology has allowed many to cut back considerably on hard copy technology journal reading and email subscriptions � most common journals and periodicals are now publishing content with RSS feeds, allowing readers to subscribe and rapidly scan and review content. RSS developers create an XML file that describes content as it is posted on websites. The blog at nctt.org/blog is a good example if you want to take a look at an XML file. The blog is written using a word processor and then the content is typically copied and pasted into a blog editor with the XML file automatically updated with the latest content. If you are a subscriber to nctt.org/blog your aggregator checks the NCTT blog site periodically for updates and, if it finds one, it lists the content on the aggregator screen. You can see a brief summary on the aggregator and, if you wish to read further, you can click the link and read the entire blog. Your current students are using this technology on, in some cases, a minute by minute basis. Let's take a look at how it can be used. Let's say you wake up one morning not feeling well and have to cancel your classes. When and how do your students find out you are out sick? Maybe you send out an email which requires students check their campus email account or (worst case) you call in and a note goes on the door or board. In both cases many, if not all, of your students will show up for class and be disappointed to find out you will not be there. Using a simple RSS feed, you could give your students the option of subscribing and actually push the message out to their cell phone or other connected device. Students get the message and do not end up showing up for a class that has been cancelled. Question from Gordon: Mike, What are some of the popular apps out there now that people are using? The �killer app� or application that demonstrated the potential and viability of AJAX is Google�s gmail service. The use of AJAX has since exploded. Examples include the aggregators we mentioned earlier, which all leverage AJAX technology to provide for a more pleasing user experience, as well as a whole class of �webware� � web-based applications that attempt to replicate desktop applications, including Writely, ZohoWriter, ZohoShow, Google Spreadsheets, and DabbleDB. With these applications, you and your students have access to a virtual office suite, allowing students to interact and collaborate online. This new class of tools and technologies provide faculty with an opportunity to engage their students inside and outside of the classroom. Question: Gordon: Where can people find the content of this article? You can find the content of this podcast in the Oct/Nov 2006 edition of Community College Journal, at nctt.org/blog and at nctt.org/podcast. In addition you will find a maintained list of several interesting links that further demonstrate these technologies. You can reach the authors at gsnyder@stcc.edu and mqaissaunee@brookdale.edu and at their National Science Foundation center and project websites at www.nctt.org and www.maitt.org
Black Hat Briefings, Japan 2006 [Audio] Presentations from the security conference
"The Internet industry is currently riding a new wave of investor and consumer excitement, much of which is built upon the promise of "Web 2.0" technologies giving us faster, more exciting, and more useful web applications. One of the fundamental "Web 2.0" is known as Asynchronous JavaScript and XML (AJAX), which is an amalgam of techniques developers can use to give their applications the level of interactivity of client-side software with the platform-independence of JavaScript. Unfortunately, there is a dark side to this new technology that has not been properly explored. The tighter integration of client and server code, as well as the invention of much richer downstream protocols that are parsed by the web browser has created new attacks as well as made classic web application attacks more difficult to prevent. We will discuss XSS, Cross-Site Request Forgery (XSRF), parameter tampering and object serialization attacks in AJAX applications, and will publicly release an AJAX-based XSRF attack framework. We will also be releasing a security analysis of several popular AJAX frameworks, including Microsoft Atlas, JSON-RPC and SAJAX. The talk will include live demos against vulnerable web applications, and will be appropriate for attendees with a basic understanding of HTML and JavaScript."
Black Hat Briefings, Las Vegas 2006 [Audio] Presentations from the security conference
"The Internet industry is currently riding a new wave of investor and consumer excitement, much of which is built upon the promise of "Web 2.0" technologies giving us faster, more exciting, and more useful web applications. One of the fundamentals of "Web 2.0" is known as Asynchronous JavaScript and XML (AJAX), which is an amalgam of techniques developers can use to give their applications the level of interactivity of client-side software with the platform-independence of JavaScript. Unfortunately, there is a dark side to this new technology that has not been properly explored. The tighter integration of client and server code, as well as the invention of much richer downstream protocols that are parsed by the web browser has created new attacks as well as made classic web application attacks more difficult to prevent. We will discuss XSS, Cross-Site Request Forgery (XSRF), parameter tampering and object serialization attacks in AJAX applications, and will publicly release an AJAX-based XSRF attack framework. We will also be releasing a security analysis of several popular AJAX frameworks, including Microsoft Atlas, JSON-RPC and SAJAX. The talk will include live demos against vulnerable web applications, and will be appropriate for attendees with a basic understanding of HTML and JavaScript. Alex Stamos is a founding partner of iSEC Partners, LLC, a strategic digital security organization. Alex is an experienced security engineer and consultant specializing in application security and securing large infrastructures, and has taught multiple classes in network and application security. He is a leading researcher in the field of web application and web services security and has been a featured speaker at top industry conferences such as Black Hat, CanSecWest, DefCon, SyScan, Microsoft BlueHat and OWASP App Sec. He holds a BSEE from the University of California, Berkeley. Zane Lackey is a Security Consultant with iSEC Partners, LLC, a strategic digital security organization. Zane regularly performs application penetration testing and code review engagements for iSEC, and his research interests include web applications and emerging Win32 vulnerability classes. Prior to iSEC, Zane focused on Honeynet research at the University of California, Davis Computer Security Research Lab under noted security researcher Dr. Matt Bishop. "
Black Hat Briefings, Las Vegas 2006 [Video] Presentations from the security conference
The Internet industry is currently riding a new wave of investor and consumer excitement, much of which is built upon the promise of "Web 2.0" technologies giving us faster, more exciting, and more useful web applications. One of the fundamentals of "Web 2.0" is known as Asynchronous JavaScript and XML (AJAX), which is an amalgam of techniques developers can use to give their applications the level of interactivity of client-side software with the platform-independence of JavaScript. Unfortunately, there is a dark side to this new technology that has not been properly explored. The tighter integration of client and server code, as well as the invention of much richer downstream protocols that are parsed by the web browser has created new attacks as well as made classic web application attacks more difficult to prevent. We will discuss XSS, Cross-Site Request Forgery (XSRF), parameter tampering and object serialization attacks in AJAX applications, and will publicly release an AJAX-based XSRF attack framework. We will also be releasing a security analysis of several popular AJAX frameworks, including Microsoft Atlas, JSON-RPC and SAJAX. The talk will include live demos against vulnerable web applications, and will be appropriate for attendees with a basic understanding of HTML and JavaScript. Alex Stamos is a founding partner of iSEC Partners, LLC, a strategic digital security organization. Alex is an experienced security engineer and consultant specializing in application security and securing large infrastructures, and has taught multiple classes in network and application security. He is a leading researcher in the field of web application and web services security and has been a featured speaker at top industry conferences such as Black Hat, CanSecWest, DefCon, SyScan, Microsoft BlueHat and OWASP App Sec. He holds a BSEE from the University of California, Berkeley. Zane Lackey is a Security Consultant with iSEC Partners, LLC, a strategic digital security organization. Zane regularly performs application penetration testing and code review engagements for iSEC, and his research interests include web applications and emerging Win32 vulnerability classes. Prior to iSEC, Zane focused on Honeynet research at the University of California, Davis Computer Security Research Lab under noted security researcher Dr. Matt Bishop. "