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

3709 Articles
Anonymous
17 Sep 2020
7 min read
Save for later

Seizing the moment: Enabling schools to manage COVID-19 using data-driven analysis from What's New

Anonymous
17 Sep 2020
7 min read
Eillie Anzilotti Public Affairs Specialist at Tableau Hannah Kuffner September 17, 2020 - 4:14pm September 17, 2020 Hard as it is to grapple with the many far-reaching impacts of COVID-19 on our culture, it's even harder to imagine how we would have coped with the same situation even a few decades ago. If the pandemic had hit in 2000 instead of 2020, where would we be? The virtual meetings we conduct for our daily work wouldn't be live on video with document sharing; at best, we'd be on conference calls and sending artifacts by fax. Our safety updates about the virus wouldn't arrive via social media; we'd mostly rely on word of mouth, the daily papers, and the evening news. Likewise, schools would have been in even graver danger of being left behind by COVID-19 than they are right now. The virus has made traditional day-to-day K-12 education all but impossible for the moment, and schools are working with the latest technology to serve their needs in the best ways possible. So what does that look like? How are schools meeting the need for solutions that address the breadth AND depth of the problem? How are they coordinating resources across disconnected, socioeconomically diverse student populations, and meeting the needs of all involved? This blog takes a look at two stakeholder groups: students and their families, and teachers and administrators. In each case, we'll see examples of how people are using data to overcome barriers imposed by the pandemic. Gathering data from students and families For most school districts, the first step in providing an alternate system of instruction was to assess what students wanted and needed in order to participate. They distributed surveys to households, both on paper and over the phone and web, to find out each student's readiness for online remote learning. Did they have a laptop or other connected device for attending classes? Did they need a Wi-fi hotspot in order to access the internet? Once online, could they successfully connect to the district's learning systems? In addition to technological readiness, surveys were also useful for tracking students' engagement. "We wanted to know how students were feeling about distance learning," said Hope Langston, director of assessment services for the Northfield Public School District in Minnesota. Survey responses indicated the level of difficulty students have adjusting to the changes, helping identify areas that needed the most urgent attention. Northfield continues to offer follow-up surveys that help measure their progress in addressing these issues over time. Equal Opportunity Schools (EOS), a Seattle-based nonprofit dedicated to improving access for students of color and low-income students, has conducted research throughout the pandemic that assesses remote learning by aggregating various factors of student sentiment, including teacher and principal evaluation, barriers to motivation, and "belonging" as it pertains to their identity, culture, and classroom experience. EOS uses Tableau to relate these factors to one another and gain insights into possible paths for achieving a more comprehensive learning experience for all students. Equal Opportunity Schools student experience dashboard (EOS) But school isn't entirely about teaching and learning. Districts have resources that help make sure students are healthy and safe, and deploying those resources during COVID-19 also requires a data-driven strategy. The El Paso Independent School District input survey data into Tableau visualizations and used them for planning nutritional and medical interventions where they were needed, including conducting telehealth sessions between school nurses and students who fell ill. If a household couldn't be reached for survey or classroom participation, truancy officers investigated to check on the wellbeing of students in their homes. As a district whose majority population is economically disadvantaged, and where one-third of students has limited English proficiency, these interventions were especially important for ensuring effective, equitable outreach. Student response dashboard (El Paso Independent School District) Similarly, Northfield used Tableau to visualize survey responses and other data related to their holistic pandemic response, with a heightened focus on achieving equity for underserved areas of the district's community, one-quarter of whom qualify for free and reduced lunch. Using a need-based "heat map" visualization as a daily tracker, Northfield set up food distribution centers in strategic locations and tracked the number of meals delivered per day at each site. Langston and her team also used the data to mobilize local volunteers to help families with language and socioeconomic challenges navigate connectivity. Meal distribution counts by location (Northfield Healthy Community Initiative) Throughout these efforts, the availability and visibility of survey responses and other data has been key to coordinating an effective response. "Our dashboards help us meet a need in our community, by getting us the information we need as clearly and as quickly as possible," said Langston. "We couldn't have done this if we didn't have an accurate picture of what the need is." Empowering teachers and administrators Teacher readiness—both practical and emotional—is another important factor in achieving effective remote learning operations, and many districts are using a similar survey-based approach to stay connected with educator sentiment. School administrators rely on this information to make sure teachers are getting the resources and support they need, as well as to work with teachers on tracking student engagement and taking action where needed to help their situation improve. In El Paso, Tableau dashboards track data from the district's remote learning platform and student information system to identify gaps in learning and take immediate action to address them. Viewing data at the district and school levels, and then filtering it down to specific populations or individual students, make it easy to quickly identify students at risk and report each case to the relevant principal or teacher. The visualizations are used to lead weekly meetings among school principals and assign school-specific tasks. El Paso Schoolology participation rates (El Paso Independent School District) "Having the dashboards, and being able to quickly export customized reports, meant we could readily engage school administrators," said Steve Clay, Executive Director of Analytics, Strategy, Assessment, and public education information management systems (PEIMS) for El Paso ISD. "As soon as we noticed problematic numbers, we could hand them a list of students and say: Here are the ones who aren't engaging—what's your plan, what haven't you tried yet, and how can we get you some help?" El Paso also used analytics and reporting to track compliance with new participation-based grading systems, which most teachers had never used before COVID-19. When teachers weren't trained or reminded to use the new system, the grades they reported in the remote learning platform didn't match the new guidelines, potentially confounding the ability to measure student progress. By visualizing the data and seeing the discrepancies, administrators could contact and coach the affected teachers and help bring the invalid grades to a point of fidelity with other measurements in the system. Preparing for the immediate and long-term future As schools continue to evolve their policies and practices, both during and after COVID-19, data will play a key role. Districts that lead the way with data-focused innovations are already finding success in adopting new policies that their states set forth. El Paso's approach to remote learning helped it comply with new standards for student engagement imposed by the Texas Education Authority (TEA) and could readily report its progress to TEA using the codes visible in Tableau. The better equipped a district is to tackle problems efficiently and at a granular level, the more capably they can face down unknown challenges in the future. To see example visualizations from El Paso ISD and other K-12 institutions using Tableau, visit the Tableau Use Cases in Education site.
Read more
  • 0
  • 0
  • 558

