Google, Apple Play Catch-Up to Microsoft (for a change)

I'm no Microsoft fanboi, but I noticed an interesting tidbit when I recently wrote a news article about Google Cloud SQL, which adds a MySQL database service to the company's App Engine development stack.

In the comments section of the blog post announcing the new service, was this from reader Jeff King:

"Microsoft has had SQL Azure for ages so why would you need this?"

Now that's a switch. Usually it's the other way around: The slow, ponderous, bureaucratic, out-of-touch Redmond software giant is chastised for being behind the times and playing clumsy catch-up to the hip, nimble Web 2.0 pioneer.

Indeed, SQL Azure was introduced in March 2009. Truth be told, after Amazon basically pioneered the cloud phenomenon in 2006, Google beat Microsoft to the punch in the fight for the sky when it introduced App Engine in April 2008, about six months before Windows Azure was unveiled.

But, looking at the database component, it's clear that Microsoft has had a leg up on Google, which heretofore offered a datastore with a syntax similar to SQL called GQL. OK, how many of you developers have liked, or even used, GQL? Raise your hands (or flame me; your choice).

"One of App Engine's most requested features has been a simple way to develop traditional database-driven applications," said the Google Cloud SQL program manager in the previously mentioned blog post. Well, yaaah!

And today I noticed a news report that Apple is preparing to launch its iCloud. I know the products don't really compare--with Apple's focus on music and consumer entertainment as opposed to enterprise development--but launching an iCloud service in late 2011 seems a little iBehind.

And stodgy old Microsoft seems to have acquitted itself well in the cloud despite its late start, judging from this recent Ars Technica headline: "Windows Azure beats Amazon EC2, Google App Engine in cloud speed test."

I've even noticed some positive buzz about Windows Phone in the media as of late. Is Microsoft finally turning things around, like a huge supertanker that takes miles to change direction? Will it (gasp!) become cool? Well, let's not go overboard here.

What do you think about Microsoft: dying dinosaur or comeback kid? Comment here or drop me a line.

Posted by David Ramel on 10/13/2011 at 1:15 PM3 comments

Not Your Typical Data Driver Column

Dear ‹FirstName>,

In these trying times you occasionally just need to take a break from the business of data and have a good laugh. Which is what I did when I received the following e-mail, purportedly from a real data-related vendor. I'll protect that innocent by anonymizing the company/personal details in italics, but otherwise the message is presented as received:

Dear ‹FirstName›,

We're ‹insert emotion› to announce our research is nearly complete. In just a few ‹random time duration›, we'll be announcing the new Company Name Telepathy Source and Destination, allowing the everyday man and woman to read minds into an SSIS data stream.

Imagine being able to:

Read the entire encyclopedia in a matter of minutes

Output your wife's thoughts to find out how she really feels

Learn a new skill in seconds like Neo from the Matrix

Over the past week we've run a contest to see who can be the first to view this amazing research and I'm happy to announce that Person's Name is our winner. If you are Person's Name, please click the below link to see our research. If you are not Person's First Name, please do not click below. We operate solely on the honor system at Company Name.

Person's Name Click Here

‹Emotional Stub›,

CEO's Name, Founder of Company Name

So, I don't know if it was meant to harvest contact information or install malware or what, but it certainly provided some much-needed ‹insert pleasant emotion› to the Data Driver. What's the clumsiest troll you've ever received? Comment here or drop me a line.

Posted by David Ramel on 10/05/2011 at 1:15 PM2 comments

Windows 8 Ups the Data Transfer Ante

Talk about driving data: the audience broke into applause at last week’s BUILD conference when some of the new blazing fast data transfer capabilities were demonstrated by Microsoft’s Bryon Surace during a keynote address.

“With Windows Server 8, we can use multiple NICs [network interface controllers] simultaneously to help improve throughput and fault tolerance,” Surace said.

To demonstrate the new speedy data-transfer capabilities, Surace used a server running Hyper-V with two virtual machines, one of which was connected to two disks. One disk was connected using a 1GB Ethernet connection, a setup he described as “very typical, very commonplace in today’s environment.”

The other disk was connected “using multiple high-speed NICs that are leveraging SMB 2.2 multi channel and RDMA [remote direct memory access].” Starting up a SQL load generator and going to a performance monitor, Surace pointed out how the 1GB Ethernet card was transferring data at less than 100MB/sec., which he said was “pretty typical.” The second disk, however, was transferring data at more than 2GB/sec. That’s when the applause broke out.

