www.fgks.org   »   [go: up one dir, main page]

How to [Not] Annoy Our Editors
09 April 08 11:52 PM

I recently posted with some tips for writing a solid article proposal.  However, if you've gotten your proposal accepted, how do you then do your part to ensure a smooth experience as an author and avoid the oh-so-painful experience of having your manuscript sent back to you for revisions?

Today one of our senior editors, Nancy Michell, posted on the MSDN Magazine blog an article entitled "An editor's top six pet peeves".  This should help to give you some tips and tricks for a friction-free journey through our editorial process.

Check it out...

Postedby hdierking | 1 Comments    
Filed under:
Article Submissions in May
03 April 08 04:03 PM

In my previous post, I mentioned that I was booking content farther out at the moment because I was going to be out of the office in May.  I wanted to follow up to also say that during this time, nobody will be reviewing article submissions.  Therefore, for submissions made in May, please don't expect a response until early June.

"How could I do such a thing to you?" you might ask.  Well, I have one really good reason.  I'll be out on paternity leave actually getting to know this one a bit better.

DSC02307 

I mean seriously, how could I possibly say no to her???

BTW, if any of you are attending TechEd, please either come to my talk (it's a lunch session - don't know the day yet) or stop by the MSDN Magazine booth and say hello!

Postedby hdierking | 1 Comments    
Filed under:
Reviewing Article Submissions
03 April 08 03:56 PM

Have you ever submitted an article to MSDN Magazine via mmsubmit@microsoft.com and then wondered what actually happens between sending in the submission and getting the response.  Well, in that I'm the primary individual who reviews your submissions, allow me to provide a little bit of insight - both into how I approach reviewing submissions and how often I review them.

