Oct 1 09

The Pre-Interview Bias & Other Interview Tips

by richard

We’ve been interviewing candidates for a director position at work this week and during the interviews I’ve had a chance to notice a couple of things that I thought would be great to blog about.  I’ve conducted numerous interviews in the past, and have myself been a candidate multiple times. Here are some things that I’ve found over the years.

1) In-person interviews tend to be very useless. Meaning that you can perform flawlessly on a job interview and still not be hired. Likewise, you can perform less than stellar and still be selected. What’s going on here? Call it the pre-interview bias. Those hiring know for the most part who they want to bring on. Interviews are used only to confirm their initial feeling. What’s more, an interviewer will probably look past weak points of a favored candidate, but highlight them in the least favored ones. Studies have confirmed multiple times that a decision to hire is usually accurately made within the first couple of seconds of meeting the candidate.

2) Use that pre-interview bias to your favor. Use cover letters, resumes and charasmatic recuriters to sell youself as a star. Your goal is to come across as celebrity. Amongst a stack of candidates and resumes, you should be the favored one.

3) Don’t waste time on companies that are only somewhat interested in you. If it doesn’t feel like a company is overly enthusiastic about the interview or meeting you, then your chances of being hired are usually next to none. Hiring the right person is a painful ordeal for many companies – if they think you’re the perfect fit – you’ll definitely know.

4) Once you’ve been invited out to an interview – just relax. These people already know whether they want to hire you or not, so just go in and be yourself. Smile, agree to what most people are saying, don’t say too much and don’t ever say something negative – like, “I’ve never heard of that product”. Instead, use an agreeable positive attitude all the time - like, “Oh yea, that does sound familiar”.

5) I know I’ve mentioned this above, but it’s worth its own line. Don’t speak too much! Every word exposes you, gives them something to judge you on. If you allow your interviewer to do most of the talking, then you minimize the focus and judgement on yourself. You allow more of their pre-interview bias to be a deciding factor. Always reinforce their pre-interview bias – look impeccable, stand tall, smile, have open agreeable body language, appear confident. This alone is worth so much more than what you can ever hope to convey through words.

6) Don’t miss out on that opportunity to ask questions! They may seem to contradict the above, but when it comes time for you to ask questions make sure you do! Rarely will asking a question hurt you, but quite the opposite. If you have been quiet and reserved for most the interview and now you start asking intelligent and thought provoking question, then not only do you confirm the pre-interview bias – you also end the interview on a very positive note. Asking the right questions can excite and make your interviewer smile and be very happy. This should be your goal.

Sep 30 09

SPListItem Url

by richard

So you need to get a url reference to a SharePoint list item? Fantastic, just use SPListItem.Url right?

I think by now you can guess that would be too easy. So instead of divulging into my usual SharePoint scarasm, I’ve found a friend who has done a much better job than I could ever pull off.

http://www.sharepointsecurity.com/sharepoint/sharepoint-development/splistitemurl-funky-return-fiesta/

Sep 23 09

Useless SharePoint Error – SPQuery / Caml

by richard

Came across this error while trying to execute a Caml query through the SPQuery object:

One or more field types are not installed properly. Go to the list settings page to delete these fields.

Wonderful, eh? Don’t believe it, you don’t need to delete any fields. You more than likely have a misspelled column or a column name that has a different internal name than what is publicly visible. For example, a default SharePoint calendar has a column field called “End Time”; however if you include the space within your query, you’ll get the error above. In this case, the internal name is really “EndDate”. Also look for column fields that have been renamed. Sometimes if you define a column, then later change its name – the internal name will still remain the same.

So this begs another question – How are you supposed to *magically* know what the internal field name is? Well, here’s a tried and true method. Go to the list you are trying to query from, then click Settings -> List Settings. Scroll down to where all the Columns are defined. Click on the one in question, which will take you to the FldEdit.aspx page. Within your address bar, notice the querystring param Field. This references the internal field name for the column which you should also use in your queries.

See Microsoft,  wasn’t that a lot more helpful then trying to tell the user to delete some random field from their list? Geesh.

Sep 18 09

World’s Smallest USB TV Tuner

by richard

Living life without cable tv and a dvr for the past couple of months has been relatively painless. Mostly due to summer tv reruns. Now that fall is approaching with a slew of new shows (quality television!) I’m beginining to get a bit nervousous about missing out on shows that don’t fit my schedule.

