Creating A Website – My Adventure with Launching NextJen Mobile

My very first website was horribly designed, did absolutely nothing, and thankfully, no longer exists. I had a lot of help with that site, I didn’t do any of the hosting things myself. I was 18, and still not sold on the technology thing as a career. I was fully invested in becoming an athletic trainer for the Detroit Red Wings, so I didn’t give it much thought. Even though it wasn’t a great site, I did learn a lot.

I’ve built a couple other half-assed attempts at sites since then, but nothing I ever actually put out on the web. I have a couple blogs (including this one) and I’ve done a lot of customizing on one of them. It’s not quite the same as building from scratch, which I enjoy, though I frequently sit and stare at a blinking cursor before at least some of it starts to just flow out of me. Google and StackOverflow are still my best friends, like just about every developer on the planet.

I’ve been so busy with other projects, work, and life in general, I just haven’t had the energy until this week. But on Monday, I finally put the black and white sketches for NextJen Mobile that I’ve had for a few months into 0s and 1s.

Looking at these sketches, I thought purple (my favorite color) would be the color scheme for the site design. But, it was hard to find a main shade that didn’t make me want to kick something. I decided to take a very scientific approach to picking my new scheme: clicking around on a color wheel until I found one that I liked. I ended up with a darker denim-ish, teal-y blue, that I really liked for my main color  (#00679B, in case you’re wondering).

Once that was done, the biggest question was, what should my logo be? I was drawing so many blanks. I had zero ideas.  Then I had one that sucked.

At least it was something though. I figured that I could get the site out there, and figure out a better logo later. Then I got really lucky when a friend of mine, Clark Rasmussen, who is way better at logo design than I am, pinged me saying that he had an idea for my logo. Once he writes up his post on the work he did with it, I’ll link to it here. Edit: He has since written about the design for this logo, and the design of the new MIRide logo here.

Way better, am I right?! Thank goodness for more talented friends. With an awesome logo, I was finally at the step of actually releasing this to the web.  Like I mentioned earlier, I’ve never actually done this part on my own, so I was nervous.

First thing I did was ask around at work about hosting services. One of my coworkers mentioned that a different coworker raves about NearlyFreeSpeech.net. After poking around a bit, I decided to move forward with them. I trust both coworkers’ judgement, they are both incredibly smart, so the choice was not difficult.

So far, I have been very pleased with them. Set up was simple, the FAQ was very helpful when I ran into problems, as well as suggestions for SFTP tools. I use WinSCP at work, but I have a mac at home, so obviously that was not an option for me. I downloaded Fugu, a free mac equivalent to only be informed by Elphaba that mac doesn’t support PowerPC apps any more, so that was not a choice for me. Transmit4 had a seven day free trial, so I gave it a shot. I was very pleased with the UI and the experience I had with them last night. (Because I had to upload new files a couple times to fix things that I may or may not have forgotten to do during the initial building… oops).

Somethings that I discovered while putting my site on the web last night:

  1. If an image is not visible on your site, but you have everything appropriately referenced, check the permissions in your public directory. In Transmit4 you can right click the file, hit ‘Get Info’, and you can edit the permissions in the resulting dialogue box. Crazily enough, the world has to have read permissions for them to be able to see the image.
  2. After pointing the domain at the correct DNS servers, my site still wasn’t serving to the world. And I couldn’t figure out why. Turned out the problem was that I was still on a free “check us out!” account, not a paid account. Once I was on a paid account, my site started working. Crazy how that works!

It has been a lot of fun to work on this site, and actually build something of my own that ends up live on the web, albeit a little anti-climactic.  Part of the “anti” being that I didn’t just have the site be magically LIVE when I pushed the files up to the server due to point #2 above. Somehow, it’s less nerve-wracking to push my own files to the web, than when I am pushing them to the LIVE servers at work. Maybe because if I screw something up on my own site, I won’t be costing my employer money in DevOps, lost sales, and what have you. At least at this point it won’t cost me any money if I screw something up!

Anyway, I have learned a lot during this experience, and I’m already thinking about how I can apply what I’ve learned to a few other projects I have in the pipes. I’m retro-ing on myself, if you will. This is one awesome adventure and I’m looking forward to the next step on the path.

Re-post: Awesome Sauce Tinkering (Fondant Is Gross)

I wrote this post at my other blog, before I started this more tech related one, so here is a link to the original, and the post has been copied below in its entirety. This came back across my radar when I had to set up another inbox for another new email for me. (Don’t ask).

Fondant Is Gross: Awesome Sauce Tinkering

—–

The things you discover when you noodle!

I have two gmail accounts and I have recently been using the second one a little bit more, such that, I have need to actually monitor it a little closer. For silly reasons, like people generally finding it rude if you ignore their emails and fail to respond for a month. (Shocking, I know!)

Although Google does have an “add an account” capability, that allows you to run two Google accounts in the same browser, there are some hiccups when it comes to using other Google services. I don’t use the other services very often on this secondary email, so I wanted another solution that would do what I really want Google to do. What I want Google to do, is for a user to be able to use the multiple inbox feature to have multiple gmail inboxes in one screen, not just divide your inbox by labels, filters or what have you.

So. My solution.

First, I went into the settings[1] of the second email (example@gmail.com) and set up mail forwarding to the first email[2] (me@gmail.com). I also set up the forward to automatically mark forwarded email as read[3].

After following the steps to verify that I own both accounts, I set up a filter in me@gmail.com with the “to” parameter as the address of the example@gmail.com. This filter automatically labels all forwarded email and archives it as soon as it hit my inbox.

 

Make sure you select to apply the filter to however many matching conversations have already been forwarded from example@gmail.com, or you’re not going to do an easy search based on the label/filter later.

Here is where the magic happens. Enter settings, labs, and enable multiple inboxes on me@gmail.com. You should look through some of the other really cool stuff the labs team has done. Like, ridiculous amounts. I’ll wait. Ok, now, make sure you scroll all the way to the bottom and click save.

Then, go back into settings at the “Multiple Inboxes” tab and delete the automatic fields that are there and enter label:example in Panel 0. I want the second inbox to be below my me@gmail.com inbox, so I select that option and click save.

Then more magic happens. Click on “Accounts and Import.” Then under “Send mail as” I added example@gmail.com, and verified (again) that I owned the accounts I was trying to send mail as. After that is verified, then a fancy little thing shows up.

You can reply from the email that the message was sent to. So, for instance, I get an email to example@gmail.com, and I get it at the me@gmail.com address through the system I just set up. I can click reply while still in the me@gmail account, and it will send the email as though I am signed in as example@gmail. Without signing into the other account. Ever. Brilliant. And, if you click compose, in the “from” field, it automatically enabled a drop down that allows you to choose which email address you want to send the email from.

There are still some issues to work out, for example, handling the email that is sitting in example@gmail.com, marked as read. I suppose it will have to be a learning process where I add filters for incoming mail as I get it, so gmail can delete it if it’s X, or archive it if it’s Y, but once that is all settled, it’s going to be a nice little operation.

Another issue is that the only way for me to no longer see the messages in the second inbox for example@gmail.com that I have read is to delete the label that was assigned to them upon landing in my inbox, or delete the email itself, which I may not want to do.

Google does all kinds of awesome stuff, so hopefully they will come up with a solution for the issue. Or just make this work-around redundant by enabling what I just did with two clicks and a verification in multiple inboxes!

Speaking of awesome, have you checked out Google Keep yet? It’s like Evernote and Google Tasks had a baby.

More awesome is the program that I used to create these screenshots, Snagit.

Full disclosure, Adam works at TechSmith, and Snagit was used for the creation of these lovely screen shots. The heinous editing is all mine, however, and I was not compensated in anyway for this post by Google or TechSmith for the use of Snagit or the plugging of their stuff. I just think it’s awesome.

More disclosure, I also work at TechSmith. And I still love Google Keep. Some of the improvements they’ve made are AWESOME.

Lessons Learned: Trello Edition

It’s been a long, long while since my last post, but I recently gave a talk on the lessons we learned using the API that Trello provides. These are broad lessons about what would make Trello work for our team better, and how we hope to move forward.

This talk was given at TechSmith’s internal conference, ReCon, on 6 October 2014. The blurred out sections are just me covering my own bum, and protecting TechSmith’s interests.
If you would like to get more information on the code we wrote, you can go here, here, here, and see Clark’s talk here.

Enjoy!

The Devil in Ruby — Installing Gems

I traveled to Chicago last Thursday to meet up with Mike for some pairing, as well as attending 8th Light University on Friday.

We were going to use my laptop for the pairing when Mike discovered a problem with my Ruby install. The gems hadn’t fully installed. While my computer re-installed everything, we used Mike’s computer to build a coin changer program. Once we got rolling, my brain finally started wrapping around the syntax of Ruby and all it has to offer.

My computer and rvm weren’t so lucky.

The install of rubygems failed again.

It continued to do so even after I completely removed rvm and started from the very beginning several times. (Side note: I find it hilarious that to uninstall rvm the command is ‘rvm implode’!) I did some googling around trying to find different uninstall and reinstall options for rvm, ruby and gems to work my way around the issue.

One of the biggest problems I had while searching this error was that when I search the error in its entirety nothing shows up.

This error has been the bane of my existence for the last 18 hours or so:

There is no checksum for ‘http://production.cf.rubygems.org/rubygems/rubygems-2.1.8.tgz’ or ‘rubygems-2.1.8.tgz’, it’s not possible to validate it.
This could be because your RVM install’s list of versions is out of date. You may want to
update your list of rubies by running ‘rvm get stable’ and try again.
If that does not resolve the issue and you wish to continue with unverified download
add ‘–verify-downloads 1’ after the command.
There has been an error while trying to fetch rubygems.
Halting the installation.

Eventually I used the information found here and here to get around the issue. I tried several of the options at both places to no avail, but when I did the steps from the two combined, I had success!

So, first, you’re going to want to start over.

  1. Remove rvm and ruby.
    • Run one at a time:
      • rvm remove ruby
      • rvm implode
  2. Re-install ruby and rvm (towards the end of the command running it will prompt you for your admin password)
    • curl -L https://get.rvm.io | bash -s stable –ruby
  3. Reload rvm (if you try and skip this step the terminal will make you do it anyway, so just do it.)
    • rvm reload
  4. Install another (failing at gems install) run of 1.9.3
    • rvm install 1.9.3
  5. Run a fix to install the gems
    • rvm get head && rvm-smile
  6. Install the latest gems
    • rvm rubygems latest

At this point is where you should use ‘gem list’ to see that it (and any other gems you’ve installed) are there. I did not use this command, which caused me to freak out because I thought I was getting the same error as above, and that did not make me happy. I spent the weekend diving into a rabbit hole that didn’t exist.

You code, you learn.

I’m glad (although a little pissed) that it was user error and my steps above worked!

How was your weekend?

Grace Hopper Celebration of Women in Computing – A WRAP UP!

Whew.

What an adventure! My first Grace Hopper conference has come to a close. I am writing from the Minneapolis Airport, gate F10, where I am thinking about the whirlwind that the last few days have been.

It has been a very inspirational four days. Being surrounded by 4,600 other technical women is a boost for me.  Although I know that there are other women in tech, I don’t see them in person as much as I see men in tech. My husband’s entire team (save for two amazing women) are men. So many prominent people in tech are men. But I think we can change that, and I am really excited to be a part of making that change.

I wanted to share what I learned (or what I was reminded) over the last four days.

1. Women are awesome. AWESOME.

2. Women don’t negotiate their salaries enough and most often they are paid $6,500 less than their male counterparts – and that’s just starting salary.

3. I learned how to use Google Glass, and I had the opportunity to play with it. The wifi wasn’t working in the career fair center, so I didn’t get to use it in that capacity, but it was fun. I don’t know if I will ever want to own a pair, but it was fun to play with.

4. getraised.com. Fabulous resource. I had an opportunity to meet Matt Wallaert, one of the minds behind the site. He is a great speaker and I really enjoyed his lightening talk and speaking with him after. One of my favorite things that he said during his talk was, “Telling me that I care about feminism because I had an awesome mom is like telling me I only care about racism because I have black friends. And that is fucking bullshit.” I love that, we need more fantastic men helping women advocate for themselves and advocating for them when they can’t or won’t do it for themselves.

If you get the opportunity to see him speak, do it, he is a very energetic, engaging and funny speaker.

5. When speaking to a client about their product, write it down and follow up after the meeting via email to keep everyone on the same page. The human memory is faulty.

6. The Mall of America is huge. That has nothing to do with the conference, but I’ve never been there before, so that’s something I learned.

7. There is a very diverse opinion about MOOCs. Not all good, either. But I like them, a lot. They are an excellent resource to learn something new.

8. Brenda Chapman.

9. The TSA likes my Box shirt. Always a good thing, right?

10. Always talk to every company at a career fair, you never know where your next opportunity might present itself.

11.  Networking is EXHAUSTING.

12. Don’t forget to have fun!

There is a lot to learn by attending conferences, and I am really glad that I went. It helped, in a strange way, to combat my impostor syndrome. I hope it sticks around.

Cheers!

Learning Ruby — The Beginning of Another Journey

For the last year and few months, I have been learning a new field – really learning – not just playing like I had for the previous many years. I had dabbled in web development, even having my own (terrible and never updated) website. I only ever seemed to know how to get myself in trouble, but not how to get myself out. Now, I’m trying to learn as many different ways to get myself in trouble — and then get myself out!

In the last year and change I have learned C, HTML, CSS, php, MySQL, JavaScript, jQuery and now I am learning Ruby.

How did I get to Ruby?

Almost two months ago I applied for an apprenticeship at 8th Light, a company in Chicago. I managed to progress to an interview with Mike, after submitting several iterations of a TicTacToe program in JavaScript.

Unfortunately, I was not in a place in my coding journey to be offered a position at this time.

BUT(!) Mike is kind enough to have offered to personally mentor me, which I have accepted. Mike suggested that one of my next steps would be to learn straight up Ruby (not Ruby on Rails, just yet).

Over the last week I have been working my way through the Ruby Koans to help learn Ruby through test driven development. Two birds with one stone, as it were!

The format of the koans was a little difficult for me to pick up at first, but once I got the hang of that, I really started to enjoy them.  One of my favorite parts of the koans are the little bits of advice just above your progress bar. The best one is “sleep is the best meditation.”  I got stuck towards the beginning of the koans, it was late, and that was the mantra above my progress bar. So, I went to sleep, woke up the next morning, and it just clicked. Since then, I’ve been going through the koans and understanding most of what I do, if not, I have Google, StackOverflow and Mike.

I look forward to sharing my coding adventures here, and I am glad to have you along for the ride!