flickr4writer News Feed 
Monday, March 16, 2009  |  From flickr4writer

I was just thinking the other day that I have some decent subscriber numbers here, but the same volume isn’t matched on my Twitter account.  For those who don’t know about Twitter, it’s a great short message service that kind of works like a global messaging system.  The best description I’ve heard has been:

Twitter is like an ongoing conversation at a party.  Come in and listen/participate whenever you want with whomever you want.  Leave at your leisure.  Come back often if you’d like.

I use Twitter to communicate along with friends, family and mostly developers across the world.  Rather than blog every little cool thing I find interesting in Silverlight, for example, I often send out links to very innovative and helpful information via Twitter.  Sometimes when something isn’t long enough for a blog post in my mental benchmark, it ends up going out through Twitter.  I’ve given software and passes to conferences away on Twitter as well.

Sure, all these social networking things can get overwhelming, but I’ve found Twitter to be the most useful of them all for me on various levels.  So if you aren’t on Twitter, consider it.  It is extremely helpful when actually attending conferences (usually where you’ll see the most activity) in keeping up to where/what the happenings are.  That being said, I’ll be pointing to a lot of resources during these next weeks while at MIX09 and DevConnections Orlando.

If you are on Twitter, I’d love for you to follow me for these updates.  If you aren’t, then sign up and follow me and Silverlight updates on Twitter.


This work is licensed under a Creative Commons Attribution By license.

Friday, November 07, 2008  |  From flickr4writer

This is a public service announcement for my Flickr4Writer project.  It was recently brought to my attention that Flickr has some privacy settings that users can opt-in for in their account to protect their images.  Some users felt that my plug-in for Writer was not honoring these settings.  Truly, I didn’t know about them.  You can read the thread on the discussion lists here if you are so inclined.  For me it came down to a couple of items:

    • Flickr enables users to set a flag to prevent “blogging” of their images
    • Flickr enables users to be hidden from 3rd Party/API searches

First, a note on the “blogging” flag.  This is a setting under your Flickr account privacy tab labeled Who can blog your photos or videos?.  To me, this setting is a little misleading because the description of it actually reads:

