Categories
Geeky/Programming SharePoint

SharePoint Report – Missing Managers

Trying to roll out SharePoint at an org can have it’s hard times. One is trying to get User Profile sync working well and making sure the Org Browser works well goes along with that. You can sync over the manager from AD and everything falls into place, but their might be users you are pulling that don’t have a manager set. Now of course you can query AD for this, but you would have to already know the filters and OU’s you are pulling into SharePoint. Another way to do this (and of course, disclaimer here, don’t try this at home if you are scared of querying SharePoint databases, and yes, it probably isn’t recommend, but I am doing it anyways). Here is a query you can use to get the User’s with no manager, and also join it back to get some other attributes such as department, office, and title so you can figure out where they are and who their manager might be (helpful in a larger org). You can easily throw this in an SSRS report, and have it email whomever maintains the managers in AD or in your organization. (Note, SP2010_ProfileDB might not be the name of your actual profile DB, you would have to change that in the query below)

SELECT up.RecordId,PreferredName,NTName,Email, office.Office, titles.JobTitle, dept.Department
	FROM dbo.UserProfile_Full up
	LEFT OUTER JOIN (SELECT [RecordID]
      ,[PropertyVal] AS 'Office'
  FROM [SP2010_ProfileDB].[dbo].[UserProfileValue]
  WHERE PropertyID = 11) office ON up.RecordId = office.RecordId

	LEFT OUTER JOIN (SELECT [RecordID]
      ,[PropertyVal] AS 'JobTitle'
  FROM [SP2010_ProfileDB].[dbo].[UserProfileValue]
  WHERE PropertyID = 13) titles ON up.RecordId = titles.RecordId

	LEFT OUTER JOIN (SELECT [RecordID]
      ,[PropertyVal] AS 'Department'
  FROM [SP2010_ProfileDB].[dbo].[UserProfileValue]
  WHERE PropertyID = 14)dept ON up.RecordId = dept.RecordId

	WHERE
	Manager IS NULL
	ORDER BY Office
Categories
Geeky/Programming Product Reviews

Winforms DevExpress Grid

In the current agile sprint for the dev team I manage, we decided to start replacing ListViews (custom ones at that) and grids with the XtraGrid from DevExpress.

Now, normally I shy away from 3rd party controls, or want to vet them, but I knew there was no way we could do the same functionality in the default grid in .NET. One of the guys on the team did a story the sprint before to do a proof of concept comparing various grids and showing the pros and cons. DevExpress came out ahead, functionality and performance.

What we are seeing now is huge gains. We can use the new grid and functionality we couldn’t even begin to think of, is there by default. Grouping, searching, filtering, FAST performance, print preview and formatting, etc, etc, etc. Tons of options.

In fact, there are TOO many options. It makes it hard for us to digest all the possibilities in what we want to turn off, or how to integrate with existing forms, etc. A good problem to have.

All I know, is if you are doing any serious .NET work (Winforms, WPF, even Web/Silverlight) – it might make some sense to take a look at DevExpress. Focus on your business rules and integrating other parts of your systems, not reinventing the wheel with a crazy custom grid.

In the coming months I will try to talk about other areas that you can “outsource” to 3rd parties, where it makes sense. (And no, I don’t get anything from DevExpress for this post. Just calling it how I see it).

Categories
Geeky/Programming Work

VB6 to .NET Migration: Preparation and Migration

In my previous post on this topic, VB6 to .NET Migration: Decision and Analysis, I talked about the decision to migrate instead of rewrite, and also the analysis portion of the project.

Once you are ready to go, what happens? You need to prepare for the migration process. What ArtInSoft needs in Test Cases and Test Scripts so they can run through your application on their end in QA (the VB6 version) and then once they migrate it, run through the same scripts again (once migrated to .NET).

My guess is shops have some kind of test scripts, but nothing too extensive. This is where we were scrambling, we had things all over the place and not very complete test scripts/cases. This ended up biting us in the end as a lot of the app wasn’t covered by test cases so it was hard for ArtInSoft to test and migrate it without tons of exploratory testing.

Since the migration, we have shored up our test scripts and test cases by using a QA firm, Beta Breakers, but that is for another post.

After ArtInSoft gets your test scripts, they run through them and ask any questions, and in the mean time, their dev team is migrating your code and looking for areas they can automated in the migration, that aren’t in the main migration scope of the their migration tool.

ArtInSoft sets up a SharePoint portal for your project so you can share documents and other things, as well as a discussion forum for “technical queries” – or things they want to know on a technical level what they should do during the migration.