article-image-an-introduction-to-testing-in-javascript-from-dailyjs-medium
Matthew Emerick
17 Sep 2020
1 min read
Save for later

An Introduction to testing in Javascript from DailyJS - Medium

Matthew Emerick
17 Sep 2020
1 min read
Today, we are going to discuss testing in Javascript and help you in starting your journey towards understanding and mastering it. Continue reading on DailyJS »
Read more
  • 0
  • 0
  • 1082

article-image-python-3-9-0rc2-is-now-available-for-testing-from-python-insider
Matthew Emerick
17 Sep 2020
2 min read
Save for later

Python 3.9.0rc2 is now available for testing from Python Insider

Matthew Emerick
17 Sep 2020
2 min read
 Python 3.9.0 is almost ready. This release, 3.9.0rc2, is the last planned preview before the final release of Python 3.9.0 on 2020-10-05. Get it here: https://www.python.org/downloads/release/python-390rc2/ In the mean time, we strongly encourage maintainers of third-party Python projects to prepare their projects for 3.9 compatibility during this phase. As always, report any issues to the Python bug tracker. Please keep in mind that this is a preview release and its use is not recommended for production environments. Information for core developers The 3.9 branch is now accepting changes for 3.9.1. To maximize stability, the final release will be cut from the v3.9.0rc2 tag. If you need the release manager to cherry-pick any critical fixes, mark issues as release blockers and/or add him as a reviewer on a critical backport PR on GitHub. To see which changes are currently cherry-picked for inclusion in 3.9.0, look at the short-lived branch-v3.9.0 on GitHub. Installer news This is the first version of Python to default to the 64-bit installer on Windows. The installer now also actively disallows installation on Windows 7. Python 3.9 is incompatible with this unsupported version of Windows. Major new features of the 3.9 series, compared to 3.8 Some of the new major new features and changes in Python 3.9 are: PEP 584, Union Operators in dict PEP 585, Type Hinting Generics In Standard Collections PEP 593, Flexible function and variable annotations PEP 602, Python adopts a stable annual release cadence PEP 615, Support for the IANA Time Zone Database in the Standard Library PEP 616, String methods to remove prefixes and suffixes PEP 617, New PEG parser for CPython BPO 38379, garbage collection does not block on resurrected objects; BPO 38692, os.pidfd_open added that allows process management without races and signals; BPO 39926, Unicode support updated to version 13.0.0; BPO 1635741, when Python is initialized multiple times in the same process, it does not leak memory anymore; A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall; A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489; A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384. More resources Online Documentation PEP 596, 3.9 Release Schedule Report bugs at https://bugs.python.org. Help fund Python and its community. Your friendly release team,Ned Deily @nadSteve Dower @steve.dowerŁukasz Langa @ambv