This means that anyone who does not match at least the contact level you select will not be able to see the "Blog This" button. (Source: http://www.flickr.com/account/prefs/blogging/?from=privacy 07 NOV 2008)

This setting is clearly for the “Blog This” functionality that shows up if you are logged into Flickr as a non-anonymous user and browse photos.  There is some functionality for them to integrate directly with your blog engine to do some one-click blogging of photos and videos.  Because of the way the setting is named however, some users interpret “blogging” in the broader sense.  flickr4writer was challenged as one violating the principal of this setting.  Since the setting ONLY enables authenticated users to even blog (the setting options go from any Flickr user (non-anonymous) to your specific friends/family settings.  flickr4writer does not use any authentication, so browsing any photos has the appearance to violate this term if the plugin enables an anonymous user to browse and select photos in a tool that is build for “blogging.”  While I draw the correlation that flickr4writer is basically a shell to the web site and does not do anything different than an anonymous user being able to browse and grab an image URL, it is the essence of the rule that I was alleged to violate.  One challenge here is also that the API is poorly designed in this regard because the “canblog” setting is returned only at the photo level even though it is an uber setting for the user’s account.  I think it should be a filter param of the photos.search API call.

The second setting about 3rd Party/API blocking from searches gets even more interesting.  First, this totally makes sense.  Again, it was a setting I wasn’t aware of.  You can change your setting under a section titled Hide your photostream from searches on 3rd party sites that use the API?  Great.  You’d think that once a user selected this setting that any search would filter out their photos/vidoes at the API level right?  Wrong.  flickr4writer uses photos.search calls to query data (actually technically the library that Flickr4Writer uses does).  Again, by definition of this API, only public searchable photos will be returned.  UNLESS you specify a user name.  What?!?!  Yes, that’s right…if you specifc a user name, their results will come back in the API call.  Read that again.  If you specify a user name in flickr.photos.search it will not honor the user’s privacy setting.  So this sucks for me as an API developer/consumer who wants to honor those settings.

So on to the resolutions.  First, I added authentication.  flickr4writer now requires you to have a valid Flickr account to even use it (their accounts are free).  This helps with the first part about blogging.  If a user has specified they do not want their content to be blogged, I honor that and will alert the flickr4writer user with a message that the user they searched prevents blogging and no search results will display.  I feel that this complies with that setting within my application.  If a user wants to bypass my app and copy/paste the URL to the photo/video still…that’s Flickr’s problem now, not mine.  Adding authentication also enabled me to comply with the blogging settings of users because it identifies who the user is and whether or not they can blog the content.

The second thing I modified was to only return content that had Creative Commons or No known license attributes.  This actually makes sense and I needed to do it for a while.  The licenses I filter for are identified in the flickr.photos.licenses.getInfo API.  So if a user has content that is “All rights reserved” then it will no longer show up in the search…even if you are the owner of that content.  I’m interested in feedback on this one if you think I should do a check to see if you are the owner and allow you to see licensed content…leave a comment on how you feel about this one.

For the setting of hiding from 3rd parties…I cannot resolve this.  There is no setting for me to look at.  I’m quite disappointed that Flickr isn’t doing this at the API level as I think that they are violating the user preferences by enabling a loophole.  Should they enable a setting for this (I think they just need to fix the API), I will enable my application to comply even more.  Please if you are a Flickr user who has set this privacy setting, let Flickr know that you want it to be honored.

The authentication adds some initial screens to the use of flickr4writer.  When you launch the plug-in from within Writer, you’ll now see some prompts to authorize the application with Flickr.  There will be a button that will take you to Flickr to authorize the action.  This is only required one time and you won’t see it anymore unless you de-authorize the application on your account (which you have the complete control to perform).

Please upgrade to the latest version.  You will have to uninstall any previous version before installing, but will not lose any settings.  Thanks for your assistance in helping keeping flickr4writer compliant.


This work is licensed under a Creative Commons Attribution By license.

Monday, June 02, 2008  |  From flickr4writer

Hot off the press, a new drop of Windows Live Writer was just released.  Get it here.  This is one of my favorite tools from Microsoft and the update brings a few new changes.

First, I’m happy to report that Flickr4Writer and S3Browser still work fine and require no adjustments.  The other thing announced today from the Writer team is an updated SDK.  This new SDK includes a new type of plugin which enable plug-in activity for pre- and post-publish events.  Some of you following me on Twitter may have noticed something every so often that said “blogging: blah blah” and a link to the post.  This is done automatically for me from Writer using a plug-in.  It actually is one of the ones included in the updated SDK (along with another example for adding a Digg badget to your post).

Recently there’s been some discussion of people re-aggregating/posting blog content to other sites.  Even though I had a Creative Commons license on my blog’s footer, etc, it wasn’t in my content so when someone re-posted my stuff automatically, it wasn’t visible.  Using the new Writer SDK, I created a quick little plug-in that would add a notation about the Creative Commons license I was using to every post.  Again, automatically now and I don’t have to write anything.  I’m making this one available for free/test and you can get it here.  These plug-ins are accessed in the same way through the Tools…Options menu in Writer.  Here’s the configuration for mine:

If you click the Preview tab (a new feature in Writer preview – tabs instead of menu options to switch between Edit, Preview, Source), it will show you what it will look like as well.  These types of plugins can also be enabled per weblog so if you have more than one weblog defined for Writer, you can choose which one you want these post- and pre-publish event plug-ins to be turned on for. 

For some existing plugins out there, this is a more natural fit.  When I heard about this new model, I joined up with Alexander Groß who wrote the Now Playing plug-in which is awesome and flexible (he’s also involved in a great Graffiti template for user groups).  But it seemed a more natural fit to use this model of automatically appending the information instead of having the user remember to click the button to insert the information.  I’ve submitted my changes to Alexander and hope they make it into his next build of Now Playing.  It looks the same in config and here it is in preview mode in Writer:

I love the new Writer with the subtle changes it has made and the additional plug-in model.  Get your update today!


This work is licensed under a Creative Commons Attribution By license.

Thursday, January 17, 2008  |  From flickr4writer

feedreader, my sharepoint web part originally built for sharepoint 2003, has been consumed by quite a few people (which i think is cool -- it is a rare moment when a lowly d00d like me can fill a gap).  while sharepoint 2007 has better built-in support for syndicated feeds (actually 2003 did already with the xml web part), i still think feedreader has some advantages that can be leveraged.


a while back i put feedreader on codeplex, an open source sharing ground.  i used the microsoft public license so anyone can download, alter, and profit from the code.  i did this because i was getting feature requests weekly as well as some of the problematic issues that i never fixed (namely proxy server support needs to be better).  i thought to myself that there way better developers out there than me and can actually help out.  i wanted to prove my own theory wrong.


well, there wasn't a ton of contributions (more work items though), but over the past month i got another one of those requests.  and just the other day, the rss feed from my codeplex project source code check-ins delivered this to me:



1) Added the code that jdenicola suggested in the codeplex discussion forum to fix the object reference... error. The error is caused by the cache being empty. Which is weird since the PartCacheWrite line is being called, but when it reads it doesn’t return anything. Might be environmental, but I didn’t spend too much time trying to figure it out.

2) Changed the cache key from this.Parent.ClientID to this.ClientID (neither key affected the results of PartCacheRead)