Of course I can resort to Hulu or downloading tv shows… or I can get this marvelous little device:

picostick

It’s the world’s smallest USB tv tuner which allows you to view and record over the air broadcast television on your computer. It costs about $80 (which could easily be one month’s cable bill). Combined with the features of my new Windows 7 computer (post upcoming!) - I think this could definitely work!

Sep 16 09

SharePoint List Querying – Linq vs. CAML

by richard

One of the nice features of SharePoint 2007 development is the ability to use the latest release of the .NET framework and  its concomitant language features – including Linq. This in and of itself it a huge benefit as the inherit query mechanism within SharePoint – CAML is woefully terrible.

What is CAML? A pain in the arse. Officially, it stands for Collaborative Application Markup Language – which amounts to more bollox than telling you anything you need to know. Essentially, CAML is an xml structured intermediate query syntax for SharePoint to query against data structures (that can also be defined using CAML). Sounds a bit like SQL no? Well guess what CAML gets translated to in the back-end? Yep – SQL. SharePoint takes your CAML and queries against its sql backend. So in short, with CAML you have this massively verbose query syntax that requires nested xml tags, multi-line statements, and quoted attributes – yuck!

Enter Linq, with its terse sql-esque statements and amazing chainability. Yay! No more CAML!!

Not quite.

Linq can only be used against a SPListItemCollection object which must be filled before use. The two most common ways to populate a SPListItemCollection is to either Get all items, or use a SPQuery object and CAML syntax to get a subset of items. As you can see, the dilemia presents itself that if you try to avoid CAML altogether, you will sacrifice performance when querying a list with potentially a large set of items.

So the best solution? Use both. Before using Linq directly to query items, first populate your SPListItemCollection with a CAML query that will do an adequate job of ensuring a manageable subset returned from the database. Then with Linq, fine-tune your SPListItemCollection to further sort and filter your result set. So Caml – Chainsaw, Linq – Carving Knife.

For more information, check out the excellent resource below: 

LINQ and SharePoint Development: The benefits and the pitfalls

Sep 15 09

Outlook: Russian Spam

by richard

I’ve recently been flooded with a  flurry of Russian spam at work. Emails that are in all Russian that I have no idea what they mean. They usually get sent out past midnight so they’re queued up in my inbox by morning (smart, except for the fact that I can’t read Russian! – oh spammers…)

So how to get rid of them? If you’re using Outlook 2007, take the following steps:

Tools ->Options -> Junk Email…

Click on the last tab, “International”

And now click on “Block Encodings List…”

The following dialog appears…

Encoding List

Select Cyrillic for Russian characters, along with any other character sets you are unfamiliar with.

Click OK, then Apply.

You should be good to  go.

Sep 4 09

Why healthcare reform is needed.

by richard

I’m not known for being excessively political, but when it comes to healthcare reform – I definitely have an opinion, and here’s why.

My mother is single and semi-retired. She’s worked all her life as a nurse, and is now slowly transitioning to retirement. She currently works part time as a caregiver to the elderly – but doesn’t receive healthcare benefits.

Thankfully, she’s a very healthy person but everyone gets sick and when she does, she’s found a community health center that takes patients on a needs basis. It’s not great care but it suffices.

About two years ago, she had a searing pain in her chest and went to the emergency room. After several tests and a stay in the hospital, nothing was found and she was released. Her total cost: approximately $6,000.

As a family, we came together to pay this cost and decided that she can no longer slide by uninsured. She enrolled in a high-deductible emergency plan through Blue Cross. It covered hospitalization in the case of an emergency – but little else. Her monthly cost was around $175. She still had to visit the community clinic for doctor visits and still had to pay out of pocket for any prescriptions, as neither was covered.

This July, she canceled the plan – and rightly so. It was one of her most expensive bills and provided no immediate benefits. How would you feel paying $175 every month for healthcare but still having to visit a community clinic because you aren’t covered to see a doctor?

As soon as she mentioned she canceled the plan, I had her call Blue Cross to re-instate coverage and transfer the cost to me. In addition, we upgraded the plan to cover the same level of service typical of an employer provided plan. My cost – $430 a month. Thankfully I’ve been blessed with a decent job and no major expenses, so I can cope with the cost in exchange for the peace of mind to know that my mom no longer has to worry about seeing a doctor.

