Some things are missing and everything is messed up!?!

Hi – You might be looking for a blog post or something else here that’s not here anymore.

6 months ago I moved from wordpress.com to wordpress.org with hosting via webhostingforstudents. I never moved the posts I put up there to here, so yeah, a lot of blog posts are missing. I disabled my hosting and am redirecting this site to a site I built with middleman and bootstrap and is hosted via GitHub Pages. You can get a sneak peak of it at jdax.github.io or you can wait for the DNS redirect to finish. Old links you might have should work then.
Thanks for bearing with me while I make these changes!

Nikki

A year in not reading men

I accidentally (no, really) didn’t read any works of fiction by a single man this year. Some of those books were awful/hilarious, some of them were really good. I already blogged about the absolute most irritating book I read in 2014 (here), but here are some of the highlights, in no particular order!

The Lunar Chronicles (Cinders, Scarlet, Cress) –  – Marissa Meyer – This is candy, but it’s pretty good candy. It’s part Sailor Moon fanfiction, part “fairy tails re-told” and also part post-apocalyptic-ish.

The Summer Prince –  Alaya Dawn Johnson – Race, class, and age play a huge part in this novel. Future matriarchal Brazil with a poly, queer love triangle and a protagonist with a bisexual mother? Please!

The Drowning Girl – Caitlin Kiernan – Possibly triggering! Possibly a ghost story, possibly the story of a woman’s battle with a mental illness, definitely has a trans woman as one of the main characters.

Scale-Bright – Benjanun Sriduangkaew – Both prose and poetry, a twist on Chinese myth with lots of lesbians, and straddling both heaven and earth, human and in-.

The Girl Who Circumnavigated Fairyland in a Ship of Her Making – Catherynne M. Valente – A very dangerous Fairyland, with a heroine who learns to stand on her own and an obligatory magical creature cast.

The Girl Who Fell Beneath Fairyland and Lead the Revels There – Catherynne M. Valente – Like the first of the series, but with some interesting subtext and text about the importance of consent.

Howls Moving Castle  – Diane Wynne Jones- Re-read – Still as fun as the first time I read it, still infinitely more rich than that Miyazaki film.

Hundred Thousand Kingdoms – N.K. Jemisin -Re-read – If gods fashioned humans after themselves, how fucked up must gods be? Even knowing the answer beforehand, I was still shocked on the re-read.

Seven Things Cadet Blanchard Learned from the Trade Summit Incident – Annalee Flower Horne -Short Story – Clever, hilarious, plus fart jokes. Good world building, and believably done in few words. An evil company, a smart cadet, and fart jokes.

One True Love – Malinda Lo – Short Story – Heart-wrenching. I was getting my hair done when I read it, so I couldn’t tear my hair out during the sad part. Plus, lesbians, an evil step-dad, and a damsel in the tower!

On my list for this year, for those who want to read along with me:

Seraphina, Alcestis, Fairest, Ascension, The Archer Who Shot Down the Suns, The Girl Who Soared Over Fairyland and Cut the Moon in Two, Re-Read: Jonathan Strange and Mr. Norrell, Grave Mercy, The Killing Moon, The Goldfinch, Shadow and Bone, Re-Read the Girl of Fire and Thorns, Re-Read: Liliths Brood, Adaptation, and any other things my friends/family may publish! Ooops…that list is so far also not containing men…Also taking suggestions in the comments!

Build Another Pyramid

This past week in coding I got my cat bot up to github! You can now make your very own cat bot! I tried to make it as accessible as possible to the non-programmer as possible. Please let me know in some form if you have questions or comments! I guess, if you really wanted to, for some reason I cannot fathom, wanted to make a bunny bot or a dog bot or a ferret bot. I don’t know, I guess you could do that.

This past week in class we did if loops, while loops, arrays, hashes and enumeration.

If loops/while loops