Read more
  • 0
  • 0
  • 924

article-image-jdk-15-the-new-features-in-java-15-from-infoworld-java
Matthew Emerick
15 Sep 2020
1 min read
Save for later

JDK 15: The new features in Java 15 from InfoWorld Java

Matthew Emerick
15 Sep 2020
1 min read
Java Development Kit 15, Oracle’s implementation of the next version of Java SE (Standard Edition), becomes available as a production release today, September 15, 2020. Highlights of JDK 15 include text blocks, hidden classes, a foreign-memory access API, the Z Garbage Collector, and previews of sealed classes, pattern matching, and records. JDK 15 is just a short-term release, only to be supported with Oracle Premier Support for six months until JDK 16 arrives next March. JDK 17, the next Long-Term Support release, to be supported by Oracle for eight years, is slated to arrive one year from now, as per Oracle’s six-month release cadence for Java SE versions. To read this article in full, please click here
Read more
  • 0
  • 0
  • 953

article-image-react-newsletter-230-from-ui-devs-rss-feed
Matthew Emerick
15 Sep 2020
2 min read
Save for later

React Newsletter #230 from ui.dev's RSS Feed

Matthew Emerick
15 Sep 2020
2 min read
Articles Rewriting Facebook’s “Recoil” React library from scratch in 100 lines Bennett gives a great breakdown of Recoil by building a clone of it from scratch and discussing each of the components that go into it. React + TypeScript ❤️: The good parts ⚡ In this article, Diego writes about both the pros and cons of building with React and TypeScript and why he ultimately loves it. Tutorials Making Draggable Components in React This tutorial illustrates some simple ways to make draggable components in React using the react-draggable package. How to Use Redux in Your React TypeScript App This guide demonstrates how to use Redux in your React TypeScript project by building an app that allows you to add, delete, and show articles. It assumes some basic knowledge of TypeScript, React, and Redux, but is still pretty beginner-friendly. Sponsor React developers are in demand on Vettery Vettery is an online hiring marketplace that’s changing the way people hire and get hired. Ready for a bold career move? Make a free profile, name your salary, and connect with hiring managers from top employers today. Get started today. Projects React Popup Component v2 A simple react popup component that help you create simple and complex Modals, tooltips, and menus for your next React App. Jotai A new, primitive, flexible state management library for React, from the creators of React Spring. New VSCode extension for React icons Allows you to search from 20+ free icon sets and directly add SVG or JSX into your code without leaving the editor. Turtle 🐢 A progressive web app built with React, Ionic, and Firebase that syncs videos so that you can have a socially-distanced watch party with friends Videos React in 100 seconds A great review of the history and fundamentals of React by Fireship.io. Building a Multiplayer Chess Game This 17-minute video walks through building a web app for multiplayer chess with React and Node.js. Serverless Video Chat App using Firebase and WebRTC in React This 55-minute video tutorials demonstrates how to build a video chat app and gives a helpful introduction to WebRTC.
Read more
  • 0
  • 0
  • 2073

article-image-angular-localization-with-ivy-from-angular-blog-medium
Matthew Emerick
09 Sep 2020
5 min read
Save for later

Angular localization with Ivy from Angular Blog - Medium

