Ionic - Faltering First Steps

I fell down an Ionic rabbit hole!

For my final DevMountain project I want to use Ionic. I started on the getting-started page - which seemed like the really super-duper obvious place to start. When I got to step 3, specifically ionic platform add, ionic build, & ionic emulate[1] I started chasing not just a white rabbit, but a whole warren of white rabbits! First android AVDs, then JVMs, then Android Studio, then gradle, then AVDs again, then Genymotion. If I didn’t already have short hair, I would have by this point. Finally, one of the other students mentioned that Amy-Kate had some Ionic experience. I let her know I was pretty sure I was down the rabbit hole and really needed a guide to help me return to reality. A few moments later, she introduced me to ionic serve and pointed me to the Ionic Guide.

If you’re just starting out with Ionic, save yourself the rabbit hunt - start with the Ionic Guide!!!

DevMount - Week Seven

Last week our focus was on databases.

Databases hold a special place in my heart. When I was on active duty, one of my jobs was to create a Lotus Approach database to replace a mainframe database. Long story short, I ended up entering my current profession primarily because of the power I saw in databases (at least, that’s how I would have described it at the time, now I’d describe it more as ‘the power of big data’).

Read More ...

ATM: "Object #<Object> has no method 'find'"

Holy smokes, Bat-viewers! Today’s adventure took me down a rabbit-hole and then up out of an ant-hole.

So our focus this week has been on databases. Coolness - the stacks are really starting to feel complete. Today was our second (and final) day with Mongo. Our task for the day was to complete a functional backend and then modularize it. I struggled with some of the syntax to get the backend up and running, but lunch and asking the right people the right questions helped and I was finally up and running. Then I started to modularize my code. I kept getting informative error after informative error. I went through about a dozen silly little things in about five minutes. And then — brick wall! After staring helplessly at the error, not really understanding how I could get such an error, I sought our instructor’s assistance. Unfortunately, it was right at the end of class and he had to leave. So I was stuck with it.

Read More ...

ATM: Angular Module - Order of Injection

Once I had identified and dealt with the definition versus loading problem, I had a short but productive streak, only to come to a complete halt because of another cryptic problem. While the definition versus loading problem is an obvious mistake (albeit easy to make, easy to overlook, and hard to diagnose), my next cryptic problem was not one that I, or the senior programmers that were kindly helping me, even knew to look for.

Read More ...

ATM: Angular Module - Definition vs Loading

Angular uses a very similar statement to define a new module and to load an existing module. For example, the initial definition for my stage-hand app was:

1
var shApp = angular.module('shApp', []);

While the statement to load my stage-hand module (e.g., at the beginning of the controller and service files) was:

1
var shApp = angular.module('shApp')

Note that the only differences are , [] and ;, so it’s easy to make a mistake.

To make matters worse, the symptoms were really cryptic.

Read More ...

All The Mistakes

While starting my stage-hand project I ran into several ‘black box’ problems. After spending a frustratingly inordinate amount of time ripping code apart, I was able to identify two separate problems. One was an easy to make mistake that I thought I had checked for early in the debugging process. The other problem didn’t make any sense at all, but thankfully I stumbled across an explanation that made a load of sense.

Read More ...