Introduction
Creating a blog from scratch is not a clever thing to do. There are too many out there already (DasBlog
, Blogger
, WordPress
).
Blog is the new Hello World. However, having played with a couple of them over the years, I found myself frustrated - some being too simple, some too complex. In the end I wanted a blog specific to my evolving requirements. I also wanted an online note-taking system that would allow me to categorise my personal notes in a hierarchical/journal/wiki structure; and then to move a select few into a public blog format.
History
- 02-Apr-2009 > Initial Version
- 03-Apr-2009
- 04-Apr-2009 > Alpha Version
- Content-Disposition for Attachment Downloads
- Browse By Tag
- Indented Lists prefix with oo and ooo
- Article Single View
- Push blog-roll to DomainRoot
- Login & Security with Cookies.
- I tried to use
Response.Cookie.Add(new HttpCookie(...)) but failed while setting it directly worked Response.Cookies["XXX"] = "YYY";
- Deployment Scripts and Cleanup
- Options for INLINE images { Frame }
- Inline Code Snippets
- Google analytics
- URL Rewriting also for Articles IDs; Article.aspx?ID=XXX -> /Article/XXX
- 9 to 14-Apr-2009
- Refactor Visibility to Channels, updated security appropriately
- Admin Features
- Edit Article
- Rename Article files by ArticleID
- RSS syndication, with the aid of the open source library rss-net
- 15, 16-Apr-2009 to present
- Encrypt/7Zip local files
- Added google.com verification
- Add a favicon
- Filter pages for each page (Default, Browse*, Article, RSS)
- Limit the number of items on the home page to 20
- Google search optimisations
- Niggling bugs (missing images, attachments missing, etc)
- Article Comments
- Logoff
- Journal Features
- Journal View (Twitter-style, but integrated to blog and wiki)
- Added Twitter REST integration, a post to the journal of type=Twitter will automatically update twitter
- Added Search functionality
Nice to haves
- Multiple Renderers
- HTML
- Text
- WPF
- Summary View
- Web Services for ArticleRepository
- Security
- Support for large data, many files
- OpenID

- Wiki Functionality
- Differentiate Wiki URI markup vs blog. Ie a wiki link will not contain the | found in normal links
- Wiki-links that do not exist can be created by clicking on them
- Wiki/Blog are stored seperately, can articles can be converted easily. They share the same XML format.
- When rendering a blog article, wiki-links are ignored.
Google Search Engine Optimisations
- Added link directly
- Added google.com verification
- Added: Add google.com sitemap
- Added URL Rewrites to capture the old blog URL from google. TODO: Test after deployed live
- Created a google analytics account
- Updated by Blogger account to point back to the new site
- Blogger used weblogs.com to ping, so I registered for that - the site says that I fail RSS validation.
Notes & Findings
- HOWTO make a UL-tag list display horizontally
- CSS padding vs. margin
Fig. 003 -- CSS margin vs. padding
- C# DateTime Formats
- HOWTO encode HTML with a static function?
HttpUtility.HtmlEncode("Encode This String");
- Added Google WebMaster Tools
- RSS Specification is maintained by the RSS Avisory Board, they also have an online RSS validation tool, which I currently fail
- I always forget how to escape/encode a System.String to the appropriate HTML-friendly string. Answer: Use
HttpServerUtility.HtmlEncode the only proble being this is not a static method. You can retrieve it with {{{HttpContext.Current.Server.HtmlEncode}} but this will only work with a web app.
- Complete list of HTML escape characters
- URL Rewriting did not work. See
- Getting URL Rewriting working was not easy.
Concept: Journal
- I want to be able to make twitter like updates (which may get posted to twitter automatically)
- I want to be able to jot down very fast notes (which may later become blog or wiki posts)
- I want to create a list of books, ordered by time using the book:// or book-name:// notation
- I want to create a link dump of interresting read (this should have the ability to retrieve the TITLE of the URL automatically)
- The site (new/changes to pages) should be published as news in the Journal