If and while loops help you to not repeat code, or to make sure that only specific parts of your code run if certain conditions are met. So ‘if this, than that” would be the plain English of an if loop. “While this is going on, or while this is true, keep doing that” is the plain English for a while loop. For our homework we were asked to design pyramids to certain user defined specifications. We had to ask which character the user wanted to build the ASCII pyramid with, how many rows they wanted, and if they wanted it right-side-up, or up-side down. Obviously I had “Another Pyramid” stuck in my head the whole time I was working on this. This requires that you nest a while loop in an if loop.

In order to keep the “customers” height requirment, you have to keep count of how many times you run the code. So you set up a counter, and /while/ the counter is equal to or less than the customers specified height, you run the code. The if loop is used to determine which type of code you run: the code that will build the pyramid the right way up, or upside down.

# getting architectural specifications for the pyramid
puts “Please pick a character with which to build a pyramid”
building_block = gets.chomp

puts “How tall, in rows, would you like this pyramid to be?”
height = gets.chomp.to_i

puts “Do you want to defy gravity? Y/N?”
physics = gets.chomp.upcase
# counter, if loop/while loop

counter = 1

if physics == “N”
while counter <= height
puts ” ” * (height – counter) + building_block * (counter * 2 – 1)
counter +=1
end
elsif physics == “Y”
while counter <= height
puts ” ” * (counter + height) + building_block * (2 * (height – counter) + 1)
counter += 1
end
end

Arrays, Hashes, Ennumeration

Arrays and hashes are ways of collecting and storing multiple types of data. Both can store strings, numbers, symbols, booleans, and even arrays and hashes. Arrays are ordered lists. When you create one, the order in which you put the data is assigned an index. The index starts at 0.

this_is_my_array = [“string”, 1, true]

So in the above array, string is index 0. It can be accessed with array[0].

You can add objects to an array by using the .push method.

this_is_my_array.push(“new object”)

This will add the “new object” string to the end of the current array, at index 3. You can also insert a new object by assigning it an index that may or may not be currently in use.

this_is_my_array[0] = “Thirteen”

The above would put “Thirteen” at the start, and move everything over by one.

Some other methods you might want to use on an array:

.pop
.uniq
.sample (this is how I built my cat bot!)
.shuffle (yes, like your playlist)
.first
.last
.sort
.reverse
.join
.split

All of the above will make a copy of the array, and then make changes on it. If you want to permanently alter your array, you can add a ! to the end of the method. This is called the bang method.

Hashes are unordered, so there is no index. You access the data in them via keys. Each key is assigned to a value. In some other programming languages they are called “associative arrays” as the data has association to it. Hashes also commonly use symbols. Symbols are like smaller strings, they take less time to run. Instead of being noted “like this” they are notated :like_this. The difference is that symbols are immutable.

this_is_my_hash { :key_one => “value_one”, :key_two => “value_two”}

hash_of_peoples_favorite_animal { :nikki => “cat”, :liz => “rabbit”, :megan => “crab” }

The => is called a hash rocket. Idk why. I guess someone thinks it looks like a rocket.

If you wanted to access information from a hash you would type

hash_of_peoples_favorite_animals[:nikki]

or to put a new key and value into a hash:

hash_of_people_favorite_animals[:hannah] = “dog”

Most of the method’s you can call on an array can also use on hash’s, save the ones that might require order (such as .first, .last).

We also went over .each and .map, ways in which to sort information into arrays or break out information from an array.

cats = [“Didi”, “Tom”, “Stormy”]

So say I wanted each of my cats to meow. I could write this:

cats.each do |cat|
puts “#{cat} meows.”
end

What this does is temporarily assign each object in the array to the new ‘cat’ variable then runs it through the code. So it will return:

Didi meows.
Tom meows.
Stormy meows.

But say I wanted to put the results of the .each into an array of it’s own. I could use the .map method.

cats_meowing = cats.map do |cat|
puts “#{cat} meows”
end

So cats_meowing will now be an array looking like this:

[“Didi meows”, “Tom meows”, “Stormy meows”]