Matthew Emerick
09 Sep 2020
5 min read
Part of the new Angular rendering engine, Ivy, includes a new approach to localizing applications — specifically extracting and translating text. This article explains the benefits and some of the implementation of this new approach. Prior to Ivy, the only way to add localizable messages to an Angular application was to mark them in component templates using the i18n attribute: <div i18n>Hello, World!</div> The Angular compiler would replace this text when compiling the template with different text if a set of translations was provided in the compiler configuration. The i18n tags are very powerful — they can be used in attributes as well as content; they can include complex nested ICU (International Components for Unicode) expressions; they can have metadata attached to them. See our i18n guide for more information. But there were some shortcomings to this approach. The most significant concern was that translation had to happen during template compilation, which occurs right at the start of the build pipeline. The result of this is that that full build, compilation-bundling-minification-etc, had to happen for each locale that you wanted to support in your application. (build times will vary based on project size) If a single build took 3 minutes, then the total build time to support 9 locales would be 3 mins x 9 locales = 27 mins. Moreover, it was not possible to mark text in application code for translation, only text in component templates. This resulted in awkward workarounds where artificial components were created purely to hold text that would be translated. Finally, it was not possible to load translations at runtime, which meant it was not possible for applications to be provided to an end-user who might want to provide translations of their own, without having to build the application themselves. The new localization approach is based around the concept of tagging strings in code with a template literal tag handler called $localize. The idea is that strings that need to be translated are “marked” using this tag: const message = $localize `Hello, World!`; This $localize identifier can be a real function that can do the translation at runtime, in the browser. But, significantly, it is also a global identifier that survives minification. This means it can act simply as a marker in the code that a static post-processing tool can use to replace the original text with translated text before the code is deployed. For example, the following code: warning = $localize `${this.process} is not right`; could be replace with: warning = "" + this.process + ", ce n'est pas bon."; The result is that all references to $localize are removed, and there is zero runtime cost to rendering the translated text. The Angular template compiler, for Ivy, has been redesigned to generate $localize tagged strings rather than doing the translation itself. For example the following template: <h1 i18n>Hello, World!</h1> would be compiled to something like: ɵɵelementStart(0, "h1"); // <h1>ɵɵi18n(1, $localize`Hello, World!`); // Hello, World!ɵɵelementEnd(); // </h1> This means that after the Angular compiler has completed its work all the template text marked with i18n attributes have been converted to $localize tagged strings which can be processed just like any other tagged string. Notice also that the $localize tagged strings can occur in any code (user code or generated from templates in both applications or libraries) and are not affected by minification, so while the post-processing tool might receive code that looks like this ...var El,kl=n("Hfs6"),Sl=n.n(kl);El=$localize`Hello, World!`;let Cl=(()=>{class e{constructor(e)... it is still able to identify and translate the tagged message. The result is that we can reorder the build pipeline to do translation at the very end of the process, resulting in a considerable build time improvement. (build times will vary based on project size) Here you can see that the build time is still 3 minutes, but since the translation is done as a post-processing step, we only incur that build cost once. Also the post-processing of the translations is very fast since the tool only has to parse the code for $localize tagged strings. In this case around 5 seconds. The result is that the total build time for 9 locales is now 3 minutes + ( 9 x 5 seconds) = 3 minutes 45 seconds. Compared to 27 minutes for the pre-Ivy translated builds. Similar improvements have been seen in real life by teams already using this approach: The post-processing of translations is already built into the Angular CLI and if you have configured your projects according to our i18n guide you should already be benefitting from these faster build times. Currently the use of $localize in application code is not yet publicly supported or documented. We will be working on making this fully supported in the coming months. It requires new message extraction tooling — the current (pre-Ivy) message extractor does not find $localize text in application code. This is being integrated into the CLI now and should be released as part of 10.1.0. We are also looking into how we can better support translations in 3rd party libraries using this new approach. Since this would affect the Angular Package Format (APF) we expect to run a Request for Comment (RFC) before implementing that. In the meantime, enjoy the improved build times and keep an eye out for full support of application level localization of text. Angular localization with Ivy was originally published in Angular Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
Read more
  • 0
  • 0
  • 3224
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 ₹800/month. Cancel anytime
article-image-react-newsletter-229-from-ui-devs-rss-feed
Matthew Emerick
08 Sep 2020
2 min read
Save for later

React Newsletter #229 from ui.dev's RSS Feed