First let's start with my reviewing schedule as that's pretty straightforward.  I have 2 hours blocked out on my calendar for reviewing submissions every Tuesday and Friday.  I sort the submissions by date received and review them from oldest to newest.  Sometimes I have a submission that requires additional research or another set of eyes looking at it.  In those cases, I will typically skip that submission and schedule additional focused time on it (this means that if it's been a couple weeks since you've heard back from me, it's a potentially good thing).  Because I time-box my reviewing time, the speed with which I will process a specific submission (e.g. - yours) depends on how many submissions are in the queue ahead of yours and whether your submission requires additional research on my part.  If you're curious as to how many submissions I have in the queue at a given moment, I have have 18 active submissions right now, and this is pretty typical.

So now you hopefully have an idea of when I process submissions - so now let's examine how I evaluate submissions.  I have 5 primary criteria that I use:

Compelling - This is where I do a Gladwell snap-judgement.  If I want to know more from reading your submission, I proceed.

Technically Deep/Relevant - For MSDN Magazine, technical depth is (I think) pretty well understood at this point.  If you were curious, though, we lean more towards depth vs. breadth.  This has something to do with history (we have a long one) and the expectations that we have established with our readers.  More importantly, though, shallow content falls much lower on the uniqueness scale (I'll talk about that more in a second) and as such doesn't have as much longitudinal value.  Therefore, I very rarely will accept an article that is "intro" or "overview" focused.  The one exception is for a "first look" kind of technology (for example, Ted Neward's piece on F#).

So - we look for deep content.  But not just any deep content.  It must be relevant to the type of development work our readers are doing.  So how do you evaluate whether your submission is relevant?  Well, generally, if it deals with a problem that you and your colleagues have run into several times, and there's a lot of conversation about it in forums and blogs, it's probably relevant.  Also, for some additional insight, here are the top 4 most requested topics per our latest reader survey.

  • Software Design
  • Web services development
  • Database development
  • Web client development

Now, in addition to relevance, sometimes I'll plan an article that just strikes me as cool.  Therefore, if you have this kind of article idea, please send it in - I love those kind of submissions.  Just know that if it's outside the bounds of relevancy to the general readership, you're more subject to the arbitrary nature of whatever interests me a given time <g>.

Uniqueness - One of the first things that I will do after deciding that I like a topic is to search the web to see what else has been published on that topic.  If I can find several articles that deal with the same topic, at the same level, I will generally write you back asking for clarification on how your submission is different than others.  If your article doesn't have any unique insights to offer compared to those other articles, blog posts, etc..., I will reject the submission.  The reason is simply that we strive for "evergreen" content.  We want to ensure that our articles function equally well as reference material down the road as they do in keeping you current.

Actionable - While I understand that different topics lend themselves better to this criteria than others, I think that there is a strong correlation between being able to accomplish something after having read an article and being compelled to read the article.  As such, I look for this characteristic - whether it's in the form of a scenario, sample code analysis, etc... - I look to see whether there is some kind of actionable/prescriptive quality to the article.

Editorial Calendar "Fit" - This one is a tough one for me and is just a reality of having a fixed number of pages that we can put into a magazine issue.  Keep in mind that if you've made it to this stage in my evaluation decision tree, I like your submission.  When you submit an article, you are more specifically submitting an idea for a feature article (as opposed to a column).  Feature articles are generally 5000-6000 words long and we run 5 features per issue.  As such, when I look at your submission, I have to see how it fits into my editorial calendar - and there are a ton of variables to consider here.  For example, I consider things like diversity of content, avoiding duplication with other features or columns, how well the article maps to issue theme, and how far out I'm already planned.  At the moment, I'm already planned out into October (something that I'm really uncomfortable doing, but have done because I'll be out for the month of May - more on that in a minute), so if you send me a submission that I really like, the reality may be that I ask you to hang onto it and resubmit in a couple of months.  At any rate, if I reject your submission at this stage, know that it is still a really difficult thing for me to do.

So this post turned out to be much bigger than I had expected, but I find myself answering these same questions over and over, so I wanted to make sure that I covered them here in one place - think of it as a mental "extract method" refactoring.  At any rate, I hope that it has been helpful for you in understanding a bit more about how things work at MSDN Magazine (and in my head).  I look forward to reading more really great article submissions from you!

Postedby hdierking | 3 Comments    
Filed under:
Creepy, Creepy...(Shiver)
01 April 08 09:20 PM

This really weirded me out - I kept moving my mouse around the screen so that she wouldn't look at me...

http://cubo.cc/

Postedby hdierking | 4 Comments    
Filed under:
SQL Server 2008 - All For You Sweepstakes
31 March 08 12:14 PM

So I'm not generally one for random promotions - just like I'm that guy who will predictably break the chain in an email forward.  However, I do want to let you know about the SQL Server 2008 "All For You" Sweepstakes for a couple reasons.

The other reason I mention it is because to enter, you simply need to do something that you are probably already doing - download the latest SQL Server 2008 bits.  You'll need to be signed in with a Windows Live account so that the system can know who you are and register you in the sweepstakes - but in my opinion, that's a small price to pay for the chance at winning a 52" HDTV!

Go here to enter the contest.

Postedby hdierking | 0 Comments    
Filed under:
Building NHibernate 1.2.1GA on .NET 3.5
20 March 08 02:49 PM

I recently reached a point where for reasons that I'm sure you can all relate to, I decided to clean my laptop and rebuild.  I therefore did a clean install of Vista with SP1.  As a quick aside, SP1 does actually seem to improve performance - particularly when starting up or closing down.  Anyway, after I was back up and going again, I setup NAnt and then downloaded the NHibernate 1.2.1 GA source.  However, I ran into 2 major problems building, so I thought I would share those, along with how to work around them.

Both problems can be corrected by modifying the markup in the build-common/common.xml file.

The first problem had to do with the fact that the build was expecting the clover library.  The solution was simply to add a condition to the property set declaration.  I'm not going to spend any more time on this one, because the problem/solution is documented here.

The second problem is that there is no target in the build file for .NET 3.5.  On most machines, this isn't a big deal because you've probably upgraded framework versions incrementally, and the build file can target 2.0 with no problem.  Because I have a fresh OS/Framework install, I got an error saying that .NET 3.5 is not supported for my build of NHibernate.  This can be worked around by adding a target declaring a configuration for .NET 3.5, like so:

<target name="set-net-3.5-framework-configuration">
    <property name="nant.settings.currentframework" value="net-2.0" />
    <property name="current.build.defines" value="${build.defines}NET,NET_2_0" />
    <!-- not using SDK_v2_0 because ndoc throws an exception -->
    <property name="link.sdkdoc.version" value="SDK_v1_1" />
    <property name="merge.targetplatform" value="v2.0" />
</target>

When you get into the config file, you'll see that all I did was create a target with 3.5 declared as a part of the target name, and then coped the body from the 2.0 target inside of my 3.5 target.  Initially, I had actually configured the properties to make them specific to .NET 3.5.  Unfortunately, I later discovered when I tried to use the compiled assemblies that many of the source files have preprocessing directives that are specific to the defines declared in the build properties.  For example, the ISet<T> source code is wrapped with the following directive.

#if NET_2_0

Anways, after making these 2 changes, I was able to build with no problem, and NHibernate continued to work as advertised.

New Addition to My Toolbox
08 March 08 07:46 PM

When it comes to creating CDs and DVDs, I pretty much have a singular need - burning ISO images of software.  Therefore, I always find myself pretty annoyed with the "everything and the kitchen sink" tools like Nero and Roxio and I've been quite content over the past year using an internal command line tool.  Unfortunately, over the last month, I've been encountering all sorts of problems with this tool and as I'm about to pave my workstation for Vista with SP1, I needed to find a good (free) DVD burning tool - and stumbled across this little gem.  Bottom line from my experience thus far - it's free, it's simple, and it works as advertised.

imgburn

Postedby hdierking | 5 Comments    
Filed under: ,
Last Old Blog Code Update
06 March 08 11:12 PM

Ok - after posting this update, I'll consider myself caught up with regard to picking up the pieces of my old blog.  This is the updated code sample for creating custom mapping types in NHibernate.  The updated sample provides a loose example of implementing the type object pattern - a pattern where one object instance serves as the type for a set of other object instances.  Here, for the sake of simplicity and expediency, I have designed the types such that the type object is also the value container - hopefully when you look at the code, you can see it's a pretty simple process to go a step farther and implement the full pattern.

Anyway, similar to my last post, I've updated the code to use the latest version of NHibernate, and I've added in some LINQ goodness.  And of course, all demoware disclaimers apply.

Old TDD Demo Blog - Digest and Code
01 March 08 11:24 PM

Several of you have emailed me over the past several months asking if I had a copy of the blog text and/or code that I had mentioned in a much earlier blog entry.  As it turns out, a good friend of mine found some old archived versions of the site on an Internet cache and set them over to me.  Therefore, I have taken the web pages and compiled them into an XPS document so that you can see the thought progression that went along with building a small application, TDD style. 

Additionally, I've updated the code samples a bit.  Specifically, I've upgraded the version of NHibernate to 1.2.1.GA - and as such, dropped the use of Ayende's NHibernate Generics library.  Also, as I was going through my NHibernate mappings, I realized that I had been pretty lazy with regard to semantic accuracy for collection types - I had pretty much completely used <bag> mappings instead <set> mappings for unordered collections so that I could use IList<T>.  Therefore, I cleaned that up a bit.  Other than that, the only other thing that I did was update some of the looping and conditional code to use LINQ.

Finally, let me emphatically throw out the "Demoware Disclaimer" - The point of the blog and the code samples was to illustrate the thought process and corresponding code behind using TDD to design a domain model.  As a result, everything else in the code is the simplest thing that could be implemented to support the overall goal - and nothing more.

The Visual Studio Gallery
28 February 08 05:23 PM

Once upon a time (ok, fine - 2 weeks ago), I was doing some Ruby development in Notepad and just had a craving for more.  Don't get me wrong - I love the raw performance of Notepad, but between Visual Studio (with R#) and Eclipse, I just had a need for something more aesthetically pleasing.  One thing that I've always loved about the Eclipse side of the universe is that if I'm ever in need of a new plug in, I can simply go to the Plugin Central portal and browse through hundreds of different plugins, from language tools to modeling tools.  As I was hoping, I came across a fantastic plugin for Ruby development.

If you hadn't noticed yet, we have now launched a similar one-stop-shop for Visual Studio add-ins - the Visual Studio Gallery.

image1

One of the things that I found particularly interesting about the Visual Studio Gallery is in how you can source Visual Studio add-ins from a variety of different sources, from CodePlex to the new MSDN Code Gallery portal (if you just want to surface the code and not binaries), to your own hosting provider.  The particular combination of this with something like CodePlex strikes me as particularly cool.

Database Development - What is it to you?
05 February 08 10:21 AM

As I mentioned in a recent editor's note, one topic that you said you would like to see more of is database development.  While this request was not entirely unexpected, it's not all that clearly defined in my mind either.  I think that the reason has more to do with the length of time that I've been at Microsoft than it does how clear the topic is defined.  To elaborate, internally we tend to look at database development as more the function of somebody in the "IT Professional" classification.  Practically (and historically), that means that articles fitting into this genre are better suited for TechNet Magazine than they are for MSDN Magazine.  We currently run the "Data Points" column which focuses on data access - but from our recent reader survey results, it seems like that's not covering all of what's needed.

That said, I understand that the reality is that you as developers wear many hats - and designing and implementing databases is one of them.

So, the bottom line is that I could use your help in scoping this a little better.  What specific kinds of topics related to database development are you looking for in MSDN Magazine?

Postedby hdierking | 3 Comments    
Filed under:
You Always Hope...
24 January 08 07:32 PM

That your kids will find what you do for a living somewhat interesting.  As you can see, I don't think I'm going to be that lucky...

DSC02260

Postedby hdierking | 3 Comments    
Filed under:
New Years Resolution - Not Quite World Peace, But...
08 January 08 05:46 PM

So it's a new year, and while I'm not really in the habit of making resolutions, there is one thing that I would really like to accomplish this year...

I've spent the majority of my career as a developer building and sharpening my skills in OOD, design patterns, DDD, TDD, and a whole host of other acronyms containing the letter "D".  Then came along services and with it an acronym that every vendor seems to use and no vendor seems to understand: SOA.  As SOA grew in popularity, so did the rise of more and more middleware services.  Some notable examples for me as of recent have been WF and WCF.

The deeper I get into working with these new technologies, the more my concern is growing that SOA at some level seems predicated on designs that I consider OO anti-patterns.  More specifically, SOA seems to favor an anemic domain model (a data model, really) which is consumed by services and orchestrated by workflows to a rich domain model, where both the data and behavior of the problem domain are expressed using the same semantics and syntax.  Fundamentally, it feels to me at this point that SOA requires the problem domain to be factored horizontally by functional layer rather than vertically by logical domain abstraction.

So my resolution: to develop a solid understanding about the practical ramifications of SOA (and associated technologies) on object-orientation.

Have any of you run up against this yet?  I ask the question somewhat rhetorically as I'm seeing it start to pop up on several listgroups that I'm a part of.  What kinds of conclusions have you reached at this point?

Postedby hdierking | 1 Comments    
Filed under:
IIS 7.0 and the ASP.NET Integrated Pipeline
27 December 07 09:45 AM

One of the coolest things about working at MSDN Magazine is the exposure I get to all the different technologies coming down the pipe from all over the company.  One of these that recently grabbed my attention was the set of enhancements that the IIS team has made in IIS 7.0 surrounding the "Integrated Pipeline".  If any of you have ever written an ISAPI filter in C (shudder), you will be particularly interested in this technology as it allows you to write the equivalent functionality by using ASP.NET HTTP modules!!

In the January issue of MSDN Magazine, Mike Volodarsky describes the pipeline in great detail and walks you through a sample where he adds ASP.NET functionality such as forms authentication and output caching to an existing PHP application - all without touching the existing application code!

Additionally, Mike has posted a follow-up on his blog - check it out!

Postedby hdierking | 2 Comments    
When Poor Quality Control is Just Plain Funny...
25 December 07 10:24 AM

Anyone that I went to high school with will find extra humor in this.  This moment of Christmas humor is brought to you by Pottery Barn.

DSC02049

Postedby hdierking | 3 Comments    
Filed under:
More Posts Next page »
Page view tracker