Wednesday, October 30, 2013

Slow and Steady Can Make You Hate the Race Sometimes

While I did expect that no set of online lessons (especially free ones) would be perfect, I don't think I was adequately prepared for how hard it is to find a high quality series that takes through for any real length of time.  I'm all for everybody doing things their own way, but when you try to piece together complete concepts using bits and pieces picked up from 10 different people who all code things differently, using different API's and different combinations of methods...  It's practically impossible to understand.  Only now, after watching at least ten different sets that call themselves lessons in game programming with Java and trying to read what was definitely a great wealth of knowledge, but substantially outdated, do I feel like maybe I can wade back through it all and start to extrapolate the differences between them all and how they each contribute to different techniques to start a project.  Yeah, just start one.  None of them except for the previously mentioned PDF set go very far, people on the internet just have way too short of an attention span I guess, so they just drop everything and go a completely different

so then I went in and told him, "hey, I'm not gonna take this anymore!"

Alright, sorry, I couldn't resist the irony.  It was too strong for me.  So, if I come to decide once I have a good understanding of how to accomplish this from start to finish to put up what I know as lessons in any format anywhere, I have my list of what I wish to prioritize most:

1.  Smooth lesson transition:  don't leave people feeling like you skipped ahead between videos.  It seems a lot of this comes from a good intention - planning.  It looks like they go ahead and right stuff out and change things, then go back and do it again for recording.  However, of course, this does leave a problem if they forget a side issue that they fixed or anything like that.  My method for improvement:  back up the project as it is between videos.  If you want to mess around with it for planning purposes, then go back to the backed-up copy for recording, that way any changes you had to make will ultimately be rediscovered as you go along.

