Jessica Wicksnin

Web and Tech Enthusiast in Seattle



Geeks Girls Carrots Mentoring

Category : Agile, Blog, Education, Fun, JavaScript, Meetup, Python, Web Development · No Comments · by Mar 13th, 2016

One of my fave meetup groups has always been Geek Girls Carrots (not to be confused with Girl Geek Dinners, another awesome networking/professional development group with equally awesome food and locations).  Last spring, Geek Girls Carrots led the second of the Code Carrots courses.  Ladies with any level of programming experience come together, form groups, pick an “app” to develop, decide which stack to use, follow an “agile” schedule of week-long sprints, and work with a mentor to advise on all of the above. I was lucky enough to be one of those mentors to a group of four ladies working on a Django project related to reporting sexual harassment in the workplace.

The main challenge here was time.  We all worked full-time, and met after work once or twice a week. There was rarely a week when all group members could meet in person at the same time.  I set up a Slack account for us to use, and it really helped when one or two group members were remote.  I was also a git/github resource – such a tricky technology to novice programmers to get used to.  It’s hard to keep the cognitive load low enough for actual learning – trying to use git correctly, not “break everything”, get code to work, and write code well at the same time (as any developer knows, even when years into their career).

In fact, on the first day of the project, I was called on to do an impromptu intro class to using git and github to the whole group of about twenty women.  Let me clarify – I had zero idea I was going to do this until the organizers said, “Jessica!  You know github, right?”.  It was really challenging, but really fun, and reminded me of what I enjoyed about teaching.  By the end of the class, everyone was able to clone a repo and contribute to it.  Success!

After eight weeks, all the groups presented their projects.  All had a working prototype, and many had one hosted online, like Heroku.  It was a great experience that I hope they repeat soon (nudge, nudge).

RESTful API – Hold on to your mongeese!

Requirements:  Node with express and mongoose installed.  MondoDB installed globally.  A lot of patience.

First, make sure you can start your mongo database with commands like mongod and mongo.  You can interact with the database directly from the command line.  Or try this website that is a mongoose playground.  http://try.mongodb.org/

Next, set up your root directory, complete with node modules and package.json files.

Then, set up the node server to work with the mongodb using mongoose.

You will need some schemas that dictate what types of data are going into your json objects.

Create functions for POST, PUT, GET, DELETE.

Use jquery in the console to try out your CRUD system.

You can always check out your database via command line: db.<yourdb>.find()[0]; can find and prettify the first item in your database, for example.

See this tutorial http://pixelhandler.com/blog/2012/02/09/develop-a-restful-api-using-node-js-with-express-and-mongoose/ for a nice, more complex than a todo list, example.  You will have to fill in some blanks for yourself: check out the mongoose documentation.

In order to hook up your api to an actual web site/app with an interface, just connect your site to the api (will be doing in an upcoming post).

Please see and fork and clone my example repo: https://github.com/jwicksnin/restful_tutorial

Ulterior Motives

Category : Blog, Coffee, Fun, JavaScript, Meetup, Seattle, Web Development · No Comments · by Jan 23rd, 2014

It’s funny. You never hear the word “ulterior” unless it’s collocated (associated) with “motives”. I guess it means “hidden”, “not obvious” or even “devious”? You hear a lot about exterior and interior, but how “ulterior” fits in is not entirely clear.

Anyway, you may have heard the expression, “There’s no such thing as a free lunch.” Regardless of the fact that this was coined somewhere around 1930 when indeed, free lunches were hard to come by, in the tech community in Seattle you might change it to “There’s no such thing as a free beer.” But actually, this week, I have indeed enjoyed both free beer and a free lunch. Oh, and a free JavaScript tutorial from an actual human being!

On Monday, I joined the “Learn JavaScript the Right Way” meetup in Ballard to go over homework assignments. One highlight was drinking hot chocolate in a tea shop. Another highlight was breaking Code Academy via an infinite loop in one of their JavaScript exercises. Surprising, because I’m sure I’m not the first person to write an infinite loop on Code Academy. A further highlight was the helpful spirit and community feel of the meetup. We had one “expert” who happily answered all our silly (and not so silly) questions. We shared resources, and I’m really looking forward to next week!

