tag:blogger.com,1999:blog-58588972605271410602023-11-15T22:42:51.719-08:00d3-mediad3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.comBlogger213125tag:blogger.com,1999:blog-5858897260527141060.post-12280578690336397912022-12-30T05:18:00.004-08:002022-12-30T05:30:06.179-08:00 Answers from ChatGPT: How can data journalists use google sheets ml app?<p><span style="font-family: times;"><b> </b><i>Here are some answers by ChatGPT on the following questions:</i></span></p><p><b><span style="font-family: times;">How can data journalists use Google sheets ml app?</span></b></p><p><b style="color: #343541; font-size: 16px; white-space: pre-wrap;"><span style="font-family: times;">What is the use of the ml app in google sheets for data journalists?</span></b></p><p><b style="color: #343541; font-size: 16px; white-space: pre-wrap;"><b style="color: #374151;"><span style="font-family: times;">Can you give an example?</span></b></b></p><p><b style="color: #343541; font-size: 16px; white-space: pre-wrap;"><span style="font-family: times;">What is the use of ChatGPT for data journalists?</span></b></p><p><b style="color: #343541; font-size: 16px; white-space: pre-wrap;"><span></span></b></p><a name='more'></a><b style="color: #343541; font-size: 16px; white-space: pre-wrap;"><span style="font-family: times;"><b style="color: black; font-family: "Times New Roman"; font-size: medium; white-space: normal;"><span style="font-family: times;">How can data journalists use Google sheets ml app?</span></b></span></b><div><span style="font-family: times;"><span></span></span><span style="background-color: #f7f7f8; color: #374151; font-family: times; font-size: 16px; white-space: pre-wrap;">Google Sheets is a spreadsheet application that is part of the Google Workspace suite of productivity tools. It allows users to create and edit spreadsheets, as well as share and collaborate on them with others. The Google Sheets ML App is a tool that allows users to apply machine learning models to data in a Google Sheets spreadsheet.</span><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">To use the Google Sheets ML App, you will need to have a Google account and access to Google Sheets. Here are the steps to use the Google Sheets ML App:</span></p><ol style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; counter-reset: item 0; display: flex; flex-direction: column; font-size: 16px; list-style-image: initial; list-style-position: initial; margin: 1.25em 0px; padding: 0px 0px 0px 1rem; white-space: pre-wrap;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Open your Google Sheets spreadsheet and select the "Add-ons" menu.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">In the Add-ons menu, select the "Get add-ons" option.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">In the Add-ons store, search for "Google Sheets ML App" and select it.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Click the "Install" button to install the Google Sheets ML App.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Once the app is installed, you can access it from the "Add-ons" menu by selecting "Google Sheets ML App" and then "Start."</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Select the data in your spreadsheet that you want to apply the machine learning model to.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Choose a machine learning model from the list of available models.</span></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px; padding-left: 0.375em;"><span style="font-family: times;">Click the "Run" button to apply the selected model to your data.</span></li></ol><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="font-family: times;">Data journalists can use the Google Sheets ML App to apply machine learning models to data in their spreadsheets and analyze the results. This can be useful for a variety of purposes, such as identifying patterns or trends in the data, predicting outcomes or values, or classifying data points into different categories.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><b style="color: #343541;"><span style="font-family: times;">What is the use of the ml app in google sheets for data journalists?</span></b></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 0px 0px 1.25em; white-space: pre-wrap;"><span style="font-family: times;">The Google Sheets ML App is a tool that allows users to apply machine learning models to data in a Google Sheets spreadsheet. Data journalists can use this tool to analyze and understand data in a more sophisticated way, by applying machine learning algorithms to their data and examining the results.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">There are many different types of machine learning models that can be used with the Google Sheets ML App, and each model can be used to address different types of data analysis tasks. For example, a data journalist might use the Google Sheets ML App to:</span></p><ul style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; display: flex; flex-direction: column; font-size: 16px; list-style-image: initial; list-style-position: initial; margin: 1.25em 0px; padding: 0px 0px 0px 1rem; white-space: pre-wrap;"><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; padding-left: 0.375em; position: relative;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="font-family: times;">Identify patterns or trends in the data: Some machine learning models are particularly good at identifying patterns or trends in data. This can be useful for understanding how different factors are related to one another, or for identifying important trends over time.</span></p></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; padding-left: 0.375em; position: relative;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="font-family: times;">Predict outcomes or values: Other machine learning models are designed to make predictions based on input data. For example, a data journalist might use a machine learning model to predict the likelihood of a particular outcome based on a set of input variables.</span></p></li><li style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; display: block; margin: 0px; padding-left: 0.375em; position: relative;"><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 0px;"><span style="font-family: times;">Classify data points into different categories: Some machine learning models are designed to classify data points into different categories. This can be useful for sorting data into different groups based on certain characteristics, or for identifying which data points are most similar to one another.</span></p></li></ul><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="font-family: times;">Overall, the Google Sheets ML App can be a powerful tool for data journalists looking to analyze and understand data in a more sophisticated way. By applying machine learning models to their data, data journalists can gain insights and discover patterns and trends that might not be immediately apparent.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><b><span style="font-family: times;">Can you give an example?</span></b></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 0px 0px 1.25em; white-space: pre-wrap;"><span style="font-family: times;">Sure! Here is an example of how a data journalist might use the Google Sheets ML App:</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">Imagine that a data journalist has a spreadsheet containing data on political campaign contributions. The spreadsheet includes columns for the name of the donor, the amount of the contribution, and the party affiliation of the donor. The data journalist wants to understand which factors are most strongly correlated with the amount of the contribution.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">To do this, the data journalist could use the Google Sheets ML App to apply a machine learning model to the data. One potential model that the data journalist could use is a linear regression model, which is a type of model that is commonly used to identify the relationship between different variables.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">To apply the model, the data journalist would select the data in the spreadsheet and choose the linear regression model from the list of available models in the Google Sheets ML App. The model would then analyze the data and produce a set of results that show the strength of the relationship between the different variables.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><span style="font-family: times;">In this case, the data journalist might find that the amount of the contribution is strongly correlated with the party affiliation of the donor, but not as strongly correlated with the name of the donor. This could be an interesting finding that the data journalist could use to inform their reporting on campaign finance.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="font-family: times;">This is just one example of how the Google Sheets ML App could be used by a data journalist. There are many other potential applications, depending on the specific data and analysis goals of the journalist.</span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="color: #343541;"><b><span style="font-family: times;">What is the use of ChatGPT for data journalists?</span></b></span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; margin: 1.25em 0px 0px;"><span style="color: #343541; font-family: times;"><span style="white-space: pre-wrap;">ChatGPT is a natural language processing (NLP) model developed by OpenAI that is designed to generate human-like text. It is trained on a large dataset of text and is able to produce coherent and fluent responses to prompts provided by users.
Data journalists may find ChatGPT to be a useful tool for generating text based on data input. For example, a data journalist might use ChatGPT to generate a summary of a data set, or to create a natural language description of the trends and patterns present in the data.
To use ChatGPT, a data journalist would need to provide the model with a prompt and then specify the desired length of the output. The model would then generate text based on the prompt and the specified length.
For example, a data journalist working on a story about campaign finance might use ChatGPT to generate a summary of a data set containing information on campaign contributions. The data journalist might provide the model with a prompt such as "Summarize the trends in campaign contributions over the past year" and specify a desired output length of 250 words. ChatGPT would then generate a summary of the data based on this prompt and the specified length.
Overall, ChatGPT can be a useful tool for data journalists looking to generate text based on data inputs. It can help them to quickly and easily generate summaries or descriptions of data sets, which can be useful for informing their reporting and analysis.
</span></span></p><div><span style="color: #343541;"><span style="font-family: times;"><br /></span></span></div><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="color: #343541;"><span style="font-family: times;"><br /></span></span></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><span style="color: #343541;"><b><br /></b></span></p></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-71404710235020141302022-12-18T07:20:00.003-08:002022-12-18T07:26:57.143-08:00ChatGPT as a tool for data journalist ChatGPT is becoming a big hit witin a week there are already millions of users. Access is simple; go to <a href="https://chat.openai.com/chat">https://chat.openai.com/chat </a>and log in for free with for example a google account and you are in business. A hot topic is trying the most weird assignments.Just do a simple search on Twitter for chatGPT and you interesting examples. Of course there is discussion about the credibility..And of course there is more: fake news, students write essays with chatGPT, or journalist and communicators writing stories. How to improve your writing with chatGPT….<div><br /></div><div>For data journalism chatGPT open news perspectives as well. Here are two examples related to simple data tasks in Calc and R. Chat GPT creates the R code and gives a howto for Calc.</div><div><br /></div><div><br /></div><div><b>Here is one way to calculate the squares of the first 10 numbers in R:</b></div><div><br /></div><div># Create a vector of the first 10 numbers</div><div>numbers <- 1:10</div><div><br /></div><div># Calculate the squares of the numbers</div><div>squares <- numbers^2</div><div><br /></div><div># Print the result</div><div>squares</div><div>This will output the following vector: 1 4 9 16 25 36 49 64 81 100.</div><div><br /></div><div>Can you make a bar graph of this output</div><div>Certainly! Here is one way to create a bar graph of the squares of the first 10 numbers in R using the ggplot2 package:</div><div><br /></div><div># Load the ggplot2 package</div><div>library(ggplot2)</div><div><br /></div><div># Create a data frame with the numbers and their squares</div><div>df <- data.frame(numbers, squares)</div><div><br /></div><div># Create the bar graph</div><div>ggplot(df, aes(x = numbers, y = squares)) +</div><div> geom_col()</div><div>This will create a bar graph with the numbers on the x-axis and the squares on the y-axis. The bars will represent the squares of the corresponding numbers.</div><div>You can customize the appearance of the graph by adding additional layers to the ggplot function. For example, you can change the appearance of the bars using the fill parameter, or add a title using the ggtitle function.</div><div>Here is an example of a customized bar graph:</div><div><br /></div><div>ggplot(df, aes(x = numbers, y = squares)) +</div><div> geom_col(fill = "orange") +</div><div> ggtitle("Squares of the First 10 Numbers") +</div><div> theme_minimal()</div><div>This will create a bar graph with orange bars and a title. The theme_minimal function sets a minimalistic theme for the graph.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2SSdtJkEIOxMMsNByEtL8XAmL8ytRyqOhY1-GxL_buAK-9QRULGhvxfDbNssfXy3ozkl-tFqVfuB7t8CTqOrDAmKPVuxeQcVA4Op8USwo0IifDAnwD9JSKgThTGGpjBefcqfH_fBEp2T4M74wUv0p1lUjXGqbyH7Wut3YkFskRDxhKu4hs4hNgYoe/s1920/r.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2SSdtJkEIOxMMsNByEtL8XAmL8ytRyqOhY1-GxL_buAK-9QRULGhvxfDbNssfXy3ozkl-tFqVfuB7t8CTqOrDAmKPVuxeQcVA4Op8USwo0IifDAnwD9JSKgThTGGpjBefcqfH_fBEp2T4M74wUv0p1lUjXGqbyH7Wut3YkFskRDxhKu4hs4hNgYoe/s320/r.png" width="320" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div></div><div><br /></div><div><b>Make a bar graph of the square of the first 10 numbers in Calc(open office)</b></div><div><br /></div><div>To create a bar graph of the results of the squares of the first 10 numbers in Calc, you can follow these steps:</div><div> 1. Enter the numbers you want to square in cells A1 through A10.</div><div> 2. In cells B1 through B10, enter the formulas to calculate the squares of the numbers in cells A1 through A10. You can use either the =POWER(A1, 2) or =A1^2 formula, as described in my previous response.</div><div> 3. Select the range of cells containing the numbers and the squares (e.g., A1:B10).</div><div> 4. Click the "Insert" tab and then click the "Bar" button in the "Charts" group.</div><div> 5. From the list of chart types that appears, choose the type of bar chart you want to create (e.g., "Clustered Bar," "Stacked Bar," etc.).</div><div> 6. A bar chart will be inserted in your spreadsheet, showing the squares of the first 10 numbers.</div><div> 7. To customize the appearance of the chart, you can right-click on it and select "Format Chart Area" to open the "Format Chart Area" dialog box. From here, you can change the colors, fonts, and other formatting options for the chart.</div><div>I hope this helps! Let me know if you have any questions.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAk2ID4GjoR6WThFd_mfHyi1Y_XWsiNLZJUV-E519QBElzcNexuqxtoG7Z54EI2FMXNC2x8uBYrmeavqJDTfqgW6H5u8JTCllnlFZkSKW8rBLegeHxVSEZjxwJH_aBiUm162d0HTOC_kMsE_p0JTcUEp5s5rrelqsGaOIYaF_Cqi3SyVHRtnucrGHX/s1920/c1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAk2ID4GjoR6WThFd_mfHyi1Y_XWsiNLZJUV-E519QBElzcNexuqxtoG7Z54EI2FMXNC2x8uBYrmeavqJDTfqgW6H5u8JTCllnlFZkSKW8rBLegeHxVSEZjxwJH_aBiUm162d0HTOC_kMsE_p0JTcUEp5s5rrelqsGaOIYaF_Cqi3SyVHRtnucrGHX/s320/c1.png" width="320" /></a></div><br /><div><br /></div><div><br /></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-71360786671687018872022-12-18T07:01:00.003-08:002022-12-18T07:01:57.913-08:00Machine Learning for data journalists I have been writing about machine learning and data science as the next step for data journalists in 2019. For example:<a href=" https://d3-media.blogspot.com/2019/03/kaggle-is-there-data-journalism-in.html"> https://d3-media.blogspot.com/2019/03/kaggle-is-there-data-journalism-in.html</a>. However this way of using ML had a steep learning curve. First you have be familiar with R and next you have to dig into various models of ML, like RandomForrest or Tensorflow. <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl7DGyA2WRtl8yDW_mByGJYUt6V3dMXoNBS3jc3RrRGG0OE_lzfB93C6y7JFsTkfAt93NVuo0PaZIxD198EeXi4re9nTiURSXZ900KGIOO74Dzw6_zeJUyMOFlpkhXuaJes3DdiJe2wGA06ZrNszPzyMhsbZmob0wRXM0haM3Del9iFntUmw0JfhfY/s1920/ml.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl7DGyA2WRtl8yDW_mByGJYUt6V3dMXoNBS3jc3RrRGG0OE_lzfB93C6y7JFsTkfAt93NVuo0PaZIxD198EeXi4re9nTiURSXZ900KGIOO74Dzw6_zeJUyMOFlpkhXuaJes3DdiJe2wGA06ZrNszPzyMhsbZmob0wRXM0haM3Del9iFntUmw0JfhfY/s320/ml.png" width="320" /></a></div><br /><div><br /></div><div> Now there is light at the end of the tunnel, google sheets included an add-on for ML. Under extension in the ribbon you find ‘simple ML’ for sheets. This should give data journalism a new boost in working with statistical models. ML for sheets has two option, to predict missing values or to spot abnormal values. In order to get started you should read the documentation: <a href="https://simplemlforsheets.com/">https://simplemlforsheets.com/</a> and try the included dataset. Step by step you practice missing values, abnormal values, training and evaluating a model and finally predict values with a model. Have learned the hard way with R a couple of years ago, I was blown away; just a pushing a few buttons and done. No deep knowledge needed….however you better understand what you are doing. So if you have the taste, eat more ML at a special course by Google: Google Machine Learning Education:<a href=" https://developers.google.com/machine-learning"> https://developers.google.com/machine-learning
</a><p> </p></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-15954586299235184672022-12-01T12:48:00.004-08:002022-12-01T12:50:35.212-08:00From data journalism to data sensors<p> MEASUREMENT OF CO2</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZp2x9gI0SI6edbaMNasVqzA1Um7raonkLp41lTu8gflBwXzomThK3FyRJlLCMPGCYeD2GBDhfnzqFU23tUtQJgWaW_W7qQFTwTPK7B75K4hRFNnd7QKGPmX6uDbDXrhAGvlC8smVMP5a7ZMVBQX6keBRvE2l5_ZQE0lBwWGb3w3K9KHpe_zitqaCh/s1336/meeting.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="753" data-original-width="1336" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZp2x9gI0SI6edbaMNasVqzA1Um7raonkLp41lTu8gflBwXzomThK3FyRJlLCMPGCYeD2GBDhfnzqFU23tUtQJgWaW_W7qQFTwTPK7B75K4hRFNnd7QKGPmX6uDbDXrhAGvlC8smVMP5a7ZMVBQX6keBRvE2l5_ZQE0lBwWGb3w3K9KHpe_zitqaCh/w400-h225/meeting.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijsILLbagxSzSlOyWpbnBNoTjuPhOdMhfKRmMgnICAULPJ__ZdoD9MmqXKpEdXU89Z2rM3llCLxMW2QWPR2Brnh-RdQy5d4hkjeVdXDBFCOvliXHu5FnysxNrBnOig69RxXXT_Jheh07RUaMWG4a5qzpXM2EvKnpCSx84gEda7K_Lvm6TyBskK1gUR/s200/r3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="151" data-original-width="200" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijsILLbagxSzSlOyWpbnBNoTjuPhOdMhfKRmMgnICAULPJ__ZdoD9MmqXKpEdXU89Z2rM3llCLxMW2QWPR2Brnh-RdQy5d4hkjeVdXDBFCOvliXHu5FnysxNrBnOig69RxXXT_Jheh07RUaMWG4a5qzpXM2EvKnpCSx84gEda7K_Lvm6TyBskK1gUR/w167-h126/r3.png" width="167" /></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFenFYozoNo83GSxq7VGLzgfdkuizAzp7E4gsN4XRXmHKt0shnGeEccPtnIL_DM2Xlh70kkrjs_QbsfmbtZlpbY9O8A83Jum8EWZfzVczQfjkc64vkSLcjG8D67qgnosMan2aV8PMxCRoPIiQB_BLXzBrL34tFVbvEhoKXwvkI9N4hr6i3J3c1jkI/s200/b3.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="126" data-original-width="200" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFenFYozoNo83GSxq7VGLzgfdkuizAzp7E4gsN4XRXmHKt0shnGeEccPtnIL_DM2Xlh70kkrjs_QbsfmbtZlpbY9O8A83Jum8EWZfzVczQfjkc64vkSLcjG8D67qgnosMan2aV8PMxCRoPIiQB_BLXzBrL34tFVbvEhoKXwvkI9N4hr6i3J3c1jkI/s1600/b3.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDwULtBjr9EZC4ue4VYfJjJD4HYctkXNO7UR7VcT6T6sBi4uyUY4fjgkV6NvtSU4ZTfvCGN51vmU-H9V0kxvEE2uQU9N_zZYUNkFnOebyx10vAk4p-FAJvLLfjgkYunI9Q2SRJa0dHaBh7M6EalUMHyJSG_c7D4rFOX5g5p82J3h39TSfjXHfpruXa/s200/g3.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="109" data-original-width="200" height="109" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDwULtBjr9EZC4ue4VYfJjJD4HYctkXNO7UR7VcT6T6sBi4uyUY4fjgkV6NvtSU4ZTfvCGN51vmU-H9V0kxvEE2uQU9N_zZYUNkFnOebyx10vAk4p-FAJvLLfjgkYunI9Q2SRJa0dHaBh7M6EalUMHyJSG_c7D4rFOX5g5p82J3h39TSfjXHfpruXa/s1600/g3.png" width="200" /></a></div><br /></div><br /><br /><p><br /></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-15466983998015806012022-11-09T07:02:00.002-08:002022-11-24T02:24:58.002-08:00From data journalism to data sensors<p>Some examples of data sensors running on various micro controllers: </p><p>1. Measuring climate in the living room on <b>Raspberry Pi</b> with a SGP30 measuring Co2 and DHT 22 voor temperature and humidity. Display graphics using Node-Red.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTBR8FRmKXnxaQRp1ze4Mxi80D2EyWwVzCahZPCFog9RULZUgA1Nk6odAM-Tk2BnfCmAWxmQi2D7MLcqIA0NZVjo8DAfCBrnk51LJ5I6YxFINdj7-PTIoFXsCTHSEbQDDtdyLGFUPemOxKEEU4Ig9SagddVdYTZYcfBGq_Jtq2XSSOW7tcVsoZTwtt/s1920/kamer.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTBR8FRmKXnxaQRp1ze4Mxi80D2EyWwVzCahZPCFog9RULZUgA1Nk6odAM-Tk2BnfCmAWxmQi2D7MLcqIA0NZVjo8DAfCBrnk51LJ5I6YxFINdj7-PTIoFXsCTHSEbQDDtdyLGFUPemOxKEEU4Ig9SagddVdYTZYcfBGq_Jtq2XSSOW7tcVsoZTwtt/w493-h280/kamer.png" width="493" /></a></div><br /><p>Measuring Co2 with Arduino showing LCD crystal display and RGB led for different levels of Co2</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDzSpexVwHF0APvwGz5oy7sgPTg0J5hX8r8f60EDXOgMCqSviSWyNI-WRH3WKWT9PGmfxVu3e_NtjJJzJBZ4EX5d1B-wqbWckocWN7y5jbbv3vPcG2EmobsEV8_0FLv1nP7g5mvqSUVJw1gn7OiWO9b2PqgUzVXN6pthzmGV4oYrHkcAD0KHd7l5Ae/s4032/co2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDzSpexVwHF0APvwGz5oy7sgPTg0J5hX8r8f60EDXOgMCqSviSWyNI-WRH3WKWT9PGmfxVu3e_NtjJJzJBZ4EX5d1B-wqbWckocWN7y5jbbv3vPcG2EmobsEV8_0FLv1nP7g5mvqSUVJw1gn7OiWO9b2PqgUzVXN6pthzmGV4oYrHkcAD0KHd7l5Ae/w400-h300/co2.jpg" width="400" /></a></div><br /><p><br /></p><p>2. Measuring the weather with<b> ESP32 Fire Beetle</b> with BME280 measuring temperature, humidity and pressure. Display with ESP chart web server.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA799mNGAB_dYXXFIrAcWPU5OH5-pAHUtUwPI82od67X2XiuS2wrvHTTC-qMe90YorBeINIAyY4lnJ-fOAwx5mKl2GIXd3tBOTCrMQEDzf6MOMcL3Z9J_749_uWwRefZuoqF1tdAUqAF7ZiioeNpPJeerR-RFZzzCXstTMKiPa6wgKt5_Ok77SrnGi/s1920/weer.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA799mNGAB_dYXXFIrAcWPU5OH5-pAHUtUwPI82od67X2XiuS2wrvHTTC-qMe90YorBeINIAyY4lnJ-fOAwx5mKl2GIXd3tBOTCrMQEDzf6MOMcL3Z9J_749_uWwRefZuoqF1tdAUqAF7ZiioeNpPJeerR-RFZzzCXstTMKiPa6wgKt5_Ok77SrnGi/w400-h225/weer.png" width="400" /></a></div><br /><p><br /></p><p><br /></p><p>3. Mini solar panel measuring current with an <b>Arduino Mega 2560</b>, using INA219 and display on serial monitor, plotter and crystal LCD.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHD0L5FirGf5WhA_n9yQgc_wTpet-5lP466f69pbF37fEe9GWii-1_t5laeLRr1wCYjE-bRIi1of8YpD7OOGLGj-GVgSMKbazk-ZKbw7PabACfpSbVoPJKy24s1-7TdZLIfeWJmwtA94OVBOF8gT4qaDoDfjydv-0wp9Ze9fYgUx_jxv6fE1IBWf9k/s1224/zonpanel.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="939" data-original-width="1224" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHD0L5FirGf5WhA_n9yQgc_wTpet-5lP466f69pbF37fEe9GWii-1_t5laeLRr1wCYjE-bRIi1of8YpD7OOGLGj-GVgSMKbazk-ZKbw7PabACfpSbVoPJKy24s1-7TdZLIfeWJmwtA94OVBOF8gT4qaDoDfjydv-0wp9Ze9fYgUx_jxv6fE1IBWf9k/w400-h306/zonpanel.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtt4veJN9_VBHFIhFPN45W7ypcIOlpXmqsyRnAHmZCt-0N3QY8vyttAehTXs4-wz_ay-foJJZbWvlBADr7uNekBO2I0sSNS9drfzHuDCf1XV9P3Jqguh9YTx21taETKa0DfQGbpg5IjpBkMTJD7Yu5zCRGJ_B0_V15DNDaz3JmQIEc97b2Kw3sX0FY/s732/current2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="435" data-original-width="732" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtt4veJN9_VBHFIhFPN45W7ypcIOlpXmqsyRnAHmZCt-0N3QY8vyttAehTXs4-wz_ay-foJJZbWvlBADr7uNekBO2I0sSNS9drfzHuDCf1XV9P3Jqguh9YTx21taETKa0DfQGbpg5IjpBkMTJD7Yu5zCRGJ_B0_V15DNDaz3JmQIEc97b2Kw3sX0FY/w400-h238/current2.png" width="400" /></a></div><br /><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJnxX4Pl6MLU5k87bW9FvQ3-dviqBcdZ2nrZpaT3F6N73dpnsiQmosaP8pe4sEoRV7gFE5vHJej4GRfoCebgwDB9r-Y8HHDFlrVqoNkp0nyoygF_DyALIXAp1b8d1ScAtWUP3mkLAttVCO3TzEfG1Ar1ewRD9PcPkTTW_98X0IU1_77M3z6TNi2lg/s4032/current3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJnxX4Pl6MLU5k87bW9FvQ3-dviqBcdZ2nrZpaT3F6N73dpnsiQmosaP8pe4sEoRV7gFE5vHJej4GRfoCebgwDB9r-Y8HHDFlrVqoNkp0nyoygF_DyALIXAp1b8d1ScAtWUP3mkLAttVCO3TzEfG1Ar1ewRD9PcPkTTW_98X0IU1_77M3z6TNi2lg/w400-h300/current3.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Here are some toys for Xmas tree:</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwfr5SyC0M_PbNvw6t4_jPhHWvuWKUMEwAsyaaPPISbfsaRLS0uEfO4G4nbtgVyQseagZQYmDlGVKRCnEl_QA' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzENxyZYGpb9W-F4beuTWpGRdeWGW590My1ZHdviFpkqLOD3u8vMc5wclWqbrtjJOiy6_zLcKSvkjvtHj3A78OkFAPwuc82exArJu8FVzXhtyfSYicxPW07WW0g_NIQy1XqiuRxOXyUeYxX9wLsio6Dzbuqe_G7e6lc16lvoG0rXm0g-bNELMh5HUA/s4032/flip_flop.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzENxyZYGpb9W-F4beuTWpGRdeWGW590My1ZHdviFpkqLOD3u8vMc5wclWqbrtjJOiy6_zLcKSvkjvtHj3A78OkFAPwuc82exArJu8FVzXhtyfSYicxPW07WW0g_NIQy1XqiuRxOXyUeYxX9wLsio6Dzbuqe_G7e6lc16lvoG0rXm0g-bNELMh5HUA/s320/flip_flop.jpg" width="240" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br />d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-58590258926504734292022-03-14T08:27:00.002-07:002022-03-14T08:28:43.375-07:00TWO INTERESTING TOOLS FOR DATA JOURNALISTS<p> I am not a huge fan of installing all kind of gadgets on my machines. The leaner the better. Sometimes I am seduced and I install a new piece of gadget software. Lately I installed the following:</p><p>1.<a href="https://joplinapp.org/" target="_blank"> joplin</a> for making and archiving notes;</p><p>2.<a href="https://github.com/H-M-H/Weylus" target="_blank"> weylus</a> for making drawings and graphs on my tablet and displaying this on a large screen.</p><p><b>Joplin</b></p><p>Making notes is chaos. I use a simple text editor or a word processor. This leaves me with all kind of text files under different names stored in a folder notes, and I have folders like this on different devices such as a phone or my tablet. What I need is a piece of software that stores my notes and synchronize it my other devices. Joplin is a find: doing exactly what I need, easy to use and to install. It is available for all OS, from Windows to Linux and Android. Here is a screen dump of the program.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhi_145lqYcDdrfChdLGKqsnYGnSSUVXm4Ie4Vr9O74wpASBVFn5c2OV_kIgrrxLU1YpMp0ssWE_nPFbmbWL55OooI0vscpnksWPGwsRp0a2Pvr7-47FE0nOfYLXwX6HxUQdz1nTdszZfLfN8RXc38BmjI2n5AI5nZ5QHSBJPvRtJ7YugAHO1Vkzr9I=s1920" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/a/AVvXsEhi_145lqYcDdrfChdLGKqsnYGnSSUVXm4Ie4Vr9O74wpASBVFn5c2OV_kIgrrxLU1YpMp0ssWE_nPFbmbWL55OooI0vscpnksWPGwsRp0a2Pvr7-47FE0nOfYLXwX6HxUQdz1nTdszZfLfN8RXc38BmjI2n5AI5nZ5QHSBJPvRtJ7YugAHO1Vkzr9I=w400-h225" width="400" /></a></div><div><br /></div>In the column left you see the various notebooks; the second column shows the notes in that notebook and the third, the main screen shows the content of a note. The two buttons on the left toggle between two different editors. The buttons on top of the second column is toggling various way of sorting, creating a new 'to do' or a new note.<div>Making a note could be simple typing text, but also a URL or a web page. Then you should install the <a href="https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB" target="_blank">joplin web clipper</a> by chrome apps. Here are the various options of the clipper:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj6BjEJBhVTebrQiXFK5hTxJo5pfaPt5YNaGF3AljbLJDaOtSiyxUMK0kev3n7NtHrMthbauSQkJLhr4aAVzpb0TZbD6JSCHKUN4jmPFAes1L3zXJ5u3p-ntcwE-NnFKuCA-yb4RWtxpg_OsBvvXuIIPs4157L8nKWBlFbRuTXGy-PIwcXqkdcCwmmg=s468" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="458" data-original-width="468" height="313" src="https://blogger.googleusercontent.com/img/a/AVvXsEj6BjEJBhVTebrQiXFK5hTxJo5pfaPt5YNaGF3AljbLJDaOtSiyxUMK0kev3n7NtHrMthbauSQkJLhr4aAVzpb0TZbD6JSCHKUN4jmPFAes1L3zXJ5u3p-ntcwE-NnFKuCA-yb4RWtxpg_OsBvvXuIIPs4157L8nKWBlFbRuTXGy-PIwcXqkdcCwmmg=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">BTW Joplin can also handle different media formats like pdf or video and pics.</div><div class="separator" style="clear: both; text-align: left;">For synchronizing the notes and notes books is strait forward: install Joplin of other machines or on a phone or tablet using the app. Next choose the tool for synchronization: Nextcloud, Dropbox or OneDrive. I am happy with dropbox.</div><div class="separator" style="clear: both; text-align: left;">For coders and other command line riders there is also a<a href="https://snapcraft.io/install/joplin/ubuntu" target="_blank"> terminal version</a>, using VI as editor. Ah you want your own server to synchronize your note books; no problem try this <a href="https://hub.docker.com/r/joplin/server" target="_blank">Docker Image</a> .</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><b>Weylus</b></div><div class="separator" style="clear: both; text-align: left;"><b><br /></b></div><div class="separator" style="clear: both; text-align: left;">No doubt you will recognize the following situation. You have to sign a pdf document. Writing on your large screen with e-pencil is no fun. You could do it on your tablet, but the you should be able to load or display the document on for example you tablet. What is needed is a cooperation between the main screen and and the tablet. </div><div class="separator" style="clear: both; text-align: left;">Or take the following. During a data journalism training I have to draw a graph by hand. On a tablet is easy, byt the tablet is not showing on my main screen. In these cases Weylus is a nice tool. I run Linux Mint on my desktop main screen and a tablet with android. Install <a href="https://www.linuxuprising.com/2021/05/turn-your-tablet-or-phone-into-graphic.html" target="_blank">Weylus</a> on your main device and <a href="https://github.com/xournalpp/xournalpp" target="_blank">Xourna</a>l (is a hand note-taking software).</div><div class="separator" style="clear: both; text-align: left;">Start Weylus:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh6GD3OlVR1qVm9MmF3ZFux4GFwl60vNHIdrGt1aHff__H_1GEay5Jzmqi2mz7KVeif6PnezQG4dE4R7dnmYitLNfmukmtCwyOm7c-oZv5oj1XWjIEU_FbGkQzmd9PZZLsP-S_YN8LPCkmPqy9Tod3wy9Utmozh_HHu0f_iAcycI9cEqOkAiBpYtqfG=s718" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="712" data-original-width="718" height="317" src="https://blogger.googleusercontent.com/img/a/AVvXsEh6GD3OlVR1qVm9MmF3ZFux4GFwl60vNHIdrGt1aHff__H_1GEay5Jzmqi2mz7KVeif6PnezQG4dE4R7dnmYitLNfmukmtCwyOm7c-oZv5oj1XWjIEU_FbGkQzmd9PZZLsP-S_YN8LPCkmPqy9Tod3wy9Utmozh_HHu0f_iAcycI9cEqOkAiBpYtqfG=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">Open a browser and connect to the local address or scan the QR code. The tablet and the main screen are now synchronized. Start Xournal on your main screen, which will be available on your tablet as well. and draw your graph.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhmwh7qvc1yDdTWOJO7G8YGnz3dwWTbAR6-a7OW_WB16NPgVma9tpue3eOkRDDJToGFVrHScX4YxdMuNGmpJUQn2v9yLJsrJf1AJaB_hQIAH3qjVl4u7LwSMEpSSGWVcFG_rb2txowZ0ww-497KOfOQG4yw49p9PnbOcHRDEwoEPeF7m5Yhqx-a-ipz=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEhmwh7qvc1yDdTWOJO7G8YGnz3dwWTbAR6-a7OW_WB16NPgVma9tpue3eOkRDDJToGFVrHScX4YxdMuNGmpJUQn2v9yLJsrJf1AJaB_hQIAH3qjVl4u7LwSMEpSSGWVcFG_rb2txowZ0ww-497KOfOQG4yw49p9PnbOcHRDEwoEPeF7m5Yhqx-a-ipz=w300-h400" width="300" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-41764531324191300992022-02-16T04:22:00.001-08:002022-02-16T04:22:40.842-08:00Paul Bradshaw: What is data journalism?<p><span style="font-family: times; font-size: medium;">Video presentation by Paul Bradshaw, Birmingham City University.</span></p><p data-adtags-visited="true" style="background-color: white; border: 0px; color: #444444; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;"><span style="font-family: times; font-size: medium;">Data journalism isn’t just about spreadsheets and interactives: in this video from my <a href="https://www.bcu.ac.uk/courses/data-journalism-ma-2022-23" style="border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;">MA Data Journalism</a> classes at Birmingham City University I look at why the news industry has expanded its focus on data journalism over the past decade, and how thinking about definitions of data journalism can help reporters think more broadly about potential stories and subjects beyond official statistics.</span></p><p><span style="font-family: times; font-size: medium;"><span style="background-color: white; color: #444444;">I also look at related terms such as</span><span style="background-color: white; color: #444444;"> </span><strong style="border: 0px; color: #444444; margin: 0px; padding: 0px; vertical-align: baseline;">computational journalism</strong><span style="background-color: white; color: #444444;">,</span><span style="background-color: white; color: #444444;"> </span><strong style="border: 0px; color: #444444; margin: 0px; padding: 0px; vertical-align: baseline;">robot journalism</strong><span style="background-color: white; color: #444444;"> </span><span style="background-color: white; color: #444444;">and</span><span style="background-color: white; color: #444444;"> </span><strong style="border: 0px; color: #444444; margin: 0px; padding: 0px; vertical-align: baseline;">augmented journalism</strong><span style="background-color: white; color: #444444;"> </span><span style="background-color: white; color: #444444;">— and what we can learn from those definitions as practitioners.</span> </span></p><p><span style="font-family: times; font-size: medium;"><br /></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/le5Ca6AUrOw" width="320" youtube-src-id="le5Ca6AUrOw"></iframe></div><br /><span style="font-family: times; font-size: medium;"><br /></span><p></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-14859335313985784692022-02-16T03:20:00.005-08:002022-02-17T06:13:33.703-08:00The Economist using QGIS<table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; padding: 0px 16px 16px; text-size-adjust: 100%;" valign="top"><br />In The Economist e-newsletter 'Off The Charts', about data and visualization, data journalist <b>Elizabeth Lees</b>, writes about mapping and the use of QGIS, the open source mapping software.<br /><br /><br /><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; border-top: 1px solid rgb(18, 18, 18); padding: 7px 0px 0px; text-size-adjust: 100%;" valign="top"><h2 class="econsans" style="-webkit-font-smoothing: antialiased !important; color: #121212; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; font-size: 18px; line-height: 25px; margin: 0px; text-size-adjust: 100%;"><b style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">How we make maps at <i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">The Economist</i></b></h2></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; padding: 0px 16px 16px; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; color: #121212; font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", Georgia, serif; font-size: 18px; line-height: 25px; padding: 0px 0px 1px; text-size-adjust: 100%;" valign="top"><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-size-adjust: 100%;">Since 2016, <i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">The Economist</i> has used a geographic information system (GIS) to create most of the maps it publishes in print and online. GIS is a mapping tool that allows us to visualise and manage spatial data quickly and accurately. That is crucial for articles that may have a quick turnaround, such as our Daily charts or Explainers. GIS also allows us to discover and analyse geographical patterns and relationships. To create the dozen or so maps published each week, we source GIS maps and data, which we then load into <a data-linkto="https://" href="https://click.e.economist.com/?qs=95e6f4a836db16792fcab1fc2351e7ef59938c2298a257b7d5c85b214a77ebdf5dda406c9ce88d6f84329c8994411d04fc804725d5b21d58" style="-webkit-font-smoothing: antialiased !important; border-bottom: 1px solid rgb(60, 79, 175); color: #121212; text-decoration-line: none; text-size-adjust: 100%;" title="QGIS">QGIS</a>—our preferred mapping software.</p><span><a name='more'></a></span><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-size-adjust: 100%;"><br /></p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td align="center" style="-webkit-font-smoothing: antialiased !important; border-bottom: 0px solid rgb(215, 215, 215); padding: 0px 0px 24px; text-size-adjust: 100%;" valign="top"><img alt="" data-assetid="210893" src="https://image.e.economist.com/lib/fe8d13727c650c7976/m/5/bebe3672-8484-4e07-a74b-5116c2328d68.png" style="-webkit-font-smoothing: antialiased !important; border: none; display: block; height: auto; max-width: 568px; padding: 0px; text-size-adjust: 100%; width: 568px;" width="320" /><a href="https://click.e.economist.com/?qs=95e6f4a836db167990911a693a6e3239dac83717fb537785ba325021289283acf6a0b3db44518d20b4e24b37cfce69cb2d95d8cc16e85a21" style="-webkit-font-smoothing: antialiased !important; text-decoration-line: none; text-size-adjust: 100%;" target="_blank"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; padding: 0px 16px 16px; text-size-adjust: 100%;" valign="top"><br /><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; color: #121212; font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", Georgia, serif; font-size: 18px; line-height: 25px; padding: 0px 0px 1px; text-size-adjust: 100%;" valign="top"><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-align: center; text-size-adjust: 100%;"><i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">The QGIS interface with several layers loaded in</i></p><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-size-adjust: 100%;"><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><b style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">Starting from the base up</b><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" />Every map begins life as a base map in QGIS. A base map is a reference map that provides geographical context and boundaries in which data can be located. Most GIS software offers a range of base maps that are ready to use, but they can also be imported from external sources. For example, we often use <a data-linkto="https://" href="https://click.e.economist.com/?qs=95e6f4a836db1679f9a51b296719cf197b3c579876f098f3a52525d0f72ada6f667b2c8707d0b581738c53bc86c17b7b01f009b1f58e00d4" style="-webkit-font-smoothing: antialiased !important; border-bottom: 1px solid rgb(60, 79, 175); color: #121212; text-decoration-line: none; text-size-adjust: 100%;" title="Natural Earth">Natural Earth</a>, an open-source map database that has accurate maps at various scales. Map layers are typically vector-based shapefiles. These files store the location, shape and any attribute information of geographical features.<br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" />When sourcing shapefiles, it is important to make sure all parts of the file are downloaded for it to display correctly. For a world map like the recent Daily chart on the <a data-linkto="https://" href="https://click.e.economist.com/?qs=95e6f4a836db1679c252058859f5d0c31172584403a1826fdcd464f20154c948d6dea7d0fc0af1cad881a02bb98469e17d5d3c01807b059d" style="-webkit-font-smoothing: antialiased !important; border-bottom: 1px solid rgb(60, 79, 175); color: #121212; text-decoration-line: none; text-size-adjust: 100%;" title="modelled risk of emerging covid-19 variants">modelled risk of emerging covid-19 variants</a>, we usually download and display polygons (the shapes) of the land and borders of countries (including any disputed borders) to start with. Extra layers, such as transport networks, mountain ranges or lakes and rivers may also be included depending on the context of the story. Shapefiles are also editable, which can be useful when you want to include additional details.<br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><b style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">Adding on the layers</b><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /> <br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" />To turn the map into an infographic for <i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">The Economist</i>, we add data layers on top of the base map. Any data added to our maps must have a spatial element such as degrees of latitude and longitude, <a data-linkto="https://" href="https://click.e.economist.com/?qs=95e6f4a836db1679d1b040a3997731cec2e7b33039a0dbb3de5511f5a7bdcfaa5db39e724759ac965fa7ed0a04e87eb1533211b8b103127f" style="-webkit-font-smoothing: antialiased !important; border-bottom: 1px solid rgb(60, 79, 175); color: #121212; text-decoration-line: none; text-size-adjust: 100%;" title="georeferenced">georeferenced</a> imagery (such as geoTIFF files), postcodes or country codes, so that it can connect with the map. Additional data can be imported into QGIS depending on the file type (see below). Point co-ordinate data are added as a delimited text layer with a set geometry definition, TIFF files are added as a raster (or grid) layer, or if the data shares a common field with the base map then we use the join tool to tell QGIS where to assign the data.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td align="center" style="-webkit-font-smoothing: antialiased !important; border-bottom: 0px solid rgb(215, 215, 215); padding: 0px 0px 24px; text-size-adjust: 100%;" valign="top"><img alt="" data-assetid="210896" src="https://image.e.economist.com/lib/fe8d13727c650c7976/m/5/527ba2a9-c9b8-4067-b7d5-2d00924a2e32.png" style="-webkit-font-smoothing: antialiased !important; border: none; display: block; height: auto; max-width: 568px; padding: 0px; text-size-adjust: 100%; width: 568px;" width="320" /><a href="https://click.e.economist.com/?qs=95e6f4a836db167990911a693a6e3239dac83717fb537785ba325021289283acf6a0b3db44518d20b4e24b37cfce69cb2d95d8cc16e85a21" style="-webkit-font-smoothing: antialiased !important; text-decoration-line: none; text-size-adjust: 100%;" target="_blank"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; padding: 0px 16px 16px; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; color: #121212; font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", Georgia, serif; font-size: 18px; line-height: 25px; padding: 0px 0px 1px; text-size-adjust: 100%;" valign="top"><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-align: center; text-size-adjust: 100%;"><i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">Additional data layers can be added in QGIS</i></p><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-size-adjust: 100%;"><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" />Once the map and data are all set up, we may decide to do some further analysis to discover and better understand any relationships in the data. This can be done through a number of different GIS tools. QGIS also has an open source <a data-linkto="https://" href="https://click.e.economist.com/?qs=95e6f4a836db167972447267874e0c00c6d751cdbecf4b2a9d360066d378337c0be95efaf44d0d0eaac7c9470d6cd3a30fa623e9679811e3" style="-webkit-font-smoothing: antialiased !important; border-bottom: 1px solid rgb(60, 79, 175); color: #121212; text-decoration-line: none; text-size-adjust: 100%;" title="plugin portal">plugin portal</a> for user-generated tools that expand the software’s capabilities. Most often the map needs only to show the spatial patterns of the data (such as the choropleth map below) so we skip any analysis and go onto thinking about the visual variables and hierarchy of each map.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td align="center" style="-webkit-font-smoothing: antialiased !important; border-bottom: 0px solid rgb(215, 215, 215); padding: 0px 0px 24px; text-size-adjust: 100%;" valign="top"><img alt="" data-assetid="210897" src="https://image.e.economist.com/lib/fe8d13727c650c7976/m/5/d1a4b76a-3325-4514-8491-1571baca0947.png" style="-webkit-font-smoothing: antialiased !important; border: none; display: block; height: auto; max-width: 568px; padding: 0px; text-size-adjust: 100%; width: 568px;" width="320" /><a href="https://click.e.economist.com/?qs=95e6f4a836db167990911a693a6e3239dac83717fb537785ba325021289283acf6a0b3db44518d20b4e24b37cfce69cb2d95d8cc16e85a21" style="-webkit-font-smoothing: antialiased !important; text-decoration-line: none; text-size-adjust: 100%;" target="_blank"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table cellpadding="0" cellspacing="0" class="stylingblock-content-wrapper" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; min-width: 100%; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td class="stylingblock-content-wrapper camarker-inner" style="-webkit-font-smoothing: antialiased !important; font-family: MiloTE, MiloTESec, Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", serif; text-size-adjust: 100%;"><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; max-width: 600px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; padding: 0px 16px 16px; text-size-adjust: 100%;" valign="top"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="-webkit-font-smoothing: antialiased !important; border-collapse: collapse; border-spacing: 0px; text-size-adjust: 100%; width: 100%px;"><tbody style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><tr style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;"><td style="-webkit-font-smoothing: antialiased !important; color: #121212; font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Calisto MT", Georgia, serif; font-size: 18px; line-height: 25px; padding: 0px 0px 1px; text-size-adjust: 100%;" valign="top"><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-align: center; text-size-adjust: 100%;"><i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">A published choropleth map</i></p><p class="article-text" style="-webkit-font-smoothing: antialiased !important; margin: 0px; text-size-adjust: 100%;"><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /><b style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">Beyond the data</b><br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" /> <br style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;" />Once the data are displayed on the map, we can think about the design. What map projection (see our Off the Charts newsletter from January 25th) and scale work best? What colours should we use? Do we need additional labels? How do we best position the many map elements within our layout? Is the map accessible to visually impaired readers? Although all these aspects can be tweaked within QGIS, at <i style="-webkit-font-smoothing: antialiased !important; text-size-adjust: 100%;">The Economist</i> we usually import the map into Adobe Illustrator for any final touches. Before the finished map is published we share it within our team, as a second (or third) pair of eyes always improves the final result.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-44414746940227464912022-01-11T02:29:00.002-08:002022-01-11T02:39:49.268-08:00De nieuwe manier van werken<p>Hieronder een korte screencast over de Marantz Turret met gebruik van OBS.</p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="360" src="https://www.youtube.com/embed/PECC4ltw0Q4" width="433" youtube-src-id="PECC4ltw0Q4"></iframe></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-45398107520921743182022-01-08T07:30:00.003-08:002022-01-09T02:58:15.724-08:00 Professional studio device at your home office<p> Covid has definitely transformed the way of working. No rush to the office in morning, hanging out at the coffee machine, or watching the clock during a meeting. We all work from home. And here starts generally the problem. You need an office space at home, and a good computer to do your work and connect to your colleagues. Generally a laptop with build in camera and mic, or a bit more sophisticated using a small webcam on top of the screen. For short meetings and chats the quality of mic and cam is acceptable. However, did you ever tried to do a lecture of a training?</p><p>In those situations you need more professional devices: high quality sound and video, but also a good angle for the camera, for example at three quart and not full face.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj0jXqN2RNUzakzCN6d56fvnpmGgDn5HfZOlW7SIbjPZmW66auzoo9gb3vQ_JspfbMs59fg4oemayKS7FWPenmsvcZ1AYTRy3pcs4YIN_6rbFXp8yCDRLWSETvNiqq-GQHfisrFDqpkRzUe8n53G8_TUWr_iTQTgYjqKP6ebydaDyj0Cvyk2fkuyV0e=s243" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="208" data-original-width="243" height="208" src="https://blogger.googleusercontent.com/img/a/AVvXsEj0jXqN2RNUzakzCN6d56fvnpmGgDn5HfZOlW7SIbjPZmW66auzoo9gb3vQ_JspfbMs59fg4oemayKS7FWPenmsvcZ1AYTRy3pcs4YIN_6rbFXp8yCDRLWSETvNiqq-GQHfisrFDqpkRzUe8n53G8_TUWr_iTQTgYjqKP6ebydaDyj0Cvyk2fkuyV0e" width="243" /></a></div><br /><p><br /></p><p>After some searching I choose the Marrantz Turret (<a href="https://www.marantzpro.com/products/view/turret">https://www.marantzpro.com/products/view/turret</a>). The Turret is a complete broadcasting system with a full HD webcam and USB condenser microphone with an integrated pop filter. It also includes a dimmable led light ring with different colors. Connecting the device with a Linux system and a windows 10 laptop was no problem. Power up the Turret connect the USB output to you system; choose the settings for the Turret camera and sound from the menu and you are in business.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjZ8jeHpbVvP-2f6r9IfoAiNSG7h2C3MD8I1ggYGbg569J7pOZMYX4kTIikKeep6DxcwPluCHTQqy4nl1F2ln1cmNallqiBzIFAtHlGOG96cTRIsPShqxk1zNwgCxZyzHV8rS5KP_sDpG0ED_8OPgycDBXJq22J-OgNusJOpY8hE7_K-cqVvuj9i4qk=s4032" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEjZ8jeHpbVvP-2f6r9IfoAiNSG7h2C3MD8I1ggYGbg569J7pOZMYX4kTIikKeep6DxcwPluCHTQqy4nl1F2ln1cmNallqiBzIFAtHlGOG96cTRIsPShqxk1zNwgCxZyzHV8rS5KP_sDpG0ED_8OPgycDBXJq22J-OgNusJOpY8hE7_K-cqVvuj9i4qk=s320" width="320" /></a></div><br /><p><br /></p><p>In combination with video conferring software like Zoom or Teams, the Marrantz Turret worked great. More interesting is streaming or recording with the Turret. For online training you would make some demo’s of the example’s that could we watched later. Or you can stream your lecture to the students audience. For this type of work OBS, Open Broadcasting System(<a href="https://obsproject.com">https://obsproject.com</a>/), is a good choice. The good news is that the Marrantz Turret cooperates flawless with OBS, and using a virtual camera the Turret connects also to Teams of Zoom.</p><ul><p align="left" style="line-height: 1px; margin-bottom: 0in;"></p></ul>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-21844281042959690422021-11-29T02:13:00.004-08:002021-11-29T02:15:45.859-08:00Running Ubuntu GUI in WSL <p> Installed the GUI for controlling Ubuntu in WSL. Here is an interesting recipe:</p><p><a href="https://www.makeuseof.com/tag/linux-desktop-windows-subsystem/">https://www.makeuseof.com/tag/linux-desktop-windows-subsystem/ </a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmXgkR5IaqK-KXTrL8yyElrgwI2IhDlrtnIlIEA8Nu-NOop469BfOFvbI0hRkZzxHvanA05Ser572cfXLRcEG4-9ejQue7ppd9FyfFIYSM90z4q8MAiy9NHBxabeXikqOKXoa9mI8-Gw4/s605/lin.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="378" data-original-width="605" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmXgkR5IaqK-KXTrL8yyElrgwI2IhDlrtnIlIEA8Nu-NOop469BfOFvbI0hRkZzxHvanA05Ser572cfXLRcEG4-9ejQue7ppd9FyfFIYSM90z4q8MAiy9NHBxabeXikqOKXoa9mI8-Gw4/w400-h250/lin.png" width="400" /></a></div><br /><p><br /></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-81506813114371241642021-11-11T06:56:00.007-08:002021-11-16T08:22:14.574-08:00Experimenting with Node-Red coding on a Raspberry Pi<p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/_F7VTGS1iZI" width="320" youtube-src-id="_F7VTGS1iZI"></iframe></div><p><br /></p>Trying some coding on a raspberry pi with a sense hat using node-red.<p></p><p>The environment variables(temperature, humidity and pressure) are shown on the node red dashboard in the background and streaming on the sense hat display.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZ0aKlLMHeVFc9izQEQYJ6SgQ17vSmMtIVKuElwiLAMzL3OCYYbz15UsSgmsm6SJlPHGyvfJ8DQI7a4upfCmcOD2oTooH11r1mJzW_VMNpqWZUMWDJ2i2juQ6bbCjKVVYRSbbkpWUqsI/s680/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="503" data-original-width="680" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZ0aKlLMHeVFc9izQEQYJ6SgQ17vSmMtIVKuElwiLAMzL3OCYYbz15UsSgmsm6SJlPHGyvfJ8DQI7a4upfCmcOD2oTooH11r1mJzW_VMNpqWZUMWDJ2i2juQ6bbCjKVVYRSbbkpWUqsI/s320/1.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeeZ_mKEEFtAPBUmwaSYwvuesFJl1cs4T-yUG9shRITRXSUEVOcJiEwGLIuwCEzFNjrgTWhiYkUgsQKiomLIs3A53n6x_bStOjrR8U4Y8ZkSxCpz6WmkxWZouMwwafMWx-owZnb3819A/s900/2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="692" data-original-width="900" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeeZ_mKEEFtAPBUmwaSYwvuesFJl1cs4T-yUG9shRITRXSUEVOcJiEwGLIuwCEzFNjrgTWhiYkUgsQKiomLIs3A53n6x_bStOjrR8U4Y8ZkSxCpz6WmkxWZouMwwafMWx-owZnb3819A/s320/2.png" width="320" /></a></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><p>I used these data 4 years ago to build a weather station using MySQL and R; here are the links:</p><p>1. <a href="https://d3-media.blogspot.com/2017/01/weather-data.html">https://d3-media.blogspot.com/2017/01/weather-data.html</a> </p><p><br />2. <a href="https://d3-media.blogspot.com/2017/01/the-electronic-barometer-2.html">https://d3-media.blogspot.com/2017/01/the-electronic-barometer-2.html</a></p><p>3. <a href="https://d3-media.blogspot.com/2017/01/the-electronic-barometer-3.html">https://d3-media.blogspot.com/2017/01/the-electronic-barometer-3.html</a></p><p><br /></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-20185260293993740292021-11-09T04:36:00.003-08:002021-11-09T06:56:23.956-08:00Tello GPS flight on google map<div>Using Tello FPV app. Here is a screenshot of the app<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpel87MiQViFQbIzc1Fy335bA1m9eEHf0c6aU1yq_BN-G3DLh6QCpafYYWSjMuCqDuOZ2YHzj90R03l7XQaxqsWOblfW_c7PqMZxIAnifhGEO7yB4-V0ezb07X9p8zjf5rWKPmBs8AN50/s2280/Screenshot_20211109-155254_Tello+FPV.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="2280" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpel87MiQViFQbIzc1Fy335bA1m9eEHf0c6aU1yq_BN-G3DLh6QCpafYYWSjMuCqDuOZ2YHzj90R03l7XQaxqsWOblfW_c7PqMZxIAnifhGEO7yB4-V0ezb07X9p8zjf5rWKPmBs8AN50/s320/Screenshot_20211109-155254_Tello+FPV.jpg" width="320" /></a></div><br /></div><div><br /></div><div>And the map of the flight mission</div><a href="https://www.google.com/maps/d/u/0/edit?mid=1Hi3TCeaREphTWE4hnIXSN9EY_BIR-Bfl&usp=sharing">https://www.google.com/maps/d/u/0/edit?mid=1Hi3TCeaREphTWE4hnIXSN9EY_BIR-Bfl&usp=sharing</a>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-69522169838109068622021-11-03T09:03:00.004-07:002021-11-03T09:04:32.625-07:00Flying around (4)….Hacking the Tello<p><span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;">Tello creates its own based </span>WiFi<span style="font-size: 12pt;"> network. It uses 2.4 Ghz and UDP as protocol to communicate with a client over ports 8889 at the server and 8890 at the client.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Let’s first look at the WiFi. When you directly connect from your cellphone no security protocol is used; just an open WiFi connection between server 192.168.10.1(tello) and the client 192,168.10.2(phone).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">* TELLO-627F4A Infra 4 54 Mbit/s 95 ▂▄▆█ --</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">If you create a password, an option in the settings of the app, WPA2 is used as the security protocol.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">TELLO-TELLO-627F4A Infra 4 54 Mbit/s 100 ▂▄▆█ WPA2</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">You can remove the password by holding the start button for 10 sec. Tello will completely reset. </p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello is equipped with SDK: software development kit. The Tello SDK 2.0 user guide gives an overview of programming commands. Download here:<span style="color: navy;"><span lang="zxx"><u><a href="https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf">https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf</a>. </u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Packet Sender</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Is it possible to send SDK commands directly to the Tello?</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">When a computer is directly connected to the Tello network, you could give commands directly to to the Tello. Install ‘Packet Sender’ and send UDP packages to the Tello on address 8889. Tello will reply with OK.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Here is a screenshot showing battery, takeoff and land.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdreMwwRY0Y8e8ei7Kx9h-sbI_PVjtudqz-OphD-Pzt3si8F_shN9bWx87wAE-vkxDJIxj-qW40in7lXPWdVLZ4xgRWTnWssqnSonJh5caiY38flTBAt52ogXlSOBWSv0eAWEb7hKbUc/s1920/sendp.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdreMwwRY0Y8e8ei7Kx9h-sbI_PVjtudqz-OphD-Pzt3si8F_shN9bWx87wAE-vkxDJIxj-qW40in7lXPWdVLZ4xgRWTnWssqnSonJh5caiY38flTBAt52ogXlSOBWSv0eAWEb7hKbUc/w400-h225/sendp.png" width="400" /></a></div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">How about connecting the Tello to you home network with WiFi? Yes that is possible, then Tello is not an access point anymore but a client to the home WiFi network.More on this: <span style="color: navy;"><span lang="zxx"><u><a href="https://tello.oneoffcoder.com/swarm.html">https://tello.oneoffcoder.com/swarm.html</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Home Network</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Adding Tello to the home network:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 11pt;">Run the following python script: <span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #404040;">python set-ap-mode.py -s </span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #666666;">[</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #404040;">SSID</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #666666;">]</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #404040;"> -p </span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #666666;">[</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #404040;">PASSWORD</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #666666;">]</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;">Here is the response:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 11pt;">sending cmd command</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 11pt;">from ('192.168.10.1', 8889): b'ok'</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 11pt;">sending cmd ap [SSID] [PSW]</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 11pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #666666;">from ('192.168.10.1', 8889): b'OK,drone will reboot in 3s'</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Now Tello is a client of you home network, and directly connecting to the Tello from the phone app is not possible anymore.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Next: We have to scan the network for the IP number of the Tello</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">nmap -sP 192.168.178.0/24 or nmap -sT 192.168.178.1/24</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Nmap scan r</b>eport for _gateway (192.168.178.1)</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Host is up (0.0080s latency).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Nmap scan report for 192.168.178.24</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Host is up (0.015s latency).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Nmap scan report for 192.168.178.52</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Host is up (0.081s latency).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Nmap scan report for 192.168.178.80</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Host is up (0.034s latency).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="background-color: #fcff01;">Nmap scan report for 192.168.178.101</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Host is up (0.035s latency).</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">The last one was newly added to the home network.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;"><br /></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Ping </b>on that address:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">peter@Pegasus:~/Desktop/TELLO$ ping 192.168.178.101</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">PING 192.168.178.101 (192.168.178.101) 56(84) bytes of data.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">64 bytes from 192.168.178.101: icmp_seq=1 ttl=255 time=1.33 ms</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">We could check the connection by sending UDP packages with packet sender.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Or run python scripts to control a flight or a mission of the Tello. But in the scripts you have to update/change the IP address of the Tello and the ID. Send sn? with packet sender to get the ID.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">From the oneoffcoder site – <span style="color: navy;"><span lang="zxx"><u><a href="https://tello.oneoffcoder.com/swarm.html">https://tello.oneoffcoder.com/swarm.html</a></u></span></span> – try the following scripts.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>demo_single.py and demo_status were working.</i> Don’t forget to update the IP number and ID when connected to local wifi network.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">You can also create a complete mission and save taht in a .txt file.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Then run:</p><pre class="western" style="direction: ltr; font-family: "Liberation Mono", "Courier New", monospace;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #404040;"><span face="SFMono-Regular, Menlo"><span style="font-size: 9pt;">python planned-flight.py -f cmds-01.txt</span></span></span></span>
<span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">See also my blog posting Flying Around(3).</span></span></pre><pre class="western" style="direction: ltr;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><b>Java Script</b></span></span></pre><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;">Not only Python but also </span>JavaScript<span style="font-size: 12pt;"> is possibility to control Tello from the command line.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">But you have to install the environment to to load a JavaScript for execution. I used the Snapstore and searched for npm to install node.js.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The following GitHub repository has a few scripts to get started:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: navy;"><span lang="zxx"><u><a href="https://github.com/jsolderitsch/tello-nodejs">https://github.com/jsolderitsch/tello-nodejs</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">You can run for example:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i style="font-size: 12pt;">node TelloCommandLine.js</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">this invites you to send commands to the drone</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello Command Console</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">---------------------------------------</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> Enter a Tello SDK Command.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> land</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: land</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">(If the port is already in use; run sudo pkill -9 node)</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Node-Red</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">A special case for controlling Tello with JavaScript is Node-Red. Here is the GitHub repository:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><a href="https://github.com/johnwalicki/Node-RED-Tello-Control">https://github.com/johnwalicki/Node-RED-Tello-Control</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><b>What exactly is Node-RED?</b></span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;">Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.</span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">Node-RED </span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">a</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">llows you to create functionality by wiring together flows of data between nodes using a browser</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">. And it has gained tremendous popularity in the IoT space, by modeling bits of application functionality between IoT devices like sensors, cameras, and wireless routers.</span></span></span></span></p><p class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: "Liberation Serif", serif; font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span><span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;">Node Red is </span></span>developed<span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;"> by IBM and is block based coding in a browser. After deploying the code you can have the results. Here are two pictures that show the basics: </span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span><span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;">left the block coding and right the </span>result<span style="font-size: 12pt;"> after deploying.</span></span></span></span></span></p><p class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span><span style="font-family: Liberation Serif, Times New Roman, serif;"></span></span></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="color: #202124;"><span><span style="font-family: Liberation Serif, Times New Roman, serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii93d7v6D6HwOZBgMXco8sMudvf7Svb__w8XTz4XXnGGiLRMSRY2bmaz23RQpxYzWOLKJEgA54dtCoceEa5aBihyy0L8n9c9EwNA4KM8zgpuCgYQ5-3nxrUJRs-xyIxIf-rq7v-e-cQDE/s1539/blocks.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="927" data-original-width="1539" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii93d7v6D6HwOZBgMXco8sMudvf7Svb__w8XTz4XXnGGiLRMSRY2bmaz23RQpxYzWOLKJEgA54dtCoceEa5aBihyy0L8n9c9EwNA4KM8zgpuCgYQ5-3nxrUJRs-xyIxIf-rq7v-e-cQDE/w400-h241/blocks.png" width="400" /></a></span></span></span></div><span style="color: #202124;"><span><span style="font-family: Liberation Serif, Times New Roman, serif;"><br /><span style="font-size: 12pt;"><br /></span></span></span></span><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOPEuLLyhrMTp1jHuIQUs8NkZR_XxlAuEW5mOCepUka1XrpHj1YWy7RlRFU4LC-NnEugd-nL7iwxwZkFG7JkEoS9nhZp4-hJuF9m9_yXz3j8O0kdEozU56OpusgOEWWmxIuVFcy_zn7_E/s1118/dashboard.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="927" data-original-width="1118" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOPEuLLyhrMTp1jHuIQUs8NkZR_XxlAuEW5mOCepUka1XrpHj1YWy7RlRFU4LC-NnEugd-nL7iwxwZkFG7JkEoS9nhZp4-hJuF9m9_yXz3j8O0kdEozU56OpusgOEWWmxIuVFcy_zn7_E/w400-h331/dashboard.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: #202124; font-family: "Liberation Serif", serif; font-size: 12pt;">A desktop or laptop is not great fun for controlling the Tello. Node_red can also be installed on an android device, like a phone or tablet. A complete install is possible, but a bit complicated because you have to set up Termux on your phone/tablet.</span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">For installing Termux, see also <a href="http://d3-media.blogspot.com/2021/04/data-journalism-on-samsung-tablet-with.html">http://d3-media.blogspot.com/2021/04/data-journalism-on-samsung-tablet-with.html</a></span></span></span></span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">After installing Termux is here the recipe for installing node red: <a href="https://nodered.org/docs/getting-started/android">https://nodered.org/docs/getting-started/android</a></span></span></span></span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">Much easier is </span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">to </span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">insta</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">l</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">l an app </span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;"><b>RedMobile Lite</b> – Node -RED on Android.</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;"></span></span></span></span></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">Node Red is especially interesting for IoT, internet of things, connecting devices and data streams. Connecting Tello with Amazon Alexa is an example. Here is the code:</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;"> <a href="https://www.hackster.io/econnie323/alexa-voice-controlled-tello-drone-760615">https://www.hackster.io/econnie323/alexa-voice-controlled-tello-drone-760615</a> . </span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;">After installing you will be able to control Tello with voice commands.</span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #202124;"><span style="font-size: 12pt;"></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-3923518178157933622021-10-20T07:43:00.007-07:002021-10-21T03:32:54.882-07:00FLYING AROUND 3: FLYING A MISSION<p> <span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">When you buy a Tello EDU you have 4 mission pads, which enable the drone to fly special assignments. To fly a mission there are special command available. Look at the Mission Pad User Guide. Available at :</span><a href="https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20Mission%20Pad%20User%20Guide.pdf" style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20Mission%20Pad%20User%20Guide.pdf</a><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;"> . </span></p><p><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">However flying a mission was more complicated. I had 3 problems:</span></p><p><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">1. the mission pad numbers</span></p><p><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">2. set up a mission from the command line</span></p><p><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">3. X and Y coordinates</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>First problem: pad numbers MID mission pad ID</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">It seems the pads have numbers, but I could not find where that number was. How can you find out?</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Go to github: <a href="https://github.com/dbaldwin/DroneBlocks-DJITelloPy-Tutorial">https://github.com/dbaldwin/DroneBlocks-DJITelloPy-Tutorial</a> . Here you find a bonus script : <span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span face="apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size: 10pt;"><u><span style="background: rgb(246, 248, 250);"><a href="https://github.com/dbaldwin/DroneBlocks-DJITelloPy-Tutorial/blob/master/bonus_01_get_tello_state.py">bonus_01_get_tello_state.py</a>.</span></u></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">If you run that script and tello is on a pad it will give you the mid.</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="background-color: #f6f8fa; font-family: "Liberation Serif", serif; font-size: 12pt;">Here is the output when Tello flying over MID 1:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><i>'agx': -6.0,</i></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'agy': 10.0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'agz': -999.0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'baro': 112.27,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'bat': 61,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'h': 70,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="background: rgb(255, 242, 0);"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="font-family: Liberation Serif, serif;"><i>'mid': 1,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'mpry': '2,-4,178',</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'pitch': 0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'roll': 0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'temph': 47,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'templ': 44,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'time': 12,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'tof': 83,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'vgx': 0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'vgy': 0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'vgz': 0,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'x': -10,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'y': 3,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'yaw': -1,</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><span style="font-family: Liberation Serif, serif;"><i>'z': 84}</i></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">Do that for all 4 pads front and backside and write the number on the pad.</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">Just discovered that the number is on the pad: printed as white line between the stars! If you look closely it is a number. Here is for example pad 3:</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"></span></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5fSc_6WG-rj0ka7tu1brDygWj9yhI8ZpD-lkBj-hJMX-YeRhyphenhyphenwaQMhrBenCDcuna5QvSuWbsBE1AgpivU5lUJh0s-Ye6kwIIMG9mbHPJdAcGw37qA14Ml_nS1OEdR5pstb_QWYI6MU4/s2048/p3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1536" data-original-width="2048" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5fSc_6WG-rj0ka7tu1brDygWj9yhI8ZpD-lkBj-hJMX-YeRhyphenhyphenwaQMhrBenCDcuna5QvSuWbsBE1AgpivU5lUJh0s-Ye6kwIIMG9mbHPJdAcGw37qA14Ml_nS1OEdR5pstb_QWYI6MU4/w200-h150/p3.jpg" width="200" /></a></span></span></span></div><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><br /><span style="background: rgb(246, 248, 250);"><br /></span></span></span></span><p></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);"><br /></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b style="font-family: "Liberation Serif", serif; font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">Second: how to set up a mission with 4 pads.</span></span></b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">The mission pad works as a switch; like if…. Then. Read the guide closely.</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">Set up the following:</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">M1 M2 M3 M4 are the MIDs</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">The arrow is the direction, represented by the direction of the rocket on the pad. </span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="background: rgb(246, 248, 250);">( I come back to this later)</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"></span></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7XXa01MC0sAf7jIWvevax6eX2JMrWdPNJ-OsqjB4Rgk2OHLu5e8eNqyfWdTLOIv0L8f7aV_zT_ryMBzR6HjAAkZnU6g5RjDSw9JgeobS-X7aFg3WFjtMQvYEjsQozR0XI15VH8rrYGmM/s1123/f3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="794" data-original-width="1123" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7XXa01MC0sAf7jIWvevax6eX2JMrWdPNJ-OsqjB4Rgk2OHLu5e8eNqyfWdTLOIv0L8f7aV_zT_ryMBzR6HjAAkZnU6g5RjDSw9JgeobS-X7aFg3WFjtMQvYEjsQozR0XI15VH8rrYGmM/w400-h283/f3.jpg" width="400" /></a></span></span></span></div><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><br /><span style="background: rgb(246, 248, 250);"><br /></span></span></span></span><p></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"></span></span></span></p><br /><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><br /><span style="background: rgb(246, 248, 250);"><br /></span></span></span><p></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Next we need a command line to send instruction to the Tello.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Go to <a href="https://tello.oneoffcoder.com/python-manual-control.html">https://tello.oneoffcoder.com/python-manual-control.html</a> . Under section 8 you find the scripts to send commands to the Tello.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">For example:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;"><i>python3 app.py -f command4.txt</i></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">In this case the commands in the txt file command4 are send to the drone.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">And here are the commands for command4 forcing the Tello to fly a square over the pads.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">(Important to understand is that you have to state the x,y,z coordinates of each MID)</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>command</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>takeoff</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>battery?</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>mon</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>mdirection 0</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>jump 0 80 60 60 90 m1 m2</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">#(tello is on m1 flies to 0 80 60, speed 60, if m2 is recognized camera is turned 90 degrees)</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>delay1</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>jump 0 80 60 60 90 m2 m3</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>delay 1</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>jump 0 80 60 60 90 m3 m4</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>delay 1</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>jump 0 80 60 60 90 m4 m1</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>delay 1</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>land</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">And the result is this video:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><a href="https://youtu.be/2Kk65aS5MtI" style="font-size: 12pt;">https://youtu.be/2Kk65aS5MtI</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Problem 3: X and Y</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The coordinates are looking peculiar; I just discovered them by trial and error. But when I changed the direction of the pads(direction of the rocket) it did not work anymore. I needed new coordinates.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">So the coordinates (x,y; that is the first two) are relatives to direction. The rocket gives the direction of the X axis.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Here are two figures showing the relations ship between direction and coordinates.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Figure 2 shows the position of the Tello: using the the same x and y while turning the direction of the pad.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOSP7XbSv66B5Y_BR19QUaW7OnqyvH-25detZGvWQ3uAWK0w_Ocyru4KFJeUV1slvktDshpJQ5I50s1JG3Q1B2NqEV8jnaIGzlDRhmfTfsZZcpuI5ofkzGTLw7YeqRSq0y3MLsi59KdNc/s1123/f2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="794" data-original-width="1123" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOSP7XbSv66B5Y_BR19QUaW7OnqyvH-25detZGvWQ3uAWK0w_Ocyru4KFJeUV1slvktDshpJQ5I50s1JG3Q1B2NqEV8jnaIGzlDRhmfTfsZZcpuI5ofkzGTLw7YeqRSq0y3MLsi59KdNc/w400-h283/f2.jpg" width="400" /></a></div><div><br /></div><div><br /></div>Figure 1 shows the position of the Tello: using different x and y , while keep the pad in the same direction. <div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiWQRaCy32iMsN9NHWQSUob9mf09woDd0T4ZUJDlRIB-f4zm4BxrhB_mI6rmaLALyeh4V3OBNCKI2IenwJDnDRPIkYLAHl1yAhVebm5JUG9x9tDdhsvsgodfLpefFnUempK9Ju3DR_zuc/s1123/f1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="794" data-original-width="1123" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiWQRaCy32iMsN9NHWQSUob9mf09woDd0T4ZUJDlRIB-f4zm4BxrhB_mI6rmaLALyeh4V3OBNCKI2IenwJDnDRPIkYLAHl1yAhVebm5JUG9x9tDdhsvsgodfLpefFnUempK9Ju3DR_zuc/w400-h283/f1.jpg" width="400" /></a></div>Do you want to fly over the diagonals. Keep the pads in the same position when flying in a square over the pads. For the diagonal flight use the following: <div><br /></div><div><div><i>command</i></div><div><i>takeoff</i></div><div><i>battery?</i></div><div><i>mon</i></div><div><i>mdirection 0</i></div><div><i>jump 80 80 60 60 90 m1 m3</i></div><div><i>delay1</i></div><div><i>jump 0 80 60 60 90 m3 m4</i></div><div><i>delay 1</i></div><div><i>jump 80 80 60 60 90 m4 m2</i></div><div><i>land</i></div><div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /></div></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-86863623182758598482021-10-13T04:37:00.002-07:002021-10-13T04:38:08.743-07:00Off the Charts The best of our data journalism Economist Data journalism News Letter(2)<h2 style="text-align: left;"><b> Why “Python” is the best coding language for data journalism</b></h2><div style="background-color: #eefcff; color: #222222; font-family: Georgia, Utopia, "Palatino Linotype", Palatino, serif; font-size: 15.4px;">By <b>Dolly Setton</b> Data Journalists</div><div style="background-color: #eefcff; color: #222222; font-family: Georgia, Utopia, "Palatino Linotype", Palatino, serif; font-size: 15.4px;">From the Economist Data Journalism newsletter</div><div style="background-color: #eefcff; color: #222222; font-family: Georgia, Utopia, "Palatino Linotype", Palatino, serif; font-size: 15.4px;"><br /></div><div style="background-color: #eefcff;"><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">Most data journalists would agree that coding has become a core component for good data journalism. But few can agree which programming language is best for it—is it “R” or “Python”? Last week, one of my colleagues explained why they think R is the superior language for data journalism. This week, I will explain why I prefer Python.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">Python is, like R, an open-source language so it is free for anyone to use. Unlike R, it is a full-fledged, general-purpose language and an integral part of digital life. It powers popular tools and platforms such as Google Search, Spotify, Instagram and YouTube. Guido Van Rossum, a Dutch developer, released the first version of Python in 1991.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span><a name='more'></a></span><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">Python is both one of the fastest-growing major programming languages and, according to the Tiobe Index, the most popular, as of October 2021. Python’s popularity owes much to the simplicity and efficiency of its syntax, making it relatively easy to write and read. As with R, many developers make and maintain packages that bundle up code, data and documentation that are useful for data journalism as well as other purposes. The Python Package Index shows that there are a total of 332,600 different pieces of software currently available to download—almost 20 times more than those available for R—which can do everything from searching online news articles to handling big datasets.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">Data journalists often run Python in a “Jupyter notebook” (see image below), an open-source web application that creates a document that allows you to import data, run code and create visualisations. It is a handy tool to keep a record of data explorations, create charts, style text and share the results of that work.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, "Palatino Linotype", Palatino, serif; font-size: 15.4px;">For data analysis, the cornerstone package in Python is “Pandas”. It allows you to manipulate data in the same table format as R and makes it easy to tackle missing data, form new columns and much more. Another essential set of tools are “scikit-learn” and “NumPy”, which work like a charm for predictive modelling and machine learning. The “Statsmodels” module focuses on traditional statistical methods. Finally, “Matplotlib” and “seaborn” make it easy to chart the results— and “Plotly” can make them interactive (see image below). </span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, "Palatino Linotype", Palatino, serif; font-size: 15.4px;">Python is also excellent for anyone who wants to take their data analysis further. Deep-learning research, which can be useful for some predictive modelling work, is made possible in Python through libraries such as “Keras”, “PyTorch”, and “TensorFlow”. And Python is not just good for big numbers. Textual analysis often offers rich potential for stories too, and Python excels in this area thanks to libraries such as “NLTK” and “Gensim”.</span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">And finally, a crucial component of many data-driven stories is scraping. Though we can sometimes download data from trusted sources, scraping them from websites with some nifty code can enable us to get unique stories by creating new datasets, such as for this article about swearing on Mumsnet. Python makes scraping easy through libraries such as “Requests” and “Beautiful Soup”.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;">Python is so widely used that there is an enormous amount of community support available, at sources such as Stack Overflow, Codecademy, PySlackers, Python Discord and PyLadies. And if you ever want to go beyond the number crunching and decide to develop an app, Python can help with that too. But my favourite argument for choosing Python is that you get to write code in a language named not for a reptile, nor for the letter that comes before “S” in the alphabet, but after the great British comedy troupe Monty Python.</span></span></div><div><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"><span style="font-size: 15.4px;"><br /></span></span></div><div><span style="font-size: 15.4px; white-space: pre;"><span style="color: #222222; font-family: Georgia, Utopia, Palatino Linotype, Palatino, serif;"> </span></span></div></div><p><b><br /></b></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-5768949248036179462021-10-08T06:42:00.001-07:002021-10-08T06:42:23.221-07:00Off the Charts The best of our data journalism Economist Data journalism News Letter<h2 style="text-align: left;"> Why “R” is the best coding language for data journalism</h2><div>By <b>James Fransham</b> Data Journalists</div><div>From the Economist Data Journalism newsletter</div><div><br /></div><div><div>Data journalism is a pursuit whose success relies on being able to crunch numbers. Lots of them. For many years data journalism—a term that was popularised beginning about 2010—mostly relied on the power of spreadsheets alone. But pivot tables, vlookups and other spreadsheet functions only get you so far. With more and more data available, being able to perform more powerful and flexible operations is now a vital part of the data journalist’s toolkit. Two programming languages, Python and R, vie for data journalism supremacy. But which is best? Here is my case for the latter. </div><div><br /></div><div>R is an open-source language, it is free and open for use by everyone. It was spun out of another programming language called “S” in the early 1990s by two academics working at the University of Auckland in New Zealand. It was developed to focus on statistical-based problems and so it naturally handles data.</div><span><a name='more'></a></span><div><br /></div><div>Although R has lots of in-built functions, what gives R its versatility is its packages. These nifty extensions bundle up code, data and documentation and they can be imported into R with a single line of code. And there are lots of them. The number of packages has increased from 2,700 in 2010 to 18,335 today. Want to know the weather in New York City yesterday? There are packages for that. Or Tesla’s share price? There are packages for that . Want to perform some esoteric statistical function? There are packages for those too. R’s packages are organised into task views, so if there’s a new subject you are taking on that’s a good place to start.</div><div><br /></div><div>All versions of R and the packages that have been developed for it are available on the Comprehensive R Archive Network, more commonly known as CRAN, a network of servers that are hosted by academic institutions around the world. The basic interface of the R software is byzantine. But the R Studio application—built by a for-profit organisation in America, although the basic version is also open-source—provides a sleek “integrated development environment” (IDE) that sits atop of R. R Studio helps you learn R’s syntax quickly and has good debugging tools which makes programming almost(!) headache-free.</div><div><br /></div><div>The popularity of R owes a lot to the pioneering work of a handful of individuals. Perhaps the most celebrated is Hadley Wickham, a Kiwi academic and an employee of the company that owns R Studio. Mr Wickham has developed a number of packages, known as the “Tidyverse”, that make handling data and number crunching in R more intuitive to new users. </div><div><br /></div><div>Perhaps what really sets R apart is its visualisation library, ggplot2. This library, which was also developed by Mr Wickham, allows you to create different charts and visualisations with just a few lines of code. The “gg” stands for “grammar of graphics”: visualisations can be changed or augmented with additional simple blocks of code, much like constructing a Lego model. On our data team, ggplot allows us to iterate through visual ideas and quickly see what might be most suitable. </div><div><br /></div><div>R makes coding fun and flexible. You can become competent in just a few months with no previous programming experience. And there is a whole community of like-minded programmers who can help you along the way, such as those found on Stack Overflow, R-bloggers, R-weekly and R-Ladies. So if you ever get stuck there are plenty of places to turn to.</div><div><br /></div><div><br /></div></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-87855932146230629092021-10-03T06:29:00.004-07:002021-10-08T06:45:20.206-07:00 FLYTING AROUND( 2): programming the Tello<p>The Tello has a dedicated app for children. Go to the app store and download Tello Edu. It works better, because of the screen size, when the app is installed on a tablet. First you have access to the remote control on screen (1), which works the same as on a cell phone. But there is also an option called blocks. Here you can practice the programming. First in a virtual environment(2), and then in real time.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXzf6kwbP8NR5MPaK23-q1F0eaCYqby7xi5Hm8yL96rkFJitf19tx6_7EB_IU2bGX7y6Rr2lBdDEX7BZEaRknK3-ILyOK7OpvRH1m5ZGkm8wQRsvI2-O1bIT_nrtzbxfEThWZn2vS84JE/s2048/Screenshot_20211003-113956_TELLO+EDU.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1281" data-original-width="2048" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXzf6kwbP8NR5MPaK23-q1F0eaCYqby7xi5Hm8yL96rkFJitf19tx6_7EB_IU2bGX7y6Rr2lBdDEX7BZEaRknK3-ILyOK7OpvRH1m5ZGkm8wQRsvI2-O1bIT_nrtzbxfEThWZn2vS84JE/w320-h200/Screenshot_20211003-113956_TELLO+EDU.jpg" title="pic 1" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKvSQRK3_RacetuRysYZ-DRK4X7KkT1Ag0kUZa1hmWq84KR-y9k-oKjhwVCBTtXbFrGm-am4F9ZzLI0Jvxc4mM3Z4dmr4fMxnaOxt5eO0a4iZy-LBLFOvzNwXnzN0_m0Z_r1__hJa0OQU/s2048/Screenshot_20211003-114335_TELLO+EDU.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1281" data-original-width="2048" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKvSQRK3_RacetuRysYZ-DRK4X7KkT1Ag0kUZa1hmWq84KR-y9k-oKjhwVCBTtXbFrGm-am4F9ZzLI0Jvxc4mM3Z4dmr4fMxnaOxt5eO0a4iZy-LBLFOvzNwXnzN0_m0Z_r1__hJa0OQU/s320/Screenshot_20211003-114335_TELLO+EDU.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">It is very easy to learn. Children will get the idea behind programming fast and it is fun!</span></div><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>SDK</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello is equipped with SDK: software development kit. The tello sdk 2.0 user guide gives an overview of programming command. Download here:<a href="https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf">https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf</a></p><span><a name='more'></a></span><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Telle sets up its own wifi network using the UDP. The standard IP address for the tello is 192.168.10.1 The following ports are used:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">8889 for sending and receiving messages and commands</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">8890 for receiving messages of the state of the tello</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">11111 for receiving the video stream</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello can be programmed using Python. And JavaScript</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Python</b></p><p>More advanced is the use of Python. Python has a steep learning curve, but with the help of a python interpreters/ library like for example djitellopy. Install it under Python and you can start programming the Tello using blocks of code. </p><p>Here is a Github link:</p><p> <a href="https://github.com/damiafuentes/DJITelloPy">https://github.com/damiafuentes/DJITelloPy</a>. And here is the complete library with commands</p><p>DJItellopy library: <a href="https://djitellopy.readthedocs.io/en/latest/">https://djitellopy.readthedocs.io/en/latest/</a> .</p><p> I presume you have Python3 up and running. Clone or download the files from Github; unpack in a new directory. Next install djitellopy with:</p><p><i>pip3 install djitellopy</i></p><p>and</p><p><i>python3 -m pip install -U pygame --user</i></p><p>(pygame is a free and open-source cross-platform library for the development of multimedia applications like video games using Python)</p><p><br /></p><p><b>Manual control</b></p><p>Open a a terminal and go to the examples and run them. Here is the example of: manual-control-pygame.py</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4rUx6pCdhGg7tViYUpTOgSSkfcmqyqmng5j2QEN__lS6mlXZtCZBlXH-rf8nBUOZdxLDZc9Gx3zqXsoQvRtD9J8cXTdpH5nbIIVSoDy45wrBTvqizGFv-8qOqTEJLTXROfEbg6p4P6U/s1920/t4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4rUx6pCdhGg7tViYUpTOgSSkfcmqyqmng5j2QEN__lS6mlXZtCZBlXH-rf8nBUOZdxLDZc9Gx3zqXsoQvRtD9J8cXTdpH5nbIIVSoDy45wrBTvqizGFv-8qOqTEJLTXROfEbg6p4P6U/s320/t4.png" width="320" /></a></div><br /><p><br /></p><p>I used the following keyboard controls:</p><p>The controls are:</p><p> - T: Takeoff</p><p> - L: Land</p><p> - Arrow keys: Forward, backward, left and right.</p><p> - A and D: Counter clockwise and clockwise rotations (yaw)</p><p><span style="white-space: pre;"> </span> - W and S: Up and down.</p><p><br /></p><p><br /></p><p>In case you restart with an other example and get the message thst the ‘address is already in use’. Kill all python processes with:</p><p><br /></p><p>sudo pkill -9 python </p><p> </p><p>And here is an other collection of scripts you can use for experimenting.</p><p><a href="https://github.com/dbaldwin/DroneBlocks-DJITelloPy-Tutorial">https://github.com/dbaldwin/DroneBlocks-DJITelloPy-Tutorial</a> </p><p><b>JavaScript</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Javescript is another possibility to control Tello from the command line.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">But you have to install the environment to to load a javascript for execution. I used the Snapstore and searched for npm to install node.js. Install also got with: <i>npm install got</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The following github repository has a few to get scripts started:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><a href="https://github.com/jsolderitsch/tello-nodejs">https://github.com/jsolderitsch/tello-nodejs</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Other tello scripts; <a href="https://npm.io/search/keyword:tello">https://npm.io/search/keyword:tello</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">You can run for example:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><i>node TelloCommandLine.js</i></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">This invites you to send commands to the drone</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello Command Console</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">---------------------------------------</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> Enter a Tello SDK Command.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> land</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: land</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: command</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Data received from server : ok</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Tello> takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Command: takeoff</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">-------------------------------------</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">If the port is already in use; run sudo pkill -9 node</p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-36078868937901081992021-10-02T07:11:00.006-07:002021-10-08T06:44:22.910-07:00FLYING AROUND……<p><span style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">I had never any interest in computer games. Long time ago my attention was drawn to a drone, for reporting purposes. I wrote a story about the possibilities of drone reporting; here it is: News that fFies: </span><a href="http://d3-media.blogspot.com/2012/08/drones-news-that-flies_8578.html" style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">http://d3-media.blogspot.com/2012/08/drones-news-that-flies_8578.html</a><span style="font-family: Liberation Serif, Times New Roman, serif;"><span style="font-size: 12pt;"> . I did not </span>practice<span style="font-size: 12pt;"> myself. Drones were large and expensive. However, after more than 10 years a lot has happened. I was </span>impressed<span style="font-size: 12pt;"> by the <b>Tello</b> drone. For less than 100$ you can buy one at for example Amazon: </span></span><a href="https://www.amazon.com/Tello-CP-PT-00000252-01-Quadcopter-Drone/dp/B07BDHJJTH/ref=sr_1_2?dchild=1&keywords=tello+drone&qid=1633178915&sr=8-2" style="font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt;">https://www.amazon.com/Tello-CP-PT-00000252-01-Quadcopter-Drone/dp/B07BDHJJTH/ref=sr_1_2?dchild=1&keywords=tello+drone&qid=1633178915&sr=8-2</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZO-XNA2MWWac8iDUL8v48i-JVgRabztzit6QGzMRkMG2a6C1pYoR5CuEBumgD1rheQwKfqhqm3vyk2iFZwvXsBScd1kcv4nGcXtTJtVnpNSA7OVKC-ME0Q8xo1mDfTN1TtWqvAS7Cnmc/s640/t3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="640" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZO-XNA2MWWac8iDUL8v48i-JVgRabztzit6QGzMRkMG2a6C1pYoR5CuEBumgD1rheQwKfqhqm3vyk2iFZwvXsBScd1kcv4nGcXtTJtVnpNSA7OVKC-ME0Q8xo1mDfTN1TtWqvAS7Cnmc/s320/t3.jpg" width="320" /></a></div><div><br /></div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">This</span><b style="font-size: 12pt;"> Ryze Tech Tello - Mini Drone Quadcopter</b><span style="font-family: Liberation Serif, Times New Roman, serif; font-size: 12pt;"><span style="font-size: 12pt;"> is an impressive toy. Less than 30 grams, flies around 15 minutes, with a build in camera for pictures and video, remote </span>control<span style="font-size: 12pt;"> using an app on your mobile phone, and last but not least it is programmable with Python and JavaScript. Of course it is more a toy for fun, than a professional piece of equipment. With this small weight, flying outside is only possible under </span>favorable<span style="font-size: 12pt;"> weather conditions. </span>Nevertheless<span style="font-size: 12pt;"> you can learn how to fly a drone.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span></span></p><a name='more'></a><span style="font-size: 12pt;"><br /></span><p></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">When you start up the Tello it creates a wifi -UDP-network. With your phone you connect to the Tello network, Start the app and you are ready to fly. The app has 8 build in flights: from bouncing to flipping forward and backwards. Or you just go your own way and fly around, to shoot a picture or make a video. In the mean time you can follow the feed of the Tello camera on your phone too.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The drone has no GPS on board, but uses a VPS (Visual Positional System, using two tiny cameras under the drone to determine the position) to provide aerial stability and smooth landings. So far it is fun flying around with the Tello. I have<b> two areas for more research</b>:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">1. Programming the drone with Python and JavaScript;</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">2. The wifi connection is open, because no password is asked; could the drone be hacked? Let’s see what Wireshark has to say.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", "Times New Roman", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><span><!--more--></span><span><!--more--></span><span><!--more--></span>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-84287491771899484602021-09-29T07:00:00.001-07:002021-10-08T06:43:19.542-07:00Can the German Parliament work magic? From 703 to 735 seats!<p><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">Germany is important not only because it is our biggest neighbor, but it plays an important role in the European Union as well. Therefore the outcome of the elections is important. The turnout of the latest elections for a new Bundestag was </span>published<span style="font-size: 12pt;"> by most media. I was impressed by the data journalism approach of the Economist.</span></span></p><p><a href="https://www.economist.com/graphic-detail/german-election-results-2021" style="font-family: "Liberation Serif", serif; font-size: 12pt;">https://www.economist.com/graphic-detail/german-election-results-2021</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Here is a copy of one of the visualizations in the article.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;"><br /></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaXqKTP5rMscIScMm_dbSm5mACQdSyWM7RVvw9ugfYaW0vFoh35qHvouuntiGO_lRcGgSHa1YIKtK5Iq6d01_MVs_FcIvkFy3RM14pkHRtm7CThV2i1z8WSr1Iehk1-VDmtIW4VSBLi24/s1094/g2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="558" data-original-width="1094" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaXqKTP5rMscIScMm_dbSm5mACQdSyWM7RVvw9ugfYaW0vFoh35qHvouuntiGO_lRcGgSHa1YIKtK5Iq6d01_MVs_FcIvkFy3RM14pkHRtm7CThV2i1z8WSr1Iehk1-VDmtIW4VSBLi24/w400-h204/g2.png" width="400" /></a></div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><span><a name='more'></a></span><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The interesting issue is that if you count up the seats you get 734, and the old parliament had 709.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">The size of the Bundestag varies. How does this work? Well is complicated; and is related to to votes the first vote(for a person) and the second vote(for a party). But how do you calculate the number of seats in the Bundestag? Of course it is statistics and at R-blogger I found the answer.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Here are the links to the articles:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><a href="https://www.r-bloggers.com/2021/09/will-the-next-german-parliament-have-a-gigantic-size-a-law-and-coding-challenge-2/" style="font-size: 12pt;">https://www.r-bloggers.com/2021/09/will-the-next-german-parliament-have-a-gigantic-size-a-law-and-coding-challenge-2/</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">and<a href="https://www.r-bloggers.com/2021/09/post-election-update-will-the-german-parliament-have-a-gigantic-size/" style="font-size: 12pt;">https://www.r-bloggers.com/2021/09/post-election-update-will-the-german-parliament-have-a-gigantic-size/</a></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Both articles explain the logic behind the calculation of the seats. The actual calculation is done through a piece of software: <b>seat-calculator.R</b></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">And the piece of code that does the tric look as follows:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="color: #0086b3;"><span style="font-family: inherit;"><span style="font-size: 9pt;">source</span></span></span></span><span style="color: #777777;"><span style="font-family: inherit;"><span style="font-size: 9pt;">(</span></span></span><span style="color: #dd1144;"><span style="font-family: inherit;"><span style="font-size: 9pt;">"seat_calculator.R"</span></span></span><span style="color: #777777;"><span style="font-family: inherit;"><span style="font-size: 9pt;">)</span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: Source Code Pro, Liberation Mono, Courier New, Courier, monospace;"><span style="font-size: 9pt;"><span style="color: #aaaaaa;"><span style="color: black;"><span style="font-family: inherit;">dat = read.</span></span><span style="color: #0086b3;"><span style="font-family: inherit;">csv</span></span><span style="color: #777777;"><span style="font-family: inherit;">(</span></span><span style="color: #dd1144;"><span style="font-family: inherit;">"results_2021.csv"</span></span><span style="color: black;"><span style="font-family: inherit;">,encoding=</span></span><span style="color: #dd1144;"><span style="font-family: inherit;">"UTF-8"</span></span><span style="color: #777777;"><span style="font-family: inherit;">)</span></span><span style="color: black;"> </span><span style="color: black;"><span style="font-family: inherit;">%</span></span><span style="color: #777777;"><span style="font-family: inherit;">></span></span><span style="color: black;"><span style="font-family: inherit;">%</span></span></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: Source Code Pro, Liberation Mono, Courier New, Courier, monospace;"><span style="font-size: 9pt;"><span style="color: #aaaaaa;"><span style="color: #0086b3;"><span style="font-family: inherit;">select</span></span><span style="color: #777777;"><span style="font-family: inherit;">(</span></span><span style="color: black;"><span style="font-family: inherit;">-seats.</span></span><span style="color: #0086b3;"><span style="font-family: inherit;">mr</span></span><span style="color: #777777;"><span style="font-family: inherit;">)</span></span></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: Source Code Pro, Liberation Mono, Courier New, Courier, monospace;"><span style="font-size: 9pt;"><span style="color: #aaaaaa;"><span style="color: black;"><span style="font-family: inherit;">res = compute.</span></span><span style="color: #0086b3;"><span style="font-family: inherit;">seats</span></span><span style="color: #777777;"><span style="font-family: inherit;">(</span></span><span style="color: black;"><span style="font-family: inherit;">dat</span></span><span style="color: #777777;"><span style="font-family: inherit;">)</span></span></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: Source Code Pro, Liberation Mono, Courier New, Courier, monospace;"><span style="font-size: 9pt;"><span style="color: #aaaaaa;"><span style="color: black;"><span style="font-family: inherit;">summarize.</span></span><span style="color: #0086b3;"><span style="font-family: inherit;">results</span></span><span style="color: #777777;"><span style="font-family: inherit;">(</span></span><span style="color: black;"><span style="font-family: inherit;">res</span></span><span style="color: #777777;"><span style="font-family: inherit;">)</span></span></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## Total size: 734 seats</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## # A tibble: 7 x 5</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="background: rgb(255, 252, 211);"><span style="color: #9999aa;">## party vote_share seat_shares seats ueberhang</span></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## <chr> <dbl> <dbl> <dbl> <dbl></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 1 SPD 0.282 0.281 206 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 2 CDU 0.207 0.206 151 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 3 Gruene 0.162 0.161 118 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 4 FDP 0.126 0.125 92 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 5 AfD 0.113 0.113 83 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 6 CSU 0.0567 0.0613 45 3</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span style="font-size: 9pt;"><span style="color: #9999aa;">## 7 Linke 0.0536 0.0531 39 0</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;"><span style="font-family: inherit;"><span><span style="color: #000005;">The conclusion is:</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><span style="border: none; display: inline-block; padding: 0in;">“<span face="open sans, Helvetica, Arial, sans-serif"><span>For me it feels not like a well designed election system if a single electoral district can have such huge impact on the size of the parliament…” And in some situations a parliament of more than 900 seats is possible. “</span></span></span><span face="open sans, Helvetica, Arial, sans-serif"><span>That would be a gigantic, very crowded and expensive parliament”.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 16px; margin-bottom: 0in;"><br /></p><p class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-34389727998570759382021-08-18T03:21:00.003-07:002021-08-18T03:21:53.552-07:00Columbia Journalism project Workbench closing<p> </p><h2 class="western"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;">Workbench </span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;">(<a href="https://workbenchdata.com">https://workbenchdata.com</a>/)</span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;"> </span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;">t</span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;">he data journalism platform with built-in training; </span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;">a</span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;"> project of Columbia Journalism School </span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><span style="font-weight: normal;">will close Oct 15. The project started in 2018 and is offering interesting tools and examples for data journalist. Pierre Conti, Co-founder and CEO writes: “ we did not succeed in creating enough revenue to make Workbench sustainable. Funding for journalism technology is scarce, and we did not manage to attract enough paid users to build a healthy business”. That is a pity of course, but you can build your own workbench running from you own machine. See instructions: <a href="https://github.com/CJWorkbench/cjworkbench/wiki/Setting-up-a-development-environment">https://github.com/CJWorkbench/cjworkbench/wiki/Setting-up-a-development-environment</a> .</span></span></span></span></span></h2><div><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #000005;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 14pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-fpOba8cLgy0LYb2RGFA2QIgDOexCNOKhcixFYA3D4CNWw9CPNuL3owhUQR7uu4jcMMX8vu7iNpRUdVEO2SJROln6AUzw4AzFc-imBuVgC2uoARF78-1J9_pAvenmcK1Eb9fzpt4tCLE/s1920/wb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-fpOba8cLgy0LYb2RGFA2QIgDOexCNOKhcixFYA3D4CNWw9CPNuL3owhUQR7uu4jcMMX8vu7iNpRUdVEO2SJROln6AUzw4AzFc-imBuVgC2uoARF78-1J9_pAvenmcK1Eb9fzpt4tCLE/w400-h225/wb.png" width="400" /></a></div><br /><span style="font-weight: normal;"><br /></span></span></span></span></span></div>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-76246359238898205622021-07-21T06:45:00.005-07:002021-07-22T02:21:57.074-07:00Is Windows transforming into Linux?<p>My first machine was running MSDOS is operating system(OS). On top of it you run a simple word processor, spreadsheets and database software. It worked but a graphical user interface(GUI) was still under development. Things got slightly better with the introduction of Windows; Windows 95 was the big take-off. And of course adding to the OS the Office software: Windows became the tool of preference. Although Windows software was installed on 90% of the PC's., it was generally no fun. </p><p>For example, you could get a blue screen or a completely frozen screen. You had to restart and if you did not saved your work you could start all over. Then the was the continuous updating by Microsoft; sometimes in the middle of your work. In the middle of a training Bill Gates stepped in to make things better. And finally after all the updates, you had to find out where you could changed settings, the designers had changed the position and placed them under new headings.</p><p><b>Balmer</b></p><p>Finding an alternative OS was in the beginning not easy and demanded skill and knowledge of Linux. But Linux adapted fast and developed a complete OS with different tools. There was a cold war between Microsoft and Linux. Microsoft CEO Steve Ballmer described Linux at that time as “cancer ”. Although Linux was developing in the direction of a serious alternative for Microsoft., and with no cost: Linux is open source and therefore free. It was never accepted. Running and installing Ubuntu or Mint is not rocket science, and working on these machines is slightly different from a windows machine. It never convinced Microsoft die hearts.</p><p>Microsoft may have won the battle for desktops and office software, but the servers and network software is all Linux. So the problem is to enable Windows to talk to all the Linux machines. Finally Microsoft saw the light and start embracing Linux.</p><p><b>Azure</b>, Microsoft successful cloud computing is running Linux. So Microsoft needed it own Linux version. Secondly this Linux version should also work on Windows machines. Let’s have a look at the various options.</p><p><b> Linux on Windows</b></p><p>1. Installing Linux on windows is called <b>WSL</b>- Windows Subsystem Linux.The WSL comes in three steps. Microsoft first introduced a Linux terminal in a distribution of choice, for example Ubuntu. Later it introduced a GUI, so you can run linux apps wit GUI.WSL1 only Linux terminal. Here is the documentation of<a href="https://docs.microsoft.com/en-us/windows/wsl/"> Microsoft</a> or read <a href="http://d3-media.blogspot.com/2016/09/does-ubuntu-shines-through-windows.html">my blog posting</a> in 2016. </p><p>2. Later Microsoft introduced WSL2 with a GUI using Xserver. If you want to give it try, here is a nice video showing <a href="https://www.youtube.com/watch?v=8SuERIEJJUA">how to install</a>. Running Linux inside Windows is one thing; but it works also the other way. From Linux you have access to Window files and programs. Type for example explorer.exe at the Ubuntu prompt and you have the file explorer show the directory you in.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvToBKSxmGbA3SkASOHVxpM4vGa_VPQ6Y0XBfRsNFb5d4zgr4ZDZSCtzM6DTorVVCiz9U7VtY9q_gx1HlbBbzX3FD6JH5MgLsilgS7k0qoW8mza6WuaSSXef5wK4VCpLcFfSIjC-fSeRA/s1920/dt.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvToBKSxmGbA3SkASOHVxpM4vGa_VPQ6Y0XBfRsNFb5d4zgr4ZDZSCtzM6DTorVVCiz9U7VtY9q_gx1HlbBbzX3FD6JH5MgLsilgS7k0qoW8mza6WuaSSXef5wK4VCpLcFfSIjC-fSeRA/w400-h225/dt.png" width="400" /></a></div><br /><p><br /></p><p>3. The latest is <a href="https://docs.microsoft.com/en-us/windows/wsl/tutorials/gui-apps?ranMID=24542&ranEAID=kXQk6*ivFEQ&ranSiteID=kXQk6.ivFEQ-hBQkOeKeYKqDJ4zG4fRzXg&epi=kXQk6.ivFEQ-hBQkOeKeYKqDJ4zG4fRzXg&irgwc=1&OCID=AID2200057_aff_7593_1243925&tduid=%28ir__ulohsfv22wkfqmqkkk0sohz3132xua3e0p3avlfr00%29%287593%29%281243925%29%28kXQk6.ivFEQ-hBQkOeKeYKqDJ4zG4fRzXg%29%28%29&irclickid=_ulohsfv22wkfqmqkkk0sohz3132xua3e0p3avlfr00">WSLg</a> the GUI for Linux in Windows and it makes it possible to run directly Linux graphical apps. But you need to registers for the insider program and install windows developer version. It is to be expected that in fall with a new windows update WSLg will be implemented. </p><p><b>Microsoft Linux</b></p><p>Microsoft own Linux version-CBL(<b>Common Based Linux-Mariner</b>). To install Microsoft Linux you can <a href="https://blog.jreypo.io/2021/07/09/a-look-into-cbl-mariner-microsoft-internal-linux-distribution/">download</a> the distribution and transform it into an ISO. To the get the feeling run it in a virtual machine. It comes not with desktop and GUI. CBL-Mariner is the Linux kernel used for running other Linux distributions</p><p><br /></p><p><b>What is next?</b></p><p>Yes the cold war is over and peace broke out between Microsoft and Linux. Microsoft is definitely embracing Linux and incorporating it in windows. And also Microsoft is heavily involved in the development of open source software since it acquired Github. But it is not to be expected that Windows will be replaced by Linux. There is too much invested in other related Windows software to start a transition like this. But as a user you could run smoothly Linux apps.</p><p>However, now I have a Microsoft Linux distribution (CBL-Mariner) and I can run Linux apps graphical in Windows, and start Windows apps from the Linux prompt. Nice but so what…. ? I am not a developer. And as user I prefer to run either Linux app or Windows apps, avoiding not the get mixed up. At the end of the day it is still running Linux in Windows in container. For the moment I stick to Linux(Ubuntu or Mint), which both give the ultimate control over the machines and the installed software.</p><p> </p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-59634359240033295752021-07-15T04:49:00.000-07:002021-07-15T04:49:29.812-07:00DATA JOURNALISM 2.0<p><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><b>Version 1.0</b></span></span></p><p><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">Analyzing and visualizing a table with figures for an article in a newspaper is not exceptional anymore. Take for example local taxes per municipality. Once you have </span>downloaded<span style="font-size: 12pt;"> the figures in a spreadsheet is not so difficult to to notice </span>which<span style="font-size: 12pt;"> of the local taxes generates the highest income for municipalities. A simple bar graph will do; or platting the tax income per municipality on a map will draw attention to the most expensive </span>municipalities<span style="font-size: 12pt;">. Her are two examples made by Flourish about taxation for garbage collection in municipalities in the province of Gelderland. A bar graph: </span></span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="https://public.flourish.studio/visualisation/5152134/">https://public.flourish.studio/visualisation/5152134/</a></u></span></span><span style="font-family: "Liberation Serif", serif; font-size: 12pt;"> and a map: </span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="https://public.flourish.studio/visualisation/5152371/">https://public.flourish.studio/visualisation/5152371/</a></u></span></span><span style="font-family: "Liberation Serif", serif; font-size: 12pt;"> . Her is a dashboard made in Tableau: </span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="https://public.tableau.com/app/profile/verweijpjc/viz/reiniging/Dashboard1">https://public.tableau.com/app/profile/verweijpjc/viz/reiniging/Dashboard1</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Sometimes the data provider makes downloading data easy (</span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2021/04/r-data-journalism-helpers.html">http://d3-media.blogspot.com/2021/04/r-data-journalism-helpers.html</a></u></span></span><span style="font-size: 12pt;"> ), bit often also provides analysis and visualisation(</span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://www.cbs.nl/nl-nl/nieuws/2021/04/gemeenten-begroten-11-3-miljard-euro-aan-heffingen-in-2021">https://www.cbs.nl/nl-nl/nieuws/2021/04/gemeenten-begroten-11-3-miljard-euro-aan-heffingen-in-2021</a></u></span></span><span style="font-size: 12pt;"> ).</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Here is the reporting of a local/regional newspaper about the taxes: <span style="color: navy;"><span lang="zxx"><u><a href="https://www.gelderlander.nl/arnhem-e-o/kaart-deze-gemeenten-zijn-het-duurst-om-in-te-wonen~a217736c/">https://www.gelderlander.nl/arnhem-e-o/kaart-deze-gemeenten-zijn-het-duurst-om-in-te-wonen~a217736c/</a></u></span></span></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: "Liberation Serif", serif; font-size: 12pt;">This is data journalism 1.0 and it is not the rocket science anymore it looked like 25 years ago. Data journalism 1.0 is almost 25 years old and the original beta version .0 is more tha 50 year old.(</span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2018/07/new-steps-in-data-journalism.html">http://d3-media.blogspot.com/2018/07/new-steps-in-data-journalism.html</a></u></span></span><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"> ) A lot has been changed, most important is the tools are </span>more<span style="font-size: 12pt;"> </span>easy<span style="font-size: 12pt;"> to handle and require less skill and training. Data from a web page for example can directly imported in excel for example and visualizing based on a template from Flourish for example is almost standard procedure for journalists.</span></span></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><b>Version 2.0</b></span></span></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">On the other hand data software is developing fast. Data science is creating more software for </span>analyzing<span style="font-size: 12pt;"> data. Interesting for application in journalism is software generally known as Artificial Intelligence(AI) or Machine Learning(ML). You don’t need special machines for running those software, nor do you have to pay </span>huge<span style="font-size: 12pt;"> amounts for the use. A good laptop with a fast processor enough memory and a nice </span>video device<span style="font-size: 12pt;"> will do to run the software,which comes in two favors: R or Python. Skipping the discussion which is best, the difference in general is that both are capable of analyzing data; Python is a full programming language and R is more </span>focused<span style="font-size: 12pt;"> on statistics. I work mostly with R (</span></span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2014/04/vijf-redenen-om-r-te-gebruiken-in-data.html">http://d3-media.blogspot.com/2014/04/vijf-redenen-om-r-te-gebruiken-in-data.html</a></u></span></span><span style="font-family: "Liberation Serif", serif; font-size: 12pt;"> ), running on a Linux operating system(OS)(</span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2011/09/linux-voor-journalisten.html">http://d3-media.blogspot.com/2011/09/linux-voor-journalisten.html</a></u></span></span><span style="font-family: "Liberation Serif", serif; font-size: 12pt;"> ). But Windows or Apple will also work.</span></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: "Liberation Serif", serif; font-size: 12pt;">R has a steep learning curve. Here is a howto start: </span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/03/learning-r-for-data-journalists.html">http://d3-media.blogspot.com/2019/03/learning-r-for-data-journalists.html</a></u></span></span><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"> There is no graphical user </span>interface<span style="font-size: 12pt;">(GUI), so you work from a terminal typing in commands or merge a set of command into a small program. R has libraries for special job, and one set of libraries is dedicated to ML AI and or ML has lots of application.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Here is an example analyzing a dateset of municipalities in NL . I will use this data set also for explaining Machine learning. This example shows a standard analysis of the data in R;</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: navy;"><span lang="zxx"><u><a href="https://www.kaggle.com/peterverweij/gemeente-test">https://www.kaggle.com/peterverweij/gemeente-test</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">This example is shown in Kaggle; more about this interface: <span style="color: navy;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/02/data-journalists-what-do-you-know-about.html">http://d3-media.blogspot.com/2019/02/data-journalists-what-do-you-know-about.html</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span lang="zxx"><b>Machine Learning</b></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">ML has for data journalism has various area’s for implementation or application:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Automated content production or robot journalism (<span style="color: navy;"><span lang="zxx"><u><a href="https://memeburn.com/2014/03/what-a-californian-earthquake-can-teach-us-about-the-future-of-journalism/">https://memeburn.com/2014/03/what-a-californian-earthquake-can-teach-us-about-the-future-of-journalism/</a></u></span></span> ) is one of them which drawing at the moment much attention. Another area is content optimalization: optimizing the content for a specific user.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">For data journalism the second area data mining is the most interesting. The following chart gives an overview of the possibilities:</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt-Fc1_pzNawET0by7Swz8F64qC6UT7XwyAk4oxZ-GgjdCqPgYZ4VUpfw3fdVWFdm0MBhzAKu7yNVZ64B5KCXLVawSo4fR6BhqNZW8D0hbEN_PVgdmJyMEKyftVQxe1MxFARQhsufU6tk/s585/trade.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="585" data-original-width="441" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt-Fc1_pzNawET0by7Swz8F64qC6UT7XwyAk4oxZ-GgjdCqPgYZ4VUpfw3fdVWFdm0MBhzAKu7yNVZ64B5KCXLVawSo4fR6BhqNZW8D0hbEN_PVgdmJyMEKyftVQxe1MxFARQhsufU6tk/s320/trade.png" /></a></div><br /><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">((chart from: <span style="color: maroon;"><span lang="zxx"><u><a href="https://nl.mathworks.com/discovery/machine-learning.html">https://nl.mathworks.com/discovery/machine-learning.html</a></u></span></span> )</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">I will not discuss all these programs in detail.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">First I will discuss the basic idea of machine learning and second I will show some examples. On data set based on data about dutch municipalities I will use to show: linear regression; decision trees and neural networks. An other dataset based on twitter I will use for showing K means.</p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">The core of AI or ML is a black box: you give the box data </span>input<span style="font-size: 12pt;">, next the box starts doing </span>complicated<span style="font-size: 12pt;"> statistical operations (the algorithm), which you fine tune with various option, and finally you have the output. Take for example the Titanic, there is </span>complete<span style="font-size: 12pt;"> </span>data set<span style="font-size: 12pt;"> about the passengers. With ML it is possible to </span>calculate<span style="font-size: 12pt;"> your changes to survive the </span>shipwreck<span style="font-size: 12pt;">. Or to predict whether the mayor of a dutch municipality will be male or female.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">For using the Ml you don’t need exact knowledge about the black box, the algorithm itself. That is for the coders or data scientist how design this software. The basic question for your research is what do you want to do?</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">From the chart we see that there are two entries: supervised and unsupervised learning. </span><b style="font-size: 12pt;">Supervised learning </b><span style="font-size: 12pt;">means that model(algorithm) which predicts the gender of the mayor of the changes on survival, must be trained on a known data set. When the model is trained, and you know then the margins of error, it can be apllied to complete data set to the predictions.</span></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-family: "Liberation Serif", serif; font-size: 12pt;">In</span><b style="font-family: "Liberation Serif", serif; font-size: 12pt;"> unsupervised learning </b><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">the data is immediately read into the an algorithm which makes the best of it. For example, analyzing tweets from two populist members of the Dutch house of </span>representatives<span style="font-size: 12pt;"> (Wilders and Baudet) show that their tweets have different clusters. Meaning they are both right wing populist but </span>focus<span style="font-size: 12pt;"> on different issues. Creating the clusters is a mathematical operation with no control data.</span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Under supervised learning we have to areas: classification and regression.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Unsupervised learning focuses on clustering.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Examples of machine learning</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>0. Kaggle</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">I will use Google Kaggle interface to show the code of the various algorithms. Here is a general intro to kaggle.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">- <b>machine learning in kaggle</b>: <span style="color: navy;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/03/kaggle-is-there-data-journalism-in.html">http://d3-media.blogspot.com/2019/03/kaggle-is-there-data-journalism-in.html</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>1. Regression </b>means that in a simple case with two variables, the variation of one variable is related to the variation and the other variable. Average income in a city for example will relate to the average price of houses; the relative rich cities houses will be more expensive. This relationship between the variables based on the variation they have in common can be expressed in a number: correlation. Or by a line a in scatter diagram, that is linear model, commonly called the trend(line)</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">When the number of variables increases the prediction of the outcome of one variable becomes more complicated. An the we have to use an other algorithm or model for the prediction. With <b>decision trees</b> it is possible to predict the gender of a mayor based om population, income, house price and unemployment; or predict the political party of the mayor based on the same variables. Here the predicted outcome is a category, nominal level of measurement</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Neural networks</b> make it possible to estimate the value, the quantity of a variable, ratio level of measurement. For example an estimation of the income of city, based on the other variables.</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">- <b>regression:</b> <b>decision trees - random forrest:</b> <span style="color: navy;"><span lang="zxx"><u><a href="https://www.kaggle.com/peterverweij/prediction-simple-machine-learning">https://www.kaggle.com/peterverweij/prediction-simple-machine-learning</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">- <b>regression: decision trees with rpart</b>: <span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><a href="https://www.kaggle.com/peterverweij/gender-rpart-predict-gem">https://www.kaggle.com/peterverweij/gender-rpart-predict-gem</a></span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">- <b>regression: neural networks with tensor flow</b>: <span style="color: navy;"><span lang="zxx"><u><a href="https://www.kaggle.com/peterverweij/kernel-tensorflow-woz">https://www.kaggle.com/peterverweij/kernel-tensorflow-woz</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>2. Clustering</b></p><p align="left" class="western" style="direction: ltr; line-height: 16px; margin-bottom: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: #292929;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;">The goal of clustering is to group or cluster observations that have similar characteristics, This is an example of </span>unsupervised<span style="font-size: 12pt;"> learning, so we have no control or check. Inspection of the output is the test. In the example below we regroup municipalities.</span></span></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: navy;"><span lang="zxx"><span style="color: #000005;"><b>- clustering:</b></span></span></span><span style="color: navy;"><span lang="zxx"><span style="color: #000005;"> </span></span></span><span style="color: navy;"><span lang="zxx"></span></span><span style="color: navy;"><span lang="zxx"><u><a href="https://www.kaggle.com/peterverweij/clustering-gemeentedata-using-kmeans">https://www.kaggle.com/peterverweij/clustering-gemeentedata-using-kmeans</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>3. Classification</b>- <b>classification with voyant using nearest neighbor </b>:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: navy;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2020/03/two-faces-of-twitter-populism-in.html">http://d3-media.blogspot.com/2020/03/two-faces-of-twitter-populism-in.html</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b>Literature</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">More background and detail on machine learning for data journalists:</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: maroon;"><span lang="zxx"><u><a href="https://towardsdatascience.com/10-machine-learning-methods-that-every-data-scientist-should-know-3cc96e0eeee9">https://towardsdatascience.com/10-machine-learning-methods-that-every-data-scientist-should-know-3cc96e0eeee9</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">and</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: maroon;"><span lang="zxx"><u><a href="https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/">https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/</a></u></span></span> )</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">and</p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="color: navy;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/07/journalism-as-algorithm.html">http://d3-media.blogspot.com/2019/07/journalism-as-algorithm.html</a></u></span></span> review of<b> </b><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><b>Automating the News. How Algorithms Are Rewriting the Media. </b></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;">By </span><span style="color: navy;"><span lang="zxx"><a href="http://www.hup.harvard.edu/results-list.php?author=46460"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="text-decoration-line: none;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><i>Nicholas Diakopoulos</i></span></span></span></span></span></a></span></span><span style="color: navy;"><span lang="zxx"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="font-size: 12pt;"></span></span></span></span></span></p><ol><li><h1 align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", sans-serif; margin-bottom: 0.08in; margin-top: 0in;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-weight: normal;">ISBN 9780674976986 ; </span></span></span></span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal;"><span style="color: black;"><span style="font-family: Liberation Serif, serif;"><span style="font-size: 12pt;"><span style="font-weight: normal;">Harvard University Press 2019</span></span></span></span></span></h1></li></ol>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com0tag:blogger.com,1999:blog-5858897260527141060.post-48733113910158990942021-04-27T02:03:00.001-07:002021-04-27T02:04:09.753-07:00R Data Journalism Helpers <p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">R is an interesting platform that has found its way into data journalism. Once installed it is ready to use. However R is open source and is constantly developing. New packages are released, new ideas for analysis are discussed, for example at <a href="https://www.r-bloggers.com/">https://www.r-bloggers.com/</a> .<b></b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b style="font-size: 12pt;">1. </b><b style="font-size: 12pt;">Get your data with an R api</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">R is a very important statistical platform for data scientist. Also in data journalism R has found applications and is used for example by journalists of the Economist or the BBC. (</span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/02/blog-post.html">http://d3-media.blogspot.com/2019/02/blog-post.html</a></u></span></span><span style="font-size: 12pt;"> ). Getting your data into R from let’s say a database puts you on a kind of detour. You make a selection of the data and download the set as .csv or .xls, from there you can import your data into R.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Direct access and downloading the data in R is now often an option. Database like the World Bank offer an R package called </span><b style="font-size: 12pt;">‘wbstats’ ; </b><span style="font-size: 12pt;">more</span><b style="font-size: 12pt;"> </b><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://econandrew.github.io/wdi-api-R-gettingstarted/using-r-to-access-the-world-bank-api.html">https://econandrew.github.io/wdi-api-R-gettingstarted/using-r-to-access-the-world-bank-api.html</a></u></span></span><span style="font-size: 12pt;"> ; the IMF use </span><b style="font-size: 12pt;">‘imfr’; </b><span style="font-size: 12pt;">more </span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://meshry.com/blog/downloading-data-from-the-imf-api-using-r/">https://meshry.com/blog/downloading-data-from-the-imf-api-using-r/</a></u></span></span><span style="font-size: 12pt;"> ). For poverty data the World Bank uses </span><b style="font-size: 12pt;">‘povcalnetR’; </b><span style="font-size: 12pt;">more</span><b style="font-size: 12pt;"> </b><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://github.com/worldbank/povcalnetR">https://github.com/worldbank/povcalnetR</a></u></span></span><span style="font-size: 12pt;"> ). This is a great help for not only for data scientists but also journalist who are reporting for example about poverty and development in Sub Sahara Africa.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">In the Netherlands, the Central Bureau of Statistics, has an interesting R api to collect data: ‘cbsodataR’. Here is an manual: </span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://www.cbs.nl/nl-nl/onze-diensten/open-data/statline-als-open-data/snelstartgids">https://www.cbs.nl/nl-nl/onze-diensten/open-data/statline-als-open-data/snelstartgids</a></u></span></span><span style="font-size: 12pt;"> , For making maps the have the following handout: </span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://www.cbs.nl/nl-nl/onze-diensten/open-data/statline-als-open-data/cartografie">https://www.cbs.nl/nl-nl/onze-diensten/open-data/statline-als-open-data/cartografie</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><b style="font-size: 12pt;">2. </b><b style="font-size: 12pt;">Scrapping and printing in R</b></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Scrapping data from a webpage is generally not so difficult when employing Excel for analysis. For example if there is atable on the webpage, you could directly import the table in excel, using data and then from the web; paste the url and done. Outwit Hub is a nice programme for scraping.Table capture in chrome is an other posibility. Capture the dta in .csv and then import in Excel or in R.</span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><span style="font-size: 12pt;">Direct scraping data in R is more difficult, using package ‘rvest’, you have to dive deep into the .html code . More: </span><span style="color: navy; font-size: 12pt;"><span lang="zxx"><u><a href="https://www.dataquest.io/blog/web-scraping-in-r-rvest/">https://www.dataquest.io/blog/web-scraping-in-r-rvest/</a></u></span></span></p><p><span style="font-family: "Liberation Serif", serif; font-size: 12pt;">Now there is a package in R for scarping using a GUI calles </span><b style="font-family: "Liberation Serif", serif; font-size: 12pt;">‘datapasta’</b><span style="font-family: "Liberation Serif", serif; font-size: 12pt;">; scraping a table from the web using R becomes a piece of cake. Here is a tutorial: </span><span style="color: navy; font-family: "Liberation Serif", serif; font-size: 12pt;"><span lang="zxx"><u><a href="https://milesmcbain.github.io/datapasta/articles/how-to-datapasta.html">https://milesmcbain.github.io/datapasta/articles/how-to-datapasta.html</a></u></span></span> </p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;">Making a plot with ggplot can also be time consuming because of the wide range on possibilities. A GUI for printing with ggplot is very helpful. I use a package called <b>‘esquisse’</b>. Here are my experiences: <span style="color: navy;"><span lang="zxx"><u><a href="http://d3-media.blogspot.com/2019/02/gui-for-r-ggplot.html">http://d3-media.blogspot.com/2019/02/gui-for-r-ggplot.html</a></u></span></span></p><p align="left" class="western" style="direction: ltr; font-family: "Liberation Serif", serif; font-size: 12pt; line-height: 16px; margin-bottom: 0in;"><br /></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.comtag:blogger.com,1999:blog-5858897260527141060.post-67095040253839530352021-04-26T07:42:00.003-07:002021-04-26T07:55:10.803-07:00Data Journalism on the Samsung Tablet with Termux, Ubuntu and R<p>Can I turn my Tablet into a real work station? Apps are nice for small jobs, reading mail and bit of browsing. But for work…Office is a nice app and gives you all the standard Office tools like Word and Excel, lite versions of course, but working OK. But how about doing statistics with R? No R for Android so you need Linux environment. Installing Linux in a box in Android is possible with for example Linux Deploy app. However you need to root the machine. Generally I have no problem with that: I want full control on all machines. Rooting a machine has a consequence: losing the warrant. An secondly is a working root for this specific machine with that Android version available. And finally you run the risk in case of failure to turn you machine in a brick.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAM0Ndj7cQux-iKHcf-GlfnG2rJGHQ5V7-j-UPWI7sI-H3BFGCEzFEuXqHwwxL7TvfBpysYlxbVZOQffEyaQdYvVVb8iFXY2BqIz3dXj5LzcDFJ4x670hTMSStAFvbtxpl169z3LdkAk/s2048/Screenshot_20210425-142201_Chrome.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1281" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAM0Ndj7cQux-iKHcf-GlfnG2rJGHQ5V7-j-UPWI7sI-H3BFGCEzFEuXqHwwxL7TvfBpysYlxbVZOQffEyaQdYvVVb8iFXY2BqIz3dXj5LzcDFJ4x670hTMSStAFvbtxpl169z3LdkAk/s320/Screenshot_20210425-142201_Chrome.jpg" width="320" /></a></div><p></p><a name='more'></a><b><br /></b><br /><p></p><p><br /></p><p><b>Termux</b></p><p>No rooting at the moment, but there is a nice solution available using Termux. Termux is an Android terminal emulator and Linux environment application that works directly with no rooting or setup required. A minimal base system is installed automatically, additional packages are available using the package manager. More on Termux, read the wiki: <a href="https://wiki.termux.com/wiki/Main_Page ">https://wiki.termux.com/wiki/Main_Page </a>.</p><p>How to do an install for R is finding an example or discussion on the web. Here is a nice one: <a href="https://stackoverflow.com/questions/36968411/installing-r-on-android ">https://stackoverflow.com/questions/36968411/installing-r-on-android </a>. I used the second option; the ‘ browser (jupyter) approach’.</p><br /><p><br /></p><p><b>The browser (jupyter) approach</b></p><p><b>Termux</b></p><p> • install termux (google play) (As termux didn't run jupyter-IRkernel, I had to install ubuntu)</p><p> • install ubuntu in termux (MFDGaming or Neo-Oli).</p><p><b>Installation steps for MFDGaming </b></p><p> 1. Update termux: apt-get update && apt-get upgrade -y</p><p> 2. Install wget: apt-get install wget -yfor MFD</p><p> 3. Install proot: apt-get install proot -y</p><p> 4. Install git: apt-get install git -y</p><p> 5. Go to HOME folder: cd ~</p><p> 6. Download script: git clone https://github.com/MFDGaming/ubuntu-in-termux.git</p><p> 7. Go to script folder: cd ubuntu-in-termux</p><p> 8. Give execution permission: chmod +x ubuntu.sh</p><p> 9. Run the script: ./ubuntu.sh -y</p><p> 10. Now just start ubuntu: ./startubuntu.sh</p><p><br /></p><p> <b> • run this in ubuntu:</b></p><p><span> </span>apt update && apt upgrade</p><p> apt-get install apt-transport-https software-properties-common</p><p><br /></p><p><b> # add R repository</b></p><p> add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu disco-cran35/'</p><p> apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9</p><p> apt update && apt upgrade</p><p> </p><p> apt install nodejs</p><p> apt install npm # absence of this causes non-editable cells in jupyter</p><p> apt install gfortran</p><p> apt install liblapack-dev</p><p> apt install libopenblas-dev</p><p> </p><p> <b> # install R</b></p><p> apt install r-base-dev # or r-base or r-base-core</p><p> </p><p> <b># install python package manager</b></p><p> apt-get install python3-pip</p><p><br /></p><p> <b> # install jupyter</b></p><p> pip3 install jupyterlab</p><p><br /></p><p><b> # open R</b></p><p> R </p><p> <b> • Inside R:</b></p><p> # Package necessary for jupyter</p><p> install.packages("IRkernel")</p><p> IRkernel::installspec()</p><p> q()</p><p> <b>• In ubuntu, run the jupyter lab</b></p><p> jupyter lab --allow-root</p><p> # as you will see you have to paste something like this in your internet browser</p><p> http://127.0.0.1:8889/?token=1a0f9b3d472d155bb4d46df119b937646d6192f569c9d635 </p><p><br /></p><p>Well it takes some time, but in the end it works. The S7 ready for some data journalism analysis in R.</p><p>I have Ubuntu running in terminal mode and use the command line to for jobs. And R running in terminal mode as well. More on R: <a href="https://www.r-project.org/ ">https://www.r-project.org/ </a>.The R console has a steap learning curve, however Rstudio needs root access. An alternative to this whole operation is to install a Rstudio server on an other machine and then login from the tablet.</p><p>This script goes one step further: it installs a Jupyter notebook to run R or Python code. More on Jupyter: <a href="https://jupyter.org/documentation ">https://jupyter.org/documentation </a>.</p><p>Here are some screenshots:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikXfn58ANVC2dEJ10O5rKwLjpqaksp1FRtxB1jkSoDqbN15atFshYQfSi1HhwDk6r-Up8NTNay6E1Y9o9xWqsV7b3IbZgf9kUdisMBJLDAJuCraOz7VDcTX7P1H9Cg-O19MrA3kD0ObKA/s2048/Screenshot_20210424-225109_Termux.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1281" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikXfn58ANVC2dEJ10O5rKwLjpqaksp1FRtxB1jkSoDqbN15atFshYQfSi1HhwDk6r-Up8NTNay6E1Y9o9xWqsV7b3IbZgf9kUdisMBJLDAJuCraOz7VDcTX7P1H9Cg-O19MrA3kD0ObKA/s320/Screenshot_20210424-225109_Termux.jpg" width="320" /></a></div><br /><p></p>d3-mediahttp://www.blogger.com/profile/05686982073420991218noreply@blogger.com