 |
| Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
Our Blogs > English > Fernando G. Guerrero's blog
|
|
9/8/2008
Do we or don’t we have a recession? Our politicians are debating largely about this topic since a year ago. In fact, it is interesting to know that the official technical determination of the term “recession” is different in Europe and the USA.
Are we living challenging times? No question about it. However, we see this time as an opportunity time as well. Excellent companies are going to survive this crisis (or recession, if you prefer this term), and they are becoming stronger and stronger. At the same time, weaker companies disappear, leaving market opportunities to the stronger ones, which in turn will make them even stronger.
This is the time to wisely invest in knowledge, analyzing processes, optimizing resources, and preparing each company to be ready by the time the market will get back on track again.
I already passed through this process before. International economy is a recurring wave that makes us going up and down every few years. And I’ve always seen the same type of companies survive and get stronger and the other type of companies disappear.
Is it the time of investing in training? Absolutely! Many of our customers understand that. Training gives them a technical edge that places them beyond the competition. Training encourages their employees to move forward technically, being more productive to their companies, and improving their own professional value (earning a personal market advantage as well).
Is it time to cut staff cost? Is it time to reduce the total cost of the tasks that our technical staff needs to perform? Well, I could not say that this would be the time to increase these costs, while companies are fighting for survival. However, cutting the total cost per task, and the total cost per project, does not mean cutting the hourly rate you pay for these services. Cutting the total cost per project means finishing the project with the minimum cost, using wisely all available resources, achieving or exceeding the expected and contractual quality level.
We see many times that employing the best available professionals, who typically charge the highest rates, results in shorter delivery times, higher quality, and higher benefits overall. Even more, adding just a handful of key professionals (in many cases just one is enough) to a project, can represent the difference between success or failure, between profitability or disaster.
Because spending wisely just an extra 3%, might represent in many cases the chance to cut down the total cost in more than 20%. And that 20% might be the difference between success or failure of a project, which might mean the difference between life or death of a company, a division or department, in these challenging times.
Remembering the legendary Supertramp title… Crisis, What Crisis? 12/30/2004
I created a list of FAQs in Spanish language some time ago in my site www.callsql.com, which included about 125 frequent asked questions proposed by some members of the Spanish-speaking SQL Server community (such as Ana R. Pulido, Antonio Soto, Claudio Alabarce, Darío Gómez, Eladio Rincón, Erick González, Jesús López Méndez, Jorge Morales, Lucas Guardino Irazoqui, Luis Marucco, Manuel Castro Ruiz, Miguel Angel Sanjuan, Miguel Egea, Norman A. Armas, and Salvador Ramos).
I'm not maintaining this site since long time ago, but I still see lots of traffic in it searching for these FAQs, so I will try to copy them here before closing the CallSQL site.
No promises, but I will try to review and post those FAQs here whenever I have some time.
Happy New Year 2005
Fernando G. Guerrero 11/10/2004
In case you didn't see it yet, you should take a look at Google Desktop (http://desktop.google.com/).
It is still in Beta, but it does for your desktop what the main Google engine does for the web: index all information available and give it to you when you need it, very fast.
When we can only dream about a new Windows version which could help us driving through the hundreds of thousands files and email messages we have, and when we heard that the feature we are dreaming about might be postponed to a later release, Google fills the gap, with a very intellingent understanding of our needs.
Bye bye Windows Search, welcome Google Desktop!
Fernando G. Guerrero 10/4/2004
Last Thursday, I presented a session in Orlando about hidden Transact-SQL features in SQL Server 2000.
It is surprising to see how, more than 4 years after SQL Server 2000 was released, we still find surprising features in SQL Server Books Online. Features such as application locks, extended properties, or SQL-NS (I'm not referring to Notification Services here) are still unknown to many SQL Server developers, and these features have been documented since day one.
I know we are all busy trying to meet our deadlines, and solving our day to day problems, but a quick review of the Books Online index would give us a very interesting overview of what is available in this old and still exciting release of SQL Server.
Fernando G. Guerrero 12/9/2003
I read today at El País, that Spain went down four positions in the Global Competitiveness Report ranking, published by the World Economic Forum, leaving room for other more competitive countries in IT infrastructure such as Malta, Malaysia, Italy and Luxemburg.
It is sad to me to learn about this news, mainly because I don't see that the Spanish Government is doing anything to solve the root problems that cause this situation.
For better or worse, I had to spend the last twelve years of my life away from Spain, and although I officially came back already, I still perceive little interest from Spanish corporations and institutions to bet seriously in technology.
Just ask any employee of any company about how much budget they have for training (true knowledge transfer, not something fake that only gives them a certificate they can use to get some extra points in an "opposition" exam) BTW, I will write sometime about the "opposition" exams system in Spain.
When our country promotes the "titulitis" (obsessive request for college degrees beyond any other requirement to obtain a job) against the engagements of professionals with solid knowledge, whatever their degree (or lack of it). When our country pays an absolute respect for the established company structure, killing the hope and performance of those excellent professionals, who might lack the political ambitions, or simply the age, to progress up in the structure ladder. When our country awards the stability of the conformism, against the risk of failure (or success)… who gets surprised by these numbers?
Therefore, even if I live in Spain, at least from a fiscal point of view, I have only customers away from Spain. Why? Because nobody in my country seems to be interested in what I do.
Yes, these reports make me sad, and take away any hope from me.
Maybe some day, our government will learn that this situation cannot be changed by publishing a White Paper, but attacking the root problems that truly prevent this country we love from moving forward.
The unfortunate sentence from D. Miguel de Unamuno, "Let others invent for us. Then we will use whatever they discover", still fits like a huge stone over our heads. (someone changed a little bit this sentence into " Let other invent for us. That's why we pay them royalties for" )
Fernando G. Guerrero 11/28/2003
One of the best well known names in .NET, Dino Esposito, and a GREAT guy, just started his weblog, and it contains very useful information (I didn't expect anything less from Dino).
Check this out, and see by yourself:
http://weblogs.asp.net/despos
Fernando G. Guerrero
CEO
SQL Server MVP & Microsoft Regional Director
"Solid Quality Mentors is the trusted global provider of solutions, services, and advanced education for the entire Microsoft Data Platform."
www.SolidQ.com 11/15/2003
After 28 conferences and seminars this year (I presented at 26 of them), I feel really tired, and eager to go back home and enjoy life with my family for a change. However, I might still need to fly to Latin America during the following two months for some INETA roadshows.
I'm flying this evening Seattle - London - Madrid - Alicante and I will arrive to my final destination tomorrow evening. Hopefully the BA folks will upgrade my ticket so I will be able to sleep all the way to London, but I guess I could sleep on this trip even if I had to stand up during the entire flight.
I had a great time at PASS this year. However, timing was a bit crazy as usual. Very early morning starts (who decided to have a working breakfast at the conference center at 7AM?) and too late evenings (we never finished before midnight) made it a killing week for my already bugged body clock.
We had the entire Solid Quality Learning Team at the conference (only Gianluca and Herbert had to stay in Europe for personal/professional reasons), and we had the opportunity of spending some time with our friends from the SQL Server MVP community, the dev team, and our PASS friends as well. All comments I heard about the conference were great, and I'm glad to see how this conference is gaining strength every year.
I want to congratulate the new PASS Board of Directors, I wish them the best for this year ahead, and I'm sure that they will do a great job to make PASS more helpful every day for the SQL Server Community.
I can't say that I am completely happy with my sessions at this conference, but I received excellent comments from some SQL friends who found these sessions helpful, and I received some feedback and criticisms in the evaluation forms that will help me to do it better next time. I wish to thank everybody who gave me good and bad comments about my sessions, thank you for your excellent feedback, it really helps me.
Now I guess that I better pack and go. I'll blog some more later (perhaps from any of the airports I'll need to spend sometime between today and tomorrow)
Fernando G. Guerrero
CEO
SQL Server MVP & Microsoft Regional Director
"Solid Quality Mentors is the trusted global provider of solutions, services, and advanced education for the entire Microsoft Data Platform."
www.SolidQ.com 11/7/2003
If you are a poor European flier, as I am, each time you buy a cheap ticket from BA, it will be non-refundable, non-changeable and all those annoying non-* you might think about.
However, if you are a customer from the USA, or simply you buy a flight that departs from the USA, your ticket will have a standard and reasonable cancellation policy.
I guess that it is all caused by competitions rules, but it is annoying to suffer this discrimination each time I fly from Europe to the USA.
Fernando G. Guerrero
If you read the message Microsoft Certified Database Administrator for Yukon from Clemens Reijnen , you would know by now that Microsoft is changing this certification to make it closer to the reality of tasks that DBAs need to perform every day at their work place.
Looking at some statistics, MCDBA certifications are steadily increasing during the last year with nearly 115,000 professionals holding this certification as we speak. Still MCSE numbers double the number of MCDBA, and the MCSE for Windows 2000 certification is finally far from the nearly half a million MCSE for NT4 from November 2002.
However, the new certification might bring the MCDBA number down, as it did happen with MCSE one year ago. Two main reasons for this will be the Windows 2003 requirements, and the other one will be the inclusion of CLR stuff in the Database Programming Exam.
I truly believe that DBAs should have a good knowledge about their IT infrastructure, to make sure that they understand the many implications of runing SQL Server in a complex Windows network. Similarly, I don't see how a SQL Server developer could do a good job when Yukon will be available without proper CLR programming skills.
I appreciate that they separate now Design and Programming in two exams, and that makes lots of sense mainly when you see out there how many databases are poorly designed. Actually there was only two MS exams dealing with these issues in enough depth (I love these exams!) 70-100 Analyzing Requirements and Defining Solution Architectures, and in less degree the new exam 70-300 Analyzing Requirements and Defining Microsoft .NET Solution Architectures, although you couldn't pass the 70-229 Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition without enough database design knowledge.
With tools being more clever every day, and providing automatic management for most day to day operations, the role of a DBA needs to go up in the food chain to take part in more architectural and design decisions, and closer to the business process that required the installation of a database system on the first place.
Having a revamped certification will be useless without a proper training program, and this is where Microsoft can help a lot again. However, looking at the MCT numbers, it looks like only 1500 MCTs renewed so far (the renewal period started on October 1st, and will end on November 16th). It might be a typo in that page, but looking at the training market during the last couple of years, it doesn't surprise me that many trainers decided to move to other activities.
As far as I know, SQL Server training is still strong, due to the market growth of SQL Server. However, most training organization need to re-think the way they provide training for next release of SQL Server (codenamed Yukon). What customers want from training is help to make their staff more productive designing, implementing, and operating their systems. This implies attending a course that is relevant to the skills they need to gain, and having a trainer who can guide them through the learning process, and a mentor able to help them apply what is being learned to their specific systems.
This represents a big challenge for most SQL Server trainers, because our skill set needs to be wider every day, and we need to have enough consulting/mentoring experience to make sure that we can provide specific help to the specific real-life problems that delegates bring to the classroom.
Nobody will search anymore for any course, anywhere, anytime, with any trainer. Those times are gone forever (thanks God). But high quality and relevant courseware, taught by quality trainers, will be more important every day, and this will make the market believe again in the benefits of a proper learning process.
I know that the Microsoft folks are designing very carefully the new courseware for SQL Server, and I believe that they are definitely in the right direction. Let's hope that most SQL Server trainers will understand the opportunities that this big challenge can bring them. I know many SQL Server MCTs and I know what they are capable of.
Another question could be what Microsoft is going to do to promote the new MCDBA certification in the market. At the end of the day, a new certification is as good as the professionals who obtain it.
Fernando G. Guerrero
Kalen Delaney published some time ago a few articles on this topic in SQL Server Magazine:
Inside the Datetime Data
Solving the Datetime Mistery
However, I like to play with DBCC PAGE and look inside the stored information to learn how SQL Server actually works.
SQL Server stores dates always In a binary format, independently of the output format that the user might choose. This binary format is split into two parts. One part represents the date (number of days passed from the dates' origin) and the other part represents the time (number of time unit passed since midnight).
If you had a smalldatetime value, date will be stored as the number of days from January 1st 1900, and for datetime values this number would be negative for dates before January 1st 1900.
For smalldatetime values, time is stored as the number of minutes since midnight, but for a datetime value, this number represents the number of ticks (1/300 sec) from midnight.
To see how SQL Server stores these values, run the following script:
USE Tempdb GO
CREATE TABLE MyDate (thisDate datetime, thisSmallDate smalldatetime)
INSERT Mydate SELECT Getdate(), GetDate()
INSERT MyDate SELECT '1/1/1800', GetDate()
INSERT MyDate SELECT '1/1/1800 10:15', GetDate()
GO
SELECT * FROM sysindexes WHERE id = OBJECT_ID('MyDate')
-- In my case, I can see that the column First is 0x4B0000000100, -- therefore the page where this data is stored is 0x4B, or 75
DBCC TRACEON(3604)
DBCC PAGE (Tempdb, 1, 75, 3)
/* you could see three rows with the values you inserted. In my case I got this:
Slot 0 Offset 0x60 ------------------ Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP 1A786060: 00100010 00610fa5 00009421 94210161 ......a.!...a.!. 1A786070: 000002 ... Fecha = Oct 29 2003 5:53AM Fechita = Oct 29 2003 5:53AM
Slot 1 Offset 0x73 ------------------ Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP 1A786073: 00100010 00000000 ffff7154 94210167 ........Tq..g.!. 1A786083: 000002 ... Fecha = Jan 1 1800 12:00AM Fechita = Oct 29 2003 5:59AM
Slot 2 Offset 0x86 ------------------ Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP 1A786086: 00100010 00a8ea30 ffff7154 9421016e ....0...Tq..n.!. 1A786096: 000002 ... Fecha = Jan 1 1800 10:15AM Fechita = Oct 29 2003 6:06AM
Playing a little bit with hexadecimal values,
0x9421 = 37921 days
*/
SELECT DATEADD(day, 37921, '1/1/1900')
-- will give us 2003-10-29
-- 0xffff7154 = 4294930772 = -36524 (taking out 256*256*256*256)
SELECT DATEADD(day, -36524, '1/1/1900')
-- will give us 1800-01-01
-- 0x0161 = 353 minutes = 5:53 (the time I ran this script) -- 0x00a8ea30 = 11070000 ticks = 36900 seconds = 615 minutes = 10:15
Fernando G. Guerrero
| Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /EN/fguerrero/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /EN/fguerrero/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|