Want to call a meeting today?
Then first, stop and consider the hourly cost of the people that will be attending your meeting. You'll realize quickly that calling a meeting is very expensive since no productive work is done during that time.
It's important to ensure that every person present and every minute of your meeting adds value. It’s equally important that your motivation for calling this meeting is justified and need a consensus of everyone attending. Don't invite people who won't participate but will simply report back to their boss or team (sending a copy of the meeting minutes by email will be a lot more effective). Also, don't call a meeting to tell people things that could be communicated by email or memo.
In fact, you should only call a meeting when actual decisions needs to be taken or something really needs to be discussed live with the attendees.
Then when you finally decide that you need to hold your meeting, make sure that:
- You are prepared. People don’t like seeing the main speaker confused or ill-prepared.
- You assign someone to the note-taking task. Everyone else can then actively participate, knowing that the full meeting notes will be emailed to them later that day.
- You verify that everyone present has a good reason to be present.
- You keep it short and sweet. A long, boring meeting is useless and energy-draining. The most effective meetings I've seen are the daily stand-up meetings in the Agile Methodology. They typically last from 5 to 15 minutes and still manage to get a lot done in that period of time.
A man sat at a metro station in Washington DC and started to play the violin; it was a cold January morning. He played six Bach pieces and his performance lasted about 45 minutes. During all that time, since it was rush hour, it was calculated that thousands of people went through the station, most of them on their way to work.
Three minutes went by and a middle aged man noticed there was musician playing. He slowed his pace and stopped for a few seconds -- then hurried to meet his schedule.
Then, maybe a minute later, the violinist received his first dollar tip from a woman who threw the money in his violin case and, without stopping or looking at the musician, continued to walk.
A few minutes later, someone leaned against the wall to listen to him, but the man looked at his watch and started to walk again. Clearly he was late for work.
The one who paid the most attention was a 3-year old boy...
His mother tried to rush him, but the boy stopped to look at the violinist. Finally the mother pushed hard and the child continued to walk turning his head all the time. Something interesting is that, every single time a child walked by the musician, he or she tried to stop and watch. And every single time, a parent rushed the kid away.
Some time later, a lady stopped and gave the musician a long hard look before walking on. It turns out that she didn’t even notice the music. She were trying to figure out what he was doing there, how does this work for him, can he make much money, would it be better to start with some money in the case, or for it to be empty, so people feel sorry for him? She was analyzing it financially.
In the 45 minutes the musician played, only 6 people stopped and stayed for a while. About 20 gave him money but continued to walk their normal pace. He collected $32. When he finished playing and silence took over, no one noticed it. No one applauded, nor was there any recognition.
No one knew this but the violinist was Joshua Bell, one of the best musicians in the world. He played one of the most intricate pieces ever written with a violin worth 3.5 million dollars.
Two days before his playing in the subway, Joshua Bell sold out at a theater in Boston and the seats averaged $100.
This is a real story. Joshua Bell playing incognito in the metro station was organized by the Washington Post as part of an social experiment about perception, taste and priorities of people. The themes were: in a commonplace environment at an inappropriate hour: How do we perceive beauty? Do we stop to appreciate it? Do we recognize the talent in an unexpected context?
One of the possible conclusions from this experience could be:
If we do not have or take the time the time to stop and listen to one of the best musicians in the world playing the best music ever written, how many other things are we missing?
Want to be really innovative? Notice what's going on right in front of you and appreciate it.
I’m back from my little vacation and I just found a great post on managing teams of developers, programmers and others geek-type employees. I think the author is right on point and I agree with him on everything.
Here are my favourites from his post:
Try to measure productivity in output, not in hours.
Geeks automate. Geeks script. Geeks compile. They summon computing power to get things done quickly on their behalf. If your geek seemingly spends all day on Twitter and Fark but somehow manages to still complete tasks ahead of schedule, your geek is multi-tasking. This is normal.
Assign tasks to the geeks who are most interested in them, not the ones with the most experience.
When geeks are interested, they are passionate. When they're passionate, they learn fast. You'll get more productivity out of an interested geek with no prior experience than you will with a bored drone who's been doing the same thing for the past five years. Sometimes, the one with the most experience is the one that's most interested. In those cases, you are a lucky manager!Segregate the corporate, compensatory hierarchy from the leadership hierarchy.
With a team of geeks under you, one or more will eventually become to go-to guy (or girl) for certain things. You don't usually need to assign a "team lead" - Through meritocracy, the Alpha Geek will emerge. That Alpha Geek may lack seniority, but will have the most influence. It's best to let this occur naturally. It's awkward when the one who best fits the role has to answer to someone else just because they've been around longer. Furthermore, the members of your team will still go to the Alpha Geek because the wrong person has the "Team Lead" label. As Paul Glen puts it: Geeks don't hate hierarchy. They hate your hierarchy.Don't grill us on our resume and work history.
You'll know you've found the Alpha Geek when you see people from your team (and likely other teams) at said geek's desk getting advice or validation on a frequent basis.
You don't hire a geek for what he or she did two years ago. You hire them for what they will be able to do for you now and in the future. Ask your geek to describe scenarios where problems arose that required them to pick up a new skill set to solve. All geeks worth their salt have stories like that and love telling them.Instead of asking about skills that qualify them for the position, ask about their interest in the kind of work they think they'll be doing.
Remember: Interested geeks work harder. The above requirement will still let you H.R. types ask that oh-so-predictable question: "What is it that you think this company does?" while offering your candidate a chance to really show he or she will be a good match.
I’m taking a short blogging break for the hollidays.
Happy hollidays and see ya in 2009!
This method tries to stop the service (and waits until it's stopped) then it begins to start the service (and waits until the service is running). The specified timeout is used for both operations together.
First, you need to add a using directive to System.ServiceProcess.
This is the method to restart the service:
public static void RestartService(string serviceName, int timeoutMilliseconds)
ServiceController service = new ServiceController(serviceName);
int millisec1 = Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
// count the rest of the timeout
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2-millisec1));
Open DBDiff is an open source database comparison tool for SQL Server 2005 that generates synchronization SQL. It has options to customize the comparison and SQL generations. The database differences are identified at a high level. The synchronization SQL it generates can be copied to a query tool to be executed after you review it.
Open DBDiff can synchronize:
Tables (including Table Options like vardecimal, text in row, etc.)
Columns (including Computed Columns, XML options, Identities, etc.)
User Data Types (UDT)
CLR-User Data Types (CLR-UDT)
Triggers (including DDL Triggers)
Views (Including SCHEMA BINDING option)
Functions (Including SCHEMA BINDING option)
When you are using such tools, always remember to double check the generated SQL script for anything suspicious that may harm your environment.
Free software tools for students
My 6 favourites file hosting services
Tools for web developers
Tool of the day: Copy source as HTML
Did you change the “sa” password recently? As a DBA, you should be aware that there is a great security risk linked to the sa account. You should always use strongs password for this account and change the password frequently.
You can easily check when the “sa” password was last changed in SQL Server 2005 by executing the following T-SQL code:
SELECT LOGINPROPERTY ('sa', 'PasswordLastSetTime')
The LOGINPROPERTY function gives you lots of information on the logins properties and password policy information for these logins.
Another thing you can do with this function is to look for security attacks. For example if you want to look for brute-force or dictionnary attack on the “sa” account, you can use the following query:
SELECT LOGINPROPERTY ('sa', 'BadPasswordCount')
This will return the number of failed consecutive attempts to login since the last successful login. So if this value goes over a certain value, you can easily see that something might be wrong.
Here is the complete list of properties you can query for using the LoginProperty function:
Returns the number of consecutive attempts to log in with an incorrect password.
Returns the time of the last attempt to log in with an incorrect password.
Returns the number of days until the password expires.
Returns the SQL Server login default database as stored in metadata or master if no database is specified. Returns NULL for non-SQL Server provisioned users; for example, Windows authenticated users.
Returns the login default language as stored in metadata. Returns NULL for non-SQL Server provisioned users, for example, Windows authenticated users.
Returns the length of time the login has been tracked using the password-policy enforcement mechanism.
Returns information that will indicate whether the login has expired.
Returns information that will indicate whether the login is locked.
Returns information that will indicate whether the login must change its password the next time it connects.
Returns the date when the SQL Server login was locked out because it had exceeded the permitted number of failed login attempts.
Returns the hash of the password.
Returns the date when the current password was set.
Differences between temporary tables and tables variables
How to insert a file in an image column in SQL Server 2005
How to add a row number in an SQL Query
It’s stunning to see how many website are still vulnerable to SQL Injection attacks. Many SQL Injection worms are circulating right now and are dropping malicious code in thousands of databases. Even major sites are vulnerable to this type of attack. BusinessWeek, the world-class magazine, was a victim of this kind of attack last September.
From the article at Net-Security:
Folks from Sophos have discovered that the website of BusinessWeek, the world famous weekly magazine, has been attacked by hackers in an attempt to infect its readership with malware.
Hundreds of webpages in a section of BusinessWeek’s website which offers information about where MBA students might find future employers have been affected. According to Sophos, hackers used an SQL injection attack - where a vulnerability is exploited in order to insert malicious code into the site's underlying database - to pepper pages with code that tries to download malware from a Russian web server.
At the time of writing, the code injected into BusinessWeek’s website points to a Russian website that is currently down and not delivering further malicious code. However, it could be revived at any time, infecting hundreds of MBA students looking for high-earning jobs. Sophos informed BusinessWeek of the infection last week, although at the time of writing the hackers' scripts are still present and active on their site.
This goes to show you that, if you are the developer of an internet facing website (or an intranet for that matter), you need to commit yourself to enhance it’s security against these kind of threats. Everyone should adopt secure coding practices as there is no site that will be spared. More and more we will see automated SQL Injection attacks using crawlers, worms and bots and.
As a follow-up on my post on Bizspark, Microsoft’s initiative to provide startups with free versions of their software, here is DreamSpark.
Basically, DreamSpark is the same thing as Bizspark but aimed at students all over the world. DreamSpark is simple, it's all about giving students Microsoft professional-level developer and design tools at no charge. DreamSpark enables students to download and use Microsoft developer, designer, gaming tools, Windows Server 2008 and more. In order to access the softwares available on DreamSpark, students only need to verify their student status once every 12 months.
The full list of software that is available for free on DreamSpark’s site is:
- Visual Studio 2008 Professional Edition
- Visual Studio 2005 Professional Edition
- Expression Studio 2 (includes Web, Blend, Media and Design)
- SQL Server 2008 Developer Edition
- Windows Server 2008 Standard Edition
- IT Academy Student Pass
- Robotics Developers Studio 2008
- SQL Server 2008 Express Edition
- Visual Studio 2008 Express Edition
- XNA Game Studio 2.0 (with 12-month Creators Club Student trial membership)
- Virtual PC 2007
The Microsoft developer, designer and gaming tools available on DreamSpark are NOT 30-day trial versions; they’re the complete and full professional grade versions.
There is a little problem however. If you’re living in Canada like me (and probably in other places too), not every university is participating in this program. Here is the list of the canadian’s universities that are participating as of today:
So, if you’re canadian and not a student of one of these universities, you can’t benefit from this program right now. However, i’m sure that Microsoft is working on integrating more universities into their program.
If you want to have your university added to this program, or if you are a administrator of a university that isn’t currently on Microsoft’s list, go to this page to get more information about enrolling.