Love Works Pt. 3

Hello everyone,

The other day was the ‘first’ Equality User Group meeting. I place it in quotes because it was the first one scheduled, but I was the only one to show. This is a curious situation I find myself in, where I believe this is what people want (namely someone to learn development from and get their foot in the door), but yet I haven’t seen any significant interest. This may be due to poor advertisement, which I’ll admit that I’m not good at in any decent capacity. However, I feel that the amount of advertisement I’ve done did get the word out to a few hundred people, and surely one of them would want to appear, right?

With that consideration, I wondered if there were other possible sources of impedance. Perhaps the location of the group is too far from those who wish to attend? Maybe the timing was too close to rush hour? Or maybe Thursdays are very busy for many people? I know personally that it was pretty hard to get there that night due to traffic, and usually my weeknights are booked with other activities, so I’m keeping these things in mind.

Then, introspectively, I wondered, “If I were in the shoes of someone else, would I be comfortable learning from me?”. Perhaps I haven’t proven myself a worthy teacher just yet. I’m still considered a ‘junior developer’ myself, so there may not be much confidence in my ability to teach. Although I thought it very important to jump right in and start teaching regardless of my skill level, this may be a hindrance.

So, my plan as of right now is to work on a few things. For starters, I’m going to boost advertisement through improving the social presence of the group (I would appreciate a volunteer to design a logo). I’m even considering making and passing out cards, but will have to mull over the specifics a bit more. I would do well to take some time to learn and pursue other avenues of teaching to level up a bit. I was considering bringing in a volunteer teacher, but considering the lack of attendance, I’d rather not waste their time until attendance is more guaranteed.

For now, I’ll be putting a pause on the group, until the time is right to bring it back. I would greatly appreciate feedback and assistance on any and all of these things, if any of you would be so gracious to do so.

Thanks for reading!

Advertisements

Love Works Pt. 2

Hello everyone,

I’ve been thinking about my last post, and trying to figure out the best way to accomplish the goal I’m aiming for. While considering that, I’d stumbled upon this post. There is some language and some points here that can cause offense, but nonetheless it is an outpouring of someone’s perspective. If I am to help in any way, perspective is something I need to pay attention to. Otherwise, I will be ignored and will benefit nothing.

First, after reading through this in its entirety, I spent some time wondering how those young men feel. I’ve come to the conclusion that I wouldn’t feel any different than they or the post-writer do. This was a very uncomfortable situation. This didn’t seem to be a thing done out of love for the young men, but in spite of the person who said they were “up to no good”. And then, once put on social media for all to see, it very much seems like the person written of was trying to make it look like they were one of the ‘good ones’.

The user group I’ve created was made to give people who have been discouraged and pushed away a chance to learn and be encouraged. I’ve done this because I love my neighbor, and I long to serve others, even those who have been oppressed. I don’t care about receiving public praise. However, I’m at odds with myself. In order for people to know about this group, I have to be public about it. Also, in order to draw in teachers, it has to be as public as possible.

So, in short, I have a statement to make, and a question to ask.

My statement: I have no intention of being anyone’s savior. I only long to serve. I will be cautious with what I say and do to ensure I do not cross that line.

My question: Would you please help me to see if and when I cross that line? A different perspective would help me to see if I’m misleading in any way about my intentions.

Thanks for reading!

Love Works

Hello everyone,

It’s been quite awhile! I hope everyone is doing well, and is having a great holiday experience.

I’ve been taking a break from many things as of late. I’ve been given the opportunity to serve and take part in good causes lately, and have been focusing more on my family especially during the holiday season.

Also, I haven’t been blind to the issues that have been occurring in Ferguson, Staten Island, Cleveland and others. I’ve listened to stories like the one discussed between Scott Hanselman and Dr. Kortney Ziegler. I followed and reviewed information from both sides of Gamergate. I also discussed the issues that I saw personally.

I’ve been contemplating and meditating on these things, and have made some comments. However, I’ve been burdened to do more than sit back and just talk about the problem. The thing is that I love my neighbor. I love my neighbor to the point of action. And so, I’ve been thinking on what I can do as a software developer. Being given a great example by the ones who love me despite my flaws, and the groups that I discussed in the inequality post, I’ve decided to follow suit. Thus, the == (Equality) User Group has been created.

For the uninitiated, a single equal sign in many programming languages means assignment. If I have a variable called x, and I say x = 0, then I’m assigning 0 to x. However, a double equal sign is an equality operator. In that same example, if x is 0, when I ask if x == 0, I will receive a response of true. More info here.

This group will focus on teaching software development to peoples of all backgrounds, creeds, colors, genders, ages. At this group’s meetings, a safe learning environment will be sustained for any and all who wish to learn and collaborate with other developers. This will be a place where interview practice can be done to help acquire employment. This will be a meeting where we will do what we can to acquire resources for the sake of each individual’s career in software development.

This is my gift to you all this holiday season. Also, it’s a call to those who hear the same call to action as I have. Regardless of any excuse, you are welcome to come and assist. It will be appreciated, regardless of how small you think your contribution will be. Send me a note on any of my social sites or here in the comments with any ideas and/or if you wish to volunteer.

I will begin planning the first meeting once the holiday season has completed, and will post it on here and on my social sites once a date has been decided.

Thanks for reading!

Testing JavaScript With Jasmine Part 1

Hello everyone,

At Columbus Code Camp 2014, I was given the opportunity to speak. The talk name is “Testing JavaScript 101”, which involves testing with Jasmine in a TDD and BDD fashion. This will be an overview of that talk, and will provide links to the materials for further study.