3) Moved the assignment of the graphic to the web part code from the .dwp. This fixed the display of the icon at the top right in the title bar, but it still didn’t display the graphic in the web part library. Could be a SharePoint bug not reading the property. The properties PartImageSmall and PartImageLarge are obsolete. I used TitleIconImageUrl and CatalogIconImageUrl (but still couldn’t get the catalog icon image to show up)

4) Repackaged it in a .wsp for WSS 3.0. I included a new manifest file, a couple .ddf’s, and some stsadm commands to handle the install/upgrade from a build event.

5) Added .snk files so assemblies could be strong named and added to the GAC

6) Added setting for "Expand Headline Descriptions by Default" which, when checked, will expand the item descriptions when the page first loads instead of showing them as collapsed (assuming the headline descriptions are not hidden)

7) Added a div tag with a class called sg-item-description surrounding the item descriptions which the user can overload to control the look (background color, border, text size, etc.) of the description

sweet.  a contribution...and a good one at that.  several things were fixed and a few added.  the contributor, ryan mcintyre really stepped up because he saw some things he could fix and leverage for his own benefit as well.  i should also note that flickr4writer also got some contributions from josh holmes a few months back as well.  it is cool to see some progress on something i hadn't had the time to work on and to that i say 'thank you' to ryan for making feedreader a better experience!


Thursday, May 31, 2007  |  From flickr4writer

beta 2 of windows live writer was released today.  go get it.  improved user interface, improved blog support, some new functions...you know all the good stuff you want in an update.  oh yeah and continued extensibility.

