JavaScript Card Game: The Great Dalmuti (or look Ma, I used JavaScript to make a card game my friends won’t play with me!)

Hi, my name is Stephanie, and I’m a recovering board and card game addict.  My addiction has manifested itself in some very concerning ways over the years including a stint of playing DnD with nerds online over IRC chat in college, but the most recent iteration is by writing myself a small JavaScript app version of The Great Dalmuti/Daihinmin/President.

When I am able to coerce my friends to play this game, we all wear different hats to indicate our position in society, because unlike public schools you are allowed to wear hats in my home, and at times it is required like a construction site.  Only, instead of building apartment complexes, we’re building camaraderie?  Clearly, my preference is to give the dudes in our group the pinkest, prettiest hats I can knowing that society typically doesn’t approve of them embracing their love of lightish red and wanting to give them an opportunity where they can excuse their pink-embrace as the whims of a game addict while their hearts palpitate in an elation they had never previously knew possible from headwear.

Consequently, when I threw together cards based on a stick person I was able to create using arial font, they all had different hats to help simulate this very important part of the Dalmuti experience.  My only regret is that the 12 and 11 needed far more different hats than I provided due to a lack of inspiration in the last 5 minutes of my 30 minute hat making adventure.  Which is why those will not be cards I show you intentionally.  Instead, have an apple merchant:

Or, you know, a red blob saleswoman.
Here we have an apple merchant. 

She has large feathers in her luxurious purple cap and has done well in an apple-deprived market. Apple pies, apple crisps, and apple cider are the mainstays in the realm, and she is rolling in apple dough so much her feathers are bigger than her arms. Life is good for the apple merchant.

Totally did not make her an apple merchant because apples are easily distinguishable at small sizes.  It was definitely a lore thing.  Definitely.  Same with this carrot guy.  Lore.

Or, the amazing orange stick salesman.
The carrot merchant. 

A man with small feathers to signify his small wealth in comparison to the other merchants, especially that darn apple merchant. There was a time in his life where he spent day in and day out trying to convince the members of the realm that orange is the new red, but after being threatened with incarceration by the Great Dalmuti himself, he resigned to his fewer boxes of unwanted carrots and accepted his lot in life. After all, he could be a peon.

Look at that well-developed story line.  It makes you want to play a card game with robots because your friends won’t play with you, doesn’t it?

On a more technical note, this was fun to practice for some of the different things I’ve learned and a nice break from my behavior tracker app I’m working on.  I added some changes from my original based on suggestions from friends and spouse (ex. delayed listing of what the script in the browser has played rather than it showing as it loads which is instantaneously from a person’s perspective).  There are still some aspects of the game I need to implement (wild cards, revolution, greater revolution, taxes after the 1st play through), I want to make a much better UI, and I need to refractor my code a bit more since in some places I’m pretty sure it’s a bit awkwardly put together.  I’m also likely going to put together a multiplayer version using me some node and socketIO, but that’s for later because if I could get friends to play with me in the first place I wouldn’t have needed to make a computer version.

In the mean time – hats.  Hats are the answer.

Advertisements
JavaScript Card Game: The Great Dalmuti (or look Ma, I used JavaScript to make a card game my friends won’t play with me!)

Getting MEAN: Building My First Web App for Realsies (and also fries are the worst food gift)

You heard me, for realsies.  I even got to self-create security violations, but thankfully as the app works now it doesn’t include usernames.  Unless you’re capable of inferring.  Then, yeah, definitely an issue.

Not THE Batman.
I AM Batman.

I love you, internet, you’re a great outlet for all of my weird.

But first?  Fries.  Three nights in a row, my husband has eaten out for dinner due to working crazy hours recently (poor, handsome bastard).  Since he knows the secret to a happy marriage is food, he brought me home left over fries.  Now, I love fries.  When I was a kid and I got fries from McDonald’s, I would happily eat those hot, salty, death sticks as soon as I could get my fingers on them.

I ate them before my cheeseburger.  Not because I didn’t love the hot, cheesy, non-compostable burger as much as the death sticks, but because the death sticks would gradually develop a weird texture and consistency as they grew cold.  This is especially true with fries that will actually decompose over time such as those that you get from a sit down restaurant.  That crispy, crunchy, delicious starchy stick just turns into a cold, lumpy, limp, soft wad.  It’s like coal in your stocking on Christmas.  Complete disappointment unless you happen to live in a town running on coal power that is running low, and for Christmas you want to give everyone around you warmth again.

So I tried a few solutions.  One: microwave.  BAD idea.  Ten times as soggy.  Two: oven.  Took way too long.  Still quite soggy.  Three: Toaster oven.  Still soggy, but warm fast.  This may have been improved if I could cook directly on the toaster rack without complete and utter fear of causing a small fire.  This may have been a fear exacerbated by the quantity of “in case of fire!” signs all over my toaster oven, I admit, but also fries slide through thin cracks quite easily so it may also just be a common sense thing that I wish didn’t exist.

I tried to think of other food gifts that came home as bad as fries.  Don’t get me wrong, anything that is a starch to which you add sauce isn’t great (burgers, sandwiches, etc), but a quick run in the toaster oven can fix all of those.  Fries though, too thin to be toaster ovened without aluminum foil.  Tis truly a shame.  If anyone has a leftover fry solution, let me know, cause I have quite a bit left.