As you can guess, many things in .NET aren’t the same as VB6, the way some controls react, etc. They want to know what to do in those cases. Also, you might have some crazy things going on in VB6 that have no direct translation to .NET, so they need to know what to do there, overall though it shouldn’t’ be too bad

Along the migration, you can get the migrated code as they are doing it every once in a while and look at it and get into source control on your end if you’d like. Also, up to to a certain point you can send minor changes to ArtInSoft, so you don’t have a to have a code freeze for the entire migration. Obviously at a given point, you can’t be sending changes, if you have them, you can do a “change control” request, but it is going to cost you, which is expected.

As they work on the migration, you can work on other things on your end, whatever you’d like. Towards the end of the migration (development), you will send 1-2 people down to Costa Rica to help finish the migration and deep dive into testing and development.

The final phase of the of the migration comes when your team becomes the “testing team” and you do User Acceptance Testing (UAT). You have a specified amount of time to test on your end and send bugs back to ArtInSoft. This is a good back and forth for 1-2 months possibly depending on the size of your application. Once you are OK with the code and app, you sign off and the code in your hands. Next up.. your own “fixing” period.

Categories
Geeky/Programming Product Reviews

Windows Phone – Samsung Focus

Picked up a Samsung Focus yesterday, device only, no contract. Testing it out. Going to do some development and what not. More to come on this front, but after using it for the first few hours..

1. Can’t connect to hidden wifi networks.

If you have your wireless network hidden, you are out of luck, you need to have the SSID broadcast

2. Facebook Sync doesn’t work (or work well) when you have Facebook account settings set to HTTPS

I can see this happening right now as Facebook just turned that on recently and the phone doesn’t know how to handle, but it should.

3. It’s light.

Can hardly feel it in my pocket

4. I like the UI but seems very “jumpy”

seems like you bounce around a lot.

Other than that, still getting to know it. I haven’t moved my SIM card over yet (btw, the iPhone 4 is a mini SIM, so you need an adapter), but I might, we will see.


Categories
Agile Business Intelligence Geeky/Programming SQLServerPedia Syndication

Agile: Creating an SSRS Burndown Chart Part 3

In the previous 2 parts (see Part 1 and Part 2) of this series I showed you how to get your data ready, and how to get your report started and your Datasets and parameters where you need them. In this part, we will get the graph functional, and in the next part, we will make it pretty.

Start by adding title to your report “Agile Burndown”, then add a Line Chart to your report. Make it somewhat big, delete the Chart Title and Axis Titles,  and remove the “Details” from the Category Groups. You should have something that looks like this:

 

image_thumb15

Now to get the data on and finish it off!

Drag your values over to your Chart Data Values area like this:

image_thumb[17]

One thing we need to tweak, and this is on the PointsLeft Value. Right click on the PointsLeft series and go to “Series Properties”. To the right of the Value field, click the Fx button (for Expression Functions).

We need to change this series to not write out anything to the graph if there are no points greater than today. Why? If you don’t do this, your graph line for PointsLeft will drop off to zero for dates in your sprint after the current day, and we don’t want this. This is what the expression should be:

 

=IIF(Sum(Fields!PointsLeft.Value)=0 And Fields!Date.Value > DateTime.Now,Nothing,Sum(Fields!PointsLeft.Value))

 

Pretty cool, your graph should actually work now and function as a working burndown chart. But of course we need to pretty it up! Look for the next and final post soon.

Categories
Business Intelligence Geeky/Programming SQLServerPedia Syndication

SQL 2008 R2 IntelliSense May Stop Working After Updating to VS2010 SP1

Ran into this tonight. The other day I updated to Visual Studio 2010 SP1, and my IntelliSense in SQL Server Management Studio (SSMS) 2008 R2 stopped working.

I updated by SQL 2008 R2 install to CU6 and the IntelliSense started working again.

Categories
Geeky/Programming

Why don’t I see Windows 7 SP1 in Windows Update? Could be Video Drivers!

This weekend was Daylight Savings Time.. Spring Ahead. You are supposed to set all your clocks ahead 1 hour if your area observes DST. With that, you are also supposed to change your batteries in your smoke alarms, or that is at least what “they” tell you to do. Probably another good thing to do is run patches on all your systems!

I updated around 4-5 Windows 7 Machines at home, couple desktops, few VM’s, and it was fine. My work laptop (a Del Latitude E6410) I couldn’t see the update in Windows Update. I figured maybe it would get pushed later from WSUS or whatever, but also had a hunch something else was up, and I was right.