Leave comments/corrections/critiques/criticisms/compliments in the comments section! Before doing so, you might want to read my comment policy. Because I sometimes write about my feminism here, too, and sometimes receive hateful comments, I ask you to keep this in mind. I am learning ruby/programming right now, and do not know all the things there is to know.

Day Two

Today in my Back-End Web Development course we went over git, github, and loops in ruby.

Again, this was mostly review for me, except for the github part. Treehouse has a pretty good course on version control and git, and skims over github. I knew I had to have one, and that I could store stuff there, and other people could contribute, but there was a lot of finer details that were lost on me.

Ex: forking a repository to have your own version, and commiting to that, but being able to still pull from the original respository you forked from. I think I can use this to help me compile my cat bot for github. My catbot, the end result of which is found on twitter @NikkisCats, forked a twitter bot. This original twitter bot would create tweets from your own twitter archive. But I wanted a bot that would tweet random pictures. So I forked it to my respository, and then downloaded it and added new code to have it pull a random picture from the bucket i had on AWS, then tweet it. I’ve been confused on how to properly attribute the original repository and still have my own code available. I think the things I learned today would help me compile everything neatly and get that up this weekend.

For those who don’t know, git is a way to do version control. Have you ever gotten an email with an attachment that is named “Important_document_final_with_PRs_edits_PLUS_approval_for_real_final_version_NO_REALLY_ONLY_USE_THIS_VERSION”? Cause I get that one a lot. Then, of course, while you are edding the afore mentioned document, someone else starts to edit it, too? and you end up with two totally different versions? git is a cool way handle that problem when doing development.

gitHub is a graphical user interface laid overtop of git. Most of git is done in the command line. You create a local folder, and point it toward a repository. Other people can then check out what you “pushed” to the repository, but “pulling” a copy down from the repository. They can then edit it, and push the edit’s back up. git will check which files were added, which were changed, and merge those changes. If there is a conflict, it will let you know. This all happens in the command line. gitHub gives you a more visual way of checking what is in the repository, who has made edits, what those edits where, and other information. gitHub also allows you to edit stuff right there in the browser.

This is meant for informational purposes only, and is not an endorsement of gitHub. I encourage my readers to research the business and hiring practices of gitHub and examine them from a feminist lens.

We then learned about while and if loops in Ruby. While and if loops are an extension of some logic, if this, do that, else, if that, do this. While this, keep doing that. You can check out some of the exercises we did in class here and here.

(Yes, jdax as in Jadzia Dax, as in, the best Dax.)

Again, most of this was review for me, but I firmly believe the more times you are exposed to a concept or an idea, the more you understand it and the easier it is.

First day at GA!

Last night was my first night at General Assembly’s back end web development course. The weather attempted to stop it, but despite the impending blizzard and the ice and snow it threw at us, we were able to have class as planned.

The various staff of GA introduced themselves, and explained how they could help us. I’m not very good at names/faces, so we will see how well I do when I need to actually ask for something!

We started off with an explanation of what the internet is, and how it works. For the purposes of retaining information, I will be regurgitating some of it here. SORRY NOT SORRY.

It was explained to us by steps. There is a user, who sits in front of a computer. This computer is connected to a modem or a wifi hotspot. This connects to the internet, the maintenance of which is up to the service providers. It is then connected to the server of the website the user is trying to get to. A server is just a fancy word for a computer that runs the programs/codes. The internet sends you to the server via the domain name. Every domain name is assigned to an IP address which points to that server. The controller at the server gets the model, which is connected to a database, and a view. So a user types in http://www.domainname.com/specific_page and that request is sent through the previously explained path. The internet handles the domain name, the server handles the /specific_page part (which is called a route). Once that request is recieved, the server sends a response, and a webpage appears in the browser.

Since this is a “back end” course, it will focus on the part after the internet sends the request to the server.

