Tuesday, December 02, 2008

Extra blank page when Save to PDF from SQL Reporting Service

When you save a report as PDF from Sql Reporting Services, you might see an extra blank page in between the pages in the report. This is due to the actual print out size exceed the page size that is specified.

For example, you specify your report size to be width (11 in) x height (8.5 in) which is a A4 size. However in the body of the report, you might have specify (intentionally or unintentionally) the size to be larger than that. When you save the report to PDF, you will see a blank page because the report size actually run over the page size.

To solve this problem, make sure you check the Size and Margin property of both the Report and Body (you can access this from the properties window).

Labels: , ,

Visual Basic Divide operator

For non profressional Visual Basic developer it might not be apparent that VB has two divide operator.

The first divide operator which is more commonly used is '/'. This operator will return the result with decimal
if the number being divided (also call dividend)
cannot be fully divide by the divisor.

The second divide operator '\', which is also called integer division will always return the result (also call Quotient) in integer.

Labels: ,

Sunday, August 17, 2008

Essence of Growing the Company

As company start to mature and grow in business or there is a sudden boom of business opportunity, they also start to hire aggressively. This is a natural progress. However, sometime this transition has a negative effect on the company and to the employees if the growth is not managed properly.

First, when the number of employees increases, the management and reporting structure also need to be changed. When the company has only 15 employees, everyone can easily get into each other and know what is going on in the company. The CEO can easily talk to any employees because they sit closer in the smaller office space and it is easy to address 10 to 15 peoples. The CEO can almost oversee everything in the company. However, when the company grow to 30 or 40 peoples, the situation start to change. The CEO and senior management will spend more time on business matters and less time in internal company affairs. The office space will also expand and possibly has remote office. This means that management has less time to understand employees’ affairs and improve the company for their employees. At this stage, HR play an important role to serve as the voice between the employees and the management. An important part of the HR job is to ensure the employees satisfaction is always remain high and play an proactive role in driving the company and employees improvement.

Second, one of the tough changes when a small company transition into a more mature middle size company is the reluctance of the CEO or founder of the company to relinquish management control to the rest of the management team. This is a difficult change for a lot founders as they still see the company as "their own company" rather than develop an objective and separate view between their ownership of the company and what is good for the long term future of the company.

Third, job function still start to specialized and new reporting hierarchy is introduced. This means employees will become more distanced from each other. Managers play a vital role in understanding the company direction and hold the team tight by delivering the message to their subordinate and drive everyone towards the same direction.

Forth, the culture and style of working will also undergo changes. As the business and employee size has grown, company might start to put in new company governance policy because management need a more structured way to operate the team in a more self-sustained way. The company may also need a new set of core values in order for them to succeed in the next stage.

It is unavoidable that in this stage, the company and the employees will go through the growing pain. Some employees will feel resistant to the change, some employees will feel that company is now trying to restrict their freedom, some employees just have no clue why the company is doing this and that. Just like a kid who transition into a teenager or a teenager who transition in an adult. During this transition, some people who had not done well in their earlier life will find their direction and excel in it. Some will lost their direction or get influenced by some bad friends and goes bad. The growing pain need to be managed well so that it doesn’t goes out of control.

First of all, the founders need to maintain an objective view of what is good and needed for the company to succeed in their new stage. This includes stepping aside and promoting someone or even hiring someone from outside the company who are more capable to take on their responsibility. By releasing some of their day to day responsibilities, the founders can have more time to look at the company and business in a broader view, set new direction and prepare the company for their next life. This is same as if you are already holding a handful of things in your hand, you cannot grab new things unless you release what you are currently holding.

Second, employees need to be addressed so that they understand what is happening within the company, the rationale behind the series of changes that is taking place in the company, what is expected from them and how they can contribute to the continuous success of the company. It is important for all employees to understand the business landscape so that they appreciate their role better not just in term of the niche view of the organization chart, but also from the perspective of the business and how they can make a difference and impact. It also help employee to understand what they need and develop new mindset in order to do better and adapt to the new changes and culture in the company.

Third, employees need to be prepared for the change. This include develop new and nurture leadership within the company long before changes start to take place. Employees need to be trained, guided and empowered to make decision and take on additional responsibility beyond what is expected from them. Founders and managers need to understand that in order for them to do something bigger, they need someone who can replace them and do their job so that they can move up higher. Leadership is about replicating more leaders, not just how to do a new job. This include training the new born leaders to understand business landscape, how to make tradeoff and decision, how to lead people, how to develop new leadership, how to be caring (if you don’t care enough, how can you make change), develop new skill sets and so on. The skill sets and mentality needed to be a manager and leader is different from those of regular team player. Leadership takes time to nurture. It is not something that can happen overnight.

Forth, don’t hire too aggressively. Whether you are hiring people who are experience or inexperience, these new employees will go through a learning curve and adapt to a new working culture. You need to have enough leadership within the company to guide them to a productive stage. Of course you should only hire people who can swim on their own, but it doesn’t mean you can neglect them in a corner just busy with their own work. Leadership and guidance is still needed to align them to the company’s culture and core values and their progress need to be monitored until they are truly productive in the company. Make sure your existing employees are prepared to guide new peoples before you start to employ in big ways.

