To follow along and test drive Nest API you do not need to own a Nest device, a simulator is available. Continue reading “How to use the NEST API using FirebaseSharp”
There are three ways of figuring out things that have changed in Active Directory (or ADAM). These have been documented for some time over at MSDN in the aptly titled “Overview of Change Tracking Techniques”.
SELECT ' CREATE ' + CASE WHEN I.is_unique = 1 THEN ' UNIQUE ' ELSE '' END + I.type_desc COLLATE DATABASE_DEFAULT + ' INDEX ' + I.name + ' ON ' + SCHEMA_NAME(T.schema_id) + '.' + T.name + ' ( ' + KeyColumns + ' ) ' + ISNULL(' INCLUDE (' + IncludedColumns + ' ) ', '') + ISNULL(' WHERE ' + I.filter_definition, '') + ' WITH ( ' + CASE WHEN I.is_padded = 1 THEN ' PAD_INDEX = ON ' ELSE ' PAD_INDEX = OFF ' END + ',' + 'FILLFACTOR = ' + CONVERT( CHAR(5), CASE WHEN I.fill_factor = 0 THEN 100 ELSE I.fill_factor END ) + ',' + -- default value 'SORT_IN_TEMPDB = OFF ' + ',' + CASE WHEN I.ignore_dup_key = 1 THEN ' IGNORE_DUP_KEY = ON ' ELSE ' IGNORE_DUP_KEY = OFF ' END + ',' + CASE WHEN ST.no_recompute = 0 THEN ' STATISTICS_NORECOMPUTE = OFF ' ELSE ' STATISTICS_NORECOMPUTE = ON ' END + ',' + ' ONLINE = OFF ' + ',' + CASE WHEN I.allow_row_locks = 1 THEN ' ALLOW_ROW_LOCKS = ON ' ELSE ' ALLOW_ROW_LOCKS = OFF ' END + ',' + CASE WHEN I.allow_page_locks = 1 THEN ' ALLOW_PAGE_LOCKS = ON ' ELSE ' ALLOW_PAGE_LOCKS = OFF ' END + ' ) ON [' + DS.name + ' ] ' + CHAR(13) + CHAR(10) + ' GO' [CreateIndexScript] FROM sys.indexes I JOIN sys.tables T ON T.object_id = I.object_id JOIN sys.sysindexes SI ON I.object_id = SI.id AND I.index_id = SI.indid JOIN ( SELECT * FROM ( SELECT IC2.object_id, IC2.index_id, STUFF( ( SELECT ' , ' + C.name + CASE WHEN MAX(CONVERT(INT, IC1.is_descending_key)) = 1 THEN ' DESC ' ELSE ' ASC ' END FROM sys.index_columns IC1 JOIN sys.columns C ON C.object_id = IC1.object_id AND C.column_id = IC1.column_id AND IC1.is_included_column = 0 WHERE IC1.object_id = IC2.object_id AND IC1.index_id = IC2.index_id GROUP BY IC1.object_id, C.name, index_id ORDER BY MAX(IC1.key_ordinal) FOR XML PATH('') ), 1, 2, '' ) KeyColumns FROM sys.index_columns IC2 --WHERE IC2.Object_id = object_id('Person.Address') --Comment for all tables GROUP BY IC2.object_id, IC2.index_id ) tmp3 )tmp4 ON I.object_id = tmp4.object_id AND I.Index_id = tmp4.index_id JOIN sys.stats ST ON ST.object_id = I.object_id AND ST.stats_id = I.index_id JOIN sys.data_spaces DS ON I.data_space_id = DS.data_space_id JOIN sys.filegroups FG ON I.data_space_id = FG.data_space_id LEFT JOIN ( SELECT * FROM ( SELECT IC2.object_id, IC2.index_id, STUFF( ( SELECT ' , ' + C.name FROM sys.index_columns IC1 JOIN sys.columns C ON C.object_id = IC1.object_id AND C.column_id = IC1.column_id AND IC1.is_included_column = 1 WHERE IC1.object_id = IC2.object_id AND IC1.index_id = IC2.index_id GROUP BY IC1.object_id, C.name, index_id FOR XML PATH('') ), 1, 2, '' ) IncludedColumns FROM sys.index_columns IC2 --WHERE IC2.Object_id = object_id('Person.Address') --Comment for all tables GROUP BY IC2.object_id, IC2.index_id ) tmp1 WHERE IncludedColumns IS NOT NULL ) tmp2 ON tmp2.object_id = I.object_id AND tmp2.index_id = I.index_id WHERE I.is_primary_key = 0 AND I.is_unique_constraint = 0 AND I.Object_id = object_id('tblERPInvoiceData') --Comment for all tables --AND I.name = 'IX_Address_PostalCode' --comment for all indexes
There is also one more on SQL Server Central:
NOTE: while I’m still keeping the current posts live as they still seem to help, currently my focus has changed and new activity moved to the new site iternia.be
One of the errors that often reoccur when deploying a service is the Kerberos authentication failing for some reason when another system depends on your service. Depending users or services try to log on to your service but are not allowed to access it. This is not a problem with the enduser but with the rights of the service account on which the service itself is running. The service account doesn’t have the right to delegate access or impersonate the enduser. About 9 times out of 10 this is caused by inproper Kerberos rights due to a faulty SPN (or ServicePrincipalName) configuration and sometimes due to the delegation settings on the service account.
First lets take a look at how…
View original post 1,163 more words
— Ensure a USE statement has been executed first.
SELECT i.[name] AS IndexName
,SUM(s.[used_page_count]) * 8 / 1024 AS IndexSizeMb
FROM sys.dm_db_partition_stats AS s
INNER JOIN sys.indexes AS i ON s.[object_id] = i.[object_id]
AND s.[index_id] = i.[index_id]
GROUP BY i.[name] Having SUM(s.[used_page_count]) * 8 / 1024>100
ORDER BY i.[name]
I swear to fulfil, to the best of my ability and judgement, this covenant:
I will respect the hard-won scientific gains of those programmers in whose steps I walk, and gladly share such knowledge as is mine with those who are to follow.
I will apply, for the benefit of the users, all measures that are required, avoiding those twin traps of time and cost.
I will remember that there is art to software as well as science, and that warmth, sympathy, and understanding may outweigh the programming toolsets or coding standards.
I will not be ashamed to say “I know not,” nor will I fail to call in my colleagues when the skills of another are needed for a project’s success.
I will respect the privacy of my users, for their problems are not disclosed to me that the world may know. Most especially must I tread with care in matters of life and death. If it is given me to save a life, all thanks. But it may also be within my power to take a life; this awesome responsibility must be faced with great humbleness and awareness of my own frailty. Above all, I must not play at God.
Under what circumstances, if any, can adding team members to a software development project that is running late result in a reduction in the actual ship date with a level of quality equal to that if the existing team were allow to work until completion?
There are a number of things that I think are necessary, but not sufficient, for this to occur (in no particular order):
- The proposed individuals to be added to the project must have:
- At least a reasonable understanding of the problem domain of the project
- Be proficient in the language of the project and the specific technologies that they would use for the tasks they would be given
- Their proficiency must /not/ be much less or much greater than the weakest or strongest existing member respectively. Weak members will drain your existing staff with tertiary problems while a new person who is too strong will disrupt the team with how everything they have done and are doing is wrong.
- Have good communication skills
- Be highly motivated (e.g. be able to work independently without prodding)
- The existing team members must have:
- Excellent communication skills
- Excellent time management skills
- The project lead/management must have:
- Good prioritization and resource allocation abilities
- A high level of respect from the existing team members
- Excellent communication skills
- The project must have:
- A good, completed, and documented software design specification
- Good documentation of things already implemented
- A modular design to allow clear chunks of responsibility to be carved out
- Sufficient automated processes for quality assurance for the required defect level These might include such things as: unit tests, regression tests, automated build deployments, etc.)
- A bug/feature tracking system that is currently in-place and in-use by the team (e.g. trac, SourceForge, FogBugz, etc).
One of the first things that should be discussed is whether the ship date can be slipped, whether features can be cut, and if some combinations of the two will allow you to satisfy release with your existing staff. Many times its a couple features that are really hogging the resources of the team that won’t deliver value equal to the investment. So give your project’s priorities a serious review before anything else.
If the outcome of the above paragraph isn’t sufficient, then visit the list above. If you caught the schedule slip early, the addition of the right team members at the right time may save the release. Unfortunately, the closer you get to your expected ship date, the more things can go wrong with adding people. At one point, you’ll cross the “point of no return” where no amount of change (other than shipping the current development branch) can save your release.
I could go on and on but I think I hit the major points. Outside of the project and in terms of your career, the company’s future success, etc. one of the things that you should definitely do is figure out why you were late, if anything could have been done alert you earlier, and what measures you need to take to prevent it in the future. A late project usually occurs because you were either:
- Were late before you started (more stuff than time) and/or
- slipped 1hr, 1day at time.
Hope that helps!