2 New Projects

I forgot to mention that I have 2 relatively new projects launched in the Projects section of this site:

Check them out and let me know what you think.

Customizing WordPress 2.5’s Admin Panel

While I was poking around in a pre-release version of WordPress 2.5 (which has been slightly delayed for actual release), I found out that the Admin panel (everything under /wp-admin/) is now pretty easily customizable through CSS.

Basically what they’ve done is extracted all the color-based information from the admin CSS files, and put them into pluggable files called “Admin Color Schemes”. The cool bit is that it looks really easy to add your own! It looks like the Admin Color Scheme is one of the last (core) stylesheets loaded into a page as well, which means you’re really not limited to only changing the colors.

So how do you do it? Here we go:

  1. Download this plugin: WP Admin Color Schemer 1.0
  2. Install and enable the plugin, which will look for CSS files inside its own “/schemes/” directory (/wp-content/plugins/wp-admin-color-schemer/schemes/*.css).
  3. Create your own CSS file and drop it in that directory. The filename of the CSS file should be a lower-case, letters/numbers only, dash-separated version of the name of the scheme. For example, a scheme called “Billy’s Amazing Scheme” would be in a file named “billy-s-amazing-scheme.css” (replace everything that isn’t a letter or a number with a dash, but only ever have a single dash at a time). Make sure the first line looks like this (with “My Admin Scheme” being the name you want to give your scheme, and each hex value representing one of the main colors used in your CSS palette. This must be the first line of the CSS file, be commented out as below, and must contain commas, but the spaces are optional):
/* My Admin Scheme, #000000, #111111, #222222, #333333 */

Once you’ve done that, go to your profile page within the Admin Panel, and you’ll see your new scheme and should be able to easily select it. When you hit the Update button, your Admin Panel should take on the new colors immediately.

If you’d like to use one of the built-in Admin Color Schemes as a starting point, then they live at /wp-admin/css/colors-classic.css and colors-fresh.css.

Now you can easily style your Admin Panel to match the rest of your site (and hopefully Theme authors out there will start packaging Admin Color Schemes to match their Themes).

MyBabyOurBaby Clone Request

Apparently we’re doing something right, because there are already people who want to copy our site! I found this listing on ScriptLance by doing a search for us to see if we were showing up in Google. What really surprises me is how low some of the bids are — trust me, it took a lot longer than 14 days to make!

I suppose imitation is the greatest form of flattery right? So we should take this as a compliment?

Stanso: Simple TAgged Note Storage Online

Background/Motivation

In amongst some work that I’ve been doing recently, and looking at my own work habits and trends, I realized that something super-useful to have would be a very accessible “microcontent storage system” where you would be able to store small snippets of information, tag them, have them fully-indexed and searchable using a simple, slick interface. Basically, I’m seeing this as del.icio.us, with more space for storing text, and no requirement for a link.

General Idea

So I see this as a series of “items”, stored with a note/body item of some sort, which would normally be text. In addition to that, you’d have an optional title and link/URL. You’d have a list of tags/keywords, and perhaps allow for arbitrary meta-data. I like the idea of the meta-data because it makes the system simple, yes extensible in ways that simple tags don’t provide (easily).

The UI would probably be largely based around search (a la Google), and would provide a list of items recently added as the default result-set. When searching, we’d probably use AJAX to make it “live search” to aid progressive discovery. I’d like to be able to save a search as well, and have that available as a navigation item of some sort (e.g. All items tagged “work” and “urgent” but note “done”). Adding an item should be a matter of clicking a link, then typing a few items and hitting a button. You’d also want a bookmarklet to be available so you could do this from anywhere. Perhaps even a Firefox plugin a la the del.icio.us one.

I’d also want RSS feeds available, specifically “recent items added” and “all items tagged x”.

Privacy controls, the ability to share items (or tags) and some other things like that would come down the line. I’d specifically like to be able to invite people to access my stream, and grant them the ability to see only items tagged with certain tags.

From here, we would also want a robust API so that we could plug the system in as the storage/backend behind any number of other apps. I see the use of POST to create new items, GET being able to retrieve a simple XML description of an item, PUT updating existing ones, and DELETE removing one. Standard REST stuff. The interesting thing here is that there’s no real reason why you couldn’t do it all with namespaced RSS (2.0) or Atom. I think that’d be a good approach because the basic structure is there, you just need to add some meta-data options which is no real problem.

The API is where the real fun lies – this could be the Twitter of… everything else. I see it as a generalized micro-content publishing system. Two immediate things that I think would be fun to plug on top of it (perhaps as paid services?) would be an email reader and an RSS reader. Basically these 2 systems would periodically check email/RSS feeds, then parse new items, tag them (using existing tags or some style of content analysis) and then POST the new item to your Stanso stream. It’d be interesting to see your email, notes, RSS feeds and potentially other things all mixed in together, tagged using a common scheme etc. Who knows where it could go? This could be a todo list, an email client, a news reader, a blogging platform, a status system, a bookmark repository, a password storage tool, a file manager, or all sorts of other things.

Technology Options

Obviously this could be built very simply using something like Scuttle (del.icio.us clone), or just from scratch using the normal LAMP stack (or RoR, or whatever). Another option I’ve been pondering is Amazon Web Services. Of particular interest are SimpleDB (still in beta, waiting on the list…) and potentially S3.

SimpleDB allows you to store a very loosely-structured set of data around a “record” in a fast-lookup, easily-queryable environment. Seems perfect for the task. It could handle arbitrary meta-data per item if you wanted, and could handle unlimited tags per item easily as well. I think S3 could be an interesting addition if you added the ability to upload a file (with tags etc), which was sidelined into S3, then automatically linked (via the URL field in an item) into your Stanso stream.

Another possibility would be to use something like WordPress to build this, since it actually handles a lot of elements of the system already (post title, body, tags, meta-data, the general blogging/posting flow). Having worked with WordPress a lot in the last 6 months though, I’d have to think that it was overkill for this, and provides a lot of other (wasted) functionality that provides more overhead than is worth adopting. Probably taking something like Scuttle and modifying it would be a best bet for a prototype at least. If building on AWS then you’d have to get pretty custom.

Possible Implementations/Features

  • Simple note storage — you post small notes and snippets to remind you of things, or to hang on to passwords etc so you can find them later.
  • Feed reader — feeds come in, are tagged and added to your stream, you navigate by tag or by “recentness”.
  • Email client — email is pulled in and automatically tagged based on content analysis, sender details, etc. Being able to add your own tags would be awesome.
  • Todo list — post items that you need to do, tagging them as “not done” perhaps. When they are done, you remove that tag (or just delete the item).
  • Micro-blogging — post small updates on what you’re doing, what you’re thinking etc, then publish it out from the system via the “recent” RSS feed
  • Bookmark storage — as per del.icio.us, minus all the social stuff.
  • File manager — with file uploads going to S3, and meta stored in Stanso, you could store things in any “structure” (via tags) you wanted.

The cool thing is that you could actually do a number of these (if not all) at once, since you would have the ability to segment out your storage/retrieval of items based on tags as well.

Of course, after I started writing all of this, I realized it was just a slimmed down version of HTFS… so yes, I really should be building that system 🙂

MyBabyOurBaby is officially live!

As you may know, I’ve been working on a project for a while now, which has finally gone live, with open registrations. That project is My Baby Our Baby.

The idea of the site is to give parents and families a secure place online where they can compile a journal of memories for their children. We’re focusing primarily on photos right now, but hope to include video and audio as we progress. Here’s a couple of the things that I think make MyBaby unique or worth a look:

  • Unlimited uploads (backed by Amazon S3)
  • You choose to have your book open to the public (for reading), or completely invite-only.
  • Once they join your book via invitation, other people can add their own photos and stories to your book as well
  • We have some really beautiful book themes (and more coming) care of Ray Hernandez/Stoodio
  • We’ve created a forum on the site as well to allow people to interact across books (anyone who’s a member can post) and ask each other questions etc.
  • You can try it out for free!

Right now, people get 3 weeks to try it out for free, after that, if they like it, it’s $8 a month to continue using the service. This covers you for as much as you (and all the members of your book) want to upload. You can pay for more than a month at a time and get a discount as well. We’re trying out a slightly different method of payment where subscriptions aren’t actually available in a traditional set-your-details-and-forget way. What we’re doing is allowing anyone who’s a member of the book to contribute by paying for as much (or as little) as they like. We’re hoping that rather than the parent having to pay every month, other people in the family will chip in and cover the cost of keeping the book running if they see value in it.

Ray and I are really excited now that it’s live, and very nervous to see where it goes. We’ve spent a lot of time working on this and refining things, so it’s great to finally have some other people using it.

Now for the real work — keeping it up and running and constantly improving it for our new users!

AvantBlog Now Supports Titles

Now that I have a new Atom API library to play with (thanks to the development of webpad), I threw together a new copy of AvantBlog in about 40 minutes.

This version supports titles (so everyone can stop asking now!) and I improved some of the messages a little as well. There is also a new feature which allows you to specify the size of the edit fields so that you can maximize the use of your device’s screen-size.

To specify a custom size, add ?w=XX&h=YY to the end of the URL in AvantGo (or your handheld’s bookmark), where XX is the width of the main post body (and title field) and YY is the height. These values should be somewhere in the range of 10 – 30 each. You will need to play around to see what’s right for your device, but as a hint; my old Palm Vx used 17 and 6, my HP iPAQ uses 20 and 11 to get the biggest space available.

Happy Posting!

PS: For those who are interested, I’m also putting together a new ‘AvantType’ that will operate exactly as AvantBlog does, but post to a TypePad blog!

webpad 3.0 Beta Testing

Tonight I have a few more things to polish off (including writing the installation documentation), and then I will start going through my suite of tests for webpad. Once my round of pretty intensive tests are done, I have a couple people who are going to be helping me out with some beta testing. I’m really glad they are able to do this, because it means I can test webpad out on some other server installations before releasing it into the wild, and hopefully sort out any potential problems before anyone else has to deal with them.

I’m expecting to release webpad next week, if not this weekend!

Really Getting Close

Tonight I secured webpad a little more heavily, standardised some more of the operations across different sections and generally tidied things up. I also added ‘delete post’ functionality to the currently supported blog systems (blosxom, Blogger.com, TypePad and LiveJournal), and that’s looking pretty slick.

Part of add the delete functionality required me to write out the (very, very simple) plugin API for adding and removing tools to the toolbar. I may be a little biased (and not at all modest), but I think it’s pretty cool 🙂 More about plugins later – but basically webpad 3.0 supports plugins through a “My Plugins” section, so hopefully people might even write some new features for it, allowing access to more external sources of text to edit!

So, I can hear you asking; what’s left? Well:

  1. MovableType Support (open, edit, create, delete)
  2. WordPress Support (ditto)
  3. Update a few interface niceties (like the ‘About webpad’ dialog)
  4. Write the new Help Manual, which is a lot different to the last version, and will be a lot bigger
  5. Update the webpad project page
  6. Fix a scrolling bug in Mozilla (fixed on PC, needs a tweak for Mac)
  7. Pretty up some of the error messages
  8. Thorough system testing before release
  9. Packaging up with some instructions on installation

Oh yeah, and of course, I’m doing the whole dog-food eating thing and as usual, this is posted with the very latest version of webpad (from FireFox), using a couple of the tools and bits and pieces and it’s all looking good.

webpad 3.0 Closing In

Seriously, this time I actually mean it 🙂 webpad 3.0 Personal Edition is really close to being available for beta download. I’m really excited about this version, I think it has some awesome features and is an excellent upgrade from webpad 2.0 (it feels like a whole new product is has so much new stuff!).

Keep an eye on the project page and sign up to the mailing list to hear as soon as it’s available!