Surviving Meteor's Impact

19 Oct 2016

Day one: no signs of life

Two weeks of Meteor so far and I think I am finally getting the hang of it. Building applications with Meteor was a new experience for me, as with all the other new things I learned this semester in this Software Engineering course. I was excited at first, because who doesn’t love useful apps on your phone? We use apps on our smartphone everyday, and these days, there is an app for almost anything. I wanted to try my hand at app building, but I did not expect it to be so incredibly tedious and frustrating. The first experience, creating a Hello World app in Meteor, was simple and clear cut. However as the code started to get more lengthy, the more I got confused and consquently unmotivated. Especially when doing the Blaze Tutorial experience, I was starting to get irritated and just started copying code into IntelliJ. Obviously this is not the correct way to do this, seeing as I can only get the CSS to work in the browser. However, as I got more accustomed to learning Meteor, I also learned more about how to interact with Meteor through the command line. Of course, it also made me realize how much of a disadvantage I was really at.

The worst of it

The Digits experience is probably both simultaneously the best and worst part about working with Meteor. Initially starting up with the ‘meteor –settings ../config/settings.development.json’ invocation gave me various errors that took me almost overnight to solve. This is where Slack proved to be very helpful. Slack allowed me to see other fellow classmates who have ran into the same errors and problems that I have been getting, and how we struggle to find solutions. Although Slack and my classmates were there to save the day, Windows was not. Aside from Windows being incredibly slow on intial startup for Meteor, it is also slow when restarting the application almost every time a change was made. I tried various solutions as to getting the Digits app working, like creating different folders to test different locations, changing the hosts file in my computer to include the warehouse.meteor.com address, uninstalling and installing with bcrypt/bcryptjs, and installing windows-build-tools. Sometimes the command line will show it being stuck during installation, which lead me to more change after change. Finally the ‘–settings’ invocation worked, but installed various packages for several hours, to the point where I fell asleep. Luckily, when I fired up my computer when I woke up, it started right where it left off. This is where things started to brighten up.

The best of it

Unlike the other practice WOD experiences, the Digits experience (not the pre-experience) started to make more sense of what Meteor is and how to use it. The Meteor example form and template were very understandable. It was all just a matter of shaping it into a contacts application to hold people’s contact information. Previous experience helped too, such as with using Semantic UI and IntelliJ in general. The Digits app building was very straightforward. I found the subscriptions part of the WOD very interesting, with the way data is added to Meteor. The client-server interaction was easy to understand, and the way the pages and the Javascript interacted with each other was clear in the way it was coded. Overall, Meteor grew on me, and as I started to learn more, the more I got comfortable. In the future, I hope to learn more as I start on my final project.