“Now, previously, these technologies were only available in high-performance computing, but now with Windows Server 8, we're building them for one of the most common roles in Windows, Surace said. He went on to show that the NIC wasn’t saturated, but rather was using only about 15 percent of the available throughput.

“This is a clear indication that we haven't even scratched the surface of what's possible with Windows Server 8,” he said. “And as we move over and take a look at the performance, we're only using about 1 percent of the CPU on the server to be able to push this throughput.”

Surace also demonstrated the simplified storage array management capabilities of Windows Server 8. For this, he used a server connected to 16 SSD hard drives, with no specialized controllers, “just a bunch of disks, or JBOD, directly connected to our server and being managed by Windows.” He noted how the disks were used to create a storage pool for which some space was carved out and represented as a drive on the server. He also showed file shares connected by the “improved SMB 2.2 protocol.”

“So, the key here is you don't need a PhD in storage, Surace said. “You can simply attach just a bunch of disks to Windows and have it all managed and deployed right there.”

The full keynote can be viewed via Microsoft’s Channel 9 video service.

What are the software development ramifications of the new Windows Server 8? Comment here or drop me a line.

Posted by David Ramel on 09/21/2011 at 1:15 PM0 comments

Is Microsoft Really Embracing Big Data?

In the continuing effort to reach détente with the open source community, Microsoft is making inroads in the big data movement.

Last month, it released CTPs of Hadoop connectors for SQL Server and Parallel Data Warehouse "to promote interoperability between Hadoop and SQL Server." That's not so surprising--the Redmond software giant has made similar moves with other open source technologies.

But now there are signs the company may even be opening up to the so-called "NoSQL" data store world!

Microsoft's MSDN Magazine may be a harbringer of this trend. Up until now, there basically have been only two articles in the publication that dealt with NoSQL products. And both of them discussed the MongoDB product. One was actually a three-part series of articles by columnist Ted Neward, at the time an independent consultant. The other article was by developer evangelist Brandon Satrom, actually a Microsoft employee.

But for the November issue, there are two articles slated on the subject: an exploration of document databases by columnist Julie Lerman and an article on embedding the RavenDB data store into an ASP.NET MVC 3 app by Justin Schwartzenberger. And magazine editor Michael Desmond interviews the two in an editor's note titled "NoSQL? No Problem." I can't go into more detail now because the articles haven't been published (I just know about them because I'm technical editor of MSDN Magazine).

But is it just a coincidence that there have basically been only two previous NoSQL-themed articles and the November issue alone will double that? We'll see.

What do you think Microsoft is up to? Comment here or drop me a line.

Posted by David Ramel on 09/15/2011 at 1:15 PM2 comments

Looking at Juneau's Integrated Database Development

One of the nice things about my day job as technical editor at MSDN Magazine is getting early looks at cutting-edge technologies and how-to guidance from some of the top experts in the world.

This month, for example, Jamie Laflen and Barclay Hill explore “The ‘Juneau' Database Project,” which promises that “you can now perform your database development in the same environment as your application development.” That sounds nice. No more jumping around from one tool to another.

I found it particularly intriguing that the new Database Project in the next version of Visual Studio enables offline SQL Server development. The two SQL Server Developer Tools experts explain this “project-based development” provides the following advantages over using a shared live database:

  • Isolation of developer changes
  • Rich T-SQL editing support
  • Verification of source prior to deployment and enforcement of team coding standards through code analysis rules
  • Automated migration-script generation

Furthering the move to more self-contained development is SQL Server Express LocalDB, as introduced in a sidebar. It provides a kind of simplified user instance and lets you develop against SQL Server Express without having to fuss with managing a full-fledged desktop Express instance, cutting way back on setup time. Check out the article for more technical details. Your job as a .NET/SQL Server developer is about to get a lot easier.

What are you looking forward to in Juneau? Comment here or drop me a line.

Posted by David Ramel on 09/07/2011 at 1:15 PM1 comments

New NoSQL Language Unveiled As Debate Rages On

Pretty much every blog, article or discussion you see about the SQL vs. NoSQL debate includes sage advice from a reasonable voice of authority along the lines of something like this:

