Sunday, March 11, 2007

Last week, I had to exercise the old gray muscle on some database design, and ran into a little gotcha when trying to make a high level conceptual database model in Visio.  Essentially, when you're using the ERD template, you can't model a many to many relationship without elaborating the model further with a junction table.

So that being established, I referred to my handy copy of Michael Hernandez's brilliant Database Design for Mere Mortals (by the way, I'm proud to be able to call him my friend), and some other articles including Jason Mauss' Database Naming Conventions for some opinions on naming things.

Many people suggest that the junction table name be a compound of the two tables comprising the many to many relationship (for example, DoctorsPatients).  In my opinion, this is fine only if the junction table will not contain other columns.  In many cases, the junction table will be used to record other information... order details, doctor assignments, etceteras.  In this case, I think it's better to formulate a name that describes the other content and let the two foreign keys (for the two tables with the many to many relationship) convey the many to many relationship.  For example, in the case of the Doctors and Patients, Assignments is more accurate than DoctorsPatients.

What do you think?

Sunday, March 11, 2007 4:46:18 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [1]  | 
 Sunday, February 18, 2007

Though it's lacking some of the goodness of the same operation in MS Office applications, there IS a way to save PDF documents to a SharePoint document library directly from Adobe Acrobat 7.

The first thing you have to do is set up a new Network Place in My Network Places. To do this, open My Network Places, and click Add a network place.  Follow the Wizard, and in the Internet or Network Address field, enter the full URL to the SharePoint document library.  For example, http://sharepointserver/Shared Documents.

Then, in Adobe Acrobat, using the Save As dialog box, click My Network Places, and choose the Network Place you created.

This process won't prompt you for item properties (i.e. SharePoint columns), but it does allow you to get things into SharePoint right from Acrobat 7.

Sunday, February 18, 2007 2:38:47 PM (Mountain Standard Time, UTC-07:00)  #     |  Comments [3]  | 
 Wednesday, January 17, 2007

If you have a SBS 2003 server running Intelligent Message Filtering, and you're using ORDB as one of your Real Time Block lists, some time around January 7th, your SBS server may have stopped routing inbound faxes to an email recipient.  The official SBS Blog wrote this post on the issue a couple days ago, but we started experiencing the problem about a week ago, before we could find any information on it.

We resolved the problem by using the Custom Weighting feature in Exchange.  This is a feature that allows you to specify key words or phrases that if IMF finds in an email message, will cause it to allow the message through.  You can find this discussed about half way down the page here:  http://download.microsoft.com/download/f/b/5/fb5c54af-fe5c-48e9-be97-f9e8207325ab/Ex_2003_SP2_RelNotes.htm

We added a line like this:

<CustomWeightEntry Type="SUBJECT" Change="MIN" Text="FAX"/>

Admittedly, this isn't the best solution for the problem, but the custom weighting feature is still something that should be enabled on SBS if you're using IMF.  We likely won't remove the line, and we can quickly add more strings any time.

 |  | 
Wednesday, January 17, 2007 2:30:26 PM (Mountain Standard Time, UTC-07:00)  #     |  Comments [0]  | 
 Thursday, January 04, 2007

Over on my OZ blog, I wrote a couple of posts about using folders in SharePoint lists and document libraries.  I bemoaned the use of folders in SharePoint document libraries and lists as a way to organize large quantities of documents. 

Finding something in a digital folder hierarchy can be impossible unless you already know the hierarchy. For example, I've seen top level folders in these hierarchies that align with a company's departments or divisions, beneath these are folders for fiscal years, then maybe some folders that describe activities.  What's the problem with this? If I'm new to the company, I pretty much need to understand the business before I can find the document I need.

It seems pretty natural to want to organize things just like you might in your physical filing cabinet, but a filing cabinet doesn't do things like search or filtering, and a computer doesn't expose things in a tactile way like a filing cabinet.  Back in the DOS days, if you had a folder hierarchy like the one I described above and you wanted to find a file with a certain string of characters in the file name, you could issue a command like this:

DIR budget*.xls /s

This would search through the hierarchy relatively quickly and list the files matching the pattern along with the folder in which the file resides.  In Windows, you could use Search, but it's fairly slow because windows has to parse through the contents of the hierarchy one file at a time.  Then along came desktop search which indexes the file system, making searches much faster. Nice, but we're still using a pretty blunt tool. What if we could label files with certain terms appropriate to our business and then quickly expose them based on those labels? 

