ResumeLink

Resume Link is my latest idea.  And for once, I’m actually afraid someone might steal it.  Maybe because it’s so easy to do, or maybe it’s that good.  Or maybe I’m just desperate & paranoid.

I’ve got what I think is a pretty good domain name:  resumelink.org

The main idea is that you upload your resume and we host it for you.  Like photobucket for resumes.

We can convert it to any format you want:  DOC, PDF, HTML, plain text, etc.   We then parse it like the major job sites  do and try to get things like Work History, Skills, Contact Information, etc. automatically and put it into a database.  Of course we’ll mistakes, so you can review it and correct it.  Alternately, you can just build a resume from scratch, and then pick a template.  You can change templates & layout at any time and have different templates for online vs. printing.

Then we give you a personalized URL like http://resumelink.org/aaronevans and try to SEO it so that a google search for “aaron evans resume” comes to your link.  Of course you could just get the link and point it to your existing online resume somewhere else too.   Like tinyurl for your resume.  You then have an easy to remember link that you can put on your business card and give to people online or over the phone.

With this URL, you can track how many times it’s seen, by who, when, and where they came from.  With a premium service you can have multiple inbound links for tracking so you know everyone who saw or downloaded your resume that came from a particular recruiter for instance.

You can also create a profile to manage your resume or multiple versions of it.  You can use your resumelink profile to associate your online resume with your total online presence: facebook, twitter, linkedin, etc.  You can limit it to principals or agencies and restrict who can see or download your resume.  Things like sharing references and contact information can be controlled too.  You can see stats and get messages from others.  You can track your job leads and who you’ve sent your resume to.  You can refer jobs to other people.  You give and receive feedback on resumes.

Resume writing consultants and template designers can show off their expertise, and we might have revenue sharing deals with them.

Our goal is to be at the top of the search for terms like ‘online resume’ and ‘resume builder’. We’ll put advertising on the site — targeted ad words and direct marketed of banners. I picked resumes because it’s a broad field, especially in these times when so many people are looking for work. It has quite a lot of value as a search term and good adsense relevance. People will be looking for job listings, resume writing services, etc.

We’ll also sell tools for employers and agencies to help them find candidates, but we’ll keep people in charge of their resumes.  Hopefully, by being the best, they’ll trust us to share their information, and at the very least, they’ll have the traffic filtered through our site so the don’t end up with resume spam.  Hopefully, we can do better than that and do a better job of connecting the right employers with the right candidates, but this won’t be a job site, just a resume site.

