{"id":39,"date":"2005-10-26T00:00:00","date_gmt":"2006-04-28T00:00:00","guid":{"rendered":"https:\/\/test.simple-talk.com\/uncategorized\/database-geek-of-the-week-damian-mehers\/"},"modified":"2016-07-28T10:39:53","modified_gmt":"2016-07-28T10:39:53","slug":"database-geek-of-the-week-damian-mehers","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/opinion\/geek-of-the-week\/database-geek-of-the-week-damian-mehers\/","title":{"rendered":"Database Geek of the Week &#8211; Damian Mehers"},"content":{"rendered":"<p><b> <\/b><\/p>\n<p><b>An interview with Damian Mehers<\/b><\/p>\n<p><b><\/b><i> <\/i><\/p>\n<p>by Douglas Reilly<\/p>\n<p>I have never met Damian Mehers, but I know him by way of a tool he created, called <a href=\"http:\/\/www.promptsql.com\/\"><u>PromptSQL<\/u><\/a>. I have, over the years, used a number of tools that promised to bring Intellisense into the SQL Server world, but the way PromptSQL works is unique. <\/p>\n<p>Once installed and loaded, PromptSQL works inside the editing environments you already use, such as Query Analyzer and Visual Studio (2003 and 2005). There is a Channel 9 post that points to a video on PromptSQL, which was voted third out of 25 in the <a href=\"http:\/\/channel9.msdn.com\/Showpost.aspx?postid=121794\"><u>PDC Show Off event<\/u><\/a>. I have the product on a one-month trial, and expect it will be worth purchasing after using it for that period. <\/p>\n<p>Damian answered the following questions via email.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: How did you get involved in database-related work? Was it a natural fit or an accident of convenience?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: It was more an accident of convenience. I do a lot of consulting with customers building ASP.NET and Windows applications, and more often than not there is a SQL Server database involved. My background is more general software developer than database specialist.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: Do you use any databases other than SQL Server?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: It&#8217;s all SQL Server. The last time I used a different database for an extended period was when I worked for DEC, where I did a lot of work with its RDB database. That was before DEC became Compaq, and Compaq became HP. It&#8217;s ironic, given that HP was once number three behind DEC, with IBM on top. Incidentally, DEC&#8217;s RDB was sold to Oracle.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: How did you decide to create a tool to add Intellisense for SQL statements? I presume you are more comfortable typing in SQL code than using the visual designers?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: I am more at home with the command line than the visual design tools. I have more control. Even so, when first using an unfamiliar database, it can be tricky to navigate through it, remembering all the tables, columns and relationships between tables. I&#8217;m a believer in the old adage that necessity is the mother of invention. I needed SQL Intellisense in Query Analyzer.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: A bit of genius in PromptSQL is that a tooltip with the complete layout of a table appears when that table is highlighted in the Intellisense window. How did that feature evolve?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: Through the early betas of PromptSQL, there was a natural tension between my desire to release the product and the need to add one more cool feature. This was a feature I knew people would like, and once I started working on it, it wasn&#8217;t too difficult to implement.<\/p>\n<p>Once I&#8217;d implemented it, however, I needed to add one more feature-to delay the showing of the tooltip for a moment so that if you are speeding down the popup, the changing tooltip isn&#8217;t constantly shown.<\/p>\n<p>When I had done that, there was one more cool thing to add&#8230; and so it went!<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: Are there plans underway for v.next of PromptSQL? <\/p>\n<p><b> <\/b><\/p>\n<p>Damian: Right now I&#8217;m rounding out the basic product. The first version was released about a month ago, and there is a long list of things that have been suggested as enhancements. <\/p>\n<p>There are several disadvantages to being a one-person company, but the big advantage is flexibility-being able to implement a suggested feature and have it in the product, online and ready to download within a couple of days.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: You used C# to create PromptSQL. What is your programming language background? Do you have Java experience? If so, how did you find the transition from Java to .NET and C#?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: I started off in C, ADA and C++, but made the move to Java in the mid-1990s. Although I was focused on Java, I kept my hand in the Microsoft world with a fairly successful product I created called J-Integra. It bridged Java and COM with a Java implementation of the DCOM protocol; it&#8217;s the only one I know of.<\/p>\n<p>The transition to C# was pretty painless. In the early days I remember typing Java code and it working as C#. After writing software for 25 years, when you know that something must be possible, it is just a question of wading through the documentation to find out how to do it. And if you can&#8217;t find it, then maybe there is a product opportunity :-).<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: Does PromptSQL keep you busy full time?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: By day I work as an independent consultant at a large multinational company in Lausanne, Switzerland, where I develop ASP.NET applications with SQL Server as the back end. I&#8217;m just a PromptSQL user there. The hour-long train journey to their offices and back is where I do PromptSQL, plus the occasional evening and weekend.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: What do you think about using VB.NET or C# for stored procedures, functions and triggers? How do you think CLR stored procedures will fit in?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: I&#8217;m with those who say there is a lot of room to use C# for the things SQL is not good at; string manipulation is a primary example. I don&#8217;t think we should look to replace SQL stored procedures wholesale with C#.<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: Have you read any good database-related or general programming books lately? <\/p>\n<p><b> <\/b><\/p>\n<p>Damian: I do most of my reading online, with blogs as my main source. The last programming book I read was the new edition of Code Complete. If only I could live up to it!<\/p>\n<p><b> <\/b><\/p>\n<p>Doug: What music do you listen to these days?<\/p>\n<p><b> <\/b><\/p>\n<p>Damian: With a two-year-old and a four-year-old, &#8220;Twinkle, Twinkle Little Star&#8221; and &#8220;Rock-a-Bye Baby&#8221; are firm favorites at the moment.<\/p>\n<p><em>Do you know someone who deserves to be a Database Geek of the Week? Or perhaps that someone is you? Send me an email at <\/em><a href=\"mailto:editor@simple-talk.com\">editor@simple-talk.com<\/a><em> and include &#8220;Database Geek of the Week suggestion&#8221; in the subject line.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Damian Mehers created a tool called PromptSQL which brings Intellisense into the SQL Server world. &hellip;<\/p>\n","protected":false},"author":221790,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[31],"tags":[4191,4168,4142,4144,4150,4151,4190],"coauthors":[],"class_list":["post-39","post","type-post","status-publish","format-standard","hentry","category-geek-of-the-week","tag-damian-mehers","tag-database","tag-geek-of-the-week","tag-opinion","tag-sql","tag-sql-server","tag-tsql"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/221790"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":2,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":39664,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/39\/revisions\/39664"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=39"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}