(Side note: Dear Husband, if you happen to read this, please don’t take this to mean that I do not appreciate the lumpy food gift, but rather that I am desperately seeking a way to improve my enjoyment of the lumpy food gift as google has not provided an answer that works with the cookware we currently own.  This was a pretty close answer though.)

Now onto the programming portion of our lecture.  A couple months ago I followed a django tutorial that told me I made a web app, and once I finished the site I had loaded congratulated me for my amazing endurance for all of the 5 minutes it took, but I knew the truth.  I knew I had accomplished nothing.  When I attempted to make my own web app at that point, my brain laughed at me and called me names, so I knew I had more work ahead of me.

I landed on learning the MEAN stack because it could all be done in JavaScript.  At that point, I’d finished a majority of the Headfirst Javascript book (2 chapters away from the end, I believe?), so I really wanted to learn something that I could use to help solidify what I had learned about JavaScript.

I have an idea for a program I want to make for some of my old teacher buddies to make life a bit easier, and while I have an idea of the kinds of data I need and some of the objects, I decided it’d probably be better to start with something a little simpler.  There were a good dozen plus websites going through MEAN stack tutorials creating a to-do list (the “Hello World” of web dev), and a few making chat programs.  I decided to be awkward and make a chat program where you talk to yourself and no one else.  Why?  It felt right and had the kind of functionality I knew would be a good stepping stone into the future.  It also allowed some really awkward test cycles where I posed as Batman and used the classic trilogy throat-tearing voice every time I posted a test.  It made the whole experience feel way more epic.

Using a combination of resources including the documentation for node.js, angular.js, MongoDB and express.js, multiple websites, blogs, and video lectures from strangers, it took me about a week of working on it after work to get it together.  I learned that express.js is a beautiful blackbox where I don’t know anything about what goes inside, but I should probably learn what happens in that blackbox.  Finally, the best learning tool of all was learnyounode.  The reason for this is because it is called learnyounode, which automatically makes it amazing.  Plus it just gave you problems to solve using the JavaScript you hopefully know to start creating a web server.  Pretty good times.

Here’s a link to the outcome.  More importantly, here’s a link to all my testing posts.  It gets weird in all the right ways with Batman, Joker, and Robin being the stars of my tester accounts.  This page would look a lot less awkward if I tagged the users who post, but since, again, my intent is to only see MY posts alone when I sign in, I don’t see this as an issue.

I think my next step will be to start working a bit more on the app I’d like to build for my teacher friends.  I’ll need to plan out what it needs to do and how it will work a bit more first so I can get my MVC on.

Getting MEAN: Building My First Web App for Realsies (and also fries are the worst food gift)

I Earned A Badge For Walking! (OR it turns out gamification DOES work on me and Fitbit made me walk in the rain OR benefits of interviewing)

So as I’m sure anyone who reads on a regular basis is aware, I’ve often complained about the fact gamification doesn’t work on me.  For those lucky enough to be out of the know, gamification is the habit of sites to give you badges, points, and other silly, meaningless measures of artificial success for meeting mild milestones.  Think of it as participation trophies on steroids and then delivered with high enough frequency that anyone with a gambling addition would be lost in the abyss.  It’s employed by Treehouse, Khan Academy (for anyone who works with kiddos or IS a kiddo), Codecademy, and was popular on a number other sites as well.  In the academic arena, I was never really motivated by them because typically my drive to learn surpassed that.  So when Treehouse used to send me daily goals, I had already blown them out of the water by doing 10xs as much as what was asked of me.

This wasn’t quite the case with exercise sites.  Now, I exercise a lot typically.  In the summer, I’m outdoor constantly swimming, paddleboarding, running, hiking, and doing yard work at my parents’ house.  Before my shoulder got busted, I used to spend my winters rock climbing indoors since I’m a coward who is super anti-injury.  After my shoulder got busted, however, I’d been experiencing a few issues.  1) I was told to not go rock climbing (boo!) even if it was indoors for obvious reasons.  2) I still didn’t want to go outside in the rain.

I set a goal about a week before I had my interview with Ada Developers Academy to go exercise outside even if it was rainy in the form of walks since the indoor gym and treadmill made me not want to move anymore.  That same week, however, the weather was absolutely gorgeous, so I had no problem meeting my goal. During the interview, one of the questions was about what was something you felt you should be doing or were already doing and wanted to continue doing, and how you would plan to do so.  I felt a lot of the questions were aimed at asking if I was responsible repeatedly and trying to clarify, just in case, am I responsible?  I am!  I really, and truly am!  Even if I did unintentionally insinuated that all East coasters are blunt/rude – but that was just an example of 17-year-old me being super unfamiliar with someone saying anything playfully derogatory that wasn’t sarcasm!  27-year-old me is totally cool with that, married an Easter, and has a best friend who is pretty oblivious to sarcasm.

My “continue doing” example was to learn programming, which I have been doing.  I’m automatically reinforced for studying it, because I absolutely love it, so it’s not particularly challenging for me to continue doing.  It’s like telling me to eat dinner.  No arguments from me there!  My “should be doing” example was of going outside to exercise even in the winter.  I know I should be doing it, and when weather permits, I love it, but even when it’s a bit gross outside I need to get my mercurial butt outside and embrace the drizzle.  My plan was to put it on my calendar (done), and then obey my calendar (always do).  While I could get myself out for 30 minute walks during lunch, I still struggled to motivate myself to do much beyond that, though I’m sure if I put it on my calendar to do more I would.  It’d probably help if I got waterproof shoes that aren’t winter hiking boots.