Matthew Emerick
08 Sep 2020
2 min read
Articles A Gentle Introduction to Code Splitting with React This article uses a real-word example of building a healthcare application to give a helpful introduction to code splitting. Examples of large production-grade, open-source React apps In this article, Max Rosen reviews a few large-scale, open-source React apps that you might want to check out. Converting the ReactJS.org documentation to use hooks Mark Stewart wrote about how and why he converted the ReactJS.org documentation to use functions and hooks, instead of class-based components. Tutorials Create a React App with TS, Redux and OAuth 2.0 - Spotify login example In this tutorial, you’ll create a React app using the official Redux + Typescript template and add OAuth 2.0 user authorization. The OAuth 2.0 authorization in this tutorial is used to connect to Spotify’s Web API, but can be used for any service with the same authorization flow. The web app created you’ll create is a stand-alone client-side web app with no server-side application needed. Build a TikTok Clone with React and Firebase In this tutorial you’ll use React, Firebase, and Material UI to create a TikTok clone. If your clone is good enough, maybe you’ll be able to convince millions of American teens to download it if/when the original TikTok gets banned 🙃. Sponsor React developers are in demand on Vettery Vettery is an online hiring marketplace that’s changing the way people hire and get hired. Ready for a bold career move? Make a free profile, name your salary, and connect with hiring managers from top employers today. Get started today. Projects react-email-editor React Email Editor is a drag-n-drop email template builder component that makes it easy to add a solid email editor to your React apps. Designs are saved in JSON and can be exported as HTML. Spearmint A open-source tool to help React developers generate tests for a wide range of applications and technologies. Firetable An open-source, spreadsheet-like interface for Firebase/Firestore built in React. radioactive-state Radioactive state is a deeply reactive state. When it is mutated at any level (shallow or deep) it re-renders the component automatically.
Read more
  • 0
  • 0
  • 1830

Matthew Emerick
05 Sep 2020
1 min read
Save for later

Python 3.5.10 is now available from Python Insider

Matthew Emerick
05 Sep 2020
1 min read
 Python 3.5.10 is now available.  You can get it here.
Read more
  • 0
  • 0
  • 941

article-image-summer-2020-internship-with-the-angular-team-from-angular-blog-medium
Matthew Emerick
02 Sep 2020
3 min read
Save for later

Summer 2020 Internship With the Angular Team from Angular Blog - Medium

Matthew Emerick
02 Sep 2020
3 min read
Photo by Emma Twersky TL;DR Our interns were phenomenal! Read on to find out why. We’ve just wrapped up our latest intern cohort on the Angular team. Please believe me when I tell you that there are some outstanding folks out there and we were lucky enough to get to work with a few of them. Because of the ongoing pandemic Google internships were fully remote. We’re fortunate to have had some really special folks because they were outstanding. Let’s take a look at the great work developed during this cohort on the Angular Team! Better Paths for Learners One of things we’re focused on with the team is making sure that the Angular learning journey works for experienced developers and new developers. Our wonderful intern on the DevRel team, Gloria, took this mission to heart. Gloria Nduka zeroed in on the friction of the learning path for new developers. She used those insights to not only help the team but also to create an interactive tutorial focused on helping developers new to Angular. The tutorial puts the output, code, and next steps in the same window allowing learners to reduce context switching. Gloria’s second project focused on reaching out to and partnering with computer science programs to expose more students to the platform. She was able to make some meaningful connections and we are excited to continue to this initiative. Seeing Opportunities in the CDK The Angular CDK is a wonderful resource aimed at abstracting common application behaviors and interactions. Andy Chrzaszcz saw an opportunity to add new functionality to menus and improve accessibility. He added some great new directives to the CDK that give developers an expressive way to build powerful menus for Angular apps! The foundation set via his contributions will give developers the ability to build all types of menus with advanced interactions like sub-menus, intelligent menu closing and more. Developers will be able to craft menus that meet the application’s needs. A Combination of Great Things Popping Up Presenting lists of data for user’s to select from is standard fare in web development. But how can the Angular CDK help with that? Niels Rasmussen gives us that answer with his project aimed at creating directives that provide a foundation for implementing complex combobox UI components. Because the goal of the Angular CDK is to provide common behaviors, Niels’s solution follows suit for the list box and combo box gives developers the freedom to customize the presentation of the UI to their specific use cases. This brings much welcomed flexibility into the fold. Thanks for Sharing Your Gifts With Us Finally, we want to send an enthusiastic thank you and good luck to all of our interns as they finish up their undergraduate programs. We’ve seen the future in you and things are looking incredibly bright. If you’d like to be an intern here at Google, we invite you to apply. The world needs your gifts and talents. These projects will be released in future versions of the platform. Stay tuned for updates. Summer 2020 Internship With the Angular Team was originally published in Angular Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
Read more
  • 0
  • 0
  • 2121