We can add custom document properties to a file, but in Windows explorer, there's no way to include the custom property as a column and then filter or group on that column.  For example, what if I put all my files in one folder, and all my documents had custom properties called "Fiscal Year" and "Division"? Then, what if I could have a shortcut on my desktop that opened Windows Explorer and showed a list of files from my folder whose custom properties contained 2007 for Fiscal Year, and Manufacturing for Division?  Or what if another shortcut listed all the files in my folder, but grouped things by Division and then by fiscal year? This would be like a Pivot Table for your files... but to me it's like Microsoft gave us these Custom Properties and then didn't give us anything we could do with them.

The bad news is that the file system can't do this.  The good news is that SharePoint can. 

Custom Document Properties are metadata.  Being able to manipulate file listings based on their metadata is one of the core pieces of functionality in SharePoint.  My opinion?--- don't use folders in the file system OR SharePoint.  In a SharePoint document library, custom document properties can be promoted or demoted to/from the document library's columns (effectively linking the two). I believe we should use SharePoint, properly describe our documents with Columns (and/or custom properties), and then use custom views to filter and/or group based on these.  It gives you the ability to simulate a folder like experience, but it's important to note that in SharePoint, if you nest documents in folders, this doesn't work.

Thursday, January 04, 2007 1:42:02 PM (Mountain Standard Time, UTC-07:00)  #     |  Comments [0]  | 
 Sunday, December 17, 2006

Recently, I've been thinking a lot about inspiration and team dynamics.  Last week, I was listening to the excellent .NET Rocks episode 205.  Among many great thoughts, Venkat Subramaniam made an interesting point about mentoring-- something to the effect of "Mentoring is not giving someone answers, rather it's giving someone opportunities to find the answer themselves".