But you know what’s better than waterproof shoes?  Electronics!  The best kind of technology.  My friend had a Fitbit that wasn’t tracking her stairs properly, and when she was sent a new one they told her to dispose of the old at the “nearest electronics recycling center”.  That would be me!

Now, gamification for other exercise sites has never really worked for me.  Here’s why: it wasn’t attached to my wrist.  A Fitbit for me is essentially an adult version of the tomogatchi pets I had as a kid because my mom told me that two dogs, lizards, 2 hermit crabs, 4 birds, and a koi pond with a fish unfortunately named Jelly Boy (he was squishy!) was enough pets, especially after the bull frogs ate our entire goldfish pond.  It satisfies all my same button pressing, staring at progress urges, with the added bonus that there’s no fake poo to clean up or the risk of fake pets dying by the use of the fitbit (that I’m aware of).  So competing with my friend, earning badges, it’s all amazing.  And I can track my sleep patterns! Mind?  Blown. Did I mention I also have access to a bunch of graphs with all this data that I can export into an excel or csv file?  All my geeky data collection urges are satisfied too.

In conclusion, I can no longer convince myself I’m above addictive psychology tricks like gamification, but I already knew I could succumb to them based on Steam Summer Sales alone.  Despite not having waterproof shoes, I walked 4.5 miles today, over 10,000 steps, and multiple flights of stairs.  All because when I checked my phone it told me I hadn’t completed those things successfully yet, and glancing at the time on my Fitbit when I walked to the restroom confirmed this as well.  If all those websites trying to get me to exercise years ago were connected to my wrist, I would have been in such better shape. Now to track my sleeping for another night and wonder if there’s a correlation between “restless sleep”, and the fact I read books about coding before bed.  Me thinks perhaps.

I Earned A Badge For Walking! (OR it turns out gamification DOES work on me and Fitbit made me walk in the rain OR benefits of interviewing)

Change: IT’S COMING FOR YOU! (AKA puberty, husbands, and JavaScript)

I’m going to make a bold statement that you should just accept as fact: I handle massive change quite well.  Now, hear me out, I legitimately handle it really well.  For you naysayers, what I don’t handle well is the uncertainty of knowing whether or not massive change will happen.  (As a warning, the next few paragraphs go into moderate detail about my realization that puberty was a thing and a thing I would be experiencing eventually.  Please feel free to skip this if your stomach isn’t up for armpit hair.  I won’t judge you.  Actually, I won’t even know about it, which is even better!  Thank you anonymity of the internet which I’ve violated by using my real name on my blog and linking to it from my personal website.)

For example, when I was in 3rd grade and I had the misfortune of being exposed to my first sex ed video about your body changing in strange and mysterious ways thanks to being in a multi-age classroom where no one else in the building was exposed to it until 5th grade.  I was distraught.  Fat balls bouncing around on my chest until the end of time that would inflate and shrink based on weight, age, and baby-making status?  That sounded horrible.  And why more hair?  I kept seeing all these razor commercials, and so I was pretty sure growing more hair was really just a ploy to make them more money and there had to be a way to stop it.  My armpits were completely comfortable without anything stinky coming out of them, and no, I don’t want to rub something inside them every day to keep from offending other people’s nostrils, but thank you for the soap.

The kicker?  I was going to bleed for about a week once a month until sometime in my 50s or 60s?  Why?  No, seriously, why?  That seemed more like a ploy to slowly kill me than an inevitable fact, and I immediately complained to my teacher about these potential changes.  She told me it was something all young women go through, it was miraculous, so on and so forth, to which I was horrified.  I needed to know when.  If I knew when these horrendous things would happen to my body, warping it into a grotesque vessel for this torment supposedly known as “womanhood” topped off with this thing called cramps that until then I had only heard of as a reason to not go swimming after eating (false, by the way), then I knew I could prepare for it.

I took the only reasonable action.  I demanded my teacher tell me exactly when this horror would be unleashed upon my body, to which she responded, “Everyone has it happen eventually, it’s just whenever is the right time for you, dear!”  Dear?!  Ms. C, I was going to bleed most of my life and experience something that kills you when you go swimming with hair all over the place and strange, awful smells dripping off my body, and I was now “dear”?  Absolutely not.  Completely inaccurate!

I immediately set to waiting, uncertain when to prepare for the change, but knowing it would come.  I prematurely started doing things my older sisters were doing, knowing it would inevitably be my fate.  I shaved my nearly hairless legs and armpits.  I wore a sports bra.  I waited with the madness once encompassed by Waiting for Godot, and this was in the days before smart phones, so waiting didn’t involve reading the internet for entertainment either.  It was silent patience embodied by pre-adolescent madness.  I had encountered limbo.  Waiting for Armpit Hair.

