A technical journal of analytical drivel and vaporware engineering.
Archives
|
Saturday, August 31, 2002
I took a look at the possibility of adding a MAPI transport provider extension to Outlook. My jaw dropped. TMI. No thanks. In a ten man team, maybe. A one man intermediate pro programmer? No.
posted by Jon at 8/31/2002 01:35:00 AM
Friday, August 30, 2002
To all the people who do port scans on my computer and have the audacity to browse my IP, I have a message for you.
posted by Jon at 8/30/2002 09:37:00 AM
Wednesday, August 28, 2002
There were 686 downloads of my Black Alarm Clock at Download.com in the last week!
posted by Jon at 8/28/2002 04:11:00 PM
Tuesday, August 27, 2002
A minor tweak was required in PowerBlog to get it to work with the Manila/Radio Blogger-API bridge ( http://bloggerapitest.manilasites.com/) in my development environment. But the good news is that it now works! I successfully:
- Downloaded the recent articles
- Added a new post
- Modified my post
- Deleted my post
.. and it was more stable than Blogger.com! (This is because Blogger.com has been having server problems lately.)
Next I will test MovableType.
posted by Jon at 8/27/2002 11:22:00 PM
You know you're pretty sloppy with circular references when you have to exit your app with an API call to TerminateProcess. <*blush*>
posted by Jon at 8/27/2002 05:14:00 PM
Alpha 3 of PowerBlog will be released by the end of the week. This will be the final Alpha release; most of the features for the product will be in place (if a little buggy or mere placeholders). The following release will be Beta 1.
Here is the latest screenshot:
posted by Jon at 8/27/2002 03:43:00 AM
Monday, August 26, 2002
What kind of creative person are you? Are you someone who exaggerates for the sake of art (like Donald Duck)? Or are you someone who likes to reproduce raw realism (like the characters in the recent animated movie "Final Fantasy: The Spirits Within")?
Well I think you can tell what kind of person I am by what I do. Pee-Mail - I'm a natural pee'er. Yay!
... and here, I've done it again! Wee!!!
posted by Jon at 8/26/2002 11:52:00 PM
Richard Caetano at StronglyTyped.com posted a blog entry about how to test to see if a value type variable has been initialized. I suggested demonstrating with a smaller example, for simplicity's sake, but he seems to think that adding his extra details makes things clearer. Gah! Well here's my demonstration:
DateTime myDate;
if (myDate == null) { // ... this will produce a compiler error
myDate == "August 26, 2002";
}
return myDate;
// use this instead...
Object myDate;
if (myDate==null) { // no problem! Object is a reference type
myDate = new DateTime("August 26, 2002");
}
return (DateTime)myDate;
Now I'm not going to argue whether or not this is a good programming practice to leave a variable uninitialized, but as a programmer I've found that it definitely has some great uses. To not leave a variable uninitialized would force me to have a bunch of
bool b[Objectname]Init
variables, which would be sucky. In the DateTime demonstration, a realistic scenario is assigning it to the current date if the value is unset. It's a real-world scenario because I needed it!
By the way, Richard is the coolest, and so is his blog. I don't mean to insult.
posted by Jon at 8/26/2002 05:34:00 PM
RSS has been implemented in PowerBlog
I've put a GenerateRSS([IXMLDOMNodeList articlesList]) function in the Blog object (the Blog object is exposed in script). You can pass it the optional articlesList argument according to the article nodes in the blog's xml tree. Otherwise, it will use all articles, in the order of the blog file's nodes (in other words, ascending chronological order in which the articles were added to the file).
Here's the RSS output from my test blog file: (rsstest.xml)
Here's my source test blog file: asdf2.blog.xml
UPDATE: This is probably going to change. I will probably change the signature to GenerateRSS([XPathQuery]). The optional XPathQuery will be used with the selectNodes() function in the Blog.ArticlesNode property. The default value will be the query for a sorted (reverse chronological) list of all articles.
UPDATE 2: Okay, it looks like I'm going to stick with a Collection for the parameter, containing IXMLDOMNode objects each referencing the <article> node being transformed. By default it will use the articles in the visible list, in the list's order.
posted by Jon at 8/26/2002 05:05:00 AM
Yesterday I was completely swamped. First, I got a small but biggest-ever donation for my Black Alarm Clock. It encouraged me enough that I completely cleaned it up and repackaged it in a Windows Installer (.msi) file. If you need an alarm clock for your computer, give Black Alarm Clock a try!
Second, I checked out PlanetSourceCode to see if I could find any solution to the problem I've been having in PowerBlog where menu icons won't show up in XP. As it turns out, the problem is with the ImageList control. I'm posting it here to let you know: if you are using any solution that uses the ImageList control in any way in order to put icons in menus, do not use the Windows Common Controls 6.0 because Windows XP does not handle images from that ImageList control properly (added Alpha channel in use, perhaps?). Use Version 5.0 instead. Unfortunately, I really needed the 6.0 version to use the checkboxes and bold fonts in the TreeView, so now I have two sets of Windows Common Controls in my toolbox. Icky. Anyway, I spent like six hours or so (at least it felt like six) reacquiring those images and manually re-adding them to the older control. I am terribly frustrated, though... some of those images wound up getting degraded, partly because the older ImageList doesn't support as many colors, and partly because I couldn't find the original images to begin with, so what I found looks really crummy.
Plus, while trying to abandon the 6.0 version of the Common controls, I threw out the PowerBlog toolbar and replaced it with the old version of the toolbar control, manually reinserting the buttons and assigning the manually updated images from the older-ocx imagelist control. When I realized I needed to stick with the 6.0 version of the TreeView anyway (and therefore couldn't unload the v6.0 ocx), it was too late to keep the 6.0 version of the toolbar cause I already deleted it. AAAARRGH!
So, the long and short of it is, the next release of PowerBlog will have somewhat crummier images and a slightly different "feel" to the toolbar. But, the benefit is XP users will get to have menu icons.
I still don't know whether I love or hate GUI programming.. perhaps both, perhaps I love to hate it.
Then I've been exchanging messages with Bill (a former big cheese in a pre-dotcom-bubble-explosion software industry company and a blogging-market-aware guy who's been personally associated with Blogger in recent history; see billsaysthis.com) who was curious about my commercial intents with PowerBlog but was skeptical of the market and particularly of the readiness of PowerBlog.
Needless to say, I haven't exactly been dancing in the clouds in optimism lately. But I am glad my cheesy alarm clock got another donation, and that I tackled the XP menu icon bug.
Now if I can just figure out what's causing PowerBlog to crash on exit. I've spent hours trying to find that bug already. There is no method for tracing when the app has already exited, so there is no debugging method. Just bit fiddling and trial-and-error. Suck dirt through a straw. Now.
Business 2.0 - Web Article - Blogging for Dollars
posted by Jon at 8/26/2002 12:22:00 AM
Thursday, August 22, 2002
Richard Caetano offered a new Weblogs.com ping plop using script and the HTTP client in MSXML. Works great. I added my own WebLogs.com ping plop using an XMLRPC client object with only a few lines of script. Next on the scripted plop examples/demo agenda is a SOAP client. Another very useful feature I have added is a Custom UI handler for the Custom Scripted plop types. A WebBrowser display area and its HTML-DOM object model are offered and exposed both to the user and to the scripter, making it easy for the scripter to collect user preferences and store them in the plop settings. A demo plop has already been built to demonstrate this. A couple critical article/blog UI synchronization bugs have been fixed. Yes, the next update of PowerBlog is worth waiting for!
posted by Jon at 8/22/2002 04:54:00 AM
Monday, August 19, 2002
The next release of PowerBlog will have a more organized script editing interface:
posted by Jon at 8/19/2002 10:51:00 PM
This is a demo test blah blah balh
posted by Jon at 8/19/2002 03:47:00 PM
Sunday, August 18, 2002
Saturday, August 17, 2002
Pffftt..
Now this is cool!
This:  ... resulted in THIS!!
In other words, I have successfully managed to get an events-capable, user-instantiable Winsock clone class into the scripting environment. This means that the user of PowerBlog can script his own plops for publishing.
Now all I need to do is add SOAP and XML-RPC client objects, as well as add more UI events for the Custom Scripted plop type to handle.
Wheee!!!!
posted by Jon at 8/17/2002 12:21:00 AM
Friday, August 16, 2002
OK, the syntax for what I described before, CreateSOAPClient(), CreateWinsockClient(), CreateXMLRPCClient(), is going to be different. Right now what I'm looking at is more like this:
CreateEventableObject "Socket", "mySocket"
Sub mySocket_OnConnect()
' .. Do stuff
End Sub
In theory, in a test sandbox with a sandbox class, this works fine. Getting it to work with a CSocket class in PowerBlog is a work in progress.....
posted by Jon at 8/16/2002 02:05:00 PM
Thursday, August 15, 2002
DaveNet : When to give away the technology
After posting some documentation on the scripting feature of PowerBlog, my brain has been spinning about how incredibly easy I have already made PowerBlog for users to extend and enhance. With just a few more lines of code I will add some cool new script functions:
CreateSOAPClient() - Returns a Microsoft SOAP Toolkit 2.0 SOAPClient object
CreateWinsockClient() - Returns an object very similar to the Winsock ActiveX control.
CreateXMLRPCClient() - Returns a customized implementation of the XMLRPCCOM component offered here (note that the object names PowerBlog will offer will be different).
I will also add a WebLogs.com ping feature.
All of this will be implemented in the next 48 hours :D
posted by Jon at 8/15/2002 11:24:00 PM
Here is some info on the new release of PowerBlogHere is some info on the new release of PowerBlog. There are new features, including: - .. templates editing
- .. extended author detail
- .. ActiveX scripting
- .. ActiveX script user-extensible plops
- .. plop import/export
- .. article pre-publish templates for titling
- .. much greater stability
PowerBlog Scripting InformationHere are some details about the scripting feature. COM component developers can already extend PowerBlog to support publishing to any publishing mechanism, be it an XML-RPC call or SMTP or NNTP or whatever. All they need to do is instantiate their COM objects in ActiveX script using CreateObject, then they can either pass references to the Plop, Blog, or Article node(s) to their COM components, or they can script the publishing automation in VBScript/JavaScript to an XML-RPC or SOAP or SMTP or other generic publishing component. The plop itself can then be exported in XML format as an importable file that other PowerBlog users can import into their blogs. Unfortunately, this documentation is quite limited and requires an understanding of how COM objects are automated in a script environment. The following objects are exposed in the BeforeBlogPublish event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Cancel" (StringProperty object; used to cancel the publish process)
The following objects are exposed in the AfterBlogPublish event: - "Blog" (Blog object)
- "Plop" (IPlop object)
The following objects are exposed in the BeforeArticleTemplate event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Article" (BlogArticle object)
- "ArticleData" (StringProperty object; used to reflect the publish-modified content of Article.Data)
- "Template" (CTemplate object)
- "Cancel" (StringProperty object; used to cancel the publish process)
The following objects are exposed in the BeforeArticlePublish event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Article" (BlogArticle object)
- "ArticleData" (StringProperty object; used to reflect the publish-modified content of Article.Data)
- "Cancel" (StringProperty object; used to cancel the publish process)
The following objects are exposed in the AfterArticlePublish event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Article" (BlogArticle object)
- "ArticleData" (StringProperty object; used to reflect the publish-modified content of Article.Data)
In the ActiveX Script plop type, two additional events are exposed, PublishBlog and PublishArticle. (Note: In the Alpha 2 implementation, these events are not bug-free and will probably always result in a logged error.) The following objects are exposed in the PublishBlog event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Cancel" (StringProperty object; used to describe a cancellation of the publish process)
The following objects are exposed in the PublishArticle event: - "Blog" (Blog object)
- "Plop" (IPlop object)
- "Article" (BlogArticle object)
- "ArticleData" (StringProperty object; used to reflect the publish-modified content of Article.Data)
- "Cancel" (StringProperty object; used to cancel the publish process)
Finally, here is limited documentation on each object's properties (objects/properties of significance to users are in bold print; all objects, methods, and properties are subject to change!!): - BlogArticle class - Self-explanatory; any article of data that is to be posted on a web site.
- Id - (String) The identifier of the article in the blog file's XML tree
- Author - (String) The name of the author of the article
- AuthorEmail - (String) The author's e-mail address
- AuthorNickname - (String) The author's nickname
- Blog - (Blog object) The Blog object that contains the article
- CreateDate - (String) The date that the article was created
- Data - (String) The actual contents of the article
- DOMNode - (IXMLDOMNode object) The MSXML.IXMLDOMNode object where the article is stored as an <article> node as a child of the <articles> node, which is a child of the <blog> node.
- HeadNode - (IXMLDOMNode object) The MSXML.IXMLDOMNode object of the <ahead> node, which is a child of the <article> node.
- LockId - (Boolean) Determines whether the UI should not automatically reassign a new ID when the article's title is changed.
- Modified - (Boolean) Determines and returns a Boolean value as to whether the article has been changed since it was last published.
- ModifyDate - (String) Date last modified.
- Plops - (Collection) All BlogArticlePlop objects that this article is assigned to (including all plops assigned to the entire blog). BlogArticlePlop objects, described as <ap> XML nodes, are plop tweaks; they are standard IPlop objects with article-specific wrappers; they are article-specific customizations of plop behavior (i.e. storing and retrieving the server-assigned postid of an individual article).
- PlopTweak(id) - (BlogArticlePlop object) Returns the specified plop tweak (BlogArticlePlop object).
- PlopTweaks - (Collection) Returns all the plop tweaks (BlogArticlePlop objects) specifically assigned to this article.
- Publish([iPublishMode], [fOwnerForm]) - (method; Integer) Tells an article to publish itself.
- PublishDate - (String) Date last published.
- PublishDisabled - (Boolean) If set to TRUE, does not publish when the UI requests it.
- RemovePlopTweak(id) - (void method) Removes the specified plop tweak (BlogArticlePlop object) from the XML tree.
- Save() - (method; Boolean) Tells the Blog object to Save(). See also Update().
- SetSetting(oXMLDOMNode, spNewSetting, [strValIfNotSP]) - (void method) Adds or changes an attribute in a node in the XML tree. spNewSetting can be either a StringProperty object or a string (or a variant containing a string). If spNewSetting is a StringProperty, strValIfNotSP is not used. If spNewSetting is not a StringProperty object, spNewSetting is understood to be the name of the setting, and strValIfNotSP is required to describe the value of the setting.
- Settings - (StringPropertyCollection) The attributes of the article's XML node. The StringPropertyCollection is read/write and will update to the XML tree when written, but changes to the StringProperty values of the collection are not written to the XML tree.
- Title - (String) The name/title/short-description of the article
- Title - (String) The name/title/short-description of the article
- Update([bSilent]) - (method; Boolean) Synchronizes the article with the Blog's XML node tree. See also Save().
- URL - (String) The URL of the article. This is specified in the article's plop tweak (<ap> node) of the default plop of the associated blog. If it is a Blogger plop, "#[postid]" is appended to the value.
- CTemplate class - A template container/description object
- Name - (String) The identifier of the template
- Value - (String) The string value of the object. This is the default property of the object, so if no property of the object is specified, the Value property will be returned (e.g. ctObject = "myValue" is the same as ctObject.Value = "myValue")
- LocalOnly - (Boolean) Describes whether the template is not uploaded to a remote server and is stored locally only
- Language - (Integer) An integer value of internal enumeration that determines how the template is processed (e.g. XSLT, Blogger-templates, etc.)
- LanguageString - (String) Describes the Language value in a human-readable fashion. Can also be used to set the Langauge value if understood.
- TType - (Integer) An integer value of internal enumeration that describes the type of template (e.g. individual article page, blog list, achive index, archive list/blog page, etc)
- TypeString - (String) Describes the TType value in a human-readable fashion. Can also be used to set the TType value if understood.
- StringProperty class - A generic string wrapper object
- Name - (String) The identifier of the StringProperty object
- Value - (String) The string value of the object. This is the default property of the object, so if no property of the object is specified, the Value property will be returned (e.g. spObject = "myValue" is the same as spObject.Value = "myValue")
- ValueType - (String) A meta description of the value.
- StringPropertyCollection class - A collection wrapper class for the StringProperty object.
- Blog class - The archive in which the blog plops/publishers are described and the articles/posts are stored.
- BlogId - (String) The identifier of the blog in the blog file's XML tree
- Title - (String) The name of the blog
- Dirty - (Boolean) Determines if the blog has been changed and has not yet been saved to disk
- Load(srcFile) - (method) Loads a blog file. Returns the same results as MSXML.DOMDocument.Load().
- LoadXML(srcXML) - (method) Loads a blog from a string passed as an XML tree. Returns the same results as MSXML.DOMDocument.LoadXML().
- XMLDocument - (DOMDocument object) Returns the DOMDocument from MSXML.
- SourceFile - (String) The file from which the blog was last loaded/saved.
- RootNode - (IXMLDOMNode object) Returns the IXMLDOMNode from MSXML for the <blog> node, which is the root node of the XML tree.
- HeadNode - (IXMLDOMNode object) Returns the IXMLDOMNode from MSXML for the <head> node, which is a child node of the <blog> node.
- PlopsNode - (IXMLDOMNode object) Returns the IXMLDOMNode from MSXML for the <plops> node, which is a child node of the <blog> node.
- ArticlesNode - (IXMLDOMNode object) Returns the IXMLDOMNode from MSXML for the <articles> node, which is a child node of the <blog> node.
- ArticleNodes - (IXMLDOMNodeList object) Returns the IXMLDOMNodeList object from MSXML for the <article> nodes, which are child nodes of the <articles> node.
- TransformArticle(xmlBlogArticle) - (method; BlogArticle) Accepts an <article> node from MSXML; returns a BlogArticle object.
- Article(strId) - (BlogArticle object) Accepts an article ID string; returns a BlogArticle object.
- Save([fOwnerForm]) - (method; Boolean) If the SourceFile is not blank, this method will write the blog to disk and reset the Dirty switch to False. If SourceFile is blank, the user will be asked where to save the file. fOwnerForm can be ignored; it automatically references the main form. This method uses the SaveAs method.
- SaveAs(sFile, [bOverwrite]) - (method; Boolean) Writes the file to disk at a specified location. sFile is a string specifying where to store the file. bOverwrite is a boolean value that defaults to FALSE.
- IPlop class - The publishing mechanism with which the articles are published.
- PlopId - (String) The identifier of the plop in the blog file's XML tree
- PlopName - (String) The name/description of the plop
- PlopType - (String) The type of the plop (e.g. "Blogger", "AXScript", etc.)
- Visible - (Boolean) Determines whether or not to display the plop in the UI
- XMLNode - (IXMLDOMNode object) Returns the MSXML.IXMLDOMNode object from the blog's XML tree.
- Blog - (Blog object) The Blog object containing the Plop object
- Description - (String) A user-assigned description of the Plop object
- ExecTemplate(baBlogArticle, spArticleData, ctTemplate,[Context]) - (StringProperty) Passes the specified spArticleData (method; StringProperty) object through a template filter. (Note: This is only used for Blogger-API article titling in the Alpha 2 release.)
- GetRemotePostCount([OwnerForm]) - (method; Long) Retrieves the post count of available posts on the remote server. OwnerForm can be ignored. (Note: There is a maximum of 20 for the Blogger-API as this method uses getRecentPosts(). This method is not used in the Custom Script plop type in the Alpha 2 release.)
- GetRemoteTemplate([TemplateName], [OwnerForm]) - (method; object) Usually returns a string from the remote server describing the contents of the specified template. OwnerForm can be ignored. (Note: This is not used in the Custom Script plop type in the Alpha 2 release.)
- SetRemoteTemplate(vTemplate, [TemplateName], [OwnerForm]) - (method; object) Sends a string to the remote server describing the contents of the specified template. OwnerForm can be ignored. (Note: This is not used in the Custom Script plop type in the Alpha 2 release.)
- HeadNode - (IXMLDOMNode object) Returns the IXMLDOMNode from MSXML for the <phead> node, which is a child node of the <plop> node.
- ImportTemplates([OwnerForm]) - (method; Boolean) Retrieves the templates from the remote server and stores them in the <templates> node (see TemplatesNode object) of the <phead> node (see HeadNode object)
- ImportAllPosts([OwnerForm]) - (method; Integer) Retrieves the articles from the remote server and stores them in the <articles> node (see ArticlesNode property of Blog object) of the <blog> node (see Blog object)
- ImportRecentPosts([NumPosts], [OwnerForm]) - (method; Integer) Retrieves the specified number of recent articles from the remote server and stores them in the <articles> node (see ArticlesNode property of Blog object) of the <blog> node (see Blog object)
- loadTemplate(templateName) - (method; CTemplate) Returns the specified CTemplate object (stored in the <templates> node of the <head> node of the XML tree of the Plop object)
- newPost(baBlogArticle, bPublish, [fOwnerForm]) - (method; String) Used for posting a new blog article to a remote server. This is typically executed internally within PublishArticle(), depending on whether the article has already been posted or not. (Note: This is not used in the Custom Script plop type in the Alpha 2 release.)
- editPost(BlogArticle, bPublish, [OwnerForm]) - (method; Boolean) Used for updating an existing blog article. This is typically executed internally within PublishArticle(), depending on whether the article has already been posted or not. (Note: This is not used in the Custom Script plop type in the Alpha 2 release.)
- publishArticle(baBlogArticle, twTweakRef, PublishMode, [OwnerForm]) - (method; Boolean) This is executed by the UI. In the ActiveX Script plop type it triggers the scriptable PublishArticle event. In the Blogger plop type, it determines whether to execute newPost() or editPost() and does so accordingly.
- publishBlog(PublishMode, [OwnerForm]) - (method; Boolean) This is executed by the UI. In the ActiveX Script plop type it triggers the scriptable PublishBlog event. In the Blogger plop type, it will publish all unpublished/changed articles, and it will also remotely create a bogus post using newPost() and then delete the bogus post using deletePost() with the republish option enabled.
- publishEnabled - (Boolean) Sets/unsets whether or not this plop is used for publishing.
- removePost(baBlogArticle, bPublish, [OwnerForm]) - (method;Boolean) Removes the specified article from the remote server. bPublish is used to determine whether to republish.
- removeRemoteTemplate([TemplateName], [OwnerForm]) - (method) Removes the specified template from the server. (Note: This is not used in the Alpha 2 release.)
- saveTemplate(objTemplate) - (method; Boolean) Writes the specified CTemplate object to the plop in the XML tree.
- Scripts - (StringPropertyCollection) All scripts defined in the <phead> node of the Plop object.
- Supports - (StringPropertyCollection) A list of plop capabilities and whether these specified capabilities are specifically supported (used mostly by the UI)
- setRemoteTemplate(vTemplate, [TemplateName], [OwnerForm]) - (method; Boolean) Resets/specifies the content of the specified template on the server.
- SetSetting(spNewSetting, [strValIfNotSP]) - (void method) Adds or changes a setting in the Settings collection (stored as the plop node's attributes in the XML tree). spNewSetting can be either a StringProperty object or a string (or a variant containing a string). If spNewSetting is a StringProperty, strValIfNotSP is not used. If spNewSetting is not a StringProperty object, spNewSetting is understood to be the name of the setting, and strValIfNotSP is required to describe the value of the setting.
- Settings - (StringPropertyCollection) The attributes of the Plop's XML node. The StringPropertyCollection is read/write and will update to the XML tree when written, but changes to the StringProperty values of the collection are not written to the XML tree. Use SetSetting instead.
- ShowConfigUI(fOwnerForm) - (method; Boolean) Used by the UI to show the user a set of configuration options. fOwnerForm is required and can be any form object that will act as the parent of the internally-defined UI. Returns TRUE if cancelled.
- Templates - (StringPropertyCollection) Returns a collection (StringPropertyCollection) of StringProperty objects that are described in the <templates> node of the current plop.
- BlogArticlePlop class - Otherwise known as PlopTweaks; these are article-specific wrappers for the Blog's plops
- PlopTweakId - (String) The identifier of the PlopTweak (<ap> node) in the blog file's XML tree
- DOMNode - (IXMLDOMNode) The MSXML.IXMLDOMNode (<ap> node) in the blog file's XML tree
- IsCustom - (Boolean) Determines whether this is a custom plop, separate from the Blog's main plops. (IsCustom = (RelPlop Is Nothing) And Not (DOMNode Is Nothing))
- IsOverloading - (Boolean) Determines whether this is a tweaked plop or not. (IsOverloading = Not (RelPlop Is Nothing) And Not (DOMNode Is Nothing))
- OwnerArticle - (BlogArticle) The BlogArticle object that contains this object (or the <article> node that contains this object's <ap> node, if IsOverloading is TRUE)
- RelPlop - (IPlop) The IPlop object that this object references
- Settings - (StringPropertyCollection) The attributes of the Plop's XML node. The StringPropertyCollection is read/write and will update to the XML tree when written, but changes to the StringProperty values of the collection are not written to the XML tree.
posted by Jon at 8/15/2002 07:06:00 PM
Wednesday, August 14, 2002
Doing too much too quicklyPowerBlog is currently a one-man project. It has been quite satisfying for me as a developer to embrace and extend some popular blog technologies, as well as to dream about what sorts of new technologies to throw in the mix.
But blogging proves to be more than just textual entries. Best-of-breed blogging demands things like community interaction, file repositories, categorization, outlining, authorization, and messaging. These are all technologies that must be established on the server; a client application is insufficient for these features. And while it has been exciting to see the PowerBlog client unfold, the services technologies have hardly become groundbreaking; not even a proper foundation has yet been laid.
The PowerBlog client was begun prior to extensive blogging research that has since been established, which has resulted in both feature creep and feature loss for the entire product. Time and money to build the feature set initially and recently proposed in time for an Alpha 3 and for Beta stages have run out. The good result of this is that PowerBlog will be released shortly, with Blogger API and ActiveX Scripting support, by the end of this month. The disappointing news is that software licensing will begin at that time, even as product updates and new features continue to develop.
If you would like to comment or request information about the project, e-mail me.
posted by Jon at 8/14/2002 07:02:00 PM
Tuesday, August 13, 2002
The PowerBlog WebServices have changed, and will continue to change. If things stop working (as they should have recently due to the changes) then you can check http://www.powerblog.net/services/ to see what changes were made.
posted by Jon at 8/13/2002 04:09:00 PM
Monday, August 12, 2002
I finally purchased a much-needed UPS (battery backup supply) for the brownouts at the office that keep thrashing my computer by causing it to do sudden cold reboots while I'm working at it.
posted by Jon at 8/12/2002 01:37:00 AM
The PowerBlog site is now accessible via the URL http://www.PowerBlog.net (or just powerblog.net if you like).
posted by Jon at 8/12/2002 01:34:00 AM
Sunday, August 11, 2002
I discovered this story on blogs in my print copy of InformationWeek magazine the other day. This is one of the biggest blog-related articles I've seen yet. Too bad PowerBlog wasn't out yet, cause then I could say, "Too bad they didn't mention PowerBlog."
posted by Jon at 8/11/2002 11:17:00 PM
Friday, August 09, 2002
I'm out for the weekend to help move my sis down from Idaho.
posted by Jon at 8/09/2002 03:18:00 AM
Here's the latest screenshot:
posted by Jon at 8/09/2002 03:13:00 AM
Saturday, August 03, 2002
I have removed Windows 9x/Me/NT and Windows XP from the supported operating systems list. Windows 2000 only is currently supported; support for other operating systems will be added later.
posted by Jon at 8/03/2002 11:59:00 PM
Template editing support has been added to PowerBlog in the development environment. (Executing the templates has not, though.)
ActiveX Scripting support has also been added, but currently it is limited in that all variables and objects are flushed between publishing events (e.g. between BeforePublishBlog and AfterPublishBlog). This might change in the future. I will, in the mean time, be adding support for modifying the published output of the articles when the BeforeArticlePublish user script is executed.
posted by Jon at 8/03/2002 05:11:00 PM
The line count for the project so far is 23238.
posted by Jon at 8/03/2002 05:05:00 PM
|