Whoa! Let's calm down. No need to fight. It's not a which-is-better issue, because each (tool/approach/language/philosophy) has its use. They should be used together as needed to solve different kinds of problems according to their strengths ...

And so on.

So it was interesting to read a comment on a blog post that went against that grain:

I wish it was as simple as SQL & RDBMS is good for this and NoSQL is good for that. For me at least, the waters are much muddier than that.

Tony Bain made that comment on a blog post by Conor O'Mahony titled "The Future of the NoSQL, SQL, and RDBMS Markets." Bain goes on to discuss the issue in detail, with much of the discourse from the perspective of a database developer. It's definitely worth reading by you data devs. It's also noteworthy that the blog posting was prompted by an article in The Register with the subhead "World says 'No' to NoSQL."

Were it that easy. Just a week or so earlier, in fact, there was much buzz generated when Couchbase released a "flagship NoSQL database" and an entirely new NoSQL query language called UnQL.

Does that sound like the desperate last gasp of a major player in a dead movement? Or will we one day look back and recognize it as a major step in an industry transformation?

You tell me. Comment here or drop me a line. I'm just happy that Couchbase provided some pronunciation guidance, a pet peeve of mine. UnQL is pronounced like the word "Uncle."

Posted by David Ramel on 08/22/2011 at 1:15 PM0 comments

How are Database Developers Doing, Salary-Wise?

I noticed in the comprehensive 16th annual IT Salary Survey that database developers lost their No. 1 spot in the category of average base salary by job title, actually falling three rungs down the ladder to No. 4.

Not that $95,212 is that bad. But still, that seemed like kind of a big drop in statistics that don't usually change that much from year to year. In fact, editor Michael Domingo said "Database programmers have been fairly consistent in the rankings, but dropped from the top spot to fourth from a dollar perspective. Still, based on percentages, they managed to go up nearly 7 percent from last year's result." Besides being consistent, database programmers "often rank highest," Domingo said in the more extensive PDF document, downloadable with registration.

So, what does a healthy 7 percent average salary hike combined with the reduced job title salary ranking really mean? It looks like that, while data devs are doing OK, others--especially networking project leads--are just doing a little better.

Indeed, when it comes to "salary by technology expertise," Domingo said, "The biggest gains from a year ago are those with database development skills, earning 6.2 percent higher." In that category, the average salary for those with database development skills was $92,460.

Another survey, conducted by Microsoft Certified Professional Magazine, also had good news for database developers. Domingo edited this one, too (the guy is everywhere). "Network project leads also often do well, but in the scheme of things, it's the DBAs and database developers who came in right above on the salary scale," he said. "DBAs and developers often tell us that they're well compensated and happy with their pay, and this year is no different. It's data, after all, that is at the heart of many businesses and good data people are often plied with incentives to either stay put or lured away to companies who can afford to pay higher salaries."

Whew! I guess that initial ranking drop I mentioned isn't that worrisome after all. Data still rules, and pays the big bucks. Now, for me, it's with relief that I return to wrestling with outer joins and normalization in that "Become a Database Developer in 21 Days" course I paid so much for.

What the heck is a tuple? Clue me in or comment otherwise, or drop me a line.

Posted by David Ramel on 08/04/2011 at 1:15 PM0 comments

When Beta Apps Wreck Your System: A SQL Server 2008 R2 Eval Lesson

OK, I need a little help here. I earlier wrote about a nightmare I endured (along with many others) with the evaluation version of SQL Server 2008 R2.

I was surprised to be ripped by readers. Turns out it was my fault. You're never supposed to install beta apps on a system you might want to use again. That was news to me. One reader wrote:

"By its very nature eval software is not to be installed on any machine you don't care about needing to be rebuilt from the ground up. Hasn't anybody ever read the warnings included with installation of eval software? If you are "experimenting" with new software on a machine that cannot be wiped and rebuilt then the onus is on YOU not Microsoft."

Another concurred:

"When using evaluation software you should always walk in the path that what you are installing it on may not be capable of running afterwards, no matter who wrote the software."

How did I miss this? Where are these "warnings"? Do Microsoft or other major vendors actually say that you should only use this stuff at your own risk because it might trash your computer? I looked around quickly on Microsoft's site but didn't see these warnings. Do they pop up when you install the software or are they in the EULA or somewhere else? I'd test this out by installing something and seeing what warnings I receive, but I'm afraid to now. Maybe I just click too quickly through all the screens during setup and have missed these warnings.