First, let’s talk about Jasmine itself. Jasmine is a testing framework for JavaScript that is primarily focused on BDD-style testing. This is especially beneficial in a world where one would want to show non-technical people what they are testing and prove that they pass in a way anyone could understand with relative ease. It’s also quite good in that it doesn’t rely on any browser, the DOM or any JavaScript framework. So, it can run wherever JavaScript can run.

In order to install Jasmine, there are three choices:
    1. Using Git: git clone https://github.com/pivotal/jasmine
    2. Using Ruby: add the Jasmine gem to your gemfile and bundle install
    3. Using Python: use pip or add it to your requirements.txt

For the sake of this post, I’ll be explaining the Git route. Once Jasmine is cloned, go to the directory you cloned it in and unzip the file. A few directories (lib, spec, src) and the SpecRunner.html file are the result of the unzipping.

Thankfully, the folks at Pivotal Labs made it pretty easy to jump into this, as they already populated the spec (tests) and src (code) folders with examples. You can immediately run the SpecRunner.html and see an example of passing tests. Which brings me to my next point: test runners. For the sake of this post, we’ll be using the SpecRunner. However, other test runners can be used. 😉

At some point, I’ll be using jQuery in this project. It’s quite easy to add that into this project as well. We edit the SpecRunner file in your favorite IDE or text editor (I’m partial to Sublime Text 2 for simple JavaScript work), and add this near the top of the file with the rest of the scripts:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js">
</script>

Now that we’ve gotten all the installation out of the way, let’s take a quick peek at the examples. You’ll notice all the tests are in the spec file (short for specifications) and the code is in the src file (short for source). If we look in the source files, there’s not much but some short functions that are used just for showing off the tests. They don’t do much but set values or throw errors. In the spec file, we first see a ‘describe’ keyword. The ‘describe’ block of code has a title and a function. The function will hold all the actual tests. So, in essence, ‘describe’ blocks are suites of tests (which we’ll see in more detail later).

The actual tests are in ‘it’ blocks. These also have a title and a function, with the exception that the testing happens in this function. The title traditionally follows an “it should do this” syntax, describing the behavior that the test is trying to flesh out. The ‘expect’ value is what is being tested, and that is followed by the matcher. Jasmine has many matchers that I’ll go into on the next post. For now, we’ll go over just one of the ones that’s in the example:

describe("Player", function() {
  var player;
  var song;
it("should be able to play a Song", function() {
    player.play(song);
    expect(player.currentlyPlayingSong).toEqual(song);

In this case, we have a test suite titled “Player” and a test called “should be able to play a Song”. This is calling to the play function in the player file, which is setting the currentlyPlayingSong variable to song. Our test expects that the player.currentlyPlayingSong variable will equal song. That is true, so we get a passed test:

Jasmine_Testing_example_1

Thus far, we’ve installed and ran a test, knocking the first crucial steps out. Next time, I’ll go into further detail on what’s possible with matchers, talk a bit on the more advanced features of Jasmine, and give some resources for further study and practice. Please feel free to comment if you have any questions or comments.

Thanks for reading!

A Frank Opinion of How Geeks Can Do Better

Pop Culture Uncovered

By Aitch Cee

Before I get started, this entry comes as a result of not only the backlash that Kira Markeljc received for doing a costume, but the greater backlash that people taking offense to it got for voicing their opinion. Kira and I had a nice and pleasant chat via Facebook. She expressed that she was not aware that what she did could be perceived as offensive and she did not know about black face. I am inclined to believe her. As of now she wants the focus to be taken off of her, which is fair.

In my opinion, this conversation about blackface, racism, cultural sensitivity and the many discussions that I have had with others is much less about Kira and more about how we as a people are willing (or not) to come to the table and listen to issues that affects us. Honestly, I am…

View original post 3,168 more words

Looking From Both Sides

Hello everyone,

I’m sure pretty much all of you have followed #GamerGate at this point, and may have seen some good conversations along with some pretty outrageous ones. With one of my previous posts talking about inequality, and witnessing inequality myself, I was initially inclined to immediately take the side of those who were screaming “INEQUALITY!”. However, I’ve learned in the past to look at both sides of conversations, as I am aware that people are capable of not being completely honest or overreacting, regardless of what side of the conversation they’re on. So, I kept my reservations until I was able to see both sides. This is when I saw this:

I initially was brought to this video after I read this:

After seeing both sides, I’ve come to a conclusion that I’ll reserve, mostly because people can be very unreasonable when they’re anonymous (as I’ve learned with my time gaming, on Youtube (especially comments) and doing tech support). I’ve shown my stance in my actions and on this blog, and hope that people will not blindly trust anything from either side of a conversation, but yet do research to ensure we focus our energy in the right places.

Thanks for reading!

It Is Time…

Hello everyone,

I’m sure some of you keeping up with my blog probably think it’s going to die off soon; that I’m not trying to update it. On the contrary, I want it to stay alive and well. I feel like I’ve learned a lot through writing it, and know at least a few of you have benefited from it. I don’t want to give either of those two things up. However, time and priority has changed for me lately, so I can only get a small post in weekly at this time.

This week, on Saturday, the 11th of October, at 11:30am, I will be presenting my first session on software development…ever…I’ll let that sink in.

For those who want to listen in, it’s at the always-free Columbus Code Camp (which, by the way, I find to be a very fitting place for my first session, considering that’s where I first was introduced to the development community). Lately, I’ve been preparing for that, so my time’s been pretty booked. Afterward, I plan on writing a post that will lay out the entire talk, along with slides and all resources.

In the meantime, I hope to see some of you there!

Thanks for reading!