Thursday, December 5, 2013

Following My Path

If you've been reading this blog thus far, you know that I've been running along, trying to keep pace with the Ada Developers Academy coursework. (the ADA is an intensive year-long bootcamp-style program that I blew my chance at applying for a few months ago.) I'm so far behind and out of the loop of things that it's becoming less and less helpful to try to keep up. I'm going to apply for the next cohort.

In the meantime, Railsbridge is coming up in just over a week. I'm going to re-focus to get ready for that adventure. (I'm half-afraid to jinx it, but I actually got the time off that I need to go!)

Back to the fray I go. I just needed to publicly admit that trying to keep up with a moving train is actually hurting me instead of helping.

That's so stupid.

I'm going.

Monday, November 25, 2013

Pulling Back a Bit for Understanding

So I changed my registration for Railsbridge from helper to student. I'm still seriously stuck on the Intermediate course. I can make my way through it through Google, but I'm not really grokking what I'm typing. I'm not quite ready to help someone else learn it if I don't really understand it myself. I'll sign up for the next session as a helper. (And I'll be a much better helper that way, too.)

The super busy season at work is almost upon us. I'm going to get as much done today as I can and then get mini-projects done throughout the weeks. This is my last day off for 8 days, so I'm going to be blogging a lot less. I'm determined to keep up my Github and Stackoverflow streaks, though. I've got to be able to find an hour or two to carve out for learning each day. It can't be impossible. :)

Enough blogging, time to work. Wish me luck - it's going to be a crazy month or so but I'm going to make it through with a couple of mini-projects under my belt (and perhaps a bit of a sleep dept to pay off down the line...) :D

Thursday, November 21, 2013

Getting Ready for Tonight's ADA After Hours

In preparation for tonight's ADA After Hours, I'm drilling down into the public parts of the Ada Dev Academy curriculum. Today's warm up (which I worry may take me all day to complete) utilizes rspec, a testing tool that comes up repeatedly in posts that I've read but that I haven't really started working with yet.

So.

After a bit of Googling and digging into Stackoverflow questions, I found a link posted by PriankaK in a question on SO, (shockingly) called "Getting Started with rspec." (Imagine that.) The link led me to a blog on automated testing techniques by none other than Jeff Nyman!  So, I'm poring over it, trying out a "testing spike", cramming in as much knowledge as I can on rspec and then I'll be able to actually start the "warm up" of writing a Hamming module. Yeay!

Things are going to start getting very frustrating. It's the uber-busy season at work (yeay, retail!) but I'm hopeful that I can catch up a bit when ADA starts working on Javascript (I will hopefully have less studying to do in order to complete those assignments.)

Back to work, but I wanted to share the link to Nyman's blog. It looks like it's going to be a very helpful source of info for me and may be for future learners, too. :D

P.S.

OMG I did it:

# Implement a Hamming Class here:
#
class Hamming

  def Hamming.compute(strand1, strand2)
    diff = 0

    if strand1 == strand2
      puts "they match"
    else
      length = strand1.length <= strand2.length ? strand1.length : strand2.length
      for i in (0..(length-1)) do
        if strand1[i] != strand2[i]
  diff += 1
end
      end
    end
    return diff
  end 

end

Excuse me while I vacuum up the yak hairs...

Tuesday, November 19, 2013

The Next Five Days

My inter-library loaned copies of Beginning Ruby by Peter Cooper and Learn to Program by Chris Pine are both due on the 24th, so I have an externally imposed deadline to push me to finish this portion of my learning. I'm **nearly** done with LTP but I've barely cracked the spine on Beginning Ruby. I hope to get through at least some of it before I have to return it.

I have also signed up to help out at the next Seattle Railsbridge event on December 13th. It's a little crazy and definitely not something I would normally do (who the heck am I to go help teach people, right?) but doing what I usually do is what has kept me stuck in a soul-sucking "temporary" job. Taking big steps right out of my comfort zone should help me break out of this. :)  After finishing the Installfest and Beginner Railsbridge curriculum curricula I've been working through Michael Hartl's Rails Tutorial after getting majorly stuck on the Intermediate level of Railsbridge. As is typical, it's been slow-going but I'm plodding along as best as I can.

I don't have any original code yet (it's all been based on the tutorials and is posted at Github, but I will have something original soon (I hope :D.) It's time to get back to work.

Thursday, November 14, 2013

Days Like This

On days like this, when I have so little time to actually study and work on code, I wish that I could just be happy with what I'm already doing. I wish that I could live without ambition, without the hope that I can do so much more and contribute so much more than I am with "Did you find everything you needed today?"

On days like this, ambition just makes me sad.

Tuesday, November 12, 2013

Needing a Step Between Beginner and Intermediate

Yes, I know, :eyeroll:.

I finished the Suggestotron three times on Railsbridge and was pumped and ready to tackle my next challege, so I started the intermediate level.

And got stuck.

Majorly, completely stuck. I figured out how to create the controller and even managed to install Devise, but I had no clue of what to do next. So, I found a tutorial by Michael Hartl called (fittingly enough) The Ruby on Rails Tutorial. It's very take-you-by-the-hand and I've been able to skim a few sections but I've also picked up a few tricks along the way, too. (And, with the help of the comments section at Coderwall, specifically the comment by bnlucas, I was able to set up my path to allow me to open Sublime with the wonderfully succinct `subl`.)

I've only 45 mintues before my "day" job, so I'm heading back in the fray. Wish me luck!

Sunday, November 10, 2013

So Much To Cover...

It's been a busy week (or so...)

Ada Developers Academy has created an "After Hours" lab once a week to give Adies and those playing at home an opportunity to talk code and get and give help outside of classroom hours. I went last week and it was so great! I didn't plan enough time for my commute (I forgot just how busy downtown Seattle gets during rush hour) so I arrived late, but it was wonderful to get out and meet actual people who are working on this! :D

I'm still working my way through the ADA curriculum as best as I can. They've modified it so that much of the actual curriculum and assignments are posted on a private LMS so that the class has a safe haven for homework and discussions. GitHub now posts the lesson plans for teachers, but I think I can make this work. I'm fighting my way through the Railsbridge Suggestotron curriculum now, after getting majorly tripped up by using an underscore instead of a dot!! (Love those typos!)

Which brings me to the last bit I wanted to post this morning. Last night I listened to the latest Hanselminutes. "Bugs Considered Harmful with Douglas Crockford" was terrific. One of the many (opinionated, of course! :D) things he told suggested that developers do is use a bug log. I've been doing that, thanks to the very helpful Learn Code the Hard Way tutorial. At this point, my bugs are typically typos and forgetting to type 'ruby' or 'git' before spewing out some long command in the terminal. Later I'll have better bugs :D.

Goodbye for now, back to coding...

Monday, November 4, 2013

Not Behind, But...

I feel behind.

I'm following along with the Ada Developers Academy curriculum, but, as could be expected, I'm still on Lesson 1. I'm trying very, very hard to not beat myself up. I'm attempting a course designed to be worked intensely full time and I'm working it around 50 hour work weeks and a family. It would be a sign of a bad curriculum if I could just breeze through it in an hour or two a day. (And it's clearly not a bad one!!)

