Low-Code Software Development

What is Low-Code? – by Sophie Becker – Technically (substack.com)

Read the linked article.

Way back in my college days, we learned to program in everything from assembly language up through “high level” programming languages. Some of us even learned to enter boot strap code using front panel switches to enter machine code as bit patterns on a console!

And then the hard code folks who said their programming language was solder (author Terry Pratchett, for example, or Bob Pease, or Steve Ciarcia).

Today, programming is simplified – tools like App Inventor illustrate this by using “drag and drop” programming methods, assembling programs from components, rather than typing in programing instructions.

Low Code does not necessarily divorce oneself from understanding programming concepts – but it enables the rapid construction of many functions – from user interfaces to underlying algorithms.

AI-based systems introduce a new level of automated code assembly. Go to Chat GPT, for example, and ask it to implement a sorting algorithm in Python – and sure enough, it will generates the source code in Python.

Two or three decades ago, the typical output of a software developer was likely to be a few hundred lines of code per day (at best, after integration, testing, and future modifications before final ship). New tools likely increase this by an order of magnitude and more!

Android hackers writing malware attack apps using App Inventor

There is no problem with using App Inventor to write your own apps and share them with others. The problem is that App Inventor makes it easy to write any app – and malware authors have begun to use App Inventor to create apps that are malware and might do bad things.

“App Inventor doesn’t give malicious apps any special powers nor access to exotic exploits to attack your phone. But it does make the production of Trojanized apps enormously easy. With only a basic understanding of Android programming, an attacker can churn out tons of malicious apps. More apps means more confusion, and more opportunities for attack.”

Source: Mobile Threat Monday: Android Attackers Use App Inventor for Evil | PCMag

2/3rds of programming projects expected to use “low code” tools by 2025

App Inventor is a “low code”, visual software development tool. Such “drag and drop” programming tools enable non-programmers (and programmers) to create many types of applications without the details of traditional programming code.

This leads to an important issue – will less trained/less experienced programmers inadvertently introduce security problems in their applications?

Gartner predicts that by the end of 2025, over 65% of development projects will use low-code builders. The field of low-code continues to expand. But what security implications does low-code introduce? Low-code refers to tools that enable application construction using visual programming models. Adopting drag-and-drop components instead of traditional code, no-code and low-code platforms enables non-technical folks to construct their own workflows without as much help from IT. Yet, handing power to citizen developers with less security training can be risky. Plus, low-code platforms may hold compromised propriety libraries or leverage APIs that may unknowingly expose sensitive data to the outside world. There’s also the possibility that low-code could increase shadow IT if not governed well.

How to Mitigate Low-Code Security Risks

Access to example source code files may be offline – December 2019

My Internet service provider informed its customers this morning that they will be discontinuing their web site hosting and email services in February of 2020. This means my appinventor.pevest.com web site, which has some of the example source code files, needs to be transferred to a new web service. During that transfer, access to some of the source files will be offline for a bit.

This will especially affect access to the sample source files featured in my App Inventor e-books.

I have 5 web sites that I need to move to a new server and the transfer process is somewhat complex. I do not yet know when this transfer will take place.

This post is an advance warning that this will be happening and hopefully file access will not be offline for long – when the transfer occurs. At this time, I have no date yet for when this process will be undertaken.

Source code downlinks fixed

Two readers alerted me to problems downloading the source code on the Downloads page on this web site, and the source code for my book on App Inventor graphics and animation.

A software update on the server appears to have changed how some default file directories were appended to filenames.

The problem appears to now be fixed. Thank you very much for letting me know of this problem  – let me know in comments if you encounter any further problems with the downloads.

Ed

Apologies for lack of updates

Sorry for the lack of updates and posts to this web site. I have had a lot going on – and right now, we are in process of moving across the state. Eventually things will be settled down. I completed several interesting App Inventor projects but have lacked time to get them posted here. Hang in there – I intend to be back!

Learn2c.org web site has a new, cleaner and simpler look

I have redesigned the Learn2c.org web site to feature this clean and simple look, with less clutter than I had on the prior design. Do not be alarmed – its the same web site as before!

The following is a cross-post from my older web site on App Inventor:

This web site – appinventor.pevest.com – is no longer the primary web site for our App Inventor tutorials. However, that web site will remain there indefinitely as many people link to it, including search engines and my own e-books 🙂

The new, short and easy to remember URL is Learn2C.org as in “Learn 2 Code”

Unfortunately, for reasons I will not get into, it is not possible to integrate the two web sites together. So appinventor.pevest.com will remain “as is”, and Learn2C.org is the  primary focus point.

I am looking into having Learn2C automatically cross post to the appinventor.pevest.com web site but that has not yet been implemented. But I’d like to do that for those that already follow the appinventor.pevest.com web site.

My apologies for not doing a lot of updates during 2018. I have already written some new code examples (Bluetooth LE anyone?) and am working on more in that area. These tutorials will appear once I have completed the entire series of example programs. There are also other items in the works that I cannot talk about yet.

Google will be discontinuing Google Fusion Tables at end of 2019