That’s the kind of change I don’t handle the best – the kind that is maybe going to happen but hasn’t happened yet and you have no real way of knowing when so sort of make plans for it but also sort of don’t because you need to continue existing as you are now or else you’ll be a useless lump of lady meat.  So I’ve made an effort to address that, since after all the root source of my issues with the unknown is anxiety about when it will be unleashed upon me, which is simply silly.  After all, the most miraculous thing about life is that it happens while you’re making plans, and most iterations of those plans become wasted.  Fortunately, being the nerd that I am, I create multiple iterations of most plans, so while the vast majority are wasted, there’s always one lucky guy that gets to be executed, and he prances forth before all my wasted energy that’s discarded to the side as irrelevant, bragging and boasting about his momentary utilitarianism.

Now, for you naysayers, let me give you some examples of change I handled quite well.  I, a former commitment-phobic lady who hadn’t really dated anyone for more than 3 dates aside from one abnormal instance prior that was still within a month’s span, very easily accepted when I met my husband I would be an idiot not to spend the rest of my life with him, so married his handsome self.  Once I realized I was going to most likely marry him, the when of it all caused some stress, but thanks to constant exposure to that uncertainty (including my husband moving up the wedding date so we had 3 weeks to throw it together in the middle of the school year, which was amazing though very tiring), I got over it, which has been pretty helpful for rolling along with a fairly impulsive man.

I transitioned into an independent adult pretty well too.  Talking to a lot of my friends in undergrad and some recent graduates at the time, a number of people apparently had absolutely no money sense when they were first independent, and though credit cards were free money.  I, fortunately, never had that mindset, so I never built a substantial amount of debt I’d need to claw my way out of.  There’s definitely some weird stuff about being an independent adult, such as retirement and insurance, but researching it hasn’t been too rough, and I feel I’ve generally made fairly good decisions in those areas.  I’m pretty grateful to my mom for my money sense, since when I was a teenager I thought it was weird she talked to me about money, but I was later grateful she did.  There were some lessons that I’d rather hear from her than learn elsewhere, including the infamous, “Your father wants to buy a tractor and we live on a 3000 sqft lot”.

Finally, the decision to program.  I won’t go into too much detail about what prompted the decision, but I have set solidly that this is what I want to do.  Programming and I have been 10 steps apart most of my life as I have previously mentioned, and now that I’ve accepted the fact that I love it, I feel like kicking myself for not jumping in head first sooner.  This isn’t to say I have any regrets about decisions I’ve made in the past as far as my education and career go, and I certainly think every experience I’ve had has helped shape who I am today.  I’ve learned so much patience, empathy, compassion, working with little resources, and how to positively influence someone’s life to help them make more proactive and productive decisions.  There are leadership skills you learn in teaching that if you can apply in other areas of your life lead to a great deal of positive change for those around you in general.  I know how to have tough conversations with people about anything from substance abuse, body odor, or the injury their decisions are causing their relationships with others and themselves.  I know how to tell someone they’re wrong, but do so in a way that they know I still care about them, and that their wrongness doesn’t impact their goodness.  Teaching has genuinely made me a better human being.

Coding takes a lot of aspects that I love about teaching but applies them in a very different way.  To name a few, you constantly learn new information to better implement practices (though for me currently this may be extremely more so since I’m such a novice).  You also get to solve problems and puzzles, which I absolutely love.  It’s great tackling a puzzle without clearly knowing the solution then reaching that, “Aha!” moment later.  Then there’s the collaboration.  Talking to someone else about code and reading their code helps solidify my understanding of concepts, just like watching someone else interact with a student with challenging behavior in the classroom to learn their approach.  I also love that once you learn something new that can make your code more elegant or efficient, being able to go back and revise it, test it immediately, and see the results.  Testing it and trying to break it is great, since it’s like finding holes in your logic constantly then attempting to improve it.

Alright, new goal, make less posts where I inevitably start talking about how much I like coding and learning.

I’m currently learning JavaScript, and after jumping through many sources of information trying to find what works well for me, I have set on Head First’s JavaScript book.  I’m really enjoying it.  I’m on day 3 using it, and already I’ve covered more and more in depth than through months of using other modules to learn.  Part of why it’s working for me is the fact you can quickly read sections you’ve got down, but also because of how many different ways it shows different vocabulary and concepts.  Retaining it all is so much easier than having someone pass over a term briefly but never revisit it.  I really wish they had a recent book on Python too.

My current project is a game of Battleship.  I’m not too far on at at the moment, mostly working on data structures, but I’m pretty excited to get it all working.  In fact, I better hit the books and keep learning so I can get it down.

On shoulder related news, I had a doctor’s visit today.  I’m on the same restrictions for 6 more weeks, but he gave me a steroid injection in my joint, and I have got to tell you, so much less pain afterward.  It was amazing.  The reason for it is so we can push it in PT a bit harder since currently he believes pain is inhibiting my progress.  More pushing is amazing news.  I feel like it has been forever at this point, likely because it has been, but I’m truly grateful for the progress I’ve made.  Each day I feel like I’m getting a bit more of my strength back, and each day the pain decreases a bit more.

Change: IT’S COMING FOR YOU! (AKA puberty, husbands, and JavaScript)

Another New Year! (sort of) and Other Sources of Reflection

Happy Year of the Goat!  For the first time, I was part of hosting the Chinese New Year celebration rather than mooching food and butchering my knowledge of Mandarin to say thank you.  Much food happened, we made the best spring rolls of all time, then we ate them all with friends and family.  Everyone was happy.

