RapidWeaver Add-ons Version Identifier
One thing RapidWeaver does poorly — at this current moment — is help the end user determine the product version they are using on any given 3rd party add-on. Knowing your add-ons (theme or plugin) version number is critical when asking for support and is often one of the first things the developer will ask you for.
If you know where the add-ons are kept (~/Library/Application Support/RapidWeaver/) then you might be able to determine a plugin or themes version number with the Finder, or if you have RapidWeaver open you can find out a plugin’s version by opening the plugin browser, or if you show a themes package contents and…
Well, I like to have these sorts of things at my fingertips and do as little thinking as possible, so I wrote an AppleScript to gather this information for me no matter where I am or what I am doing*:
-- file types to choose from
set rwTypeArray to {"Theme", "Plugin"}
-- choose from those file types
set rwTypeLong to {choose from list rwTypeArray ¬
with prompt "Which RapidWeaver product type ¬
you like to find the version of?" ¬
with title "Theme or Plugin"} as string
-- logic from result
if rwTypeLong is "Theme" then
set rwType to "rwtheme"
else
set rwType to "rwplugin"
end if
-- get name of hard drive
tell application "System Events"
set diskName to (get name of startup disk) as string
end tell
-- get name of user
set userName to (do shell script "whoami") as string
-- select file from RW directory
tell application "Finder"
set rwFile to (choose file with prompt ¬
"Please select your RapidWeaver " & rwTypeLong & ":" ¬
default location (diskName & ":Users:" & userName & ¬
":Library:Application Support:RapidWeaver" as alias) ¬
of type rwType without invisibles)
-- read version number
tell application "System Events"
set rwInfo to (get version of the file (rwFile as string))
end tell
-- and display it
if rwInfo = "" then
display dialog ¬
"It seems that your " & rwTypeLong & ¬
" doesn't have a version number that I can read. ¬
Sorry.\n\n¬
Would you like me to reveal it's ¬
package contents for you?" ¬
buttons {"Cancel", "Yes"} default button (2)
set rwPath to rwFile & "Contents" as text
open rwPath
else
display dialog "The version information:\n\n" & rwInfo & ¬
"\n\n ...has been copied to your clipboard." ¬
buttons {"OK"} default button (1)
-- copy to clipboard
set the clipboard to rwInfo
end if
end tell
Notes
* If a theme is to have it’s version number read, it must have an Info.plist in it’s package contents. Some theme developers do not include this file. For those that don’t, the script will reveal the theme’s package contents so that you can inspect the version number at the bottom of the Theme.plist file
Download
Get your fresh copy of RapidWeaver_Addons_version.scpt from CodeCollector.net
A better way to CMS with RapidWeaver
There are some tools that come along and everyone just sighs, “How did we ever get along without this?”
Stacks from YourHead Software is one of those tools that made RapidWeaver more complete then we ever knew it needed to be. What makes Stacks so amazing is that it is what ever it needs to be to whoever needs it. So far it’s been a power layout tool of endless shapes and sizes, an ExtraContent device, and RSS scraper, a Twitter badge, a media player… and now, thanks to Joe Workman, a CMS.
A Content Management System (CMS) allows clients to edit their content after their web design/development staff has published the site. So far there have been only a handful of attempts to bring CMS to the RapidWeaver platform; WebYep and PlusKit’s @gdoc(()) implementation. The former requires site licensing and the latter rely’s on Google ever changing Google Docs API.
Now there is a CushyCMS(free) implementation built into a Stacks Library item (or Stacks plugin) available from Joe Workman. By simple dragging a CushyCMS stack onto your stacks page, anything you drop into that CushyCMS stack will be editable on the client side.
Brilliant!
I Give Apples New Safari 4 Beta a Spin
Apple announced today the launch of their Safari 4 beta program that claims to lead the way with innovation. I had to test this claim so I immediately downloaded it and gave it a spin. Here are my findings:
- On initial launch you are presented with the “Top Sites” window in which it appears that Safari scours your history for the most frequently visited sites in your recent cache and then throws up their thumbnails in a Core Animation like black gallery for you to pick from. Selecting the edit button allows you to remove items and make others sticky. I presume you can also add others that might actually be more indicative of your “Top Sites”. Again, in true Apple form, Apple seems to be hinging the success of a product on visual wow factor, but admittedly I could see myself making use of this.
- My next reaction was when I created a new tab and found that, a la Google Chrome, the tabs are on top. Why? While I will most certainly get used to it, what is the actual reason for this? I can’t find and difference in their functionality apart from the fact that you can only drag them about from their corner. Aside from that you can still drag them, move them from window to window, create a new window with each tab… there is one option I hadn’t noticed in previous version, “Add bookmark for these X tabs”. Is that new?
- Coverflow in Safari… there have been a few plugins to address this in the past. I guess they are history now. Do I need Cover Flow in Safari? I don’t need it iTunes or Finder so I probably won’t use it here either. But that said, it must be a popular enough technology if they keep throwing it in to their software.
- History search. Now that I like! I have always found searching the the history in the bookmarks folder to be painful and unproductive. This history search is insanely fast and (in Cover Flow form) even shows you screen shots of the sites that match your search terms.
- It claims to be faster, using the Nitro Engine. It could be but browsers and web technology today is getting so fast I would be hard pressed to notice the difference. It does seem to be faster overall but am I reacting to the guts of a finely tuned OS X Cocoa application or the page load? One note I will make about making browsers faster (and Safari 3 is already guilty of this), they cache things… unnaturally so which can make web development a nightmare. Safari 3 already caches it’s javascript and images in ways that cause web developers to have to reset their browsers all too often just to get an accurate response on their new projects. And faster also means pre-load, again which Safari 3 is bad for. Safari 3 will scour your main CSS file in search of things to load (like background images), whether or not that thing is actually needed or even being used. I hope Safari 4 handles this a little better.
- The newish developer tools are nice (if your weren’t already playing with them in webkit), but I don’t know… it’s still not FireBug. You still can’t select code in the element window! How good is debuggin if I can’t edit what’s there or even copy and past it to a text editor? Seriously? As far as developer tools, these will give a glimpse into how your page is working, but they’re not much good for anything else.
- The full page zoom could be useful (hopefully not for a few years for me yet), but wow does it ever slow things down. Zoom in once and try page scrolling… not so fast now.
- I love, love, love the new address bar! If I am going to interface with browser in any way, it’s through the address bar so this improvement is quite welcome. Basically when you start typing in the address bar you are presented with much the same information your were before, but it’s clearly defined in two categories; history and bookmarks. In both cases it presents you with the site title followed by the URL which makes it very easy to get your bearings.
- The search field is now really slick too. It’s along the lines of Inquisitor, offering you suggestions and previous search queries. Very nice!
- CSS Animation, CSS Effects, CSS 3 Web Fonts… just more things to tease us web developers with. Stuff we won’t be able to use in the real world until all other browsers catch up. We can always dream though…
Overall, I think this is two things combined; a promising look at where web browsers should be and a sobering reminder of how much waiting for other browsers to get there will suck.
Stacks plus ExtraContent; it's a new Stacks Library item
So did you here the news? Possibly the most exciting thing to happen to themes, plugins and RapidWeaver all at one time! Back a couple of months ago we introduced you to ExtraContent, the new way of getting more out of the available RapidWeaver content areas. And a little while ago, YourHead Software introduced Stacks, a new way of building your page layouts in RapidWeaver. Then recently YourHead Software announced the the API that goes along with Stacks so that developer can build custom stacks to add to your Stacks Library. Are you with me here?
So what do you get when you put it all together? A custom stack made for ExtraContent enabled themes! Now you can access your ExtraContent areas of your ExtraContent enabled themes from the comfort of the Stacks interface. Utilize the layout power and elegance of Stacks to build exceptional ExtraContent layouts without having to so much look at a snippet or piece of code.
Here is the best part, the ExtraContent Stacks plugin is free. All you need is Stacks, and ExtraContent enabled theme and this custom ExtraContent stack and you have a world of possibilities in your hands.
Learn more about the ExtraContent Stacks plugin here, watch the tutorial here, download the ExtraContent Stacks plugin here and get YourHead Softwares Stacks for RapidWeaver.
YourHead launches Stacks 1.0
Fellow RapidWeaver developer, Isaiah of YourHead Software announced today that Stacks, a fluid layout plugin for RapidWeaver, is now official, hitting the big version 1.0. Those of you familiar with YourHead’s previous heavy hitting page layout tool, Blocks, will immediately recognize what this RapidWeaver plugin is all about, but the two are as different as night and day.
Don’t get me wrong, Blocks is a brilliant feat of plugin engineering and is the life blood of literally throngs of RapidWeaver users unable to do such layouts on their own. But it’s not a plugin that ever fit my web design sensibilities. The web is fluid, ever changing, growing, shrinking… for me, Blocks was too rigid.
Enter Stacks; a completely fluid, flexible, drag’n'drop all about layout tool for RapidWeaver that can generate oodles stacked up, blocked up, split up, embedded here and there kind of page layouts that only a pocket full of hand coded snippets could achieve perviously. Just like Blocks, Stacks allows to drop in text, HTML, images and whatnot, but then it allows to stacks onto stacks and those onto more stacks. You can make columns, columns in columns, columns where one column is an image, one is some code, one is some text, etc… drag that under some more columns… before you know it, you’ve got your very own 960 Grid System built into a RapidWeaver plugin.
If you are looking for the ultimate in flexible page layout with RapidWeaver, go check out Stacks. There are some great movies demonstrating the raw power of it and there is also and Stacks API if you’re interested in creating a custom Stacks library or two.
Life As a Theme Developer
Have you ever wondered what a day in the life of a professional RapidWeaver theme developer is like? Wonder no more because I am about to tell you.
02-18-09 07:22 – started writing this which will end up being a blog post on seyDoggy.com
02-18-09 07:23 – opening up Mailplane.app to have a gander at what support has crawled in overnight.
02-18-09 07:28 – popping in the the Realmac Software forum to respond to a thread I was notified about… nothing for me to add.
02-18-09 07:40 – helped potting training daughter go to the potty.
02-18-09 07:52 – responded to an email from the seyDesign Member Group.
02-18-09 07:53 – reacted to a Twitter follow request… followed.
02-18-09 07:56 – Twittering.
02-18-09 08:02 – responding to another Realmac Software forum thread.
02-18-09 08:04 – sifting through a bunch of press releases that I subscribe to.
02-18-09 08:18 – responded to a comment on seyDoggy.com blog.
02-18-09 08:19 – moving over to the support email account now. Checking the spam box since Google seems to deem all of my real support requests as Spam.
02-18-09 08:21 – yup, 7 messages caught in the spam box.
02-18-09 08:22 – opening up Parallels to confirm one users report of an IE bug with one of my themes.
02-18-09 08:24 – realizing that their complaint has more to do with screen size than anything else. It’s not a bug, me thinks. Keep testing.
02-18-09 08:28 – just got a wrong number on the support line. “seyDoggy who? I’m trying to call my sister.”
02-18-09 08:38 – yup, IE6 issue was just the end users window size. I like that kind of support.
02-18-09 08:50 – support taking longer then I hoped. Need some tunes.
02-18-09 08:59 – support is done.
02-18-09 09:00 – opening my calendar (a Fluid.app SSB of Google Calendar) to see what’s on the plate. My calendar is my mental mapping tool.
02-18-09 09:19 – more forum posting.
02-18-09 09:20 – back to calendar, deciding how long it’s been since I invoiced this one client before deciding to do more work for them. Have to be extra cautious in todays economy, not to get into too deep with any one client.
02-18-09 09:21 – going to do some site updates (in TextMate) for said client.
02-18-09 10:27 – just answered someones questions about M Cubed Softwares Code Collector Pro.
02-18-09 10:48 – syncing client changes via Panics Transmit.
02-18-09 10:57 – hmm… forgot to update the sitemap… and all the french <title> tags… ugh
02-18-09 11:06 – sitemap updated, french <title> tags updated, re-syncing.
02-18-09 11:26 – fresh coffee, looking at my calendar… what next…
02-18-09 11:28 – checking my @bugs tags in TaskPaper to see if there are any pressing bugs I should tackle… one in seyDoggy bloop! but it’s going to have to wait until I have the time for some extensive rewriting. It’s only an issue with one plugin so it’s not really a bug as much as it’s a compatibility issue. Moving on…
02-18-09 11:33 – continuing with Med Designs Bubblegum.rwtheme update. Adding some really cool new features to it. Checking my todo list within the theme to pick up where I left off on Monday.
02-18-09 11:54 – force quitting RapidWeaver after I jammed it up with a tricky Theme.plist move.
02-18-09 12:22 – commit current set of changes to the rwtheme package go make lunch.
02-18-09 12:54 – exercise… it’s important to get away from the office chair for a bit so you don’t develop deep vein thrombosis, but getting and walking about is boring. So I exercise; 50 pushups, 25 crunches, 20 lying-on-my-back-leg-lift-thingies, 20 of the same, but lying on my side, and then again, but on my tummy. Not only is it good for preventing DVT, but it helps my core compensate for slouching at my desk for hours at a time.
02-18-09 13:17 – back to Bubblegum.rwtheme update.
02-18-09 16:04 – committed a whole whack of changes to the Bubblegum.rwtheme. Time to wonder about the house for a stretch and maybe splash some cold water on my face.
02-18-09 16:08 – scheduled in two custom jobs, one for Friday and one for Monday… sigh.
02-18-09 16:23 – feeling refreshed. Time to get back at it. But it’s time for 10 minutes of fun; time to read a chapter of jQuery in Action.
02-18-09 16:45 – Well it’s time to call it a day and go embrace the inner chef in me. I hope you’ve enjoyed peering into a day in the life of a professional RapidWeaver theme developer.
Use RapidWeaver's %pathto()% syntax in javascript files
UPDATE (2009-07-17): We have updated the code to account for those who were having trouble understanding the reg-ex nature of rTrim. The new code and instructions should make it harder to mess up your path.
It may take me a while sometimes, but there is one simple truth about my workflow, I always strive to have the most efficient way of getting things done. This is especially true in RapidWeaver theme development. Developing themes for RapidWeaver is not like standard web design. You have no way of knowing how each user will structure their site, what plugins they’ll use, what they’ll add to their pages… All of these uncertanties leave us as developers scratching our heads sometimes, trying to sort out ways of dynamically including things and stuff without the end user being able to break it.
PHP would be the obvious choice here, but we don’t have the luxury of knowing what the end users hosting environment will be and whether they could, or even would be willing to support a host of PHP functions. So the next best thing is javascript; yes it’s a little slower and it does depending on the end user having javascript enabled, but the ubiquity of javascript has never been as great as it is today.
One thing that has plagued RapidWeaver developers for some time is how to utilize RapidWeaver’s %pathto()% syntax, the bit of code that allows RapidWeaver to imprint the end users chosen common file path, in any other file other than the index.html template file. For any javascript file that has required the inclusion of another file, we’ve previously had to fill our html with scripted variables for each file, each using the %pathto()% syntax and so forth until we have built a separate path to each file from outside our javascript that actually requires it. Since RapidWeaver will only write the path to files it can actually find, you need to do this for each and every file.
Today I had an AH-HA moment while in need of multiple paths to be defined for use in various javascript files. I decide to write a small bit of code that grabs RapidWeaver’s %pathto()% syntax while it chases a real file. Then I strip out the actual file name, and KABLOW! you have a common file path in the the form of a javascript variable, ready to be used in any javascript file you like.
DeliciousSafari 1.7
Of all the wondrous plugins available for Safari my all time favorite has to be DeliciousSafari, bringing the cloud convenience of Delicious.com (used to be del.icio.us) to Safari at the click of a menu item. I had some correspondence with the developer Douglas Richardson back in May about how he could make a few improvements to the plugin, namely spell checking and tag search.
Well as of September 2nd, version 1.7 of DeliciousSafari now includes spell checking and a couple of other cool features. Tag search didn’t make it, but a way to manage your favorite tags is now available and is really all I was looking for with tag search anyhow. DeliciousSafari now supports up to 1000 characters in the notes field, just like the new Delicious.com, so you are no longer confined to those teeny-tiny 250 character posts, which is great news for a wordy guy like myself.
If you are a heavy user of Delicious.com then DeliciousSafari will be a good addition to your Safari arsenal.
Welcome to the new RW Updates
At long last I have finally updated this old beast of a website. It started out as more of a personal thing, wanting to keep all my themes and plugins up to date without having to search everyones blog for them. It’s become a fairly popular resource from what I can tell and I know quite a few people rely on it.
So it was about time I got around to redesigning it to be more inline with todays RapidWeaver 4 (as opposed to the now stale RapidWeaver 3.6 look it had been carrying for a while now). Refreshing the design wasn’t the only thing I did though, I have also cleaned up the code as best I could, removed all of the iframe elements in favor of objects and tweaked a big chunk of the css to make things a little prettier all around.
I hope you like it.
Old Friends on New Horizons
In late 2005 Chris Pavlicek (of Varsis Studio) and I started talking about collaborating on RapidWeaver themes. We both had something to offer the other; Chris with his unmistakable design style and willingness crack any code and me with my promotional skills and desire to make clean organized and effective code. By mid 2006 we were putting out some pretty revolutionary stuff.
After 3 years and many themes later, Chris and I are talking again. This time it’s about me taking over his theme library, the one he has (or used to have) at Varsis Studio. Chris is really focusing hard on his RapidWeaver plugins which as any software developer will tell is very demanding on his time. Before the new seyDesign.com was done we were talking about this and working out the small details.
Today we’re starting to see the results of all that talking. I was able to release Varsis Studio Fade on seyDesign.com. Fade is a RapidWeaver theme that Chris did up for a pro developer bundle back in January of 2007. I’ve spent a few weeks on it, gutting from the inside out and filling it full of new features.
The rest will follow over time, interspersed with a few seyDesign originals, and who knows, maybe even another Varsis/seyDoggy collaboration.