Google created a cloud-based data base system called Fusion Tables. Later, support for Fusion Tables was added to App Inventor.

Google has sent out an email advising Fusion Tables users that they will be discontinuing Fusion Tables – literally, the database service will go away on 3 December 2019.

If you have used Fusion Tables, you will need to update the code to use a new data base system. You might consider third-party App Inventor-based development systems such as Appy Builder.

Hello,

Google Fusion Tables was launched almost nine years ago as a research project in Google Labs, later evolving into an experimental product. For a long time, it was one of the few free tools for easily visualizing large datasets, especially on a map. Since then, Google has developed several alternatives, providing deeper experiences in more specialized domains.

In order to continue focusing our efforts in these areas, we will be retiring Fusion Tables. We plan to turn down Fusion Tables and the Fusion Tables API on December 3, 2019. Embedded Fusion Tables visualizations — maps, charts, tables and cards — will also stop working that day. Maps using the Fusion Tables Layer in the Maps JavaScript API v3.37 will start to see errors in August 2019.

Here are some next steps to consider:

Learn about alternative toolsSeveral new Google tools have been developed over the years, and we encourage you to visit the Help Center to learn which ones fit your use-case.

Teams at Google have developed internal tools that can create powerful map visualizations. We are working to make some of these tools publicly available and will have more to share in the coming months—sign up to stay in touch.

Download your dataFilter by “type:table” to pull up a list of your tables in Google Drive. Download data from an individual table by following these instructions. If you have a lot of tables, we will make it easy to download all your data in one step via Google Takeoutstarting in March 2019.

Thank you for supporting Fusion Tables over the years. If you have feedback, visit the Fusion Tables Help Forum.

Sincerely,
The Google Fusion Tables Team

Calculating a square root value

A reader asked a question about how square roots can be calculated, referring to an example in my Volume 1 Introduction to App Inventor e-book. He was confused by the explanation of how it works – so I have written an expanded explanation of the method for calculating a square root of a number.

You could use the built in Math function to find the square root of a number – and generally that is what you should do. But if you would like to learn a method of calculating the square root of a number – then read on!

2,000 years ago, Greek mathematicians identified a method of finding approximate square roots. The method makes an initial guess of a square root (which is often not even close to the right value) and then repeats a sequence of dividing and averaging which gradually refines the initial guess into an accurate square root.  To find the square root of some number n, we set our initial guess to n (which we know is not correct), and then calculate an average of our guess with n divided by our guess.

To find the square root of 30, we initially guess the square root is 30 (which we know is wrong). We then take 30 and divide it by our guess, which in this case is 30. This gives us a value of 1. The average of our original number 30 and our divided value is 15.5. We select 15.5 as our new guess.

This little spreadsheet may help understand how the square root concept works.

To find the square root of 30, we initially guess the square root is 30 (which we know is wrong). We then take 30 and divide it by our initial guess, which is 30. This gives  a value of 1. The average of our original number 30 and 1 is 15.5. We select 15.5 as our new guess on the next row down in the Guess column.

Then we repeat this and take 30 divided by our new guess of 15.5. This gives us 1.93548. We average our 15.5 guess with our new value of 1.9458 giving us 8.717, which becomes our new guess on the next row down.

We repeat again using 8.717 as our new guess and divide 30 by 8.717, giving us 3.44. We average the 8.717 with 3.44 giving us 6.0795, use that as our next guess.

When do we stop this repeating cycle? We could repeat this a set number of times, say six, and then stop. But a better solution is to specify how many digits of accuracy we would like to have in our answer.

Let’s say that 5.4 is accurate enough for our purposes. We could stop as soon as our new guess is within 0.1 of our prior guess. In our spreadsheet above, our generated guesses are:

  • 15.5
  • 8.717742
  • 6.0795
  • 5.507058
  • 5.477306
  • 5.477226

As you can see, the correct answer has converged to 5.477 rather quickly. If we wanted an accuracy of just 1 digit to the right of the decimal point, we can stop once the difference between the current and previous guess is 0.1

The first digits of the last two guesses are the same 5.4 so we could stop with an accuracy of .1. In this particular calculation, we see that we are accurate to the thousandth’s place 5.477 as these values are no longer changing.

We stop the cycle when the difference between guesses becomes very small.

With our definition of small to 0.1, we stop at 5.4. If we set our definition of small difference to 0.001, then we stop at 5.477.

Here is some sample App Inventor code that calculates the square root. It fetches the number for which we find the square root from a user interface Text Box named txtDataEntry. We set NewValue (our initial guess) to this value. Then the code uses a while test loop to repeatedly do the calculation while the difference between our new guess and our previous guess is greater than 0.1 (you can change this to smaller values for greater accuracy).

This square root calculation repeats as long as the difference between our NewValue and OldValue are large.

As long as the difference remains large, the while test condition is “true”, and the code inside the while block continues to execute. However, once the difference becomes small, the test condition evaluates to “false” and the the execution of the “do” section stops. We have found our approximate square root.

The quick and easy way to write Android Apps