As I was listening, I'd been shoveling snow and not paying complete attention, but this idea grabbed my attention.  I rewound (do you do that with a podcast?) to the beginning, and heard another gem.  He told a story about how when you're trying to change lanes and you turn on your signal light, if there's someone in the next lane over your shoulder, they have a tendency to speed up.  This might cause an interesting response the next time you need to change lanes--- you might speed up, begin to turn, and then signal (only so you don't get a ticket). He went on to explain that if everyone would remember that on the road, we're not in direct competition, rather we're just trying to get where we want to go safely, it might reduce the occurrences of road rage (his story was much more amusing than the way I'm telling it, but you get the point).

A few weeks ago, I was reading "Dynamics of Software Development" by Jim McCarthy.  I particularly enjoyed his chapter titled "Don't Flip the Bozo Bit".  I've been guilty of Flipping the Bit on people in the past, and have made an effort not to anymore. I'm as imperfect as a person can get, and can use lots of advice like this-- I think there's a common thread. Too often, we make the mistake of taking the actions of others personally, or make inaccurate assumptions about their motives, when we should really be seeing things from a much broader viewpoint.

In the past, stress has gotten the better of me, but lately at work I've enjoyed the benefit of some flexibility with my schedule. I spend a great deal of time reading, and find it difficult to concentrate in my cubicle. Our team (of about 15 people) is in temporary digs, and the space was quite obviously not designed with acoustics in mind.  There is a fridge and microwave oven right in front of the opening, and 2 hallways converge, causing sound from both directions to be bounced right into my workspace.  Furthermore, the temperature rarely goes below 27 degrees, making the noise of numerous fans at times unbearable.  And don't get me going about the cleanliness of the restrooms.  It's the flexibility that makes it work.  My boss is understanding when I sneak away in search of quieter, more comfortable environs for an hour here and there. So, even with all these things to complain about, I respect his approach.  It's not his fault that the working conditions are a little tough, so if I choose to be understanding, and non-judgmental, I get better results all around.

I think the point I'm trying to make is that a place of work is more than just the physical surroundings, and each individual can make things different.  To start, quit complaining. Then, follow my 5 simple rules to becoming happier at work:

  1. Keep yourself organized. Use techniques like "Getting Things Done" to close the "open loops" at work.  You'll be surprised how much happier and more productive you become (which in turn makes you even happier).
  2. Help your peers look better. This could be tough if they're jerks, but I think in most cases, when someone sees that you're helping, it comes back in spades.
  3. Stay sharp. Read, go on courses, talk to people who know more than you, keep learning...  An idle mind is the devil's workshop.
  4. Laugh. Find the humour in tough situations. Laughter creates seratonin, and seratonin makes you happy (or something like that).
  5. Take a break.  If things are getting to you, get outside for a walk (remember, no complaining). Think about successes, people you love, or things you enjoy doing.

Maybe the Christmas Carols are getting to me... Peace!

Sunday, December 17, 2006 7:02:32 PM (Mountain Standard Time, UTC-07:00)  #     |  Comments [0]  | 
 Sunday, November 19, 2006

When we began seeing errors on our SBS 2003 Server several days ago warning that space on the C drive was running low, we began to plan an intensive (and scary) operation to upgrade it.  The plan WAS going to look something like this:

  • shut down server
  • remove system drive and install it in a second machine
  • install bigger drive in second machine
  • install disk cloning software on second machine
  • copy old drive to new drive
  • put new drive (cloned) in server
  • be happy

There are many esoteric little things involved in these steps, especially when we're talking about SCSI and Dynamic NTFS disks. The whole process was a little daunting.

BUT, much of this worry goes away with Paragon Partition Manager Server Edition.  Hallelujah!  I installed a new 70 gig SCSI drive to replace a 16 gig drive (required a server restart). Then I ran Partition Manager to copy the system disk to the new disk (this needed another restart), and Ka-ching!... shut down the server one more time to remove the old drive and we were back in business.

Brilliant. Thank you Paragon!

Monday, November 20, 2006 2:07:30 AM (Mountain Standard Time, UTC-07:00)  #     |  Comments [0]  | 
 Thursday, November 02, 2006

I recently downloaded an application for my Motorola Q called John Cody's Alerts. I'm still giddy about my Q, and since installing John Cody's Alerts, I'm even more delighted.  It's an application that's a must have if you need to be reminded frequently to do things like take medication.  For me, beyond having to take some blood pressure meds twice a day, I'm trying to lose a few pounds and reminders to eat something small at regular intervals makes a HUGE difference--- if I don't, I tend to overeat at dinner.

Anyway, this is a terrific little app produced by a diligent small business person.  John tells the story on his web site of how Handango seemingly cheated him out of some just rewards he earned in the partnership they had established.  As I too am a small business person, I stand in support of John... having read the communications he provided, their position seems arbitrary and unfair.  Until this is resolved, I won't be purchasing from Handango, and will be purchasing my license of Alerts directly from John.

 | 
Thursday, November 02, 2006 4:44:26 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [2]  | 
 Wednesday, October 25, 2006

M-Audio iControl GarageBand HardwareLast winter, I bought myself one of the new core-duo Mac Minis.  I've found a lot of fun things to keep me busy, but none so much as GarageBand.  GarageBand is a multi-track recording studio in a box, complete with samples, sequencing, synthesizers, and effects, all within an easy to learn interface.  There's even a third party add-on hardware "mixing board" and controller called the iControl (shown here)

One of the coolest things I've seen in a long time comes from one of my favorite musical artists, Peter Gabriel.  Real World Remixed is a web site that's part blog, part podcast, and part music store.  Essentially, he's made available (for FREE!) zip files containing the individual recorded tracks of several songs from the Real World Records catalog.  GarageBand allows you to use the tracks to build your own remixes.  There's something very satisfying about hearing a song broken down to it's most basic parts.

Real World is his label, which is home to his own recordings and many other World artists like Afro Celt Sound System, Little Axe, Sheila Chandra, and more.  One of the first bundles available was Peter's own Shock the Monkey.  The site held a contest, judged by Peter himself, in which site members would submit their remixes using the bundled tracks.  There's some very interesting treatments.

Wednesday, October 25, 2006 12:16:33 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 

As if in response to my earlier post, yesterday Microsoft released Windows Desktop Search 3.0 to the web.  It addressed all of my concerns, except it still seems to be "busy-fiying" my SD card...

Good stuff.

Wednesday, October 25, 2006 11:39:57 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Saturday, October 21, 2006

I upgraded to Windows Desktop Search 3.0 Beta a while back and continue to have some problems:

For some reason it's indexing my SD card (I have a Toshiba M200 tablet) and I can't make it stop.

It isn't indexing my Contacts or Calendar in Outlook.

I've uninstalled and reinstalled (with a few problems doing so) and it still isn't working right.  I'm eagerly awaiting an update...

Saturday, October 21, 2006 2:49:32 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Thursday, October 19, 2006

I'm going to have to upgrade our SBS 2003 server one of these days.

I've been using my Motorola Q now for less than a week and am blown away (even without the Direct Push email that R2 promises).  I never thought I'd like the Smartphone over good old Windows Mobile Phone Edition, but what a job Microsoft has done! I remember this thing being talked about in development in about 2000.  It occurs to me that it was code-named Stinger, and is it ever.

The perfect marriage of Windows and Telephone UI. 

Thursday, October 19, 2006 12:35:05 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Tuesday, October 17, 2006

Much has been written about business process analysis.  There are articles about Use Cases, Sequence Diagrams, and more.  It's my opinion that most small businesses can avoid this level of complexity when they're trying to understand their business processes, and can instead focus on understanding the roles and responsibilities of people as a start.

One tool that I like to use is a high level diagram that correlates responsibilities with individual people (or small teams), and can then be used to deconstruct the responsibilities to tasks and process flows.  I call it a responsibility diagram.  If you work in a small business, you likely have many jobs to do-- understanding these jobs is a great place to begin.  Here's an example from a small business that sells sewing project kits online:

Admittedly, this is a bit of a hybrid of several UML diagrams, but what it's really designed to do is get a small business owner (decision maker) thinking about the high level processes and lead them into decomposing them into more manageable workflows.  Once we've got this diagram, we can rename the person to a role, in this case, a suitable role name might be "Order Taker".  This will help to separate the tasks from a person, and may make it easier to identify responsibilities that should more naturally fall on other people.  In this example, why wouldn't the Inventory Adjustment be done by Kelly.

I call the rectangular box the responsibility boundary, and once the responsibility changes, the flow would be illustrated in another box.  Similarities to Use Case Diagrams and Sequence Diagrams are obvious to the initiated, but to the business owner, it's still a simple diagram that portrays the work their people do in an easy to understand way.

In Part 3, we'll talk about what happens when a responsibility crosses boundaries to another role.

Tuesday, October 17, 2006 5:30:27 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Friday, October 13, 2006

Now HiringOur city (and province) finds itself in a unique situation.  The local economy is booming thanks to high global oil prices, and the proximity of the Fort McMurray oil-sands, one of the largest oil deposits in the world.

Property values are up, retail sales are up, unemployment is way down, people from coast to coast are coming here to find work. Unfortunately, this leaves many small businesses scrambling to find staff.  It seems that everywhere you look in the city, you'll see a "Now Hiring" or "Help Wanted" sign.  In fact, the MacDonald's restaurants have taken to posting their pay rates on those portable roadside signs, and they're pretty competitive.  Our business is no stranger to this--- we're recruiting aggressively, advertising in numerous mediums.

One thing that a small business can do to be more efficient with what staff they do have is something the big guys have been doing for a while now--- Business Process Analysis.  Understanding what your company does and how it does it, and then documenting it in detail is the first step to improving efficiencies.

This series of posts will highlight some simple techniques that a small business can use to analyze, understand, and improve its business processes.  Please stay tuned.

Friday, October 13, 2006 12:43:12 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Thursday, October 12, 2006

On October 16th, Bell will begin selling the Q.  The great news is that it's shipping with MSFP (Messaging and Security Feature Pack).  This is an important component that allows the devices to receive direct push email, as well as to be wiped remotely in case they're lost (see my message from yesterday).

This phone will level the playing field for small businesses, allowing them to have enterprise "blackberry like" service on the powerful Windows Mobile platform.  For example, imagine the same device being used for a custom designed field application that allows remote data collection, reference, and collaboration.  Check out the sample application "TaskVision" to understand what I mean.  It's a task management application that uses web services to allow various types of smart clients (a Windows Mobile app included) to authenticate and synchronize remotely.  I suspect with some work, it could be designed to allow "push" distribution as well.

 | 
Thursday, October 12, 2006 2:19:28 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Wednesday, October 11, 2006

So, it happened.  I'm usually pretty careful, but yesterday, I lost my iMate KJam.

I left it on a seat in the Vancouver airport departure lounge (Gate A3) while I went to the bathroom.  Within about 5 minutes, I realized I left it and rushed back, but it was gone.  According to some other passengers, a guy picked it up and walked away.

So, all my data is backed up, and any sensitive information is protected, and there WAS a sticker on it with my home phone number and such, but nobody has phoned me. 

Lessons?

1) Use the new features of Windows Mobile and Exchange to allow your phone to be remotely wiped.