If you look here (Microsoft KB) there is a nugget about

 

Check whether you have Intel integrated graphics driver Igdkmd32.sys or Igdkmd64.sys and whether you upgraded the driver

Windows 7 SP1 will not appear in Windows Update if update 2454826 is not installed. Windows Update will not offer you update KB2454826 if you are using one of the following Intel integrated graphics drivers:

  • Igdkmd32.sys (32-bit), versions 8.15.10.2104 through 8.15.10.2141
  • Igdkmd64.sys (64-bit), versions 8.15.10.2104 through 8.15.10.2141

These drivers are known to cause problems with certain applications that use D2D (Direct2D). For example, if you use these drivers together with Windows Live Mail under certain circumstances, Windows Live Mail could crash. 
To check for the Intel integrated graphics driver and driver version, follow these steps:

  1. Start DirectX Diagnostic Tool. To do this, click Start

    Start button

    , type dxdiag in the Search programs and files box, and then press Enter. 

  2. Click the Display tab.
  3. Note the driver and driver version.
  4. If you have the Intel integrated graphics driver and driver version 8.15.10.2104 through 8.15.10.214, visit the computer manufacturer’s website to see whether a newer driver is available.

 

Well, that is what I saw on my laptop. So I updated the drivers, and rebooted, re-ran Windows Update, and boom! Windows 7 SP1 showed up. Nice.

Note: not sure this is the right link, but here is what I installed: Dell drivers and downloads

Categories
Geeky/Programming

ATI Catalyst HDMI and Overscan/Underscan

I bought a new Dell machine a couple years ago for the sole purpose of doing Windows Development (my main home machine is a MacBook Pro). Everything is fine on the windows machine, except the dang monitor. By default, ATI and their “Catalyst Control Center” – which I have found to be utter garbage over the years, decides to set to underscan at 8.5% by default. Which leaves you with a big black margin around your main desktop from the edge of your monitor.
I had this all fixed a long time ago, but Windows Update had an update for the driver, which updated the CCC from ATI, which was completely wacked. Wouldn’t even let me set all the settings I used to be able to set.

I went and found the updated CCC at their site and installed over the top, and now could set the overscan/underscan to 0%. It is beyond me why this isn’t the default setting to begin with. Back when I first got it I had to search around to figure this out, many other people have the same issue. Not sure why they don’t set it to 0% out of the box. Anyway, here is the place you can change it:

Categories
Geeky/Programming

Follow up to "Operating a Computer is like Operating a Car"

After getting said laptop from Dad and fixing, couple of things to note.

1. “System Tool” infection is wicked, but fixable: best fix here

2. Try try try to remove access to IE. But you can’t completely. But you can do this. Create an htm file somewhere on the C drive, and edit to say something in size 20 font like “Dad, don’t use IE, use Google Chrome” and link to Google Chrome path on the machine. Set it as the homepage (file://c:blah.htm)

Categories
Geeky/Programming Life Ramblings

Operating a Computer is like Operating a Car

Old people. Yeah, well, older than me. Not part of the “Nintendo” generation. Computers are “hard”. They didn’t grow up with them. They need to learn how to use them. Now don’t get me wrong, many people in that older generation are actually the pioneers of the computer age (Bill Gates? Steve Jobs?, etc), many are very good and know how to use. But I am talking about.. parents, your average joe’s, etc. They have no clue.

Analogy: Owning the computer, and operating is, is like owning and operating your car.

Giving a computer, especially a Windows machine, to a baby boomer and saying “have fun”, is tantamount to giving the keys for your car to a seven year old, and showing them how to shift and hit the gas. Yea, they will be able to drive it for a little bit, but they are going to crash.

And then you hear “well, I am only checking email and surfing the web”.. and I would say, ok, well just give your seven year old the car and have them drive around your yard. They are still going to crash, just into the tree in your yard instead of the ditch.

You just don’t jump into a car and know how to operate and drive it, you actually need to get training and get a license. Same thing should go for computers. Simple things like, “go to this address” or “run this program”, etc. Knowing how to type in a URL and hit should be like unlocking your car and buckling up. Just common knowledge. If it isn’t, you need training. One other problem? Most boomers that need the training (and probably “want” it) don’t really want to take the time to learn. They just want it to work. They want to get email, surf the web, do eBay, see pictures, and not worry. So, go to days of training, have family members or the geek squad fix your computer over and over and over.

Or just get an iPad.