Saturday, May 16, 2015

Two years later

About this time last year, I posted a one-year update on where I was with my programming skills at that time. Not suprisingly, I decided to post a two-year update.

It's amazing how fast time flies with two little children. My son is now two and half years old and my daughter is 9 months old. You can easily imagine that my free time has been significantly limited as a result. As I'm finding a rare moment to write, they're both fast asleep and since tomorrow is Saturday, there's no stress to get their diaper bag or food ready for the next day at their daycare.

Two weeks after I posted the one-year update, I joined the translation department of a large firm and my ten years' experience of teaching Business English at companies slowly ground to a halt. I find myself reflecting on that, especially since today is Teacher's Day in Mexico, but I am technically no longer a teacher and am now a full-time translator. Although, deep down I know, once a teacher, always a teacher, and I think this blog is testament to my desire to share knowledge and help other people learn. So with that in mind, I'm actually planning on turning this blog into an actual blog of regular posts on programming, language learning and music, and not just a showcase of my web apps in progress.

Coding-wise, most of my time this year has been spent learning the behavior of the Computer-assisted-translation (CAT) tool that we use at work and learning to hack it or create macro workarounds in VBA for MS Word. I've also been developing macros in VBE for MS Excel to generate automatic performance reports related to our translation work.

It's actually a bit ironic that after a year of learning to code in HTML, JavaScript, and CSS, I ended up going back to VBA and VBE. That's where I really started coding back in 2010 and 2011. Actually, come to think of it, this post could be a five-year update in terms of coding cell formulas in Excel in 2010, which evolved into user forms in VBE in 2011 and 2012, and then web apps in 2013. If I try to really recall my very first programming experience that would have been on a TI-82 calculator almost 20 years ago! You can watch below several screencasts of VBE user forms that I posted to youtube in 2011 and 2012:

The main inspiration for starting to program in Excel cells came after trying to invent a grammar dice game to get students to practice English verb conjugations. Despite using different-colored dice, it was still unwieldy to explain to students what each color and value represented. I even printed out paper dice cut-outs to take to class, but in the end, I decided to try something digital instead to take into account 7 subject pronouns (I, you, we, they, he, she, it); 12 tenses divided into 3 times (present, past, future) and 4 aspects (simple, continuous, perfect, perfect continuous), and 3 types of sentences (interrogative, affirmative, negative). I made heavy use of the rand() function and then based on the combination of those cell values there were prompts and answers formulated by if then else if statements and vlookups. It was primitive and not very user-friendly, but it got students engaged with English grammar. Unfortunately though, when I tried to distribute the spreadsheet files to students, I was often told that it didn't work on their version of Excel or cell-updating was blocked. Eventually, these compatibility issues motivated me to learn to convert the code to JavaScript and HTML, which can be seen on the English Sentence Generator post. In Excel I also created French and Spanish sentence generators, but have not yet converted them to JavaScript, mostly because my understanding of arrays has been limited, but again thanks to objects and properties, I can visualize more robust possibilities of including irregular verbs. Even the English Sentence Generator has not yet been updated to reflect object and property possibilities and is still limited to a handful of purely regular verbs that add -s, -ed, or -ing with no exceptions.

It's also ironic that I thought the compatibility issues I had to deal with in Excel would be easier in HTML and JavaScript, but little did I know! Now I have to constantly look at caniuse.com and stackoverflow.com to understand compatibility issues and workarounds across different browsers and platforms. No wonder my brother's development of Selenium has been so popular and necessary for web app testing.

Aside from figuring out JavaScript objects and properties, my other most recent discovery has been to use local storage to store and retrieve user data. This is great because it really allows client-side JavaScript to become even more personalized and dynamic as the user interacts with the app and saves content. Unfortunately, I don't have a server to store pictures or audio or user data accounts, so a small step toward cloud storage is local storage. I've tried testing the Parse API and failed several times, so I'm sticking to local storage for the moment. Hopefully, between now and the third-year update, I plan to get local storage implemented into several of the web apps on this blog, especially for the sentence generators and vocabulary trainers.

For the moment though, if I can't always find time to develop and test lots of code, I'll at least start to publish more posts that go into further detail about the little tips and tricks that I have discovered and that have helped me get beyond just saying

Good luck with you own programming!

No comments:

Post a Comment