| Comments

i've updated flickr4writer with some changes in functionality and some suggestions from users.


you can get the updated build and release notes on the flickr4writer codeplex site.

| Comments

there's been a lot of coverage lately about open source and microsoft projects, namely sparked by the 'death of ndoc' postings all over the internet.  this has caused me some pause to reflect on why...and i'm not sure i have the answer, but it is just interesting to see the surroundings discussions on this.

here's one comment i found interesting (speaking on ndoc, etc. -- tools ported from java tools)...

The big difference is that the ports are usually maintained by a single person or a very small team whereas the Java tools have a thriving community supporting them and are constantly being improved. Java has a community that Microsoft has never been able to replicate for .NET. [via fiat]

i couldn't help agree with this initial thought of single person/small team.  however, i think that is due mainly to the immature nature of microsoft developers embracing open source development.  historically we've never thought of writing code that way...we've always just left code like that to live (and die) in articles, snippets, samples, but never really built a community around it.  sourceforge was never friendly to microsoft developers really.  it is only until recently (past couple of years), i would argue, where pockets of open source projects have been providing useful value and perking interest around the .net community, NDoc being one of them (NUnit, log4net, blog engines, etc.).

so why did ndoc 'die'?  you can't help but point to the reason pointed out above -- a single person.  where was the community?


there were a lot of developers who loved/used ndoc over time -- and presumably if you were using ndoc, you were writing code seriously (it would be hard to argue retail consumers not contributing to open source projects).  so (myself included), where were you?  why did the author of ndoc have to declare it dead?  where was the core team to pick up the slack?  it should cause you to think.  open source shouldn't mean "just give me the free stuff and the code will ya" but rather some level of contribution -- *something* to keep the momentum alive. 

talks about some of these challenges in his recent podcast on open source and his thoughts on the reasons why he thinks they exist.

microsoft has begun to attempt to build a more microsoft-friendly environment for fostering these kind of outlets in codeplex.  it is available.  i was waiting for it for a long time.  in my feedreader project i had been receiving countless emails about wanting the source code to modify it and fix the two glaring issues with it in certain environments.  i honestly received over 50 unique inquiries to *modify* the source, not just wanting the source.  so alas, finally i put it out there in an environment i felt friendly to microsoft developers.  the source has been downloaded over 4700 times.  contributions: 0.  inquiries to join the project: 0.  now maybe codeplex isn't the best place and people don't understand how to do things...but i doubt it is that challenging to figure it out or ask.

even more recently i put out a few plugins for windows live writer and put the source code out there.  heck, i know there are awesome developers out there that are far superior in their ideas of implementation than me, and i'd love to see some contributions.  i had an interesting exchange with another employee today about a topic around one of the plugins.  his comments were along the lines of not believing that open source projects could create highly usable products by non-developers (which was an applicable comment given we were discussing a plugin that ideally is consumed by non-developers).  is that a true statement?

so, my plea is no different than those that have come before me on the same blog topic...can you take a few minutes and reward the developer community with your talents...especially if you consume source that provides value to you? 

open source shouldn't mean single-developer-source.  it should be a community of ideas.  an ideology that collective gray matter can produce perhaps a better product, whether it is a UI, faster code, more secure code, or simple bug fixes on spelling changes.  look at codeplex, find an interest, contribute.  and if you can't and there are barriers, tell me what they are so i can understand.

| Comments

okay, codeplex projects approved!  i've just uploaded the plugins (binary setups and source) for the two plugins i wrote for .

here's a brief description of them.

A *very simple* content source plugin for enabling quick insert of formatted tags using a URL template.  This one is simple and could be converted to a smart content source for better usability.
Codeplex Project:

A simple content source for browsing/inserting images from Flickr services.  Enter a user name, click search and view pictures.  Currently does not support uploading (hoping that another extensible model from Writer will enable that, but could also be done here).
Codeplex Project:

these are both using the MS-PL license model (review the license tabs on the project).  please contribute, please make them better.  read the home page to join the project.

| Comments

i've gotten a few comments privately about some questions and thought i'd offer some opinions here.

first, regarding my flickr/tagging plugins.  again, i've chosen codeplex to be my source of distribution/collaboration and i'm just waiting for project approval -- hopefully i'll get it shortly and then the plugins will be up there in no time.

now, on to the hacking :-)

i should point out that is beta right now and they've acknowledged more work to come.  still, it's an awesome tool and kudos to the team, especially joe for championing some of my feedback :-).  because it is beta, things may change -- so heads up now.  also, my suggestions below are "as-is" and have not been verified, tested, or any other synonym you could think of that has to do with ensuring things work.  these are merely some suggestions...implementing them may cause unknown issues and you shouldn't blame the windows live writer team, only yourself for listening to me :-)