This allowed me an experience I typically have twice a year.  Once during New Years Eve and again on my birthday in August, I typically have this moment where I reflect on where I was this time last year and realize what an idiot I was.  Without fail, I think about myself a year ago and always know that I’ve grown a lot and that if I met myself in the past and had a conversation, I would stand in disbelief staring at myself and my actions, regarding myself as ignorant, naive, and childish in comparison to the present iteration.  This is one of the many reasons I’m incredibly against any attempts at time travel and time travel movies just make me uncomfortable while I suffer through their infinite plot holes.

If I had to meet my past self, we’d inevitably get into a fight.  My present self would be frustrated that my past self didn’t know what my present self does even though they’re technically the same person, and my past self would feel my present self was awfully sure of herself and borderline arrogant.  This most likely would stem from the fact not enough time had passed that I feel like there should be a significant difference in our awareness, and given that it is essentially me who isn’t living up to my standards, I’d get irritated, where as with anyone else who doesn’t live up to my standards I’m generally pretty supportive and encouraging to help them improve.

If, however, I was able to meet up with a past self that was a significant amount younger, say a decade or so, I imagine we’d get along quite well and spend the time figuring out what age I actually was when something happened rather than assuming I was 8.  My present self would admire how dorky and awkward my past self was, feeling accomplished that as an adult I had managed to cover it enough that when I announce it to people who know me at a professional level they don’t believe it is true, but as soon as that boundary crosses into friendship they can’t help but be awestruck at how long I managed to cover and compensate for my social flaws thanks to a large amount of confidence making it appear as though everything I did was normal.  My past self would look up to my present self, proud of the fact I had a dog and finally started studying coding rather than hesitantly colliding with it before running away over and over again.  They’d be a bit perplexed about how the husband happened, but probably accept it if they happened to meet present husband as well.

So, yeah, time travel should never be a thing.

On Chinese New Year, I briefly thought back to where I was last year, and I, as always, just ended up feeling sort of weird about myself.  This time last year my husband and I had been engaged for a couple months and felt sort of weird about it (as a former commitment-phobic who didn’t like spending more than a week with someone), had a sinus infection thanks to one of my dear students snotting all over me in the most epic sneeze in the history of mankind during a math lesson, and I couldn’t imagine doing anything in my career that wasn’t teaching.  This year, I’m married to my dear husband and feel amazing about it, have a shoulder injury I spend hours each week at PT to resolve due to a very angry student, and really want to become a programmer.

Those are all some pretty big changes.  I’m especially grateful that my husband has been as supportive as he is about my desire to change careers, though I know the news has been very shocking to a few of my colleagues since I am very good at my job.  The reasons for it are pretty strong too.  With my injury, I’ve no longer been able to look away from the severe problems in the education system that when you’re working with students on a day to day basis you come across and bump heads with trying to get resources or assistance needed to work with severely impacted students with emotional and behavioral disorders from district administrators who do not respond to phone calls or emails.  I was pretty much shoved directly into it, both figuratively and literally, staring at it and observing it for hours on end every day with no way to ignore it, and those issues are ultimately what lead to the injury in the first place when I received no response.  I could write a novel about these challenges and their implications for the safety of children and teachers let alone the education of students, but I’ll save that for another time.

Since I was eventually placed on actual light work duty, the work I was asked to do was mostly paperwork and on the lucky days helping teachers improve their paperwork to make a positive impact for students.  This meant I was doing a job I no longer took home with me, and the hours extra beyond the typical day were nearly nonexistent aside from attempting to compensate for hours missed due to physical therapy.  I had a lot of time to think about and explore interests, particularly ones I could do without intense use of the right side of my body.  I tried something I had spent most of my life avoiding fully exploring: programming.

I was hesitant at first when I realized I loved it as I gained very basic knowledge of C++ and made silly little programs that did very basic things such as a calculator that no one but me would ever use.  I knew myself well enough to know what when I learned anything new my instant gut reaction was blind love and adoration but that this was caused largely by the novelty of the knowledge and when you first start learning something you see great improvement without much effort.  As I kept going though, even tuckered through scripting in HTML and CSS which were very less mentally stimulating, I still found I enjoyed applying what I learned to actual projects I could improve, make more efficient, and see the changes almost immediately.  Don’t get me wrong – I’m all for delayed gratification.  I love teaching where I wouldn’t see a student’s behavioral growth for at least a month after the initial intervention had been implemented, but that month was hard and often involved multiple instances of unsafe behavior in the mean time.  But the quick way of being able to test and  compile your code, find test cases that would potentially break it and making sure you’ve worked around it, it’s almost like the whole game-ification movement in educational websites.  You get little rewards for your success, but rather than being entirely superficial like the badges on those sites, your reward is simple, functional code.

I love it.  I love everything you can do with programming, the possibilities that can be unlocked, the way computers can do so much that as a human being would take me exponentially longer to process and compute.  I love thinking about a problem then making a simple solution and writing a program to implement that solution then addressing cases that break it.  I love the constant improvement, and adore talking to other people about solutions to problems to learn from what they have to share and how they explain their approach.  My poor mentors have no shortage of me staring at them with love and adoration as I show them my horrible scraps of code and searching the internet for other ways people have solved similar problems with their explanations to the approach.  The constant learning and problem solving is something I loved about teaching, and I similarly love it about programming.