Matthew Emerick
01 Sep 2020
2 min read
Save for later

React Newsletter #228 from ui.dev's RSS Feed

Matthew Emerick
01 Sep 2020
2 min read
Articles React Component Patterns In this article, Alexi Taylor will help you to identify the trade-offs of the different React patterns and when each pattern would be most appropriate. These patterns will allow for more useful and reusable code by adhering to design principles like separation of concern, DRY, and code reuse. Each major pattern includes an example hosted on CodeSandBox. Redux vs React’s Context API For the last few years, Redux has been THE state management solution for bigger React apps. It’s far from being dead and yet, a strong enemy is arising: React’s Context API! In this article you’ll learn, What is Redux? What is React’s Context API? Will React’s Context API replace Redux? Tutorials Morphing SVG With react-spring In this tutorial, Mikael gives a helpful overview on how to add the popular morphing effect to an SVG using the react-spring animation library. Sponsor React developers are in demand on Vettery Vettery is an online hiring marketplace that’s changing the way people hire and get hired. Ready for a bold career move? Make a free profile, name your salary, and connect with hiring managers from top employers today. Get started today. Projects Intro to Storybook Two Storybook maintainers just released this new collection of guides that walks through all of the new Storybook features, while still covering the fundamentals. Effectful JavaScript Debugger A new JavaScript/TypeScript debugger with hot-swapping, API & Persistent state, time traveling and more. Zustand A small, fast and scaleable state-management solution. It has a hooks-based api, isn’t boilerplate-y or opinionated, and is “just enough to be explicit and flux-like.” Videos Why Next.js is the future of React In this 10-minute video, Lee Robinson shares why he believes that Next.js will be the go-to way to build React applications in the future. Keep in mind that Lee is a Next.js maintainer, so he might be a little biased. 🙂 RN Casts A collection of bite-sized React and React Native videos that each cover one specific topic (i.e. Handling input events in React).
Read more
  • 0
  • 0
  • 1659
Matthew Emerick
31 Aug 2020
5 min read
Save for later

Ionic + Angular: Powering the App store and the web from Angular Blog - Medium