Eventually, you’ll be able to manage your resume at resumelink.org and post to all the major job sites (i.e. (Monster, Dice, CareerBuilder.)

What do you think?

Redmine Test Case Management Plugin

Last week I started working on a test case management tool for my current work.

I decided to build it as a plugin for Redmine, an open source project management application, which is based on Ruby on Rails.  There seems to be quite a bit of interest in the community, and I hope I can leverage that to get help developing it — that’s the real point of open source anyway, isn’t it?

I’m moving slowly, working on it in my spare time.  I’m deliberately keeping the feature set small in order to get something useful out there, get feedback, and let it evolve into the product that has the most use for the most people, with my own personal needs coming first, of course.

The first challenge is learning how to create a Redmine plugin, which I think I’m starting to turn the corner on.  Next will be learning Rails well enough to take advantage of its features and have a code base that others can understand.

I think I’ve got a pretty good basic model of TestCases, TestSuites, TestRuns, TestResults, and TestReports.

  • A Test Case has a title and a description, nothing else for now
  • A Test Result has a status (pass/fail) and notes
  • A Test Suite is a collection of Test Cases
  • A Test Run is an execution of a collection of Test Cases
  • A Test Report is the collected results of Test Cases in a Test Run

The basic workflow will be:

  1. Create Test Cases
  2. Add Test Cases to Test Runs
  3. Execute Test Run
  4. Click pass/fail on each test case, generating a test result
  5. Viewing the results for a Test Run

I have an idea for the UI as well, but could really use help on that.

Other things that might be included to expand the model in future versions

  • A Test Environment can be associated with a Test Run
  • A Test Plan describes a collection of tests and their execution
  • Test conditions, steps, & data
  • Agile / Scrum concepts

Additional features to be added in the future may include versioning of tests, integration with automation tools, consuming (and producing) JUnit Reports, continuous integration, requirements management, other bug tracking and test management tools (like TestLink, Testopia, Test Director)

Right now, I have a basic Redmine plugin that can do CRUD on a test case.  You can see it at http://redmine-tcm.one-shore.com/test_cases

The next steps will be

  1. Associate test cases to a project.
  2. Create a test runs and add test cases
  3. Execute test cases in a test run and save the results
  4. View a report

I’ll work on getting a clean repository up (if there’s interest) on Github, Rubyforge, Sourceforge, or my own SVN repo.  I hope to have a very basic version 1 within a month or so.

Quixapp – A Bookmarklet Bookmarklet

Quix is a way to call bookmarklets from a bookmarket.

From the site:

  • No plugins slowing down your browser
  • No need to remember multiple bookmarklets
  • Maintain your bookmarklets in one spot

Check it out.

If you want to install Quix in IE (their site doesn’t say how this can be done, probably to avoid support questions) you’ll have to do a bit of work.  Here’s what you do to get Quix (a javascript command) as a bookmark on Internet Explorer.

  1. Go to http://quixapp.com
  2. Click on the Quix App button
  3. Click on the warning bar  and select “Temporarily Allow Scripted Windows”
  4. Click on the “Quix App” button again — now it should work
  5. Bookmark the Quixapp site (or use any existing bookmark)
  6. Now right click on the button and select “copy shortcut”
  7. Right click on the quix bookmark and select “Properties”
  8. Paste the quix javascript into the URL:
    javascript:Quix();function%20Quix(){var%20e=encodeURIComponent;var%20t=window.getSelection?window.getSelection():(document.getSelection?document.getSelection():(document.selection?document.selection.createRange().text:''));var%20c=window.prompt('Quix:%20Type%20`help`%20for%20a%20list%20of%20commands:');if(t!=''){if(c){c+='%20'+t;}else{c=''+t;}}if(c){var%20u='http://quixapp.com/go/?c='+e(c)+'&t='+(document.title?e(document.title):'')+'&s='+'&v=080'+'&u='+(document.location?e(document.location):'');d=''+document.location;if(d.substr(0,4)!='http'){window.location=u+'&mode=direct';}else{heads=document.getElementsByTagName('head');if(c.substring(0,1)=='%20'){var%20w=window.open(u+'&mode=direct');w.focus();}else%20if(heads.length==0){window.location=u+'&mode=direct';}else{q=document.getElementById('quix');if(q){q.parentNode.removeChild(q);}sc=document.createElement('script');sc.src=u;sc.id='quix';sc.type='text/javascript';void(heads[0].appendChild(sc));}}}}
  9. Edit the icon and name for the bookmark if desired
  10. click ok on the properties

Now you can use the Quix bookmarklet from IE!

getting past untrusted HTTPS connections with selenium

A common problem many Selenium users run into is the untrusted connection warning.

This happens when an SSL certificate is unsigned, self-signed, or doesn’t match the domain name, a common scenario in test environments. In Firefox it used to be a popup modal dialog that needed dismissed by clicking “ok” or “so what” or something along those lines. More recent versions of Firefox (I have 3.5.8) bring up an intermediate page that says “This Connection is Untrusted” and looks like this:

What should you do?

  1. Click “I Understand the Risks”
  2. Click “Add Exception”
  3. Click “Get Certificate”
  4. Make sure “Permanently store this exception” is checked (it is by default)
  5. Click “Confirm Security Exception”

There, now don’t you feel safer for all that clicking.

Earlier releases of Firefox 3.5  had a bug that it wouldn’t “permanently” store the SSL Certificate, and there was even a plugin created to fix that.

Well, that’s all fine a dandy, but unless you want to click through that manually every time you run tests in Selenium, you’ve got a problem.  See, it’s not an actual page, which means there’s no DOM for javascript to access,  so you can’t use selenium to click through it.  And selenium starts fresh with a new profile every time.

But that’s only by default.  You can tell Selenium to use an existing profile as a template by passing the -firefoxProfileTempate flag like this:

java -jar selenium-server.jar -firefoxProfileTemplate  "c:\Documents and Settings\Aaron Evans\Application Data\Mozilla\Firefox\Profiles\5rdxety0.default"

If you’ve already dismissed the dire warnings manually with your existing profile, now Selenium will sail right through.  But only if you use Firefox.  I’ll tell you how to get past this problem with IE, Opera, Chrome, and Safari another day.

But first, let’s create a custom profile that doesn’t have all the junk you’ve loaded into Firefox (like vimperator and firebug) to make it run a bit quicker and cleaner.

  1. Close all your firefox windows down (don’t forget the quick launch if you have that)
  2. Launch firefox from the command line with
    firefox.exe -ProfileManager -no-remote
  3. Click “Create Profile”
  4. Click “Next” on the Create Profile Wizard” nonsense popup
  5. Create a name for your new profile — I think “Selenium” is pretty descriptive
  6. Click “Choose Folder”
  7. Pick something easy to find — like “C:\selenium\firefox_profile”
  8. Click Finish

Now click through and accept all the SSL certificates on the site you need to run Selenium tests on, repeating the process described above.

Finally, launch selenium-server and specify the profile you just created:

java -jar selenium-server.jar -firefoxProfileTemplate c:\selenium\firefox_profile

You can do a bunch of other cool stuff with your firefox profile for selenium, but we’ll talk about that later.  I’m eager to hear what others have done as well.

One thing I’d like to figure out is how to get rid of that update manager popup that shows up every time I run tests (but doesn’t interfere with them.)