Anyway, reader No. 1 suggested using virtual machines. I've never tried these, frankly, so I'm looking for some advice. He mentioned a free server from Microsoft, what I presume is Virtual Server 2005 R2. Does anybody have any real-world experience with this? I have an underpowered Win 7 laptop so I'm kind of concerned about any additional load it will put on the system. And there must be myriad other details that real users can relate that aren't found in the documentation.

Also, are there any other free alternative virtual servers that anyone has hands-on experience with that might be useful for testing software?

Another reader mentioned he uses partitions for testing this stuff. But I've had bad experiences with partitioning disks before, too (hmm, maybe it's just me). What about you? Any suggestions or experiences to pass along with partitioning, or partitioning vs. virtualization?

So basically I'm looking to share with everyone any tips, warnings or ideas about virtualization or partitioning--or alternative methods to test software--that you'd care to provide. Please comment here or drop me a line.

Posted by David Ramel on 07/21/2011 at 1:15 PM2 comments

And the "SQL Server 'Denali' Must/Must Not Support XP" Debate Goes On

A couple of interesting announcement were made since I wrote about how some developers were clamoring for Windows XP support in the next version of SQL Server, code-name Denali.

First, in a Monday keynote address at Microsoft's Worldwide Partner Conference (WPC), the company announced that XP's "end of life" would occur in 1,000 days, on April 8, 2014.

Second, on the same day, at the same event, Microsoft announced the availability of the Community Technology Preview 3 of Denali. It's getting closer and closer to final release.

The XP/Denali debate continued on Microsoft's site after my blog was published, with readers chiming in on the issue even though the post announcing that XP wouldn't be supported was nearly a month old. "I'm going to disagree with the crowd, I think support for XP should be put in place," commented one reader last Friday.

The lively exchange among readers continued in the comments on my blog post, with a mix of opinions. "Obviously seems wrong to support something that's now obsolete," wrote one reader. "Time to cut the cord," wrote another. "Definitely Windows XP has to be supported," wrote yet another.

So it's still a hot-button issue, even though, with the Denali CTP3, the point seems moot.

Me? I've come down firmly right in the middle of the fence. I still have an XP machine, and it works fine with several modern apps. And a couple years ago, I was still advocating XP as the best OS in a debate with three other journalists on another IT publication's Web site.

But I also have a Win 7 machine, and I love some of its more advanced features. And with the economy imploding, even cash-rich Microsoft has to pick its support spots these days.

As I write this, though, I notice my XP desktop lies dormant at my feet, while for quite some time I've had its monitor plugged into my Win 7 laptop for dual-display.

I guess I've fallen off the fence.

What do you think? Comment here or drop me a line.

Posted by David Ramel on 07/14/2011 at 1:15 PM2 comments

SQL Server Devs Clamor for XP Support in Denali

When I first glanced at the proposed list of OSes to be supported in the next version of SQL Server, code-name Denali, I actually thought: "Windows XP isn't supported? That's odd. There are a lot of XP machines still out there."