With that out of the way, we moved into using the command line in a unix OS. I’ve already done a lot with command line via treehouse and this was mostly a review for me. However, the exercise we did was much much more geeky. It involved creating the directories of Alderaan, and Deathstar, and putting .voice’s on Alderaan and vader on the deathstar and force removing the Alderaan directory. Well, yes. I suppose as long as we have equal representation of Star Wars and Star Trek in our exercises I’ll be fine. Once we were all comfortable with the basic’s of the command line, we moved on to learning Ruby!

This was also a review for me, having gone through a lot of online classes and tutorials in Ruby. We went over strings, numbers, booleans, and variables. The instructors said that this fast pace was designed to make us learn, to extend ourselves, and to develop a “growth mind-set.” If I wasn’t already familiar with these concepts I might have felt a little overwhelmed. If you are a raw beginner and have never even looked at an intro to programming, I might suggest doing so before taking this course.

There was an install fest on Sunday, which I had to miss because sometimes you totally mis-understand how a car sharing app works, and sometimes the support person can’t help you when the car itself is broke. It seemed to be ok, though. I already had RVM, Rails, and Sublime Text 3 on my linux machine, and luckily I already had the one gem they wanted to use yesterday (pry, the gem is pry and it is a really cool gem that lets you stop the code after a certain point to see how it works; we just used it to play around with strings and variables and booleans).

I’m hoping there isn’t going to be much boolean. Or maybe I am hoping there will be a bi more, as I’m not very good at the logic part of boolean. I didn’t take a logic class in college, I took an epistemology class (I’m still waiting for it to be applicable in life, but to be fair I’m still waiting for a lot of my courses to be applicable.)

Since I last posted, I also created a twitter bot that posts pictures of my cats: @NikkisCats – I’m getting around to posting a blogpost about it as soon as I get it on github. Please look forward to it!

Review of Queen of the Tearling

[Note: I read this book this past summer, and posted a review on my dreamwidth, I’d like to post it here as I realized I was going to compile a short review post of books I read this past year. I decided my short review of Queen of the Tearling would have no weight without this review I wrote about 60% of the way through the book.]

 

I am always looking for books featuring strong female protagonists. Not “strong” as in “beats people up and eats their bones” (although, I like that a lot), but strong as in well-developed and well-plotted character arc. I’ve seen a few people compare Queen of the Tearling to A Song of Ice and Fire, as well as Hunger Games, and A Girl of Fire and Thorns. Almost all of them claim that this is no young adult fantasy, and that it contains violence and languange that isn’t necessarily suitable for “young adults” (and Hunger Games was because…?). However, I am 64% of the way through it, and I am not enjoying it.

I would compare it more to Legend of the Seeker in the style of prose, and in the fact that the MC is clearly an author stand in for political views. While Legend of the Seeker grated on me for the 100 pages I did read due to its conservative bent, I expected I would eventually like the more socialist bent of Tearling. Not so. Dry prose that attempts to proselytize is dull prose either way.

The four big concerns I have with the politics, however, I feel deserve their own section.

OBLIGATORY SPOILER WARNING.

Sex Work

There are two kinds of sex work presented in the book. The first is that of sex slavery. The Regent has an extensive collection of women whom he thinks he is giving everything to, but are more of collectors pieces then humans to him. The second is the workers of “The Gut” or “The Blue District.”

Upon Kelsea learning of the first, she immediately began to think of ways to rescue the poor women her uncle kept in captivity. Upon learning of the second, she immediately started thinking of ways to make her socialist paradise so that the women could get “real jobs” (yes, that is a quote from the book.) She also briefly thought of criminalizing sex work before the voice of her guardian told her it was wrong to legislate morality.

Kelsea “freed” the “harem” her uncle collected (again, books wording). The one woman, Marguerite, was recruited into Kelsea’s household to be a nurse and babysitter to her ladies-in-waiting children. In one scene, the Regent comes back and sees her, and she comes and sits at the foot of Kelsea’s throne like she used to do for the Regent. She isn’t given a motive for this, or asked to explain this act, and Kelsea finds it weird. Kelsea also is baffled that Marguerite has the ability to be good with children and speak other languages. Since Kelsea is supposed to be a moral center of the book, the reader is also supposed to find this strange, and weird, and definitely not the norm. This sets Marguerite up to be The Model Sex Worker, or The Exception, not like those Other sex workers.