2.  Completion:  I am getting ridiculously sick of "make a map, put the character on it, get him moving, and then....!"  nothing.  You'd think I'd be a pro at this by now, but again, it's just too different every time.  While I say again, I know learning various techniques is essential, so too is learning each technique from start to end.  My solution:  Don't even start releasing things until, at the very least, I'm substantially further along than the bulk of what is out there.  Then, if I still feel the same drive and not like just fizzling out, at least I'm sure to be contributing more than most people will be able to find.  Then, just apply some good ol' fashioned dedication, brought to you compliments of someone who can't stand leaving things unfinished (plus, of course, four years of military service to teach you not to just quit on things because you're "bored" or "distracted.")

3.  Planning ahead:  Perhaps my least common complaint thus far of what I've just listed, but it does still happen.  The benefit to these people though is that they are usually the ones whose videos transition seamlessly, if only because you know they didn't touch the code until they started the next recording.

So, for now, that'll be my "Top 3 Utmost Tutorial Frustrations."  I tried to just stick with the rather-outdated PDF lessons I have, but unfortunately I hadn't learned quite enough about the new methods existing in Java to correct the code for it.  I still tried to stick through it, but it kinda seemed like some of what he used just simply didn't even exist anymore and as I tried to look elsewhere for an alternate means of accomplishing it, I knew I was setting myself up for more frustration later when I tried to follow through using my newly updated code in a slightly different context for some other part of the game...  I do love fixing bugs and all that, but I'm really sick of learning 99% of the beginner stuff that one might usually learn in a clear lesson setting.  I'd rather learn the usual trial-and-error stuff through trial-and-error, but until I'm out of the Army and going to school I just don't think it's going to happen.  At this rate though I also worry a bit that I'm going to have developed quite a few terrible coding habits, but at all times I am additionally referencing what these people teach to sites like Oracle's tutorial trails to learn the proper conventions for how to use code in a reader-friendly manner.  It's tough, I'll say, to set out to learn for free on the internet but my will is strong, and my bank account is... well, not so much.  lol.  But, I know it can be done and I want, at the very least, as solid a head start as I can get before I even enter into school.  Even worst case scenario, my brain is finally getting back into working this way.  It's crazy how the very way your brain operates changes so much that what was once second nature can suddenly become, well, yet another source of further hair loss.

That's it then:  just now, I decided once I get through this, I will provide the very lesson structure I'm describing as I go along.  I was inspired just now as a song got stuck in my head again, one that has been coming and going since this past Sunday, with the airing of "Doomstar Requiem:  A Klok Opera."  If you don't know how that Metalocalypse special might encourage me to give back to the community that is slowly and painfully but surely helping me to learn, then you obviously haven't seen it and need to.  Not a matter of opinion, by the way, just science.

Saturday, October 26, 2013

Discovery of Great Learning Material

I think I may have found a great bridge across the gap between Java introductory lessons and getting into game development.  I found that gaps in content occur in a great many tutorial sets that I came across on YouTube (I still don't fully grasp why that has to happen, it seems like some good advance planning and making sure you start where the last video left off could prevent that).  As a result, I went back to trying to read about Java and found myself again frustrated by having tremendous amounts of reading material present to further elaborate on things that I understood well enough to use.  Sure, I am one who usually appreciates as much knowledge on something as I can get, but even for me there comes a point where lessons presented as reading material explain just a little bit too much what's going on behind the scenes.  Yeah I love knowing a lot of that, but there is a line that has to be drawn somewhere between knowing how computers are built and knowing how to program them - otherwise those wouldn't be two separate jobs, right?  In the end, I admit, this is coming to a single point:  while I'm certainly patient enough to learn "behind the scenes" stuff (and in fact greatly enjoy a good amount of that) I'm just not patient enough to learn every process behind every concept presented by tutorials that one can read online.  That's why I settled for YouTube video tutorials, but that gave me the opposite extreme:  most video makers assume you know more than I do at this time.

I was trying to go through a series by DesignsByZephyr and by the middle of the first video my screen was showing substantially more errors than his.  I fixed most of them, only to see it get worse by the time the first video ended.  While I sincerely believed I'd followed along perfectly, and verified that by going back and re-watching, there was something I just wasn't understanding and therefore couldn't fix.  This is when I found it:  ForeignGuyMike on YouTube.  His video set left me equally frustrated, but when I went to the comments to obtain some of the resources his tutorial used, I found another link to a spectacular collection of PDF files (or a physical book if one wished to purchase it.)  That link was http://fivedots.coe.psu.ac.th/~ad/jg/index.html and it covers the beginning stages of 2D game programming and just takes off from there into a pretty crazy amount of derivative material.  It branches out a bit here and there, using some stuff to control external devices, using external devices as UI, etc. up to 3D game stuff, mobile 3D, etc.  It looks like it may contain all the content I need to cross from my very basic understanding of the language to being able to keep up with these videos properly.

A word of advice though on that link:  start with the first "Chapter 1" link and follow through it using the "next" links on each lesson.  It mostly follows the structure that this index I linked to shows, but there were a few differences later on (which, if you're just following along anyway, may be less of a problem but if, like me, you're downloading all the PDF files and .zip files with example code to study offline at your own rate, this advice might be pretty handy.)  The downloads are available on his website, no cost whatsoever.  They cover a truly insane number of topics, and I was blown away just perusing the prefaces to each chapter displayed on all the lesson pages that contain the links to the actual PDF and resource files.  He provides everything you need to follow along, or so it appeared to me as I looked through it all.  I'm sure I'll be back to talk about it more as I go through it, but currently I'm working on Chapter 2 and it looks pretty awesome about showing you a bunch of code then explaining what is happening and such, and I feel like I already understand the concepts taught way more than I did with the YouTube video tutorials.

The real final point today:  I though YouTube was the way to go because it could be a lot more like a classroom setting, explaining things step by step as we go along.  This seemed especially handy since programming is seldom done in a perfectly sequential line-by-line way, you're essentially guaranteed to be bouncing back and forth, and up and down, through all your classes, methods, etc.  That's why I really thought YouTube would hold the best, and in a lot of ways it actually could, but if it is there then I failed to find it.  When that failed, some good old fashioned reading was there to cover me.  It may feel like it lacks a bit, which really stems from the fact that you have to apply yourself a bit more, but it really is a pretty powerful method if you can bring yourself to focus on it.  If you can't, well once more I say perhaps this subject isn't for you (though I'm sure someone out there will prove me wrong somehow or other.)

Tuesday, October 22, 2013

Moving On Then...

After going through another couple of videos in MrDeathJockey's video tutorial series "Intermediate Java Game" or whatever it was called specifically, I've decided I'm not going to follow that one anymore.  The further I get in the worse it gets, and it may just be that there were only a few items he skipped over and that my solutions were contributing to these new problems due to trying to implement something slightly differently than he did, but either way this is my second attempt going through his series and I'm just done trying to fix something that is being taught to me quite THIS much.  I browsed a few other lesson collections on YouTube and found a few that should teach me some promising things, but unfortunately I do feel once more like options can be limited.  Many of them teach the same things, and while I'm all for learning different techniques it seems that, as with most of YouTube anymore, it's also jam-packed with people all ripping each others' ideas off so it may take me some time to settle on one for sure.  I feel like a few more weeks at this rate though and I will be ready to expand beyond the 32x32 pixel world.  I mean, my first "Hello World" in almost a decade was less than a month ago (though I will grant that getting this far is the easy part, it's what follows that becomes difficult, or else there would probably be a lot more high quality tutorials on YouTube by now.)

The great thing is that I get opportunities from time to time during my workday to research the Oracle website's tutorials to further learn about concepts that the video makers describe, so I can pretty much triple my study time that way.  I feel like this is, for me, the greatest learning method.  I get to see things put into action while I'm at home, hear the explanation as to why and more or less what's going on, then during my smoke breaks at work get more detailed stuff on how these various packages and such work.  Before when I just tried to read things that way, there were some things that just didn't make sense without some direct context as to what it can be used for.  I highly recommend this to any who get little bits of spare time during the day but don't have the time or the opportunity to sit through entire tutorial videos.  Watch the videos during your biggest opportunities for free time, implement what the videos say and try to understand as best you can, but make note of what you need clarification on.  Combining the application of a method to its actual explanations on Oracle increased my understanding of it by a significant amount.

Where do I want to go most with all of this?  Next I want to start using my knowledge to play around with Unity once my understanding of Java is better.  Of course I could just dive into tutorials on programming stuff in Unity but I really wanted to go back and start from a more basic level.  I've played around a bit with application development (very simple ones, but at least one that I found quite useful), now with 32 bit 2D games and more on that to come for a while longer, all because I want to go into playing with things on Unity with as much understanding of Java as I could get before I kinda ran out of other tutorials to watch.  I will of course still have a tremendous amount to learn, but really anybody could say that, and at some point you have to focus on what you actually want to use this knowledge for, so that's why.  I'm not so great with 3D modeling (or, like, at all) and maybe I'll start trying to dabble a bit in it but honestly for me it's all about the programming.  I can always find resources to practice with online, and when I feel ready to make something for my own sake I know there are plenty of people out there who love 3D modeling and would just love to talk to a programmer about bringing their art to life.  That, however, is a long way from now so for the time being, back to my practicing.  The bittersweet side to that is I'm probably going to have a lot more time for this than I do now very soon, and the opportunity to go to school to even further increase my abilities.  My time in the military will not last forever longer, and that is the bitter side to the bittersweet chance at learning as much as can.  The sweet side is the school benefits, of course.

Now, I know I said before my ultimate goal as a programmer was to work on programming devices that bring automation into more and more aspects of everybody's lives, and yet all of this so far is about making simple video games.  Honestly, a big part of that is because I'm a freakin' nerd and also love video games, but also while the actual syntax is going to be different, the logic will still be pretty helpful.  It's all about taking specific input, knowing what to do with it, and making things happen.  Apply some new syntax to it and I'll be able to pick it up.

Saturday, October 19, 2013

Reminder to My Future Self

When I become a spectacular programmer, I want to look back on this and be reminded of something that, to me right now, is an incredibly major deficiency in the realm of an amateur looking to expand his/her abilities:  tutorial quality.  As far as quantity goes, sure.  Sometimes it feels like everybody who's spend a few months learning to write programs has gone on to share their "expertise" in tutorials all over the web.  As a result, the internet is cram-packed with "Hello World" lessons, followed by a VERY similar chain of lessons leading up to some basic concepts of objects and such, but once you grasp the beginner stuff (and by beginner stuff I mean the VAST majority of the tutorials out there- a LOT of tutorials would have you calling yourself "intermediate" within a handful of hours of video tutorials max), there isn't a whole lot out there.

What there IS when you feel ready to venture into something more than very basic logic that prints to a screen or an actual user interface is extremely shaky at best.  I've found a good number of video tutorial collections that, while they may teach a pretty good number of some very useful concepts and techniques, leave something to be desired when it comes to overall quality when it comes to their abilities as teachers.  I hate to call people out, but I'm going to anyway.  To start, I got the basics from the YouTube users JoseVidal, TheNewBoston, and MrDeathJockey (who now calls himself indev0r on his website, though I don't actually know at this moment if he has gone on to make a new YouTube profile for himself or if he simply continues to use MrDeathJockey).  As far as quality goes, JoseVidal and TheNewBoston have my utmost respect.  As for MrDeathJockey, I can't express enough how appreciative I am of the concepts I have learned from him, HOWEVER...  (see?  there's not always a "but.")

If not for MrDeathJockey/indev0r, I would not have learned nearly as much nearly as quickly.  I probably would have spent a tremendous amount of time trying to learn from java programmers who relentlessly use pre-made game engines.  Don't misunderstand me, I have nothing against the practice.  I fully believe that the best engine for your purpose is the best engine for your purpose, and that's that.  However, I also fully believe that a programmer should fully understand what goes into developing an engine and what coding the mechanics of such a library would/could be like.  For one thing, it makes it a LOT easier to use.  The other, and for sake of my topic today more important, factor is that cutting and pasting somebody else's work does not make you an "expert."  It doesn't even make you "intermediate."  So, to MrDeathJockey/indev0r, I would like to first express sincere gratitude for popping up on my search engine when I needed something a little more advanced than a System console based "wheel of fortune condensed to one pre-defined puzzle" game.  Now, for the "however."

My message to my future self is that when I become professional (by which I ultimately mean able to sustain myself using my abilities as a programmer), give back to the community.  The reason I want to remember this is because of the inherent deficiencies, even amongst those with the know-how but perhaps not the ability to teach.  Even a great number of the better tutorial makers have some short comings that have left me pulling out what little hair I could grab hold of (military haircuts make that a little difficult) not because they seem incapable in their programming abilities, but simply as a result of bad planning when it comes to tutorial production.  I sincerely apologize to indev0r for singling him out like I have thus far as he's by far much better than a large number of the "teachers" I have found on the internet, but if anything he is all the more reason why I hope to improve upon what exists already.  If he'd been perfect, then I would probably just stop trying anyway.  I am very much the kind of person who constantly seeks ways to improve upon things.  That's a very big reason behind my love for programming, I think.  There's always a way to improve, and also that it is so incredibly logic oriented.  So, now that I have given every effort I can imagine to express that indev0r is, in my opinion, a great learning source, here's why he's also the key example in "ways that tutorials between beginner and intermediate could use some serious improvement."

Learning even the basics of some of the complex pre-built libraries is going to be challenging enough as it is.  That's probably why a lot of the best tutorial makers I've come across tend to stick to pre-built libraries like Slick.  The last thing I want as I'm trying to learn not just how to use an existing library to develop a program that constantly and simultaneously renders necessary imagery to the user's screen, awaits user input, provides interaction, and everything in between, is to load the next video in a series and see something further ahead than where we left off in the previous video.  Sure, I could say that one probably learns more from mistakes than from handed out lessons, BUT learning from mistakes can go a LOT more smoothly when a good foundation is laid out first.

So, explaining something that was hard to find elsewhere is why I greatly respect indev0r, but planning the production is where I see that even though the knowledge can be found, its delivery still leaves plenty to be desired out there.  If all he changed was to back up his tutorial project so, given the need to restart recording of a tutorial, he knew where he left off- well his tutorial series on intermediate 2D game development would probably have been borderline perfect, at least at my level.  However, almost consistently from video #8 or so onward, there was a very agonizing game of catch-up that involved a great deal of research and a great deal of losing my mind trying to solve problems that I still didn't quite grasp.  Yes, to be fair, I prefer to learn by jumping in to a level perhaps a bit above what I "ought to."  However I also have the initiative to willingly research concepts I see when I don't understand them.  Even so, and even though solving the problems "between the videos" left me feeling pretty epic, I still would like future me to remember my agony at this particular moment in time.  If I'm reading this, make a good in-depth lesson plan and don't skip over details in between lessons.  Teach people, and teach them in depth without pulling something up that you (I) haven't even taught yet and simply continuing on as if its development was irrelevant.

Back to boosting people though, TheNewBoston probably has the biggest amount of consistently clear tutorials I've found thus far, but (as far as I've discovered) I don't know if he's gone into things quite as deep as developing your own game engine and some of the things that would require.  Still, if you're content to simply use pre-made libraries and such, I've never experienced any of the aforementioned consistency issues with TheNewBoston.  So, in summation, to my future self:  put this all together and put out something to help people bridge the gap between "Hello World" and other super-basic stuff, and Skyrim or something else that I imagine was incredibly super duper majorly complex.  To any other amateurs aspiring to greatness, I would definitely say that based on my frequent desire to claw out my own brain, perhaps learning how to use a pre-made engine would be a better start, THEN move on to developing one.  To people of any level less than a fully qualified programmer that doesn't already know, I seriously recommend starting with JoseVidal, then going to TheNewBoston, THEN MrDeathJockey.  There are definitely others out there at all levels, but as those are the three I've spend the most time learning from thus far, they're the focus of my post tonight.

Goodnight, and if there are insanely unforgivable typos in this post, deal with it cause I'm slightly more than mildly intoxicated as I type this.  It's my weekend, and I'm not sorry.

Edit:  My last post, "Learning in Two Dimensions" or whatever, I don't remember.  Like, at all.  I don't know what made me feel so over-confident that I would have posted that, because I've TRIED doing a lot of these things back when I first started to learn programming in high school (which, bear in mind, was almost ten years ago now).  I know it's no joke.  The only clear answer is that I was even more "slightly more than mildly intoxicated" when I posted that.  More likely, I had probably just finished resolving an issue with some of the gaps between tutorials that I have mentioned dealing with in this post.  Edit point:  I'm not an expert, I'm not ready to take on any serious creative projects, I probably just got excited and felt awesome because I possess the ability to think JUST enough to apply things that were taught just before and just after the issue to solve the in-between bugs.  lol

Another Edit:  When I expressed a different order to watch these tutorials, that was by no means expressing any belief that I think I know who is better than who or whose tutorials are more "advanced."  For the most part, when I'm not out expressing an abundance of overconfidence, I mean what I say- which in this case is simply that indev0r's videos are a bit harder to follow but teach concepts and such that I haven't seen elsewhere and definitely think are worth looking into.

Sunday, October 13, 2013

Learning in Two Dimensions

My first 2D game is near completion.  The significance of this may seem small, but I know that I possess the mental capacity to translate what I learn into practical use so what it REALLY means is that I'm a couple of exercises away from being capable of creating 2D games of almost any level of complexity.  I also have access to applications to start in 3D, but I greatly prefer working creatively, which means right now my most foreseeable dead-end is trying to create 3D art.  Without that, I have no 3D objects to incorporate into games.  If I was to meet somebody who could provide me with original works, however, a partnership would definitely be in order.  My capacity to turn ideas into algorithms is such that I feel, with only a bit more focused practice, I could use what I have at my disposal to begin creation of an actual original game.

Sunday, October 6, 2013

My Purpose, My Inspiration

    For sake of establishing my overall purpose here, this post is primarily to explain my intent here on this blog.

    I have always loved computers and electronics.  They are my passion.  Every job I have desired in my life has either been solely focused on creating new technology, or incredibly dependent on having greater technology than the opposition.  That's not to say that every job I have done has fit this category, but any job I have done has certainly proven to me the benefit of such focus.  At the end of it all, technology is key in the world, and if you want to be at the very root of it then I see three options:  physics, engineering, and programming.  These three fields create everything that we benefit from today in a modern society.  If I have to explain why, then you're probably on the wrong blog.  In short, however, the next paragraph will sum it up.

    In the world of physics, life is about either discovering new principles or further elaborating upon those that we already have.  Essentially, physicists tell us what is "possible."  Yes, we can all sit back and say that just about anything is possible, but to put a finer point on it one might say physicists tell us why it is possible or how.  More appropriate for this post, however, is they establish what is possible today.  Once that happens, it takes the mind of a particular engineer to implement these principles.  Engineers turn theories into reality.  Give the right engineer the equations describing lift, and he'll design the wing that directs the flow of air at adequate speeds to push upward and cause the vessel to fly.  As I'm not an engineer or a physicist, I may have fallen short in describing their contribution to our modern society.  If so, I apologize.  For most, if not all, of their creations, there is likely a computer system implemented to control them.  That is where a programmer comes into play.  I firmly believe that given these three minds, anything is possible to us.  The three minds (or, more accurately, combinations of minds as almost nothing these days is a "one man job") provide the kind of division of labor that allow the end users, the consumers, to benefit from the "latest and greatest."

    When I was younger, I always dreamed of being the engineer type.  I wanted to be the guy who invented the newest machine that revolutionized how we do just about anything.  In high school, though, as much as I loved learning the laws of physics and how to benefit from them, I don't think there was a single class in which I excelled more than computer programming.  A very strong part of me feels that a lot of this is because my physics class wasn't quite challenging enough (not because of any shortcoming my teacher had, but more because of the particular physics class my school had to offer.)  The only class I recall my school offering was "Physics:  Principals of Technology."  It was something students often took to get there their science credits.  As a commonly opted-for class, the teacher had to cater his curriculum to the students.  I hate to see a class go through this, but the simple fact is that a teacher's primary goal is to see the majority of his/her students leave with more knowledge in their subject than they had before- especially in a public school such as mine.  Computer Programming, on the other hand, didn't particularly fit any real "core" requirements.  The result was that people who took the programming class were, for the most part, there because they wanted to learn programming.  As a result, the class definitely moved a lot faster than any particular core subject class.

    This brings me to a very important point:  I started this blog tonight because I found a new surge of inspiration.  After high school, I stopped programming.  I went on to pick up whatever jobs I could find, I got married, I joined the military, I got divorced, yada yada yada.  I largely started programming again recently out of boredom, but found that putting my mind to something like this again was actually a rather incredible feeling.  I recall a time when I saw my scores on any given test soaring above those around me, and yet for the past eight years all I've really learned was electrical work on construction sites or how to blow stuff up in the military (which, mind you, I love as a career choice.)  Still, when I decided to get back into programming it, after nearly a decade, it was pretty much like learning it all for the first time and yet a few weeks later I have designed my first application that actually serves a genuine purpose that I wanted to expedite.  It's fairly simple, really, but it's effective and useful and it is a product of which I'm quite proud.  I have a very large number of files on my computer, altogether, and I'm very particular about the way in which it all gets organized.  So far the program I created is all very direct- the user specifies the name of each file and based on the user's designated file name, it gets sorted in the way that I like.  However, the principles I learned to make it happen showed me that I could very easily expand this programs capabilities to provide a few more options to the user(s).

    So, why am I on Blogger?  As I was searching for more video tutorials on various aspects of programming, I came across a video of a "child prodigy" who excels in programming.  As I watched the video, where others likely see a genius I simply saw a child who was provided with the opportunity to focus on his passion.  I've been around a ton of people in my life, and every last one of them excelled in something.  I could learn something from everybody.  The reason for that is just that we all hold our own personal interests.  An interest in something makes us more inclined to learn.  The opportunity to focus on that interest makes us an expert.  My take is that the vast majority of us could have been prodigies in something, if only we'd been given proper stimulation and opportunity.  Like the majority, however, I didn't seek out that stimulation on my own once school ended.  I just fell into the normal day-to-day that consumes most people.

    Now, I aim to change it.  I aim to document my path from being nearly an absolute beginner (all the programming knowledge that I possess, I learned in just a couple weeks time watching some YouTube videos for absolute beginners) to whatever end-state I reach.  As a pretty simple start, I began by watching videos on beginning in Java programming (in my case it was a series of videos released by YouTube user Jose Vidal.)  It was a series of 60-something videos on the simplest concepts of Java, and those provided me with a proper foundation with which to apply my focus to expanding in whatever direction I choose.  So, people, the real point is get out and learn.  This isn't inherently some "success story" or anything like that, just a thought.  That thought is that anybody can become great at something, provided they feel a sense of passion toward that subject.  For me, that subject is programming.  As such, I will be using this blog to document my progress, primarily so that I can look back over it and remember where I am today, where I now want to be in the future, and the kinds of ideas I had along the way.

    As of today, my biggest dream is to bring automation into everybody's day-to-day life.  I think that if we could all focus less on what we have to do and more on what we want to do, then we could begin to progress even faster as a civilization.  I want to be a part of that goal.  I want to be one to put out the applications that allow us all to finish our obligations fast enough to provide us with a little bit of extra time every day to focus at least a little bit on what we love most, whatever that may be.  I believe that all the technology is there already, it's just a matter of making more specific use of it all.  That's my aim, and whatever I post from this point on will hopefully be about my progress toward that end.