Matthew Emerick
31 Aug 2020
5 min read
Did you know Ionic and Angular power roughly 10% of the apps on iOS and almost 20% of apps on Android? Let’s repeat that: Angular powers a significant chunk of apps in the app stores. Why is it helpful to know this? Well, if you were on the fence about what technology choice you should make for your next app, it should be reassuring to know that apps powered by web technology are thriving in the app store. Let’s explore how we came to that conclusion and why it matters. First, for a number of reasons, users visit these stores and download apps that help them in their day-to-day lives. Users are searching for ToDo apps (who doesn’t love a good ToDo app), banking apps, work-specific apps and so much more. A good portion of these apps are built using web technologies such as Ionic and Angular. But enough talk, let’s look at some numbers to back this up. The Data If you’ve never heard of Appfigures, it’s an analytics tool that monitors and offers insights on more than 150,000 apps. Appfigures provides some great insight into what kind of tools developers are using to build their apps. Like what’s the latest messaging, mapping, or development SDK? That last one is the most important metric we want to explore. Let’s look at what the top development SDKs are for app development: Data from https://appfigures.com/top-sdks/development/apps Woah, roughly 10% of the apps on iOS and almost 20% of apps on Android use Ionic and Angular. This is huge. The data here is gathered by analyzing the various SDKs used in apps on the app stores. In these charts we see some options that are to be expected like Swift and Kotlin. But Ionic and Angular are still highly present. We could even include Cordova, since many Ionic apps are Cordova-based, and these stats would increase even more. But we’ll keep to the data that we know for sure. Given the number of apps out there, even 10% and 20% are a significant size. If you ignore Appfigures, you can get a sense of how many Ionic/Angular apps are there by just searching for “com.ionicframework”, which is our starting package ID (also, people should really change this). Here’s a link if you’re interested. Why Angular for mobile? Developers are using Ionic and Angular power a good chunk of the app stores. With everything Angular has to offer in terms of developer experience, tooling for fast apps, and its ecosystem of third-party libraries (like Ionic), it’s no wonder developers choose it as their framework of choice. From solo devs, to small shops, to large organizations like the UK’s National Health Service, Boehringer Ingelheim and BlueCross Blue Shield, these organizations have selected Angular and Ionic for their tech stack, and you should feel confident to do so as well. Web vs. App Stores If Ionic and Angular are based on web technologies, why even target the app stores at all? With Progressive Web Apps gaining traction and the web becoming a more capable platform, why not just deploy to the web and skip the app stores? Well it turns out that the app stores provide a lot of value that products need. Features like Push Notifications, File System API, etc are starting to come to the web, but they are still not fully available in every browser. Building a hybrid app with Ionic and Angular can allow developers to use these features and gracefully fallback when these APIs are not available. Discoverability is also another big factor here. While we can search for anything on the web, having users discover your app can be challenging. With the app stores they regularly promote new apps and highly rated apps as well. This can make the difference between a successful product and one that fails. The Best of Both Worlds The web is still an important step to shipping a great app. But when developers want to target different platforms, having the right libraries in place can make all the difference. For instance, if you want to build a fast and performant web app, Angular is an excellent choice and is statistically the choice many developers make. On the other hand, if you want to bring that app experience to a mobile device, with full access to every native feature and offline capabilities, then a hybrid mobile app using Angular plus a mobile SDK like Ionic is the way to go. Either way, your investment in Angular will serve you well. And you’ll be in good company, with millions of devs and nearly a million apps right alongside you. Ionic + Angular: Powering the App store and the web was originally published in Angular Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
Read more
  • 0
  • 0
  • 2344

article-image-mlops-with-r-and-github-actions-from-revolutions
Matthew Emerick
25 Aug 2020
2 min read
Save for later

MLOPS with R and GitHub Actions from Revolutions

Matthew Emerick
25 Aug 2020
2 min read
With thanks to the kind folks at Lander Analytics, video from my New York R Conference talk earlier this month is now available to view. The slides are also available for download in PDF format. In my talk, I described how I automated the deployment of a Shiny app using GitHub Actions. If you're new to GitHub Actions, it's pretty simple to set up a continuous deployment process: Define jobs as YAML files in the .github/workflows folder of your GitHub repository Search the GitHub Actions Marketplace for templates of tasks you'd like to perform Push changes to your workflow to trigger Actions according to the rules you specify In my case, I used Actions to create an on-demand cluster of VMs in Azure Machine Learning service, to train R models on the cluster with the azuremlsdk package, to deploy the trained model as an HTTP endpoint in Azure Container Instances, and to update the Shiny app which calls out to that endpoint. In the talk, I demonstrate the process in action (the demo starts at the 14:30 mark in the video below). I used Visual Studio Code to edit the app.R file in repository, and then pushed the changes to GitHub. That immediately triggered the action to deploy the updated file via SSH to the Shiny Server, running in a remote VM. Similarly, changes to the data file or to the R script files implementing the logistic regression model would trigger the model to be retrained in the cluster, and re-deploy the endpoint to deliver new predictions from the updated model. I've provided the complete GitHub repository implementing the app, the models, and the Actions at github.com/revodavid/mlops-r-gha. If you want to try it out yourself, all you need to do is clone the repo, follow the instructions to add secrets to your repository and set up the Shiny VM, and then trigger the Actions to build everything. The repository also includes links to references and other resources, including how to create a free Azure subscription with credits you can use to test everything out. If you have any questions you suggestions, please feel free to add an issue to the repository! GitHub (revodavid): MLOPS with R: An end-to-end process for building machine learning applications
Read more
  • 0
  • 0
  • 978

Matthew Emerick
25 Aug 2020
2 min read
Save for later

React Newsletter #227 from ui.dev's RSS Feed