The reader also has contact with another “freed harem girl” who is seen to be telling the Regent off after her freeing, but is very concerned with the fact that her jewelry has been confiscated by The Crown. SHe is set up as a foil to Marguerite. Yes, she is happy she isn’t the property of the Regent anymore, but, ultimately, the reader is supposed to deduce that her complaint was that occassionally the Regent made her “lick Petra’s cunt” rather than all the pretty baubles she was given. She tells the Regent that she’s found a home at some other nobels place, but doesn’t elaborate what this position entails, and the reader is left to guess that it is sex work, still, as she is not given any other abilities or talents. Further, it was not she who sought out this new employment, but this other noble lord who asked her to come to him. Thus, she is still not a player in her own life, she is still without agency.

The last sex worker we meet is not given a name. She works in The Gut, and has no history, no story, no motivations. Thorne, a very important power broker, and, at this point, suspected to be a Big Bad, arranges to meet a very depressed gate guard at a bar. He talks this sex worker into poisoning the gate guards drink. Possibly bribes, very probably threatened. But somehow, he makes her an accomplice in his scheming. When the poisoned gate guard learns of this, she skrieks with laughter. I can only assume this is meant to convey the sex workers of The Gut to be nameless, opportunistic, and amoral.

While we might have been told as readers we could, if we wanted to, sympathize with the Regents “harem,” we should feel no such thing for those who voluntarily chose to do sex work.

Race

The entire premise of this novel is that this is taking place in the future. SOMETHING bad happened, and all the Americans and Britains LEFT on a ship. To somewhere? Maybe it was a spaceship? Maybe it was a water ship? Either way, some new land was found (or was it? No mention of there being native peoples on this land has happened so far, but, welp, the British kinda don’t like mentioning native peoples and just kinda genocide them) and now they have somehow forgotten half of technology. However, despite the fact that, currently, America and England are not 100% white, the population of this nation, Tear, is so far all white save 2 men. There is another country that is largely inhabitaed by people of color.

This means that: 1.) Only white people moved, and this other country is comprised of people who were native to the land or 2.) everyone moved but segregated afterward, and it’s wishy washy on if there were native peoples.

This issue gets further complicated when one takes the authors remarks on the inspiration for this novel at face value. She claims she was inspired to write about an idealist who does manage to gain political power after watching a 2007 speech given by Barack Obama. Which…idealist isn’t the word I would use to describe him, but that is aside from the point. The point is that the main character, and all people she looks up to for guidance and support, idealist or not, are white. Your inspiration was a black man. See the problem?
I posted on twitter about this, but there is a lack of people of color.

EBooks

The characters of the book posit that aside from a ship full of medical knowledge not making it, the major loss of knowledge comes from the fact that in the future book publishing does not exist because of ebooks. Publishing, here, to mean, the physical making of a book via printing press. Because everyone has ebooks, somehow this knowledge is lost, and when the emigrate to this new land, there aren’t many physical books to bring, and none of them happen to contain how to make more books. So the evil ebooks have caused the world to revert to medieval Europe, complete with fiefdoms and lords and ladies and monarchs.

I love my ereader. That is all I feel I should have to say on the subject.

Femininity

I am all for a heroine who isn’t feminine. I am all for a heroine who is plain, or dowdy, or fat, or not classically beautiful. I love Alanna, who, while “passable” (according to George’s mother), mostly eschews dresses except for fun. I love Elisa, who is fat, and not afraid to embrace it. Yes, she loses a little weight while traveling among the Malefico, but she is still large, and does not let it concern her.

