screenshot With Christmas just around the corner I wanted to share something good with BE community to keep the spirit alive :) I hope you’ll like this new theme, it is widgets ready and should work fine with BE 1.4 and up. I think I covered all (or almost all) widgets in CSS, so it should look decent with your site out of the box. One thing I left out is accordion for side bar – all those widgets on the right should slide up and down on title click. Mostly because I want to finally get into jQuery and this is as good reason for me as any to get started, so I’ll upgrade it to accordion when I’ll become proficient enough with this JavaScript library.

While working on this theme, I read about new MVC design gallery and thought “wouldn’t it bee cool to have something like this for BE community”? So, not to waist opportunity, I created my own Wish List of BlogEngine improvements for the next year.

  • Community Exchange - site, just as that gallery thing – but better ;) What I want most out of it – self publishing for any piece of code that can run on top of BlogEngine.
  • Web service that would glue every BE blog and this community site in many interesting ways.
  • Ability to install/uninstall plug-ins from administration console, kind of like you can install modules in DotnetNuke (lower sound volume before clicking the link, it’ll start movie on the page).
  • Be able to upgrade to the next version by clicking “upgrade” button in the admin menu.

May be I’m a little over the top here, but well, it’s all up to Santa now :)

Test drive dfMarine for BlogEngine

Download dfMarine.zip (84.07 kb)

Signature

picasa-5 I'm a long time Picasa fan. I used it before it was bought by Google and even before I new what the Google is. Now at version 3.0, although not as popular as Flickr, Picasa is a great choice as desktop photo manager and it's Web Albums is a valuable online photo storage. Web albums itself is nice classy web application with pretty good flash slide show. You can even get a code to embed slide show (or photo) into your own blog, which works great for occasional use, but can be daunting if you plan regular photo posts.

My master plan was:

  • load photos from camera to Picasa desktop
  • edit and upload to web album
  • from BlogEngine, select any of my Picasa albums
  • add slide show of this album to the post

picasa-4 API for Picasa is a part of Google web API. You can easily find many examples on how to use Picasa API to show pictures on your blog. Virtually all such examples on how to show public photos and this is understandable - blog is a public place. What I wanted is to be able to also show private albums on members only blog, and googling around wasn't much help. So I had to dig a little bit myself to figure this one out.

picasa-3 Newly updated security model for Picasa has 3 levels: public, unlisted and private. Public is what it is, to see private albums you need to be logged in into Google through one of its services, like Gmail. The most interesting one is "unlisted". It implements sort of "security by obscurity" model for private photos. It sounds bad, but it gives you huge advantage: you can send URL to your private album to anybody as a link in email and they can come and look at photos without having to authenticate yourself. Very convenient, and people love it. The trick is that part of URL is an authentication token, which is generated by service and unique for every photo album. That means, to crack down to your private album one should know your Google account and then run some sort of dictionary attack to get authentication key, and Google (I hope) monitors such activity, so for all practical purposes you do have your private folder locked by password. And this password is what you passing around when inviting friends to look at pictures of your new-born baby or what have you. Pretty clever, I guess.

picasa-2 May be it is part of "obscurity" thing, but Google API does not tell you much about this authentication token, and there is no property (at least I wasn't able to find one) that holds it in the object model. The authentication section in API documentation is a little confusing, IMHO. So I had to hack it out on my own by examining values used to send/receive requests. I was able to get it from feed URI, there are other ways too but this one seems to be easy enough:

foreach (PicasaEntry entry in feed.Entries){
  string authKey = ((Google.GData.Client.AtomEntry)(entry)).FeedUri;
  authKey = authKey.Substring(authKey.IndexOf("authkey=")).Substring(8);
  ...
}

Now I can generate tag to embed flash object into the post, rest is trivial. One nice touch I wanted is to be able to copy generated by extension tag to clipboard by clicking it's hyperlink. It is very easy in IE, but somewhat nightmarish in other browsers. I had to use well known workaround with flash used to actually copy string to clipboard. Should work in IE and FF, if for any reason it doesn't for you - just manually copy tag and paste it in the post where you want slide show to appear. I also toyed a little with alternative idea - select post in drop down and then on button click append generated tag to that post, but decided to put it aside for now. May be one of the features in the next release ;)

Usage

  1. Download, unzip and copy files to corresponding locations.
  2. Log into your blog and go to "Extensions" under "Administration" menu.
  3. Click settings/edit to get to PicasaSlideShow settings page.
  4. Fill in your Gmail ID/password and change any available settings if you don't like defaults.
  5. Save settings, now list of your Picasa albums should appear in the second section of the page.
  6. Click generated tag (right column) to copy it to clipboard (or copy it manually).
  7. Create new or edit existent post or page and paste Picasa tag where you want slide show to appear.