Matthew Emerick
25 Aug 2020
2 min read
Articles Build A Confirmation Modal in React with State Machines In this article, Dave builds a reusable state machine using React and Robot to handle this modal confirmation flow, and wraps it up into a custom hook. Why the OKCupid team decided against using GraphQL for local state management The OKCupid team describes themselves as “pretty big fans of using GraphQL.” So why did they decide against using it for local state management? Read the article to find out. Introduction to props in React This one’s for the beginners. In this post you’ll learn how to properly use props to pass data to components in React. State of Frontend 2020 Survey results Some interesting results in the state of frontend 2020 survey, specifically around React, Redux, and Gatsby vs Next. Tutorials 8 ways to deploy a React app for free This tutorial demonstrates how to deploy a React application in eight different ways. All the services described in this post are completely free with no hidden credit card requirements. Sponsor React developers are in demand on Vettery Vettery is an online hiring marketplace that’s changing the way people hire and get hired. Ready for a bold career move? Make a free profile, name your salary, and connect with hiring managers from top employers today. Get started today. Projects React + TypeScript Cheatsheets Cheatsheets for experienced React developers getting started with TypeScript react-colorful A tiny color picker component for modern React apps. Videos Fullstack React, GraphQL, TypeScript Tutorial In this 14-hour long video, Ben Awad walks you through building a fullstack React, GraphQL, TypeScript app. This tutorial is geared towards intermediate developers looking to get their feet wet with these technologies. Ionic Framework Horizontal & SideMenu Navigation in ReactJS Application This 8-minute video demonstrates how to use Window.matchMedia() to do media queries and get a result back, and based on that result to hide or show the side menu.
Read more
  • 0
  • 0
  • 1604
Anonymous
22 Aug 2020
1 min read
Save for later

Python 3.5.10rc1 is now available from Python Insider

Anonymous
22 Aug 2020
1 min read
Python 3.5.10rc1 is now available. You can download it here.
Read more
  • 0
  • 0
  • 1026

Matthew Emerick
21 Aug 2020
3 min read
Save for later

Introduction to props in React from ui.dev's RSS Feed

Matthew Emerick
21 Aug 2020
3 min read
Whenever you have a system that is reliant upon composition, it’s critical that each piece of that system has an interface for accepting data from outside of itself. You can see this clearly illustrated by looking at something you’re already familiar with, functions. function getProfilePic (username) { return 'https://photo.fb.com/' + username } function getProfileLink (username) { return 'https://www.fb.com/' + username } function getAvatarInfo (username) { return { pic: getProfilePic(username), link: getProfileLink(username) } } getAvatarInfo('tylermcginnis') We’ve seen this code before as our very soft introduction to function composition. Without the ability to pass data, in this case username, to each of our of functions, our composition would break down. Similarly, because React relies heavily on composition, there needs to exist a way to pass data into components. This brings us to our next important React concept, props. Props are to components what arguments are to functions. Again, the same intuition you have about functions and passing arguments to functions can be directly applied to components and passing props to components. There are two parts to understanding how props work. First is how to pass data into components, and second is accessing the data once it’s been passed in. Passing data to a component This one should feel natural because you’ve been doing something similar ever since you learned HTML. You pass data to a React component the same way you’d set an attribute on an HTML element. <img src='' /> <Hello name='Tyler' /> In the example above, we’re passing in a name prop to the Hello component. Accessing props Now the next question is, how do you access the props that are being passed to a component? In a class component, you can get access to props from the props key on the component’s instance (this). class Hello extends React.Component { render() { return ( <h1>Hello, {this.props.name}</h1> ) } } Each prop that is passed to a component is added as a key on this.props. If no props are passed to a component, this.props will be an empty object. class Hello extends React.Component { render() { return ( <h1>Hello, {this.props.first} {this.props.last}</h1> ) } } <Hello first='Tyler' last='McGinnis' /> It’s important to note that we’re not limited to what we can pass as props to components. Just like we can pass functions as arguments to other functions, we’re also able to pass components (or really anything we want) as props to other components. <Profile username='tylermcginnis' authed={true} logout={() => handleLogout()} header={<h1>👋</h1>} /> If you pass a prop without a value, that value will be set to true. These are equivalent. <Profile authed={true} /> <Profile authed />
Read more
  • 0
  • 0
  • 1470