Soon after the new coverage went into effect, her chest pain came back. Only this time she was able see our family physician. With proper diagnosis it was determined she needed to have her gall bladder removed (something that the hospital missed the last time she went in for similar symptoms).

Fortunately our family is able to deal with this, but it’s far from ideal nor would I call it a practical solution. I challenge anyone to tell me that healthcare reform isn’t need. When hospitals can charge $6000 for missing a diagnosis and people who’ve worked all their lives now need to worry about affording even the most basic medical coverage – this can’t be the best healthcare available.

What about all the other semi-retired people, working part time jobs? People who depended on others for healthcare, but are now left hanging because that person suddenly passed away? What about all the people laid-off or unemployed? What do we say to them?

I believe in small and fiscally conservative government. But my conscious doesn’t afford me the luxury of allowing good people to fall by the wayside. Or paying for overpriced inefficiencies.

This isn’t a liberal or conservative issue. It’s a human issue. It’s about ensuring that honest people aren’t left to struggle when life deals them a blow. And it’s about ensuring that no one places a premium on a basic essential to life.

Aug 7 09

Microsoft Fail

by richard

Decided to keep a blog post on what I think are complete fails released by Microsoft. I’ll try to list it out in terms of the biggest beluga fail whales first.

  1. FrontPage
  2. Internet Explorer 6
  3. SharePoint Designer
  4. SharePoint 2003
  5. Windows Vista
  6. Windows ME
  7. Windows 98
  8. SharePoint 2007
  9. Team Foundation Server
  10. Office 97 / Office Assistant (aka Clippy & Bob)
Aug 6 09

Empty Div With Width Displays Height in IE

by richard

I have a wrapper div that contains a user control that may or may not always display content. If it doesn’t have content, then the div should be empty and empty divs shouldn’t have any height right? Well, all the browsers agree with me – except Internet Explorer. Apparently since I’ve given this div a width, even though its empty, IE still decides to render height equivalent to the set font-size.

So can’t I just add a height:0; rule to my css? Well that will work – until the control within my div decides to render content and now its hidden.

So the fix? Add an html comment within the div. Yep, sounds crazy – but if your empty div is empty, save for an html comment, it will now not render any height.

Here’s how the fix looks like:

Yay Microsoft! Your rules for HTML parsing makes perfect sense!

Aug 5 09

SharePoint Calendar View Width

by richard

SharePoint calendar widths breaking your custom design? Yea, they’re pretty wide. Here’s how you can tame them.

For the default Month and Day view, you can apply the following style:

.ms-calheader img { width: auto; }

This will reset the width for a spacer image that the fine folks at Microsoft have decided to give this enormous amount of width to.

For the Week view, you need an additional style rule (hold your breath for this one):

.ms-cal-wtopday div img, .ms-cal-wtopdayL div img, .ms-cal-wtopdayLover div img, .ms-cal-wtopdayover div img, .ms-cal-wtopdayRTL div img, .ms-cal-wtopdayRTLL div img, .ms-cal-wtopdayRTLover div img, .ms-cal-wtopdayRTLLover div img, .ms-cal-wtopdayfocusover div img, .ms-cal-wtopdayfocusLover div img, .ms-cal-wtopdayfocusRTLover div img, .ms-cal-wtopdayfocusRTLLover div img, .ms-cal-wtopday-todayRTLover div img, .ms-cal-wtopday-todayRTLLover div img, .ms-cal-wtopday-todayRTL div img, .ms-cal-wtopday-todayRTLL div img, .ms-cal-wtopdayfocusRTL div img, .ms-cal-wtopdayfocusRTLL div img, .ms-cal-wtopdayfocusL div img, .ms-cal-wtopdayfocus div img
{
width: 80px;
}

Holy smokes! Good thing were not optimizing stylesheets for web performance right? This is a cumulative width that is specified for each day column. The value for the width you specify here will by multiplied by 7 to make up the overall width for the view.

There you have it – minimized widths for your calendars. Now go ahead and create a calendar event and set the title to “Supercalifragilisticexpialidocious” – yea, there’s somethings in life that you just can’t fix – SharePoint is one of them.