Ultimately, one of the aspects I love most about coding is the fact you get to have that “New Years” feeling of looking back and thinking, “I KNEW NOTHING!  I WAS SO FOOLISH!” on nearly a daily basis – sometimes even multiple times an hour.  In a world without time travel, who doesn’t love a feeling of constant growth every time they figure out a problem they were stuck on?

Some very good news: my physical therapist last estimated that we were just a few more weeks away from me never needing to see her again.  I like the lady, but I really would love not seeing her more than I see most of my friends and family.  On my last progress report day, I scored a “4 to 4-” on a 5 point scale, with 5 points being normal and no need for any interventions.  When I first went in back in December I was at a 2, meaning I had limited range of motion and couldn’t move my arm against gravity very well.  A 4 to 4- means I have most of my range of motion back and can handle some resistance, but still not quite the normal range.

Also the application for ADA closes tomorrow at 5PM.  It’s a web development bootcamp for ladies that would start up in May.  Their programs used to be 6 months in class and 6 months at an internship, but now it’s 7 months in class and 5 months at an internship through one of their sponsoring companies.  I think the extended class time in comparison to other boot camps would be beneficial since typically short term cramming doesn’t lead to long term retention for anyone.  On top of that, I like the fact they have an internship tied directly to it in order to get some experience in a work environment where it’s pretty well accepted that you’re there to work but also very much to learn.  After all, that’s why programs like University of Waterloo’s are so effective.  They place their students in internships constantly so they can apply what they know to real-world scenarios, or in my case work with legacy code.

I submitted my application last week after accepting that talking to a web cam was not my strong point and something I gradually grew worse at doing the more I practiced.  This was disconcertingly similar to my attempts of learning how to dance in middle school prior to our first school dance.  I hope ADA will find it in their heart of hearts to find out I’m actually marginally articulate in person.  If not, I’ll resign myself to continuing to explore other options.

Complete self-study is supposedly a reasonable option, but I would rather have more experience coding with people instead of in isolation since that’s more what the work environment is like in my experience, and I know you learn more from others than you will ever learn alone.  Other boot camps are on the table as well, but the Seattle-local ones typically advertise that in the same time frame it would have been to attend ADA’s classroom only portion but without support or colleagues for half of that time, you will be work ready.  In the mean time, I intend to continue independently studying as I have been in my free time after work and hope I will be contacted for an interview.

There isn’t a doubt in my mind that I will become a programmer; it’s really just a matter of how I’m going to get there rather than if I will.

Another New Year! (sort of) and Other Sources of Reflection

Problem solving is an addictive activity

Did you see that alliteration in the title of this post?  My high school English teachers would have all taken some deep meaning correlated with that alliteration and tied it to problem solving, but in case anyone was wondering the author’s purpose, it’s just that I enjoy alliteration.  It feels right on my brain while I narrate what I type in my head.

Ahem, onto business.  So, life is pretty great for the Lady Liu currently.  Whenever I am looking at a new job, school program, etc…I always decide to google myself to see what’s out there.  My husband and I discovered that I am very likely the only white Stephanie Liu on the planet after spending an hour of trying to google myself on the internet and coming across an adorable Chinese Stephanie Liu who did informal modeling and was all over the first half of our search, a varied assortment of Asian ladies with the name Stephanie Liu, and finally a few white ladies named Stephanie who were photographed by a man with the last name Liu.  So, I went from having the most specific name in the history of mankind where I was the one and only to having a very generic name that only belongs to one of my race.

Now, my dear husband also had a multitude of theories about why this was probably true.  A few months ago we had gone to the jeweler where he bought my engagement and wedding ring, and while we were waiting for it to be cleaned and inspected, a young Asian American man came up to us to tell us how amazing it was to see another “Asian Male White Female” couple since he was convinced he and his fiance were the only ones.  He was absolutely adorable and ecstatic, and my dear husband and I were a bit thrown off, then immediately curious.  Our only regret was not chatting him up more about this.  So, my husband is also convinced that the reason for the uniqueness of my name with my race is due to the same observation the guy at the store made.

It’s possible, but more likely it was just hard to find due to the quantity of people on the planet named Stephanie Liu, and we didn’t try hard enough.  I couldn’t help but feel, though, that somewhere out there there was a computer program to help me resolve this issue and find another of my kind.

Why did I decide to google myself, you ask?  What job or school program was I looking at?  Well, as I’m sure you’ve noticed if you’ve read this blog more than just today, I’m trying to learn how to code, and then I gradually realized I love it because problem solving is addictive.  For example, I spent a few hours making myself a lovely abacus program in Python that would take any number through the billions and print out an abacus replication of that number.  It was likely incredibly inefficient, but after getting it down to 8 lines of code, I felt pretty good.  Trying to think of a simple solution to a problem that you can explain to a child then make a program based on that solution that’s equally simple to code is a fun activity – especially since I’ve noticed prior to this my brain had a tendency to make things far more complicated than necessary by taking in too many variables all at once.  Thinking through a single variable and its impact at a time before additionally complicating things is oddly fun for me.