On Tuesday, it was South Lake Union for Code Fellows’ open house. You’ve no doubt heard of these coding “bootcamps” and have strong opinions about them. Let’s skip that. I mostly wanted to see what the place was like, how it compared to another for-profit school (that may or may not contain the letters “ITT” in the name), and get the aforementioned free beer. Check, check, and check. Way more legit than the unnamed school (I used to work there so I guess I’d know), and totally relevant to Seattle’s job market. Wow, I’m kind of talking myself into applying as I write this. If anyone would like to “sponsor” me, I can promise you free access to my blog posts for life.

On Wednesday, it was to “Impact HUB” (not to be confused with The Hub at UW), located on the block in Seattle that receive more 911 reports than any other single street. Awesome. Despite subtly closed blinds and muffled homeless yelling across the street, we enjoyed an 8+ hour workshop on using PhoneGap, Apigee, and Codiqa to create mobile apps using HTML, CSS, and jQuery (and jQuery mobile). And that’s where the free lunch comes in. I got much more comfortable with the command line, learned more about jQuery mobile (although I’m not sure how much of a “thing” it really is), and am psyched to see Worry Wart in an app store near you soon.

So I’m sorry to say that I am very cynical and fully expected a “pitch” at both Tuesday’s and Wednesday’s events. I even had my cynical face on, which I’m making at this very moment. Since I don’t want to scare you away, I’ll just pretend that this Mac doesn’t have a camera built in right now. Luckily, I was proven wrong, and on top of free beer and a free lunch, I met some cool people and learned some cool things. And I’ll stop there because based on that last sentence, I’m running out of adjectives.

Santa Claus is Coming to Town

Category : Blog, Fun, JavaScript, MySQL / Database, PHP, Web Development · No Comments · by Jan 3rd, 2014

Christmas is over. So why haven’t I taken down my extraordinary (pink) Christmas tree?  If the preceeding question doesn’t answer itself, then we have nothing left to talk about.

But I wanted to explain (read: brag about) my awesome side projects (Christmas presents) that were done in addition to completing a quarter at school and setting up an entirely new website at the internship (to go live sometime this month!).

First challenge: A “Worry Wart” website for Mom/every woman in the world to store worries for them. This needed a database, tables interacting with each other, a somewhat secure way to access, read, and write to the database, login, log out, create a new user, store session variables, count worries that came true vs worries that never happened, add and delete worries.  Whew! I think that might be about it.

If you’re interested, check out worrywart.jessicawicksnin.com.  If you’re really interested, check out my code on git hub (jwicksnin).

Second challenge:  A “Benjamin Speaks” app for Dad/every retirement-savvy person to aid them in financial decision making.  This took CSS to create a neat shadowed “quote bubble” and awesome jQuery to take a submitted question, find a suitable (random) answer in a text file, and output the random answer.  Nothing too fancy, but the image of a $100 bill that I gleaned from Google addressing my dad directly is really cute.

Third challenge: A “Facebook for Two” for my boyfriend/every couple who too busy actually having a relationship “IRL” to document every stage of their relationship on actual Facebook.  This took some serious JavaScript because a text file wasn’t good enough – I was determined to use the word AJAX as much as possible.  I ended up using a quick PHP file to write from JavaScript to the existing XML file on the server.  So now I feel very comfortable reading and writing XML files based on user input via AJAX requests.  It’s basically a poorly-styled Facebook, which made me question the value of Facebook at $100,000(?) a share if I can build the same thing in a couple weeks with nothing but Google and Web Programming Step by Step (thank you CSE at UW) for help.

Happiness Is a Warm Doggie in Your Lap

Category : API, Blog, Google, Internship, JavaScript, Web Development · No Comments · by Oct 22nd, 2013

Being winter (it’s late October in Seattle – don’t kid yourself that there are more than two seasons here), I’m cold almost all the time.  It doesn’t help that I’m an environmentalist (read: cheapskate) who keeps the heat set at 65 degrees during the day when normal people are at work. Luckily, working on programming (I own you, Google Apps Script!) and programming classes, I have two things to keep me warm: a computer and a doggie, both competing for lap space in the big chairs in the living room.

Annie wants to dominate the computer, so she licks it.  Surprisingly, dog saliva only seems to make computers work better, not worse, since whenever she licks it, I solve some other programming problem.  As that beer commercial says, It’s only weird if it doesn’t work.  And I didn’t even have to grill a quinoa burger.