picasa-1

This extension uses 3 Google client DLLs, and it runs fine on my host in medium trust. Try it - may be you'll like it. I will keep looking into Google APIs to see what can be there for BlogEngine and will likely enchance this extension over time.

PicasaSlideShow.zip (94.68 kb)

Signature

pbw-2 I’ve been playing a lot with Commentor and Waegis lately and got a little tired of having to get to admin page through extensions panel. I wanted a one-click shortcut from the front page. Great laziness usually leads to a lot of work – for me it resulted in spam counter user control. It is complimentary to Commentor and is distributed as part of this extension. To use it, download latest (version 1.2) and then add control to your theme of choice. One caviar here is that for visitors clicking on Commentor link inside spam counter will load post about this extension, while for admin it will load Commentor’s admin control panel. This way, you don’t have to go to settings/commentor/edit – it’ll save you whole two clicks! :) More...

Signature

commentor-1 Commentor is a new BlogEngine extension that should make your life a little easier when you have problem with spam comments. At first, I simply wanted to try existing extension to filter spam. My intention was to use anti-spam service as automated moderator and workflow for the task supposed to be pretty simple and look somewhat like this: More...

Signature

spam4Are you getting a lot of spam lately? BlogEngine has built-in filter and it worked just fine for me up until now. But for the last couple of months I got some spam getting through. Not a hole lot yet and sources seem to be pretty obvious so that I probably could’ve easily block it myself with simple home-made solution, but I decided to use it as an opportunity to take a look at big boy’s spam fighting machines. More...

Signature

sshot-33This post is a sequel to Keeping things private and will explain how to secure images so that only authenticated users can see them. This is relevant when you want to publish private album on the web. All image files in the web application are viewable by default, you can right-click any image to see information about it in the properties, you can load image into browser directly (just type in http://rtur.net/blog/pics/rssbutton.gif for example), you can download any image by saving it to the local drive etc. Obviously, with private albums you don’t want this kind of behavior. More...

Signature
prvt-1

Blogging is all about openness, spreading and sharing. Most likely you want as many eyeballs on you blog as possible and blogging software, naturally, optimized for doing just that. But what if you want to keep things private? May be you keep your personal diary online because you want to have access to it from anywhere or you want members only blog for friends or family? Yes this is true that you might look for alternative first and get specialized software, but if you already feel comfortable with BlogEngine, well, you know that story about hammer and nail, right? More...

Signature
ex_5-4

Default admin interface for extensions in BlogEngine works fine in most cases and very easy to use. But sometimes you just got to get creative, right? That means, you want no limits. Obviously, some of simplicity will be lost – but still it is surprisingly easy to get along using plug-and-play BlogEngine architecture. Lets say, we ran into nice DHTML color picker and want to use it in the admin page for our extension. We want admin page look like this picture – it should allow us to enter a word, size and color. This values will be saved in the extension manager, so we don’t have to deal with databases or file system – usual BE stuff. And when you click “Color picker” button, nice color picker will show up and you can visually select value for a color. More...

Signature

Lets say we want to write an extension to track user activities on our site. Blogger should be able to set basic settings, for example choose to track  posts, pages or both. Then every time user requests post or page, we increment corresponding counter by one. Look at the picture above. Its clear that we need two sets of settings: one for post/page options and another to list user activity.

ext14-3-1

More...

Signature

In the first part, we wrote simple extension that changes case in the post to lower. Let’s say, we want user to decide show post in the lower or upper case. For this, we need to be able to maintain variable and let blogger change it’s value through admin interface. Normally, you would need to add a data access functionality for extension to handle this kind of operation, create admin form etc. BlogEngine uses Extension Manager to help make job a lot easier. Take a look at the code below. In the constructor, we subscribe to post serving event and then call InitSettings. There we create ExtensionSettings object, which can hold singe value (scalar) or/and table of values. In our case, we want it to hold single scalar value, so we set settings to scalar. We call our variable “Case” and initialize it with default value of “upper”, then call ExtensionManager.InitSettings and pass name of extension and settings object. More...

Signature
<<  January 2009  >>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
Protected by Commentor
56 comments approved
88 spam caught
Since December 1, 2008
Powered by Powered by Waegis
Enhanced with Snapshots

Subscribe to Rtur.net