2) Always put some form of contact information on your devices (just in case someone with some integrity finds it.

3) Always back up your data, or better yet, don't store "one-off" data on your phone... ActiveSync allows you to store documents in a folder on your PC that's synchronized to your device.

4) Have a plan, and keep the information in your wallet or purse.  That is, I should have had a list of steps I needed to take, like commencing a remote wipe, as well as the phone number for my carrier's customer support line and phone numbers of key contacts that I have stored in my phone and nowhere else.

5) Try to have a backup phone at home somewhere that you can reactivate quickly in an emergency.  My carrier doesn't have a very good "Lost or Stolen" program.

6) Prepare yourself emotionally.  I loved my KJam.  It was imported (I bought it at MEDC in 2006), so replacing it will be next to impossible in the short term.

7) If you see a situation like this unfold (like the passengers that saw the guy pick it up), intevene... ask the guy where he's going and make him turn it in to someone in authority (in this case, the gate agent).

8) If it's possible, have it surgically attached.

Cheers

Wednesday, October 11, 2006 7:32:53 PM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Saturday, October 07, 2006

Vancouver is a great city, especially if you want to think.  I left Edmonton this afternoon to go visit my brother for Thanksgiving in Whistler.  My flight got in a little too late to drive up the Sea to Sky Highway, so I'm spending the night in the Westin Bayshore.  My room is amazing... rather, the view is amazing.  I overlook Coal Harbor, with Stanley Park in the foreground and Grouse Mountain in the background (and Whistler is somewhere beyond that).