My immediate second thought was: "No, that's cool. It's getting too long in the tooth. Time to move on." But it appears a lot of SQL Server developers agreed with thought No. 1. Yes, the nearly 10-year-old OS still has its proponents in the dev field (it's hard to believe XP was actually released to manufacturers before we all knew about Osama bin Laden).

Case in point was this reader's response to the blog announcing Microsoft's supported OSes and upgrade plans:

"Sadly, that Windows XP is not supported. I know many developers use SQL Server Express + SSMS on their Windows XP corporate workstations. And they do not plan to move to Windows 7 soon. I do understand, that life is going on, but still ... I wish it would support XP."

There were many more posts like that one, leading to a good deal of give-and-take among the readers on both sides of the issue. Two readers reported companies they worked at (or recently worked at) still had more than 10,000 XP machines!

Comments like those made me gravitate back to my thought No. 1. After all, Wikipedia says, Microsoft continued to sell XP through certain channels up until the beginning of 2010. And the Denali CTP was released later that year. Isn't it a bit premature to abandon the vast XP user base in introducing an important new SQL Server release when XP hasn't even been officially expired for much more than a year and half? Granted, I don't know when Denali will be officially released, but a lot of people think it might be this year.

But other readers make good points, too. Like this:

Good list and I support it. No reason to go backwards anymore. Those companies that still run XP on every desktop and mandate it, or have SQL2K, aren't going to run to Denali. If they think they need it, they'll make exceptions for the people that need it.

Any IT professional that wants to work on Denali, but has XP at work. Either invest in a machine that you can run it on at home or learn to set up a VM, but there is no reason for MS to invest time or testing efforts into supporting XP at this point.

Those kinds of comments made me reconsider thought No. 2.

Ah, I'm just too darned wishy-washy. Decide for me. Which should it be? Comment here or drop me a line.

Posted by David Ramel on 07/07/2011 at 1:15 PM10 comments

NoSQL Ascension Highlights Developer Survey

I found it interesting that Evans Data chose to lead with the growth of NoSQL in the enterprise when it began hawking its latest North American Development Survey today.

Not programming languages used, mobile development or even the cloud. But rather, the ascension of NoSQL. What does this prove? It's the data, stupid.

The survey reported that 56 percent of respondents were using some flavor of NoSQL and 63 percent planned on doing so in the next two years. The reason, Evans Data, said, was scale. Massive amounts of data become awkward to handle in traditional relational database schemas. And these huge depositories, spawned on explosively growing Web sites such as Google and Facebook, are becoming more commonplace in the enterprise.

"The advent of Big Data is driving adoption of NoSQL, and this is especially true in the corporate enterprise," the company said in a news release.  "While it may have got its start on the Web with innovations like Big Table and MapReduce, it's the enterprise that can most benefit from NoSQL and developers realize this across all geographical regions."

In fact, Evans Data said enterprise adoption dwarfed that of the "general developer population," where only 43 percent of respondents expected to use NoSQL.

Microsoft has to be paying attention to this. They may have been late to the Web, mobile, etc., but the enterprise has always been their stronghold, in SQL Server and many other technologies. If they weren't worried before, they have to be now.

For an interesting, alternative take on the reasons for the growth of the NoSQL movement, read this blog by database expert Andrew J. Brust on the Redmond Developer News site.

Then chime in with your own thoughts about this upsurge in popularity. Comment here or send me an e-mail.

Posted by David Ramel on 06/30/2011 at 1:15 PM0 comments

PowerShell vs. SQL Server Management Studio

When I (along with many other people) had a lot of trouble trying to install SQL Server Management Studio in an attempt to switch from the SQL Server 2008 R2 evaluation to the free Express version, I became quite frustrated and began looking at free alternatives to SSMS, including PowerShell.

When I wrote about this, one reader replied that my post was a total disappointment because PowerShell, not having a graphical user interface (GUI), was not a suitable candidate to replace SSMS. I found this comment puzzling, as I included a screenshot of the PowerShell Integrated Scripting Environment (ISE), which looks pretty darned GUIish to me.

TechNet seems to agree with me, as it says, "In Windows PowerShell ISE, you can run commands and write, test, and debug scripts in a single Windows-based graphic user interface [emphasis mine] with multiline editing, tab completion, syntax coloring, selective execution, context-sensitive help, and support for right-to-left languages."

But hey, I'll give the reader the benefit of the doubt. Maybe "graphic user interface" is different from "graphical user interface" and PowerShell doesn't qualify as an official GUI because you often have to enter scripting commands, or something.

Anyway, I pointed the reader to PowerGUI, which I hope to explore further.

In that same post, I commented that SSMS has some things that PowerShell doesn't, such as an object explorer. PowerShell expert Chad Miller commented (on another site hosting my blog) that PowerShell is quite extensible and allows you to build your own object explorer and directed me to the SQL ISE, part of the SQL Server PowerShell Extensions CodePlex project (SQLPSX).

So I checked it out and learned that "SQLPSX consists of 13 modules with 163 advanced functions, 2 cmdlets and 7 scripts for working with ADO.NET, SMO, Agent, RMO, SSIS, SQL script files, PBM, Oracle and MySQL and using Powershell ISE as a SQL and Oracle query tool. In addition, optional backend databases and SQL Server Reporting Services 2008 reports are provided with SQLServer and PBM modules."

Impressive, but I wondered about the DIY object explorer. I downloaded and installed all the requisite files and modules and an "Add-ons" item was added to the top menu. Clicking on that brings up a "SQLIse" menu item with a dozen submenus, one of which is "Object Browser." That indeed does bring up something similar to the SSMS object browser, as a new window, as shown in Fig. 1, exploring the Northwind database:

[Click on image for larger view.]
Figure 1. Exploring the Northwind database with the SQLIse object explorer.

It doesn't have the exact same capabilities as its SSMS counterpart (such as right-click functionality to run queries, and so on), but it certainly lets you explore the database tables.

Being a PowerShell noob, I wanted to explore more database-related functionality. I asked PowerShell MVP Doug Finke what he thought about the usefulness of PowerShell for database developers. "PowerShell is useful for devs in many ways," he replied. As a simple example, he pointed to the Invoke-SqlCommand, from Lee Holmes of the PowerShell team, and author of Windows PowerShell Cookbook.

Finke provided the following command example:

Invoke-SqlCommand -Sql "Select * from pubs" | Export-Csv  -NoTypeInformation c:\pubs.csv; 
Invoke-Item c:\pubs.csv

"This extracts the data, puts it in a comma-separated-format file and then uses Invoke-Item to launch Excel on that file," Finke said. I tried his example, and sure enough, the result is shown in Fig 2.

[Click on image for larger view.]
Figure 2. Using PowerShell to access the Pubs database and export its contents into a .csv file.

Finke continued: "[Here] is a post I did doing more tricks with Excel and pivot tables. While the data in the post comes from a csv, it could come from SQL Server or any other data source. This is a key benefit to the object pipeline."

Finke also listed more benefits to database developers offered by PowerShell:

  1. Testing Web services using PowerShell's New-WebServiceProxy cmdlet.
  2. Microsoft Nuget has a PowerShell console that resides inside Visual Studio 2010 and makes using it more productive.
  3. A developer can load and test .NET DLLs at the command line or in scripts.
  4. PowerShell can be used to automate common, everyday developer tasks including source control builds.

I was curious about item No. 3 in that list, so I gave it a try. Sure enough, using the .NET Math DLL is as simple as calling it in brackets and then using :: to use one of its static methods, in this case the square root function. I assigned the value produced by the function to $v and called for the square root of 49, like this:

PS  C:\Users\Ramel\Desktop> $v = [MATH]::Sqrt(49)

Then, to see the value returned, you can just enter the variable at the prompt: $t.

That produces the result: 7

You can also make and access your own DLLs. For example, in Visual Studio, I created a Class Library project, connected to the Pubs database and built a Pubs DLL, which I accessed with this command:

PS  C:\Users\Ramel\Desktop> [System.Reflection.Assembly]::LoadFile("C:\pathtodll\Pubs.dll") 

I then created a new object -- a Pubs DataContext -- and assigned to a variable called $ctx. Just by typing in the variable and hitting enter, you could see the structure of the object:

authors                 : {White, Green, Carson, O'Leary...}
titles                 : {BU1032, BU1111, BU2075, BU7832...}

Once you see the structure, you can call up all author records, for example, like this:

PS C:\Users\Ramel\Desktop> $ctx.authors
au_id        : 172-32-1176
au_lname     : White
au_fname     : Johnson
phone        : 408 496-7223
address      : 10932 Bigge Rd.
city         : Menlo Park
state        : CA
zip          : 94025
contract     : True
titleauthors : {172-32-1176}

You can then run SQL queries against the DataContext in a number of different ways, including the following, which finds authors who live in Utah:

PS C:\Users\Ramel\Desktop> $ctx.authors | where-object  {$_.state -eq "UT" }
au_id        : 899-46-2035
au_lname     : Ringer
au_fname     : Anne
phone        : 801 826-0752
address      : 67 Seventh Av.
city         : Salt Lake City
state        : UT
zip          : 84152
contract     : True
titleauthors : {899-46-2035, 899-46-2035}

So even though I've just scratched the surface of what you can do in PowerShell, I can see that while it doesn't duplicate the complete functionality of SSMS, it can duplicate a lot of it. And the extensibility, .NET compatibility and many other features make it a worthwhile consideration.

How do you use PowerShell in your database development? Comment below or e-mail [email protected].

Posted by David Ramel on 06/24/2011 at 3:58 PM1 comments