All posts by Edward M

Most popular programming languages?

There are many surveys of programming language popularity. Many of the popular surveys have problems with the survey methodology such that they likely produce erroneous estimates of programming language popularity. For example, one survey looks at how many times each programming language is looked up on Internet search systems.

The chart, below, comes from GitHub and bases popularity on the number of “pull requests” that are made to the GitHub software repository. Using this method, JavaScript is the most popular programming language, followed by Python, Java, Ruby and PHP.

Python has become a standard for use by non-computer science students. Whether your college studies be in mechanical engineering or geology, there is a good chance you will learn Python for data analysis projects.

Java is now an old programming language, but still used especially for Android programming. It’s popularity for desktop applications is starting to diminish.

Ruby become popular about ten years ago. Ruby is based on a concept of “frameworks” that provide pre-made program skeletons which you adapt to make your own application. Ruby is very popular for quickly creating web-based applications.

PHP pre-dates Ruby – PHP is a script language that runs on the server side of a web application. PHP is very easy to learn and couples easily with MySQL databases, making the combination a great solution for web-based, database-backed applications.

Finally we get to the “C” derived languages including C, C++ and Microsoft’s cousin C# (a very powerful language with great development tools.). C dates back to about 1970 or so.

C++ was developed in the 1980s and added object oriented programming to C and has since expanded in many ways. C and C++ are commonly “compiled” into machine instructions for each CPU and are used for high performance applications, including operating systems, video games and media applications.

C# has features resembling Java and C++ – but in a more modern design. In some ways, C# is where some wish C++ had gone

Capture

appinventor.pevest.com has moved to learn2c.org

In the spring of 2017, this web site – appinventor.pevest.com – was moved to https://learn2c.org (or an alternate address https://appinventorplus.wordpress.com/)

The move was made for technical and practical reasons. Visit https://learn2c.org for updates made through out 2017 and into 2018.


However, things have changed since then and as of the spring of 2018, this web site may return to here. If that happens, the plan is for the new learn2c.org address to point here as well.

Why return?

Many of the technical issues that caused to migrate a year ago have gone away or been solved.

The learn2c.org web site is hosted at WordPress.com and it appears Google down ranks WordPress web sites in search results. This old appinventor.pevest.com site – even without having been updated in a year, continues to receive many times more visits as a result of searches than does the WordPress.com hosted web site!

Finally, WordPress raised their hosting price last year.

 

Is your Android battery life too short? Some ideas that might fix it

Periodically, my  Nexus 5 phone’s battery life is terrible. On good days, if I don’t use my phone, the battery discharge rate is slow – many hours later, the battery meter says there’s still over 90% of the battery charge remaining. But when it is bad, my unused phone can have its battery drain in 8 hours.

I have found two things to improve improve the battery life on my Google Android Nexus 5.

  • One is to clear the system cache partition – this cache setting is not accessible from Settings.
  • The other is to replace the Android launcher with Nova Launcher, available for free in the Google Play store.

How to Clear the System Cache Partition

To clear the system cache you need to enter a hidden Android start up menu, usually by starting your phone while pressing the power and volume control keys simultaneously. For specific instructions, see this explanation for the Nexus 5 (it might work on your phone too – this does work on my Nexus 5). Another list from a mobile phone service describes how to do this for other phones (I have not tested any of those).

Every few months, the battery life has gotten really bad. But after clearing the system cache partition, the phone returns to normal performance. I hope this works for you.

I noticed this might be related to my installing lots of apps on the phone, over and over again. Some days I’ll install my test app 10 or 20 or 30 or more times. After a few weeks of doing this every day, battery life problems develop. I clear the system cache partition and the phone is fine again.

You can learn more about the Android system partitions by reading this article.

Part 2: Storing and accessing user interface components as variables

Part 1 showed how to reference and store user interface components as a variable. That tutorial used this method to easily change the background colors of six buttons on screen.

In Part 2, we use this technique to simplify a past tutorial about using a Bluetooth link between and Android device and two Arduino devices.

Continue reading Part 2: Storing and accessing user interface components as variables

Security: http versus https and access to the appinventor.pevest.com web site

As you may know, http is the old way to access a web site. https is the newer secure method that encrypts data sent to and from the web site.

Last year, Google announced it would rank search results such that web sites accessed via https rank higher than those using http.

This web page has been using http – which is okay since there is nothing secret or controversial about the content here.

However, on 7 March 2017, Firefox will launch an update that will issue a security warning when visiting web sites using http.

Consequently, we need to switch our web sites from http to https which involves paying a fee to buy an SSL security certificate and re-configuring software and servers.

I have successfully converted my coldstreams.com web site to https as a test for the conversion. So far everything looks good.

I will eventually convert the appinventor.pevest.com web site to use https also. I do not have a date for that – it could be next week or the end of the month.  When I do the conversion, their might be a temporary period where you receive a security warning about accessing the web site, depending on how I do that update.

Part 1: Storing and accessing user interface components as variables

App Inventor programmers routinely store values, such as numbers or text strings (“Hello!”) in variables. For example,

stores the numeric value 6 in to the variable TOTALBUTTONS.

To illustrate by example, here is a global variable named SpecialButton. We can initialize it to anything we want at this point.

Next, inside our app, our blocks code assigns Button1 to the variable SpecialButton. SpecialButton now holds a reference to the actual user interface control Button1.

Since SpecialButton is a variable and not an actual button, we cannot directly use a SpecialButton.Click handler but we can use a feature of App Inventor to do the same thing in a different way. We will see how to do this in this a bit later.

You can store any App Inventor components – a Clock, a Bluetooth device – any component, in a variable.

Why would you want to do that? We will see in the example in this lesson.

This tutorial is in both written form and as an online video.

Continue reading Part 1: Storing and accessing user interface components as variables

Short update

Just a quick update – I’ve been busy the past several weeks and did not get to complete the tutorials I had thought I would have done by now!

There are several topics I hope to cover soon including how you can store user interface components in App Inventor Lists. Say what?

Yes, you can create a list that contains, say, all the buttons you have on the screen. Why would you want to do that? Well you could use a simple for loop block to change the color of all the buttons simultaneously! And much more.

Another idea I’d like to implement is to modify my GPS app and have it send latitude and longitude coordinates to another phone using SMS messaging (instead of Firebase, as was done in that original version).

I’ve also done a little experimenting with creating Youtube video tutorials – but I have not posted any of these yet. I want them to have the right “feel” and quality before I put them online so I will continue to experiment with some ideas until I get them looking right.

Also, my apologies for not being on the Facebook group page very much. I’ll try to do better. Would you believe I did not even log in to Facebook for two weeks? My personal Facebook news feed (from friends!) has been overrun with angry and hostile political posts that turn off many people, including me. I just lost interest in logging into Facebook only to see a bunch of angry people expressing outrage every day.

I’ll try to better and get logged in this week and caught up. Lots of heavy rain the next few days so what else to do anyway?