Making a GUI with Kivy

My senior design group is to create a radio simulator that will run on a Raspberry Pi with a 7" touchscreen. Last term, we collected information about the project and planned it. This term, we make it; my current responsibility is the GUI. We have chosen to use Kivy, which works very well with Python.

While I had looked a bit at Kivy last term, I only began working with it yesterday. Over the course of 11 hours, I used ScreenManager to make three Screen objects: start-up screen with two simulator choices, the linked screen for Simulator A , and the linked screen for Simulator B. The two simulators' graphics are in their respective screens' backgrounds and I have basic navigation button functionality.

In addition to Kivy's own Pong tutorial, I found the following videos by Brian MacD to be quite useful in setting up my ScreenManager and three Screens. The videos have also helped me get an understanding for using properties.

StackOverflow has been invaluable, too. Correctly setting background colors and images for Buttons is now possible for me and how to do it makes sense.

Taking a Course through Udemy

Toward the end of the past semester and through Christmas and New Year's, I purchased a couple of Udemy courses in response to some discount price campaigns. Everything I purchased is of a technical bent, such as VHDL or digital signal processing, with the possible exception of one on Excel 2013. At $10~12 for each course, I felt there was little to lose, but the direct out-of-pocket cost would add incentive. Most of the courses I chose were not offered at IUPUI or Ivy Tech Community College, at least not when I wanted to take them.

Udemy was not my first experience with online learning. I have used YouTube lectures, industrial firms' lectures and training videos, and Khan Academy. As an IUPUI student, I have unlimited access to courses, a few of which I have registered, one or two of which I have begun, and none of which I have completed. YouTube lessons have been good for specific topics, not for sustained study. With Lynda, I forget I have it once engineering classes start. When engineering courses get rolling, I lose the time for Lynda courses.

After logging into Udemy, I choose my course, which is currently Digital Signal Processing with MATLAB. This opens the Course Dashboard window with two functional columns. The course name is at the top left, beneath which is a column with, from top to bottom:

  1. A clickable area for the current lecture's video, which includes its name and the time remaining for the lecture.
  2. An overall course progress bar with a trophy at the end to dignify completion.
  3. A list of course section, inside each of which are the lectures. Each lecture is shown with its title (e.g., "Lecture 3: Convolution"), completion status, lecture length, and icons for whether you have taken notes or asked questions.

Exactly where you are in the course--what percentage you have completed--is very clear.

On the right are three options: Discussions, Announcements, and the number of students (currently 373). The Discussions are questions asked by students; replies are links to be clicked to read. To date, I have asked just two questions. The first, on a weekday, was answered by the next day, and was polite and clear. The second question, asked on a weekend, will perhaps take a bit longer. The Announcements come from the course author(s). Clicking on the number of students reveals a roster, and students can be clicked on to see what they choose to reveal about themselves.

When you choose a particular lecture, you get a window similar to that below, which shows the video lecture screen and the right column, which I will discuss below. At the top left of the video is the Course Dashboard button, which returns you there. In addition to the video's progress bar below it, moving the cursor over the screen brings up the three grey buttons that let you back up 15 seconds, play (or pause), and move ahead 15 seconds. I have found the 15 second repeat to be quite handy for taking notes. At the bottom left, you can opt, as I have, not to immediately load and play the next lecture when you complete the current one. The checkmark at the bottom right turns white on a green background when you complete a lecture.


The right column has four tabs at the top. The leftmost tab lists the course sections and their lectures. The next tab allows the download of relevant lecture material, if any is provided. There is a comment tab, although posting a comment apparently does not automatically provide the section and lecture information, so provide it yourself. The rightmost tab is for notes, which are timestamped by section in the video. The notes can be downloaded, though I have yet to do so. Notes can be edited and deleted, but they cannot be moved around; for example, if you back up in the video to 1:01 to make a note after a note made at 2:13, the notes' times will be out of sequence. Clicking on a note's time takes you to that point in the video lecture.

Antônio Carlos Jobim - Stone Flower

Over the past couple of weeks, I have begun studying Brazilian Portuguese with the help of Duolingo, a nifty free foreign language study site and tool. The iOS application is quite good. My interest in Portuguese stems from a friend who is an electrical engineering professor in Brazil. We talk regularly on Skype, and I've begun taking more of an interest in things Brazilian. I pay more attention to the little news I get out of Brazil. A book I read over the winter break made a reference to the Brazilian movie City of God, which was grim but interesting.

Then there is this fellow, sadly no longer alive, who turned out some amazing bossa nova, a genre he helped popularize.

50 States' Debts

While reading the usual morning slew of bad news from around the world, I came across this article about the 50 US states' debt burdens. The article includes unsurprising claims, such as each Californian today owes $20,800 for past government policies and budgets, we're all the state's assets and liabilities to be summed and paid off today; New York, $20,700; Illinois, $45,000; New Jersey, $52,800. At some point, these states will raise taxes even higher on today's taxpayers to address past fiscal incontinence. In short, these are states I will avoid.

Looking at each state's assets and debts, it is no surprise to see resource-rich low-population states like Alaska and North Dakota doing well. It is a shame to see Indiana has a bit more debt than assets, but the difference is hopefully manageable. A state that I find very attractive topographically, Kentucky looks like a lost cause with debt around four times its assets. Kasich's Ohio is debt-heavy as well.

Of course, there is also the ratio of capital makers versus takers, the subject of a Forbes magazine Death Spiral States article. The darker the state on the article's map, the greater the number of takers. California, again:

There are 114 clients drawing from the government for every 100 people chipping in by working outside the government and paying taxes. We’re calling this the Feedme Ratio. Six states have a number over 100.

Years ago, my father was offered a well-paid engineering job in California. My sister and I were all for it, because we were mere children who thought California would be hip and happening. My mother was ambivalent. Dad called around to some people he knew in California and they were unanimous: Don't come! Extortionate taxes! Insane real estate costs! Thankfully, he heeded their warnings.