So because of the above described love of problem solving which was still present prior to learning basic coding, I was drawn to it.  I think this is something I would really enjoy as a profession, especially after having a few experiences of working on my code with a couple other people.  It simulates a lot of my favorite aspects of teaching or even better it accentuates those aspects I love and makes them the focus.  Consequently, I’m currently applying to ADA, a year-long program for ladies with 7 months classroom instruction and 5 months of internship at a local Seattle company.

I’m enjoying the application so far.  Making my resume in markdown on Github was fun, and I finally put something on my Github account I had sitting there for quite a while and hadn’t spent the time to learn how to use.  The hardest part was likely that I had no idea what kind of information to include on my resume.  For example, on a traditional teaching resume, you are expected to include all your work history since you were 18 on some part of your application or resume due to background checks to make sure you aren’t a creeper.  Furthermore, for teachers with less than 5 years of experience including all your practicum and internships is typical.  Given I’m applying for a program I don’t technically have any related experience for, which is sort of the point, figuring out what to include was rather challenging.  Discussing this problem with a variety of people, I decided to go with my most recent experience, teaching, and technologically related experience, tech support from undergrad and a bit after.

The part of the application I’m currently working on involves using a CSV data file to get different pieces of information then explain how you did it.  The one I’m having some slight difficulty with, likely because I’m over thinking it, is a portion about whether the market is on public or private land.  Now, after consulting with the internet, apparently no one agrees what is considered public or private land, aside that it’s generally accepted that roads are public and some parks are.  Given this was a problem, I decided to contact a couple lawyer friends of mine.  Turns out, they also had no idea and after one checked in with a buddy who did land law, he came back saying the response he got was that whoever could BS better would win in court, which told me they were likely uncertain themselves.  So…yeah.  More research, I suppose?  If more research doesn’t solve that problem, I will do what many teachers do when asked to answer a question they suspect could use slightly better definition – define it myself!

Another bonus – the application motivated me to get the basic, basic website I’ve had on my hard drive finally uploaded to the internet.  Head over to stephanieleighliu.com if you’d like to see a very, very simple sample of what I’ve been dinking around with between Treehouse, Udacity and the rest of the internet.  It’s pretty simple for now, but I’ve definitely learned a bit about different features by making it.

Also, robots are amazing.  Mine is currently vacuuming my floor, and it feels right watching it work while I sit and type rambling blog posts.

Problem solving is an addictive activity

Pain: It Builds Character! (Or: Why I’m a Horrible Patient)

I would like to start this off with an apology.  Mom, if you ever happen to read this, I’m sorry.  I truly am.

First, I’m sorry that I doubted you would figure out how to find that I wrote a blog.  Another further apology for suspecting that even if you knew I wrote a blog, you surely would never actually find it.  I’m pretty sure you use the internet to play variations on solitaire and the occasional update to the space simulator I downloaded on your iPad (shout out to FTL!  My mom and I  both love you, so make an android version so I can play mobile too, please!) and nothing else.  So if it turns out I was wrong, and at some point you were doing a search about poodles and somehow you landed on my Ninja Poodle post and then you suddenly realized, “Wait, I know that little bastard who lies on clean laundry piles with his filthy, smelly, old dog poodle body…” you decided to start clicking around on my page and found this post, I’m sorry I ever doubted you.  I know you’re capable of many things, Mom, and at long last your web browser is one of them.

Second, I know if you read this you would take it as me insulting your statement, “It builds character!” every time I experienced pain and implying it was detrimental to my development.  I want to make it clear that I don’t feel that way at all.  I have just noticed that while it certainly did cut down on the amount of moaning and groaning I do in comparison to everyone I have met in my life, it has lead to some consequences whenever I do happen to need to visit a doctor multiple times and a physical therapist over a duration as part of my healing process following an injury – like say, for example, a student rammed me into a wall injuring my shoulder and kept swinging.  Not that that’s ever happened.  That sure would be weird.

Moving on, then.  When I was a kid, I had the most tangled, rebellious hair a blond kid could have when the hair otherwise appeared straight.  For the most part, this wasn’t a huge issue.  Why?  I personally didn’t feel hair brushing was all that essential as a kid, so it rarely was a problem.  My mom, however, felt differently.  Every time she did my hair, either because she happened to be around after a bath or was doing my hair for us to go somewhere fancy she figured my matted mess wouldn’t look so appropriate, she would brush it.  This sounds simple enough, but you have never had a tangle of interwoven, matted hair with a brush yanking down on your scalp if you think it’s silly to make any exclamation of pain.  I already was a pretty tough kid thanks to bigger sisters being less than gentle with me and getting into fights with the neighbor boys, so it was typically limited to a grunt, and on a particularly bad day, an “Ow, Mom, that hurts!”

To this, my mom always had one response.  “It builds character!” and then would continue on the current course.  (This may be why my response the first time a student for whatever reason decided not to follow a direction I gave was to wait for a moment then repeat the direction until it was followed.  This once lead to me saying, “Sit down,” in a monotone for 5 minutes while a kiddo with EBD ran around the room trying to find a way to get my attention.  Fortunately, he grew bored and eventually sat down, though that probably wouldn’t be how I’d handle the same behavior today now that I have a bit more experience and a lot more reading in on best practices in teaching students with EBD.)  My mom, every time I made any noise, would yet again repeat, “It builds character!” and keep going.  Bellyaching didn’t change the outcome, so I eventually just stopped bellyaching.

