Monday, March 14, 2016

The they don't teach you in school a.k.a. Any idiot can follow a recipe

Due to the accelerated nature of the curriculum, there was an awful lot of "don't worry about it, just follow the cookbook".  Because the teachers knew what they were doing, the cookbook worked.  The problem: you can give any idiot a recipe for pie, and you'll usually get a decent pie.  The challenge: adapt the recipe to a new filling, a new crust, a different stove...

This bothered me at the time, and it drove some of my cohort to distraction.  The simple truth, though, is that a bootcamp just doesn't have time to cover every possible contingency and the background.  The more I work on computering, the more I believe in the "Become an expert programmer in 10 years" paradigm.  And you know what?  I'm fine with that.  I got into this to have a project that would take me a long time to mastery (but would have measurable milestones along the way.)

The things I did get from bootcamp are a) a curated list of topics that I should focus on, b) familiarity with how things should look when they're working; and c) enough knowledge to understand the reference I do find.

Part a) is important because there's an unlimited ocean of possible paths out there.  I learned a foundational technology (python) and one solid implementation (django) deployed on the web via heroku.  I can modify these, and improve them, and refer back to them as I improve.

I also have other things that I need to keep working on: javascript (including Node, Backbone and Angular libraries), server archtecture, and so on.

Part b) (knowing what a working prototype should be able to do) is vital.  Knowing something is possible is more than half of getting it work yourself.  It's vastly harder to do something when you don't know what the finished product should look like.

Part c) is probably the most valuable.  Before gocode, the Python documentation was over my head.  I usually had to find a Stack Overflow answer at an ELI5 (explain it like I'm 5) level.  Having the self-confidence to find answers is so useful...I'm really beginning to believe I can do this.

This all comes up because I spent a lot of time today wrestling not with python, or django, or JS...but with OSX.  I started following the heroku tutorial on setting up a new pyton app (to see what I'd missed in following the cookbook when setting up catfinder).  In the process, I got a an error in that my installation into a virtual environment couldn't find my PostgreSQL install.

End result: I know a lot more about paths, config scripts, and OSX than I did a few hours ago.  That wasn't what I set out to learn, but knowing how your own computer works is pretty essential part of making everything else work.


Tuesday, March 8, 2016

Wrap up, and life post codeschool

That last week was a blur.

The net result, however, was that I have a mostly-functional friendlycatfinder running on heroku.  I got enough done for a brief final presentation. Highlights:

1. Google location works either with address or autolocate
2. The main display page uses a mix of django templating and ajax calls (via a views.py method written just for them) to fill out a bootstrap carousel template.
3. The JSON object returned via the ajax call is used to build detailed information for each cat.
4. My django templates base.html is split into three parts: a <head> that contains the static files and script links used by every page, a <body> section that includes the navbar code that appears on every page and a footer section for each page. The blocks extend in such a way that each particular page can have elements in the header that unique to that page, as well as the body elements.

So now I'm home in Dallas, fighting off a (presumably) stress-induced cold, and thinking about the future.  This week, I'm visiting co-working spaces to find a good fit (and good networking opportunities), getting an updated CV and linked-in profile up, and finishing some projects from code school for the portfolio.

I'm also debating restarting the catfinder project to do it properly, with a better url scheme and class-based views.  I'd also like to make the whole experience of using it simpler by making the landing page ask for a photo upload, getting exif data if possible for location information, having login appear via a modal if neccessary, and making sure that everything is mobile-centric from the very beginning.

Balanced against that is the desire to have a capstone project that is fully functional, if not quite optimal.

Eesh.

Still, it's exciting to be out.  I feel like I'm ready to start contributing on new things.  Stay tuned.  I intend to keep this updated regularly.

Cheers!

Tuesday, March 1, 2016

w8d1&2 - Heroku, javascript and a slightly functional catfinder

So the super-alpha version (can code have a negative version number?) of www.friendlycatfinder.com is up on heroku.  It's functional as far as it goes (i.e. you can add cat sightings and see a list of cats in a particular area).  It's ugly as hell, and it's still missing a lot of polish.  There's no guarantee from minute to minute that it will still be working, as I still have a ton of mods to do.

I'll also admit that the heroku spin-up was entirely done by the instructors.  I have a detailed walk-through (with annotations!), but I can't claim to be capable of this on my own.

But still...

Today was all about getting some front-end styling in place.  I took a carousel bootstrap template that I'd downloaded previously and started playing with it.  I have it partially working in development.

And just as I type that, I go back to look and the carousel is not turning.  Sigh.

Still, I've gotten over the hurdle of being afraid to dive into front end at all.

Update: With the help of an html validator (https://validator.w3.org/nu/), I discovered an errant space in a carousel element id.  That's it.  So aggravating.  But hey, a new tool learned.