i took a quick second (after doing a little RTFM'ing [thanks charles]) and uploaded a custom manifest to my blog.  why?  because when in writer sometimes i want quick access to things about my blog (stats and such).  so i took a minute to "subtext"-ize a sidebar extension to writer...see:

i've got the nice little transparent subtext icon in the back and two custom buttons taking me to my various stats.  additionally, a link directly to the admin functionality.  i'll be playing around more with this stuff later.

Thursday, May 17, 2007  |  From flickr4writer

well, the flickr4writer project had it's first community contribution (thanks simon).  a new minor release was updated today that incorporates one small bug fix and one feature change (ability to select multiple images).

release: Flickr4Writer v1.2.7.0516

Thursday, April 19, 2007  |  From flickr4writer

so at tech lunch wednesday here in phoenix, after lunch i sat with hamid and scott for a bit and we were brainstorming about a few things.  one of which was storage, then we got on the topic of amazon's s3 solution.  i had started to look at it before, but then never got the time to go back.  essentially amazon provides storage via a web service (there are no tools provided by them, just an api).  i said that i mainly use flickr for the storage and that i'd only use it if i could get a direct url to things, and that i'd have to have a plugin for live writer :-).

well, when i got back i started to mess around a bit and got a working progress for my "s3 browser" live writer plugin.  you can browse your buckets and link to an item as a link or an image.  it is very rough right now, has some issues with UI threads, etc., but it works for me so far.

you can take a look at the screenshot below -- and the link is directly to my s3 stored image!

Wednesday, December 06, 2006  |  From flickr4writer

building upon the model of , i decided to take a look at doing some simple add-ins for Outlook and Office to look at and the extensibility vsto se has offered the developers.  i started documenting some of my findings in part 1 of office dev.  i'll continue that in a later post and ask some questions there as well.

for now, i wanted to let you know that the two add-ins i created are ready for your consumption, source included.

- enabling inserting of images from your Flickr account into a new mail message.

- you guessed it, same thing, but for Word.

while the naming of these projects is quite lame, hopefully they will show some value (of course if you are a Flickr user).  they've only been tested to work with office 2007 versions of Outlook and Word.  the code demonstrates basically the customization of the ribbonui as well as interacting with some of the different contexts of the office application you are working with at the time.

part 2 on their creation and some gotchas i found coming soon.

Thursday, September 28, 2006  |  From flickr4writer

well, one reason i haven't updated (which i now consider to be an archived project -- at least i won't be touching it) is that tagging support is now added into the latest refresh of :

newtags

the tagging support now included was exactly the direction tag4writer was heading with exposing the templates for configuration, etc.  you'll notice the tagging support in writer has some cool memory-sense (intellisense-ish).

along with tagging support, here are some other updates:

  • blogger beta
  • categories changes
  • improved startup
  • improved style detection
  • and some others...

learn about all the updates and get the refresh from the .  install it, then make sure you install :-).

Wednesday, September 27, 2006  |  From flickr4writer

now has a category for windows live writer.  just released a new version with better performance and more streamlined options (yeah, there were too many buttons with icons ;-) and you had no idea what did what).  The latest version is on windows live gallery as well as the current release on .

Friday, August 25, 2006  |  From flickr4writer

the windows live writer team has just announced that they will be supporting a new section in the for writer plugins.  this is a great opportunity to get your plugins ready for primetime and ensure that you are listed in the directory.  jeff has been doing a good job keeping track, but now he won't have to worry about it :-).

submissions aren't automatic, so be sure to review the criteria.  namely, you need to ensure that you are putting them in an installer package (apparently the preferred is an MSI - more on my opinion here) and bootstrapping any .NET 2.0 installation if needed.

of course with submitting things to microsoft properties, there are things you have to agree to, so be sure to read the guidelines appropriately.  this is a pre-approval process...so be one of the first to be on the gallery!

read the announcement here:

Thursday, August 17, 2006  |  From flickr4writer

okay, so one thing was bothering me about the flickr retrieval and sizing for thumbnails, the performance.

so, i implemented a background worker process and wow, what a difference in the user experience.

please get this 1.1.60817.1 update instead of the other...trust me.

tags: , , , ,

Thursday, August 17, 2006  |  From flickr4writer

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

f4w11

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

tags: , , , , ,

Tuesday, August 15, 2006  |  From flickr4writer

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?

whereb

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.

tags: , , ,

Monday, August 14, 2006  |  From flickr4writer

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.

Tag4Writer
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:

Flickr4Writer
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.

tags: , , , , , , , ,

Sunday, August 13, 2006  |  From flickr4writer

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...

tags: , , , ,

Sunday, August 13, 2006  |  From flickr4writer

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).

WLWriter

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:

tag4writer-sample

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

Flickr4Writer-sample

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? 

tags: , , , , , , ,

 flickr4writer News Feed 

Last edited Dec 7, 2006 at 10:16 PM by codeplexadmin, version 1

Comments

No comments yet.