Taylor's Blog

Atypical ramblings

Catching Up at Warp Speed

My last serious post was on May 15th. That was two months ago. A lot of big things have happened since then. On June 6th, I finally finished the first version of the ESOL Curriculum Framework Benchmark Browser (ECFBB).

11406346_10100686202781336_8236128310778716685_oAs you can tell, there was a total re-design of the user interface. Tkinter doesn’t allow the user to make selections in a textbox, hence the need to add the list box on the right. Also, there was no easy way for me to italicize or emphasize certain things in the list box, so some of the emphasis found in the original document may not be obvious to users of the program. My fiancée also made the suggestion that clicking on something in the list box could highlight the dissociated item in the text box. That may be something worth considering for future revisions.

I learned a lot while working on this project. I completed my first fully functional program and can report that my fellow teachers were delighted to have its assistance when creating their lesson plans. Creating a program takes some effort but it really is rewarding to see it running and functional. Steve and I were talking about how there is always something that can be improved or made more efficient or added to a program, and that good programmers need to know when to step back from a project and push it to release. There is a lot I could do to improve the ECFBB, but for now I am happy with its current state and I want to direct my attention to other things.

The second major update I have is that I finally learned to use Git and Githow-to-install-and-set-up-git-on-ubuntu-14-04-lts-vpsHub through Udacity’s How to Use Git and GitHub Version Control for Code course. I even uploaded the ECFBB to GitHub in case you want to download the source code and have a look yourself! Just check out this link: ECFBB. If you just want to download the compiled version and run the program, I have it hosted on my website here.

Learning to use Git was interesting because I had to learn to use Linux at the same time. Linux is initially scary because of its large emphasis on the command line. I think myself and many others are worried about accidentally running one of those super dangerous commands that will brick your system if you’re not careful. That’s why I plan on setting up another computer in my room to serve as a Linux box that I can mess around with without fear of losing all my files.

That’s a great segue to my next announcement: my coworker and I were approved for another grant! We received another First Literacy grant for $4,500. Our new project is titled Interactive Practice with YouTube and Twitch. We plan on having recorded lessons on Youtube as well as live interactive classes broadcast on Twitch to make English more accessible to our students.

Part of the grant was to assist us in obtaining a new computer that could stream, record and edit our videos and last week I finally got the parts needed and put it all together. Here’s the rundown:11403071_10100704031068306_6124441721985144000_n

  • Motherboard: ASRock Z97 Extreme 4 LGA 1150
  • Processor: Intel Core i5-4590 3.3GHz
  • RAM: Corsair Vengeance 8 GB (2 x 4 GB) DDR3 1600 MHz
  • GPU: MSI GTX 970 4GB
  • HDD: WD Blue 1TB SATA 6Gb/s 7200rpm
  • SDD: Kingston Digital 120GB SSDNow V300 SATA 3
  • PSU: Corsair CX750M 80 PLUS Bronze
  • Case: Corsair Carbide Series SPEC-02

After I finished learning Git, I turned my attention to learning Ruby and Ruby on Rails. Steve says they are immensely popular in web development so I figured I could take a look at them. I’m currently working through the Codecademy course on Ruby, but I’m not sure how I feel about it so far. It’s somewhat different from all the Python I’ve been learning. I’m trying to decide if I should learn one language really well, or try to be more general with my knowledge. If the former, then perhaps I should be looking into Django. I really like Python and I’ve already invested so much time in it. But Ruby seems to be more in demand. It’s a tough decision to make.

I’ve got my work cut out for me…

Today I’ve begun creating the general framework for my program in Tkinter (again). The first thing I needed to do was divide my layout into a grid to make placement of each part easier. Here’s the very crude yet effective way I did that:

rsz_1rsz_20150513_143616

I began making the components that would need to be  placed, but soon realized that it was going to take me a lot longer than I originally thought. Each checkbox, scrollbox, labe, and button needs to be individually coded. After working on this for an hour and only getting 15 elements placed, I realized that it might be more efficient to use a constructor like Steve did in his edit to my code. I’ve had an aversion to creating classes lately, but I’m beginning to think it’s time I overcame my fear. Here’s what I’ve made so far:

building

That took 79 lines of code to make.

Yea.

After creating this portion of my code, I realized that I’m going to have to do a lot of background code to make it all function correctly. In particular, these questions need to be answered:

  • What happens when the first scroll box is set higher than the second?
  • What happens if a user moves a scrollbox but doesn’t click the strand checkbox?
  • Should the listening checkbox automatically be checked if a strand checkbox is checked (or if a scrollbox is adjusted)?

In addition, when I showed my first prototype to the teachers, they expressed concern over the terminology. The strands all have different descriptions which are difficult for every teacher to remember. I’m thinking I need to insert a little help button next to each one that will pop-up a description of the strand for the user.

There’s a lot of work to be done today.