There's something kind of mystical about these mountains. I lived in them about 20 years ago. If you head about an hour north of Vancouver, something about them brings you in touch with nature. You find yourself breathing a little better and relaxing a little easier.

Anyway, it's a perfect vantage point to do a little thinking about business and technical stuff with a clear head.  Very refreshing.

Sunday, October 08, 2006 4:40:23 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Wednesday, October 04, 2006

I think Outlook 2007 is terrific.  There are some great new features and for the most part, you can tell that the developers put tons of effort into usability.  But I do have one complaint...

When I expand the Folder List, I would expect that I could drag one of the folders from my mail store to the little "shortcut bar" on the left (I don't know what it's really called, so I indicate it in the picture here).  My expectation based on some other functionality in Windows and Office and such is that it'd create a shortcut.  It doesn't.

Thursday, October 05, 2006 3:09:34 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Tuesday, October 03, 2006

Hmmm... this looks new... I've been waiting for this for a while.  This is an add-in that allows you to synchronize your business contacts and a subset of your communication history to your Microsoft Windows Mobile 5.0 Pocket PC.  Though it's beta, it might be worth a look.

Wednesday, October 04, 2006 2:55:24 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [0]  | 
 Monday, October 02, 2006

 I haven't had the time to confirm what magic makes this work, but I've got SharePoint and Adobe playing well with each other.  I'm using SharePoint 2003 and Adobe Acrobat 7.0 Professional. I can now:

  1. check out a PDF file
  2. Edit it in Acrobat (by choosing "Edit in Adobe Acrobat" from the drop down menu in the document library)
  3. Save it (back to the document library)
  4. check it back in

This is all just like the way it works in Word, Excel, or PowerPoint.

First, begin following the directions in KB article 837849, then when you're at step 2b, add the following text inside Mapping XML element: 

EditText="Adobe Acrobat" OpenControl="SharePoint.OpenDocuments"

so that the entire element looks like this:

<Mapping Key="pdf" Value="NameofIconFile.gif" EditText="Notepad" OpenControl="SharePoint.OpenDocuments"/>

Tuesday, October 03, 2006 1:59:12 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [4]  | 

Small business people can drown in paper. We see it here in our office. Every day, we get paper from all directions and we're never sure what do do with some of it. Seems like the day after you throw something away or shred it, you find you needed it.

 Solutions to scan to PDF have existed for some time, but Fujitsu has done a great job of making it affordable for small businesses.The ScanSnap S500 sells for less than $500 bucks Canadian, and has terrific output. It's as easy as pushing one button and a text searchable ("OCR-ed") PDF document gets saved into a folder of your choice.

Weaknesses? At first glance, there's little control over this thing programmatically, or beyond the out-of-the-box "ScanSnap Organizer". For example, on our Small Business Server network, our SBS server has network fax enabled. Wouldn't it be nice if this thing could be used to scan directly to this service without having to open up the document and "Print to Fax"?

Furthermore, with Windows SharePoint Services, and a PDF iFilter installed, these searchable documents can live in a document library whose contents can be indexed... that piece of paper can now be found by anyone in the company using SharePoint search. It would sure be nice if this thing had support for WSS out of the box...

Tuesday, October 03, 2006 1:49:50 AM (Mountain Daylight Time, UTC-06:00)  #     |  Comments [2]  |