Enough whining. Back to the books. Thanks to the wondrous King County Library System, I was able to get two of the three ADA books through inter-library loan. I have three weeks to work through both of them, so I need to get back to work. Hopefully I can catch up a bit with ADA once they start JavaScript. (I also have a link for Reg Braithwait's JavaScipt Allonge that's been calling my name and I'm looking forward to that.)

Hackbright Academy retweeted one of their students yesterday:


Inspiring and majorly jealousy-inducing at the same time. I can't wait to be able to say something like that. And that's why I'm up at 4am on a night that I close so that I can eke out just a tiny bit more coding and learning time. I'll get there. Like toddlers growing up multi-lingual, it's going to take me longer. But once I'm there, look out, world!

Monday, October 28, 2013

I'm Getting Somewhere

Ok, teeny, tiny baby steps, but I'm getting somewhere. :)

Here's a recent conversation I had with Bob.

$ ruby chat.rb temp_logfile.txt
Hello there, I'm Bob.
...
Hi, there. I'm Jaime.
Hello.
you are
you
Yes, Bob. I am me.
I don't understand you.

What does me mean?
Type 'skip' if you don't want to teach me that word right now.

I know this is just a tiny, tiny step forward but like an ugly baby, it's beautiful to me.

Friday, October 25, 2013

One Bit Works, Now the Rest

Okay.

I have a small (very, very, very small) working Ruby script that starts off with a small dictionary of know phrases and then learns and parrots back new phrases that the user types, as such:


Hello there, I'm Bob.
...
>> Hi, Bob. Are you a computer?
Who you callin' 'Computer', chump? This isn't the Enterprise.
>> Oh, I didn't mean to offend you.
Oh, 'oh i didnt mean to offend you' you say?
>> Yes.
Oh, 'yes' you say?
>>That's what I said.
oh i didnt mean to offend you
>> I'm a little confused.
oh, 'im a little confused' you say?

I'm still working out how to keep phrases and such separate (currently the computer will learn a phrase with each word in that phrase as a key - use one of those words again and it will parrot back the phrase in which it originally learned that word.) I'm also working on a way to make the file persist between sessions. I (kind of) know how to open and write to files in Ruby. I think I need to play around with that first. But maybe work on the phrasing first....

Oh, well, back in the fray! :D

Tuesday, October 22, 2013

Just a Thought

It suddenly occurred to me: my free trial of Azure may be over, but what's stopping me from using AWS for a virtual Linux box?

More to follow soon...

Monday, October 21, 2013

Weakly Post

Oh, I see what you did there...

When I have to choose between coding and blogging, I'm trying hard to choose coding. Thus, the radio silence for the past week.

I've tried to install Linux on a partition on both my laptop and the family computer but haven't had much success. From my research, I see that installing Linux on older iBooks can create all sorts of WiFi issues, so I was scared off from that route before I even tried. (Working with the busted-up keyboard and it's half-missing keys reminded me why I retired Wall-e in the first place.)

I'm going to defer applying for Gnome's Outreach project for another six months. I'm continuing my work through the Ruby the Hard Way book, though, and I'm in the beginning stages of building a little chat bot website (yes, it's been done before but not yet by me.)  I've plunked the start of it over at GitHub here and here.  I'm also looking into WGU again. I'd love feedback from people with first-hand experience!

Sunday, October 13, 2013

If I've Learned Only One Thing From StackOverflow...

It's that I'm not the first one to be making these dumb mistakes. :)

Every single time that I've been stumped by some odd error message or unexpected behavior in a program and then Google it, the first (and sometime the first several) listings are all on StackOverflow. Many of the answers help (some don't) but nearly every time, I see some other purportedly skilled programmer has had the same exact problem that I'm having. Or this problem.

Saturday, October 12, 2013

Sweet Child(ren) of Mine

I spent the evening after work baking brownies and coding writing mini Ruby programs of silly questions with my kids. Initially, my seven year old was rather miffed that I kept insisting that we type in responses to each multiple choice question. Once she got to see the program in action, she could see that it was fun to enter in the "wrong" answer to get a "try again" from the computer. She got to learn something about logic and I got to complete an exercise in the Ruby book!

Tomorrow I will attempt to load Linux into my old iBook. Wish me luck!

Friday, October 11, 2013

More Coding Than Blogging

The past few days have been filled with frustration. My work has left me with very little time to code. This has the double edge of leaving me too tired to be super-efficient with the bits of time I can steal and angry that my work is effectively trapping me by not allowing me to develop the skills I need to finally escape from it.

Gnome has started Round 7 of their Outreach Program for Women. When it became clear last spring that I didn't yet have the technical skills to apply, I promised myself that I would apply for the next round. Whether through Imposter Syndrome or self-awareness, I don't really feel like I have the skills now.

This insecurity kept me from clicking the button to start my application for the Ada Developers Academy, as well, though. If I had powered through the uncertainty and taken the risk, I would have seen the deadline time and could possibly be interviewing for a spot right now. I am determined to not lose another chance like that again.

So, in addition to finishing the Ruby book (I completed 12 exercises today!) and starting the rest of the ADA curriculum, I'm adding to my current Five Day Plan to install a Linux distro on my old (older than two of my children old) I Book. All of the Gnome OPW projects use Linux (an open source OS is pretty key ;) )

I know this is a lot and I'm not really sure how I'm going to do it, but I won't keep doing what I've been doing. I don't have the resources to simply quit my job (to many people count on me) but I deserve a little happiness in my job, too.

Wednesday, October 9, 2013

The Next Five Days

After hitting a neighborhood of speed bumps with the last two exercises, I haven't written any code over the last day. Exercise 23 in Learn Ruby the Hard Way instructs us to visit GitHub and read some Ruby code that we can find there. Obviously, I choose to delve further into the Ada Dev Academy repo :).

I dutifully kept a list of symbols, words, expressions, etc, that I didn't understand. (What does :variable mean?) I surprised myself by understanding a little more than I expected and could guess the meaning of a few things (do |t| is some kind of enumeration?) I'm sure I will find out soon. (And will search once I'm on a real computer and not just my phone!)

More realistically, I expect to finish the next 15 exercises or so by Tuesday. I have my new workflow in place: read an exercise, write the code, test it, push it up to GitHub then work on the next iteration in the extra credit work. That will give me the practice I need on git and the Ruby book.

And I'm off!

Tuesday, October 8, 2013

What You Give Is What You Git

Wow, that's corny.

I hit a bit of a wall when I got to Exercise 22 in Learn Ruby the Hard Way. It's a review session that the author expects will take a couple of days to complete. My first thought was "Days!? I was supposed to finish this entire book by tonight! Agggghhh"

After I got a hold of myself, I thought it wouldn't be the worst thing in the world if I had to remake my grand Five Day Plan. So I started slogging through the exercises and then I remembered why I started doing this in the first place. If I was caught off guard by how long it would take to finish the book, then the actual Ada Developer Academy students might feel the same way. I took a deep breath and raised it as an issue on GitHub. I just wish that I knew how to highlight it (or, rather, lowlight it) as an enhancement, rather than an urgent critical bug.

Since I was on GitHub, it seemed like a good time to start pushing up the code I've been generating as I work my way through all the exercises. I cheated a bit and created the repo and the README directly on the GitHub website. I jumped in and used git proper (along with a healthy dose of Google, StackOverflow and a couple of git tutorials) to push up all of my work so far. (Yeay!)

I'll finish some more soon, and perhaps even start to use git to help me track my errors. (One of the assignments for the book is to keep a list of your errors. A diff file would be "easier" and would also give me LOTS of practice on git.)

Monday, October 7, 2013

When You Need Inspiration, Turn on Ruby Rogues

(I had time yesterday to either code or blog for a half an hour. I chose to code.)

I like the Ruby Rogues podcast so much that I started regularly listening to them before I started studying Ruby. After an ill-timed phone call at home from my boss, I needed a little turnaround before I took to bed with Cracked.com and avoided the world until it was time to report to work. So, I turned on BeyondPod and brought up the latest Ruby Rogues podcast, all about company loyalty and curating your own career and, as usual, a bunch of other great gems. (Pun totally not intended.)

Ah... that's better.

I was feeling rather discouraged about my sprint through Learning Ruby the Hard Way. I underestimated the amount of time it would take me to complete it and overestimated the amount of time I would be able to steal from other parts of my life to work on it. That has left me far behind my little Five Day Plan. The good news is that I'm still at it. And, because my plan includes pushing all of my code up to GitHub, I'm being certain to complete every extra credit assignment. I read somewhere that you'll write better code if you know someone else is going to read it and that certainly seems true for me!

TTFN, I'll write more soon.


Saturday, October 5, 2013

I Am Going to Code Today

I just finished writing a post entitled "I Did Not Code Today," but a "network connection" error on my phone stopped the post from publishing. As it sat there in my notifications list, it seemed liked a second chance to end today on a really good note.

So, here I am, blogging instead of coding. Time to pull out the keyboard and get to work!

Friday, October 4, 2013

My Five Day Plan

I squeezed in a bit of coding today and completed a review of Exercise 15 and nearly all of Exercise 16 (including the extra credit). I'm off tomorrow, but so is the rest of the family, so I'll be able to get in an hour or so.

If I really push it, I can finish up the rest of the book sometime on Tuesday. Then I'll start pushing my code samples and exercise scripts up to GitHub. I'll start Bash from the Ada curriculum after that.

I realize that this isn't most scintillating set of blog posts, but right now it's serving it's purpose to keep me on track. I'll have something more interesting to say soon.

Thursday, October 3, 2013

No Excuses

I just discovered a Ruby for Android app in the app store: Ruboto. It looks like I may have just lost my whiny "I was on the bus all day so I couldn't code" excuse. This should be interesting. Now let's see what I can do with GitHub on here!

No Code Day

:(  I spent my learning time today on the bus and waiting for buses in the rain, so I didn't so any coding today and am frankly too tired to do much tonight. I did have time to catch up a bit on my podcast queue.

The Freelancer's Show had a book club episode on "Book Yourself Solid" by Michael Port. He talked lot about networking and general business building, but he did touch on how important it is to do work that is important to you and to avoid working with clients that burn you out.

And that's a big party of why I'm putting cake poon (thank you, autocorrect) getting to sleep tonight. I'm going to do one exercise in Ruby the Hard Way, but then it's off to bed. See you tomorrow!

Wednesday, October 2, 2013

Day Two of My Fork of the Ada Developers Academy

I haven't actually forked it - but I will add that to my list of ideas once I jump into Git (which is coming up!)

I'm still working through Learn Ruby the Hard Way. I just finished Exercise 13. It gets very intense later in the course, so I'm trying to speed through the easy sections as quickly as I can and still understand them.  :)  Sometime next week I will push up all of my exercise scripts to GitHub (again, part of the Git portion.)  Until next time, back to the grindstone.

Tuesday, October 1, 2013

Procrastination Sucks

Yes, I am a recovering procrastinator. I have many excuses: I'm very busy, full-time job, kids, etc., etc., etc.

I think I may have finally found what will break me of my procrastination habit. I missed the application deadline for the Ada Developers Academy by a few hours because I was too afraid to actually start submitting the application. I read the assignment, created and even uploaded the YouTube video, everything. My fear held me back.

So.

Luckily, the ADA curriculum is open sourced on Github, so I'm following along. I'm working through Learn Ruby the Hard Way right now. I'm planning to use the overall timing structure of the ADA to keep me on track and focused and put a little fire under me. When it comes time for the real ADA students to start their internships, I'm going to take a deep breath and find something that at least resembles an internship for myself. I have no problem advocating for my kids. It's time I did it for myself, too.

So, back to work. I'm going to blog along the way. (And if I have to create an entry that says "I sucked and didn't do any learning today," I will. Just one of those that pop up on a Google search should keep me in the game.

Edited to add: my favorite little pep talk bit from Learn Ruby the Hard Way is this:
  • Remember that everyone makes mistakes. Programmers are like magicians who like everyone to think they are perfect and never wrong, but it's all an act. They make mistakes all the time.
Followed closely by the descriptions of the types of people who will insist you need to use a Mac or Linux if you're going to be "real" programmer. :D

Tuesday, September 17, 2013

Here We Go Again

I'd like to say I'm like Madonna, and I can keep making comebacks. That would require that I hit it big in the first place. Eh, imperfect world, imperfect metaphors.

I'm back in the saddle, applying to the Ada Developers Academy. I'm a little stuck on creating a video (I'm of the older generation that created presentations on poster boards, so I'm a little out of my comfort zone.)  I need to reach way back to my drama days and come up with something awesome. I happily (but only briefly) distracted myself with submitting a pull request to fix a typo on the website. I'm not sure if that's the best way to draw attention to my application, but I would never have been bold enough to do that in the past. And my old ways of thinking and doing haven't gotten me where I want to be, so it's time to try another way.

Enough blogging in an attempt to avoid real work. Wish me luck!!

Tuesday, April 30, 2013

Next!

One year and four months ago, I started the Code Year course on Codecademy.  A few rage-quits and many diversions (wow, Ruby's cool) later, I'm nearly done with the course (plus several other courses on the site.)  So what's next?

The next big item on my agenda is Microsoft's Windows Azure Developer Challenge.  I'm part-way through step 1 and will co-post my progress here.  Finishing two more Udacity courses are also bubbling up through my backlog.

Finally, remember how I said Ruby's cool?  Wow.  I'm giving myself a crash course in Ruby (and then Rails) and then I'm applying for the Rails Summer of Code project.  And training in Mozilla's #teachtheweb project.

I think I've got a few projects to keep me from getting too bored.  Idle hands, after all...  ;)

-- edited to fix bad link, 4/30/13 7:30am PDT

Thursday, April 18, 2013

Open Source is Hard. Let's Go Blogging!

Wow!  I've just burned through the better part of my coding time this week trying to figure out just how to jump in and (attempt to) contribute to the Wonderful World of Open Source.

I feel defeated.

I've found lots of awesome projects (this was a great starting point and I'm sure I've barely scratched the surface). But after sifting through the pages and pages on Bugzilla, et al, (and even successfully reproducing one bug) I'm still lost as to what to do next.

I'm taking a little solace in the wonderful Scott Hanselman's post on being a phony.  I trust that after all of his experience, he knows what he's talking about and that it's these moments of being in over your head that result in growth.

Back on the horse I go... wish me luck!

Thursday, March 28, 2013

Quick Catch Up

There's so much going on and I've been neglecting this poor blog.

I passed my exam (woo-hoo!) so now I get all kinds of email recommending the next five exams I should take.  I'm working on a mini-paint program but it's not quite ready for prime time yet, so for now it's a learning project.  I'm also working through my huge Pocket queue.  More will come soon....

P.S. As long as I'm on here, here's the code I'm working on.  It's really rough but it's a start.


<!DOCTYPE HTML>
<html>
<head>
<title>Mom's Mini Paint Game</title>
<style>
body {
margin: 0px;
padding: 0px;
}
aside {
position: relative;
float: right;
margin-right: 25px;
padding: 0px;
}
canvas {
border: 1px solid black;
}

#palette > div {
width: 30px;
height: 30px;
/*display: inline-block;*/
}

#red { background-color: red; }
#orange { background-color: orange; }
#yellow { background-color: yellow; }
#green { background-color: green; }
#blue { background-color: blue; }
#violet { background-color: Violet; }
#indigo{ background-color: Indigo; }
#erase { background-color: inherit; }

</style>
</head>
<body>

<canvas id="myCanvas" width="1000px" height="690px">
</canvas>
<aside>
<p>Press F5 or click refresh to start over<p>
<p>Your mouse is at: <span id="status"></span></p>
<div id="palette">
<div id="red"></div>
<div id="orange"></div>
<div id="yellow"></div>
<div id="green"></div>
<div id="blue"></div>
<div id="violet"></div>
<div id="indigo"></div>
<div id="erase" class="erase">ERASE</div>
</div>

</aside>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(e){
    var clicked = false;
    var $document = $(document);


    $document.mousemove(function(e){
      $('#status').html(e.pageX +', '+ e.pageY);

var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');

var colorChoice = "";

var eraseFlag = false;

//select a color
$('#palette > div').on("click", function() {
var $this = $(this);
colorChoice = $this.css("background-color");
if ($this.hasClass('erase')) {
eraseFlag = true;
colorChoice = '#FFFFFF'; //erase hack
}
});

//console.log(canvas);
    canvas.addEventListener('mousedown', function(event){
    clicked = true;
    context.beginPath();
    context.moveTo(event.pageX, event.pageY);
    }, false);
    canvas.addEventListener('mousemove', function(event){
    if (clicked === true){
    context.strokeStyle = colorChoice;
    if (eraseFlag) {
    context.lineWidth = 10;
    }
    context.lineTo(event.pageX, event.pageY);
    context.stroke();
    }
    }, false);
    canvas.addEventListener('mouseup', function(){
    clicked = false;
    }, false);
});
    });

</script>
</body>
</html>

Monday, January 28, 2013

Starting Fresh at P2PU's School of Webcraft

Jaime Lyn Schatz

Starting Fresh at the School of Webcraft

I'm starting fresh with the P2PU School of Webcraft linked over at Mozilla. One of the first challenges is to blog your progress, so here I am.

I'm not giving up completely on Codecademy and I've already signed up for the Parallel Computing course over on Udacity. I need to try something to hone my HTML5 that's a little less frustrating than Codecademy and it's many frustrations.