Fifth, before you even start expanding the number of employees in the company, make sure the existing employees are happy. There is no point if on one hand the company is hiring new employees, but on the other hand is losing good employees. There are usually three reasons why an employee leaves the company:

  • First, their remuneration is not up to the market standard. In simple words, they are under paid. If this is the case, it is a simple fix.
  • Second, bad manager. Employees leave the company because they cannot get along with their manager or the manager is simply not capable. This is a much harder problem to identify and fix. One way to spot this is to allow employees to appraise their manager during the appraisal and review period.
  • Third, employees feel that they are stagnant in the company. This usually happen in company where no new business is developed, the employee is put in the same position doing the same old thing for a long time or the company has not prepare these people to move up in their careers.


I believe leadership and core values are more important for the long term success of the company than the employees’ past experience and skill sets. Experience and skill sets can be rendered useless when business nature and job role are changed. Leadership and core values are what keep people moving in the same direction.

I have seen some companies which have been staying in the same size for a long period of time due to lacks of leadership within the company. The company is mainly drive by the same person over many years and how much one or two person can accomplish?

I have also seen companies that outgrowth themselves. They hire so fast and so aggressively that they have no way to manage the situation and things simply goes out of control. This phenomenon is especially obvious during the dot com boom days. It also happen in companies that get external funding. When some companies got funded, they just simply hire new employees just for the sake of expansion.

I believe that the essence of growing a company is that management needs to instill leadership from day one of the company life and prepare their employees to growth with the company and take on new role when the company expands. This has to happen before the company actually grow.

Labels:

Saturday, August 02, 2008

DataBoy v1.0.6.2 is Out!

DataBoy v1.0.6.2 is released!

New features include:

  • Ctrl + Shift + (Left/Right cursor) short cut key to switch between Result and Message tab.
  • Connection time out setting for SQL Server connection.
  • Open and Save connection as Connection Group to a file.
  • Remember last session.
  • Option to persist login info. Select Persist Login Info if you want database user name and password to be saved with the connection when you save a connection group.
  • Table column ordering in the data explorer panel tree view is now according to the sequence in the meta data.


You can download Databoy from Codeplex : Databoy

Labels: ,

Wednesday, July 30, 2008

Project Server 2007 : Queue system could not start

If your project server 2007 deployment use a different account for the farm service and Shared Service Provider (SSP), you might face some problem with the Project Server Queue Service.


By default, the Project Server Queue Service run under the account that is used for the farm service. If your queue job cannot be processed and you see the following message in Event Viewer :

Queue system could not start. SSP: {guid}.

Try change the Project Server Queue Service account to the one that is used to run the Shared Service Provider.


Go to Services and change the Microsoft Office Project Server Queue Service service account to the account that is used to run the SSP.

Labels: ,

Wednesday, July 23, 2008

Licensing Requirement to Install Reporting Service on separate server

I was asked if the SQL Server Reporting Service is installed in a separate server from where the SQL Server database engine is installed, does it need another SQL Server license?

Although I am not a licensing expert (and not many people seem to be able to understand Microsoft Licensing scheme), but I can confidently say Yes to the question above.

The answer lies in the following document:

Licensing Doc

In the above scenario, you need two SQL Server license.

I hope Microsoft can be more open and clear in communicating licensing issue and requirement in the future. It will be good if they can include some of the common deployment scenario for their software together with the licensing requirement in Technet.

Labels: , ,

Tuesday, July 15, 2008

Disable Windows Server Shutdown Reason

Windows Server 2003 and 2008 require you to specify a reason everytime you shutdown your server. If you are using Windows Server as your workstation like me, you may find this a bit annoying. Luckily, There is a way to disable it.

To disable the shut down reason,
1) run gpedit.msc. This will start the Local Group Policy Editor.
2) Go to Computer Configuration -> Administrative Templates -> System.
3) Look for 'Display Shutdown Event Tracker'. Then set it to Disabled

Labels:

Sunday, July 06, 2008

Project 2007 error : "Could not retrieve Enteprise Global Template"

When I try to connect the Project 2007 to Project Server for one of my user few days ago, I got an error from MS Project: "Could not retrieve Enteprise Global Template".

After some googling, Google for "Could not retrieve Enteprise Global Template", I cann't find a sympton and solution that match my situation.

After some diagnosis and reproduction, I manage to isolate the problem into a case that this error only happen for that user on his computer. I recall that this user has just migrated his profile when he join his computer from workgroup into domain.

It turn out that after the profile migration, his MS Project cache location is pointing to a location that he currently do not have permission to access anymore. This cause MS Project to fail everytime when it need to retrieve the Enterprise Global Template from the cache.

This setting is stored in registry. The solution is to remove the setting from the registry and restart MS Project. Remove the following registry key: HKCU\Software\Microsoft\Office\12.0\MS Project\Settings:CacheLocation

,then restart MS Project.

Labels: ,