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.
you are
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


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 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.


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