Overall, this was fine during my youth, except any time I was ill enough or long enough to warrant a doctor’s visit.  For some reason after you’d been vomiting for 2 weeks straight multiple times and then get to awkwardly tell a doctor you’re pretty sure you’re not pregnant because there’s a certain activity required to cause that to happen that you, as a minor generally traumatized by the “Miracle of Life” video’s birthing scene, had not been partaking in and had no intention of partaking in ever because that was not about to happen to your precious body, they aren’t really inclined to check into it further if your response to various motions that cause pain is to say, “It’s fine.”  Fortunately, the solution to my vomiting problem was to get about 5 years older, and then it worked itself out.

I take that back, there was one other time a more verbal response to pain would have been beneficial when I was a kid.  My neighbor boys and sisters sometimes liked to pull my hair.  Thanks to it building character to have my hair pulled by a brush, I assumed it also did when hands were involved in pulling.  I usually just sat there motionless, unresponsive to the tugs, impressed by my own toughness.  Except one time the neighbor boy was particularly mad at me in our game of LEGOs for taking the last steering wheel to make my mobile toilet car (I made many of these, don’t know why, but it was sort of my thing).  He wanted the last steering wheel, and when I refused to engage in that high-quality sharing I learned in kindergarten because sometimes get to have the last of something too and sharing also means the other person should share back occasionally instead of take-take-take, he yanked my hair.

Another example of the fact I'm not actually invincible.
Another example of the fact I’m not actually invincible.

Fine enough, my scalp was made of titanium for all I knew.  But when I didn’t make a peep, his eyebrows simply furrowed in rage as he glared down at me, holding the last steering wheel just out of reach.  He grasped, he hoped, he failed to get it out of my hand, and so he did what a little boy does to a little girl who isn’t sharing.  He pulled my hair harder, hoping pain would cause a reaction.  Nope.  Again, not a big deal, but he continued trying to pull harder and harder in hopes that I’d do something, and instead I just stared back at him blankly until finally he managed to tug a chunk of hair off my head.  When I still didn’t respond, he finally resorted to what little boys do when violence doesn’t work.  “MOM!  SHE’S NOT SHARING!”  Shortly after, I was yelled out of my neighbor’s house, LEGO-less.  The toilet car went incomplete, and I lost of chunk of my hair to show for it.  I imagine had I made some sort of reaction he likely would have stopped since he wasn’t typically malicious in nature, but it built character to be silent.

So, that leads me to my present issue.  Every time I go into the doctor, he tells me to “do as much as I can” while assessing the limitations of my injury.  Now, I have an injured right shoulder.  Typically, I use my left hand for writing, but nearly everything else is my right hand thanks to my elementary school not believing in left-handed scissors, left-handed baseball mitts, and yelling at me when I tried to move the mouse to my left hand.  So when I’m told to do as much as I can, my reaction is to much as hard as possible, even if I use compensatory muscle groups to do so and loose all sensation in my right arm due to nerves getting pinched.  When I lose sensation and can’t do the next activity, my doctor typically sighs and has to wait it out.

During physical therapy, I’m told to indicate when I lose feeling in my hand, but given that it’s a sign of having character not to vocalize any complaints, my poor physical therapist has to check in with me every few seconds to see if I’m going numb and stare at all my compensatory muscle groups to babysit my shoulder since I’m certainly not going to.  My poor PT has repeatedly asked me to speak up before it goes numb, and I really am trying to remember to, but after going years and years of not vocalizing a complaint about pain unless I’m asked about it, it’s fairly hard to do.

Actually, I suppose I have issues even when I am cued to indicate if I’m in pain directly,  but in the direction of underplaying it.  For example, my poor husband loves to hug all the time because our apartment goes from being a furnace to being a freezer in the period of 30 minutes on a regular basis, and hugs are a means of survival – not emotional connection.  However,  he is a very strong man, and I have a fairly impaired shoulder.  If he hugs me just a little too high or a little to tight it hurts until the next morning, and if he hugs me a lot too high and a lot too tight, it can hurt for the next week.

Now, common sense would say that if someone you love is accidentally hurting you, you should probably tell them immediately.  However, due to my slightly dysfunctional pain response system, my response is to continue on until they somehow manage to pick up on body language indicating I might be uncomfortable and then ask about it.  I then go into my next lesson from growing up: there’s no reason to make people feel bad about things that cannot be changed if they have already learned their lesson from them.  My husband already knows he’s hurt me, so it does no good to go on and on about it, so I usually respond with what I tell doctors, “I’m fine.”  Now, my poor husband then fixates on whether or not I’m actually fine, trying to gauge the impact.  He’ll subtly watch my behaviors the rest of the day, then ask me why I’m not doing something I normally do the way I normally do it.  That inevitably leads to me being in a conflicted situation where my value for honesty is pressed up against my value for not making people feel guilty for no reason.  The outcome is some long-winded, overly detailed response about exactly why in this particular moment I’m behaving differently with the hope that deciphering the long trail of words will distract him from guilt.

Hopefully I’ll just heal up soon so I don’t have to keep having awkward conversations with the people I love about how moderate physical contact causes pain!

Pain: It Builds Character! (Or: Why I’m a Horrible Patient)