If you’d like to see exactly how I dominated Google Apps Script, please check out my code on github (jwicksnin).  Here’s a quick rundown:

After creating a script to send emails with the current user address, and send responses to another spreadsheet, I now have an app that…

  • Creates a button on the spreadsheet for any user send a reminder email
  • In the background, onclick, the script compares the original spreadsheet names with the responses spreadsheet.
  • Flattening an array of both spreadsheets’ names, finds those who haven’t responded.
  • Sends a reminder email similar to the original email to those who haven’t responded yet.
  • Makes a very merry January for donors who receive gift baskets after confirming their mailing addresses.

Pretty awesome!  Now people at work won’t even have to know about the scripts in order to use them. And that, after all, just might be the mark of a good computer program.

Oh No You Didn’t, Google!

Category : API, Blog, Google, Internship, JavaScript, Web Development · No Comments · by Oct 15th, 2013

Yes, I am aware that I’m writing this on blogger, officially Google app/program/property/whatever.  But the attitude alluded to in the post title is good attitude – I have discovered Google’s best-kept-secret.  Okay, maybe you knew about it, but I guarantee that other guy over there didn’t.

If you liked Google Drive and Apps, you will love this.  They made up their own cryptic JavaScript dialect so you, yes you, can affect the functionality of your Google Docs.

For example, I was tasked with creating a Google Form to email to clients to confirm their mailing addresses so we can mail them holiday gifts.  Sounds simple enough – Google Forms as it is allows you to put the form in an email, a link to the form in an email, and embed the form in your own website.  Then the results are put into a spreadsheet of your choosing.  Wow!

But… when we decided to pre-populate the form with the addresses we had on file and clients could then either edit and submit, or approve and submit the address instead of having to enter the address all over again, well, it got complicated.  Suddenly, I needed some way to take data from the existing address spreadsheet, put those values into a form as values, then put that form into an email.  Sounds awesome, but as with many awesome things, easier said than done.

(I might mention that in the middle of this project I got a little frustrated and decided I needed a “win”, however small, and so put a favicon on the website, which took about ten minutes but was worth as least an hour of feeling like I actually accomplished something).

I happen to really like JavaScript (which anyone who has visited my website, jessicawicksnin.com, can attest to) so I decided to give Google Apps Script a try.  You can now see the results at my github page (username jwicksnin)!

I want to point out the fatal flaw in my solution: the actual form is NOT embedded in the email.  I dare you to try to find a way to do this – if you do, please let me know.  However, this is the results I did come up with (as HTML in the body of the email):

Hello

Please confirm or change so we can send you a gift.

Taking advantage of the pre-filled url idea, the client can see the address we’re going to send to, and then go to a pre-populated form by following the link where they can easily change or simply confirm the address. Yay!

Even the Spice Girls Didn’t Have This Much "Girl Power"

Category : Blog, CSS, Education, Fun, HTML, JavaScript, Seattle, Web Development · No Comments · by Aug 26th, 2013

If you are a woman in Seattle, you can’t not learn web development.  It is prolific, ubiquitous, pervasive, easy, and inexpensive-to-free.  In the past week, for a total of $100 plus bus fare, I have attended:

JS Seattle Meetup’s Free jQuery training held at picturesque Red Fin
Girl Develop It’s HTML5 and CSS3 eight hour course
Seattle Tech Meetup (at least the first hour before intensive day job had me sleep walking back to the bus)
RailsBridge Seattle weekend intensive Ruby on Rails workshop (we made an app!)
Awesome post-workshop happy hour sponsored by BlueBox (they deserve the plug because we got free margaritas)

And I have learned:

  • Basic jQuery commands that I can now apply to JavaScript
  • That my entire website made so proudly by hand now needs to be changed completely to make the most of the awesome-ness of HTML5 and CSS3 (will be done as soon as said intensive day job is finished this week!!!)
  • Why Ruby on Rails is easy but also very different from the other languages I’ve used
  • That I know enough about programming to self-select the “advanced” section for the Rails workshop and be successful there
  • That I still have so much to learn!

But mostly, I have been so inspired by all the awesome people I have met at these events and classes. And I’m not just saying that because I’m trying to get a job writing sappy greeting cards.  Meeting other people, especially women, who share my same goals and interests makes me feel so much less adrift in this crazy life and career change.  New goal: one day to be a volunteer at these events as a “TA”.

Thank you, Seattle!