Q: "how does windows live writer detect my blog?"
A: great question.  writer originated from the planet krypton...shortly after superman left and before it exploded.  that brief time gave it the super-power of blog detection.  but really, it's a method called ' and if you dig deep enough in the WindowsLive.Writer.BlogClient assembly you'll see ..Detection.RsdServiceDetector with some interesting methods. 

Q: "it didn't detect my blog type even though i use MetaWebLog API"
A: ah, mine neither...but i didn't expect it to.  why?  that's easy.  MetaWebLog API is just that, an API...it doesn't belong to any particular blog engine or product and in fact, many implement it.  but each implement in their own way/location.  .Text/subtext use <blog>/services/metablogapi.aspx; typo uses <blog>/backend/xmlrpc to access it.  so there isn't really a way for writer to intuitively detect api-based blogging engines.  sure, they could have a config file that could likely look at some commonality of *known* engines and map to their default api locations, but that would grow, who would maintain it, etc....just not very trustworthy.  UPDATE: i forgot to correct myself.  you can, of course, implement the RSD link in your blog and then it should be fine...

Q: "my blog provider isn't supported, this thing sucks and i won't use it"
A: ouch, that hurts.  it doesn't suck.  in fact it is quite good and extensible.  your blog provider doesn't work?  hmm...what one are you using?!  likely it implements a common api and you can find the url for it.  but okay, i'll give you the benefit of the doubt...maybe you're using something crazy like or something.  let's take a look at how you might start implementing support.  caveat: again, this is my opinion and as-is. 

1) first, ensure that you've at least run writer one time.  heck even create a free blog on spaces to try it out.  if you don't run it once, don't bother going to step 2
2) next (did you run it first yet?) look in your user settings directory (on xp that is your 'document and settings folder'; on vista it is your 'appdata' folder) and look for the 'windows live writer' folders, namely one called 'resourcecache' -- did you find it?  go to step 3.
3) dig deeper into resourcecache until you get to the windowslive\writer\blogclient\providers folder...take a look at that little gem :-)
4) add your entry to the bottom...ensuring a guid and a unique reportingKey value.  NOTE: writer may implement more that overwrite this and in fact if your wanting to know where these definitions come from, you could snoop a bit further.

once you do this, you'll notice the wizard now has your blog in there.  now, that's all fine and dandy but of course, that's just the ui, you'd of course have to ensure that your blog engine supports the posting apis, etc.  in fact, this is only a quick hack i noticed and now that i think about it, i think you'll have to do a bit more...so take a look at BlogClient as well.

Q: how do i build a plugin?
A: first, get the SDK.  then start playing around.  here's the quick and dirty.  a contentsource is the simplest type, you provide some mechanism to get or play around with data, user input, whatever -- then the end result is content you send back to writer...that's it.  this is what i'll call a one-way implementation...if the user made an error, they'd have to delete and start over.  for some situations that is fine.  the other type is a smart content source.  this is like the windows live local map and image implementations that are there in writer.  you can play around with user input, yada yada, but when you also click back in the editable area, the side panel turns into an edit view of that content source.  this is the powerful one, but takes a bit more time and forethought...

so there's some quick answers to some questions i got...

| Comments

it's official! for the past few weeks i've been able to use a new tool just released, called windows live writer.  at it's core, writer is a blogging client (i'm sure there will be other uses for it in the future, but for now, this is what i use it for).  after seeing the announcement of the tool, i was skeptic.  YABC is what i thought (yet another blogging client, for those not familiar with the YA* acronyms).


but i bleed windows blue, so i installed it.  i should point out at this point that i amwas a blogjet user and gladly paid for it as it iswas a great tool for me having all the features i needed.  i loved it.  really.

my initial reaction to writer was 'sweet' -- until i started digging into features.  the writing experience was great and familiar, and the style preview in real time is great.  but i quickly noticed some lacking features.  i pinged the team and pointed them out.  after going back and forth, i was happy to see they started to trickle in to the daily teams.  it was great to see the agility of this writer team and willingness to take feedback.

i then noticed a few glaring missing things: integration with tagging, integration with flickr, etc. -- the things i loved about blogjet.  have no fear, writer has a plugin model and is extensible.  sweet.  after reviewing the sdk i came up with a flickr plugin that allows you to look at your flickr images (or others) and insert a reference to it.  yeah, it's simple, but that's what i loved about blogjet's simplicity as well.  the great thing is that the writer extensibility layer is .net -- nice! 

i wrote a quick and dirty tagging plugin as well that allows you to template some items.  i suspect this will be replaced by a much better one, but for now it does the job for me.  here's a screen shot of the tagging plugin:


and i also wrote a flickr image plugin that looks like this:


i would encourage you to download writer now and start using it -- take it for a spin...i think you'll like it -- and the extensible model.  give the team feedback.  let me know if you have any questions.  write plugins.  I hope to have my plugins available on codeplex as soon as the project gets approved.  please subscribe to this blog to know when that happens.

what are you waiting for?