However, in this book, Kelsea, and, I assume, the author, broadly paint femininity as wrong. Elissa was concerned with dresses and hair, and that made her a bad ruler. The woman whom Kelsea takes a tiara from is called “a hussy” by Kelsea herself. Carlin chastises Kelsea for putting on a gown, and Kelsea later thinks very highly of Carlin for steering her away from gowns. Dresses are outright equated with vanity.

I am happy to have a heroine who wears armor and wields a sword. However, when Kelsea, and the entire cast of characters whom we are supposed to respect, consistently paint any signs of femininity as wrong and frivolous, it seems, frankly, misogynistic.

The patriarchy favors men who act out and perform a certain type of masculinity. While effeminate men might be able to have a little privilege, they are not afford the same degree and amount of privilege as men who are very masculine. Femininity is seen as weak, docile, and incompetent and unsuited for any major decision making.

This patriarchal line of thinking is carried throughout even if it is a woman espousing these views.

My decision to go to General Assembly

My decision to attend a non-accredited school to learn more about coding is many faceted. I looked at a lot of coding schools, and I looked at how long they lasted, what the hours were, how much they cost and did I have to relocate to attend.

I suppose I could break this down to a.) why I chose to go to a devboot-camp-esque school to continue my learning and b.) why I chose General Assembly specifically.

To answer why I chose to go to a school, broadly speaking has a lot to do with this Model View Culture article.

In the article, Anna states how she is going to a job fair, looking for an internship.

But when I asked about internship opportunities, the company representatives said no right away, or, assuming I was a CS student, asked me “What year are you?” When I told them I was self-taught, I was out. Other companies just wanted me to sign up for their newsletters, just a cheap marketing strategy, or a way of being nice. People weren’t interested in reading my CV. Out of thirty copies I had printed out, I gave out two. Some people advised me straight away to try “one of those programs designed for women.” They didn’t even listen to me. They saw that I was a woman, a beginner, looking for an opportunity to learn, and clearly not someone they would want to hire.

(emphasis mine)

She goes on to say

Being self-taught is accepted and even highly respected when you’re a white male. If you are a woman or belong to other underrepresented groups, it’s totally different. Besides being experienced you need to have a blog, website, GitHub account and contribute to open source. A recruiter once told me that if a candidate doesn’t have all of those things, they wonder whether that person is really willing to learn. That statement made me angry – who came up with these requirements? And who benefits from them?

(emphasis mine)

So, if I was not going to be respected as a self-taught coder, what could I do about it? It’s a situation that a lot of white cis straight men do not have to think about. A lot of them I’ve encountered online have boasted of quitting their job to learn code at home full time. I’ve often wondered how they afford that. I certainly cannot. I have a full time job, and it pays the bills. My savings could not support me while I take a year off.

As stated, I can’t quit my day job, so that left getting (another) bachelors out of the question. I already did that college thing, I’m not in any hurray to do it again – the food just wasn’t that good. So I could do one of those boot camps, maybe? I found a free one in NYC, that even offered a small grant for living expenses, but it would involve moving, and possibly finding a place that allowed cats (cats are important!) and figuring out a lot of logistics that seemed very impossible to me. Then I was looking at the Big Names, and all the 12 week immersives were $11,000 – $15,000. I already did the college thing, I’m still paying loans on that. Those $$$ look very large to me. In addition, it would involve leaving my day job. Even if these schools promised help in the form of having partnerships with companies that hire fresh grads, I still needed to eat every day.

So one day I stumbled on General Assembly’s night courses. It’s a twice weekly course in Back-End Web Development, it’s in the evenings after work. I will be able to keep my day job, and get the stamp of approval in a formal manner. I do not want to run into any roadblocks from people not thinking I am qualified as a result of their internal prejudice*.

(These biases* are often unconscious, and they do not necessarily mean you are an evil person. Having them means you are human, and currently uneducated in this area -which is ok, battling unconscious biases is not something we are taught in school, and it is a lifelong process – I am not here to bash anyone or yell at anyone – I am here to explain what I’ve been told about getting to be a woman in tech and why I made the educational choices I made!)