<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Webiva</title>
    <link>http://cykod.com/projects/webiva</link>
    <description>Webiva</description>
    <atom:link type="application/rss+xml" rel="self" href="http://cykod.com/projects/webiva/rss"/>
    <item>
      <title>Search (Finally)</title>
      <link></link>
      <guid>53</guid>
      <dc:creator>Pascal Rettig</dc:creator>
      <pubDate>Mon, 21 Dec 2009 10:22:12 -0500</pubDate>
      <description>&lt;p&gt;A Unified content system has finally come to Webiva. This is obviously a little different from a lot of other content mangement systems (Cough..Drupal...Cough) which start with a centralized content system and add specificity from there. The downside to what we've done is that getting a unified view of all the content in the system was difficult. The advantages, however, were also pretty solid - since each content model could be developed on it's own it was easier to create and work with from both a user and a developer perspective.&lt;/p&gt;
&lt;p&gt;From the developer perspective - create an ActiveRecord model, drop in a mangement interface and the sky's the limit in terms of what you can do without worrying any restrictions your CMS is putting your data model or DB queries. You get to go straight to the metal (or whatever the equivalent is in Rails - tin foil?) From a user perspect - both from a front end user and from a site admin, since each content model defines it's own paragraphs and site features each can be customized according to it's needs. Custom fields, ID's permalinks, custom relationships to other models. All without worrying about the CMS.&lt;/p&gt;
&lt;p&gt;The downsides to this, however, as have already been mentioned, could also be restrictive. No sitewide search (Google did fine in a pinch), no unified sitewide rss, no easy toggle between front end and content editing.&lt;/p&gt;
&lt;p&gt;Well, as of this weekend that's all changed. A content node archiecture has slowly been added to the backend of the system over the past few months, and now it's finally been exposed. The first sign you'll see is the search bar that's in the top right corner of the backend (easily accessible via a Alt-S&amp;nbsp; shortcut key - we're saving Ctrl-S for file saving). This search bar acts as a unified content search for the. Type in a keyword and the system wil run a mysql fulltext search on your content and return a list - either in the form of a autocomplete that jumps right to the page you want to edit or with a full search page that shows some more details about your content.&lt;/p&gt;
&lt;p&gt;&lt;img  src='http://cykod.com/system/storage/3/180/search_bar.png' /&gt;&lt;/p&gt;
&lt;p&gt;As an added bonus we've added in a little Domain-specific-language (I love those) type feature with a plugin architecture that can be extended by modules.&lt;/p&gt;
&lt;p&gt;What this means is that from anywhere in the backend you can type:&lt;/p&gt;
&lt;p&gt;(Alt-S) member:frank&lt;/p&gt;
&lt;p&gt;And the autocomplete will show you the first 10 members that match that name. Select a member, press enter and you'll jump right to that members details. A Similar feature is available for edit: to jump right to a page on the site.&lt;/p&gt;
&lt;p&gt;&lt;img  src='http://cykod.com/system/storage/3/179/search_frank.png' /&gt;&lt;/p&gt;
&lt;p&gt;The second nice feature that this adds is the ability for paragraphs to register themselves with the system, so paragraphs can alert the system that they are displaying a certain piece of content (like a blog post) and in doing so enable a function on the front end of the site that lets editors jump right to the editor page of the piece of content being displayed.&lt;/p&gt;
&lt;p&gt;And the good news? Since the centralized content system was added late in the game and slowly with a lot of planning and forethought - it's both easy to add to your models and completely optional.&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;class MyModel &amp;lt; DomainModel&lt;br /&gt;&amp;nbsp;&amp;nbsp; content_node&lt;br /&gt;&amp;nbsp; ...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That content_node class method adds content node functionality to your model (there's a separate call for content types), and models can continue to be saved with the standard AR methods - although an additional save_content method is added that lets you add in the saving user if the model doesn't include it already.&lt;/p&gt;
&lt;p&gt;Once this code is in and tested - the next step will be adding support for a real search engine (I'm with you - mysql fulltext doesn't cut it - we're leaning towards sphinx at the moment) and exposing the search functionality on the front end.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Groups and File Folders</title>
      <link></link>
      <guid>52</guid>
      <dc:creator>Pascal Rettig</dc:creator>
      <pubDate>Thu, 17 Dec 2009 11:41:29 -0500</pubDate>
      <description>&lt;p&gt;Couple new features made it into GIT today - support for Page Groups and File Folders. Page Groups allow you to easily group similar pages together without adding anything to the page path, making it easier to keep your site tree cleaner by moving old pages or little-used pages into groups. Stuff like promotions, account management, etc the you don&amp;#39;t need to access all that often will live happily in a group.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The second feature that was added was support for linking entire folder or files onto your site tree with a file node. These existed before for individual files, but now allowing a whole folder to be accessible makes it a lot easier to keep a consistent, simple url for important files that you want to expose on your site.&lt;/p&gt;&lt;p&gt;&lt;img  src='http://cykod.com/system/storage/3/178/groups_folders.png' /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stealth Launch</title>
      <link></link>
      <guid>41</guid>
      <dc:creator>Pascal</dc:creator>
      <pubDate>Fri, 02 Oct 2009 14:05:06 -0400</pubDate>
      <description>We stealth launched &lt;a href='http://webiva.org' target='_blank'&gt;Webiva.org&lt;/a&gt;  today and the open-source download of &lt;a href='http://github.com/cykod/Webiva' target='_blank'&gt;Webiva at GitHub&lt;/a&gt;. It had gotten to the point where we&amp;#39;ve been pushing the open source release off for over a year, so it was time to get something - anything - up and released. We need to put in a lot more work on getting the documentation up to snuff, but hopefully now that the ball&amp;#39;s started rolling (albeit slowly and slightly uphill) we&amp;#39;ll be able to generate some internal momentum to get Webiva where it needs to be.</description>
    </item>
    <item>
      <title>Quick Install script</title>
      <link></link>
      <guid>39</guid>
      <dc:creator>Pascal</dc:creator>
      <pubDate>Thu, 01 Oct 2009 09:39:30 -0400</pubDate>
      <description>&lt;p&gt;Wow, release engineering ain&amp;#39;t easy, thank the flying spaghetti monster for Virtual Machines. While I have no illusions of being able to create the perfect installation documentation the first time around, my goal was to pick a popular platform - Ubuntu 8.10 in my case as it&amp;#39;s my Desktop platform - and make an installation script that would handle most of the painful nitty-gritty for getting Webiva up and running.&lt;/p&gt;&lt;p&gt;If I hadn&amp;#39;t been able to boot up a fresh VM with a clean version of Ubuntu I don&amp;#39;t think I would have ever come up with something that was workable, as each time there was a manual step I forgot to add in or a step of the install that I needed to run manually.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The good news is that something that was originally a fairly painful manual process involving setting up databases, adding DB user permission, updating .yml files, and running a few different rake tasks in the correct order, now boils down to:&lt;/p&gt;&lt;blockquote&gt;&lt;dl&gt;&lt;dt&gt;$ git clone&amp;nbsp;git://github.com/cykod/Webiva.git&lt;a href='git://github.com/cykod/Webiva.git' class=&quot;git_url_facebox&quot; rel=&quot;#git-clone&quot; target='_blank'&gt;&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;$ cd Webiva/&lt;br /&gt;$ ./script/quick_install.rb&lt;/dt&gt;&lt;dt&gt;[ And follow the prompts ]&lt;/dt&gt;&lt;/dl&gt;&lt;/blockquote&gt;&lt;p&gt;All the necessary Gems are frozen, including Rails, so there&amp;#39;s no need to install extra ruby libraries (the quick_install.rb script runs a &amp;quot;rake gems:build:force&amp;quot; to rebuild all the gems that need it) All you need to feed into the installation script is the name of a your mysql root user (or are user with similar permissions) and the script will generate all the necessary configuration files, DB users and an initial website database to muck around with.&lt;/p&gt;&lt;blockquote&gt;&lt;dl&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>File Manager Rewrite</title>
      <link></link>
      <guid>15</guid>
      <dc:creator>Pascal</dc:creator>
      <pubDate>Thu, 30 Jul 2009 06:10:35 -0400</pubDate>
      <description>Rewrote the UI of the Webiva File Manager to add in a some sorely missing features this past weekend. 4 big changes that should enable a big boost in productivity.&lt;p&gt;First and foremost multi-file selection that allows you to use both the keyboard and the standard drag rectangle to select more then file at once.  Very useful for moving or deleting a whole bunch of files. &lt;/p&gt;&lt;p&gt;Second big change was adding in details for the selected file. This makes it easy to see who uploaded the file, when and any revisions that the file has gone through, including name changes. The details block integrates with the handler system so module can add in different details and operation that can be performed depending on the file type. Also added in an editor for text files that makes it easy to modify text and source files that are pulled the site&lt;/p&gt;&lt;p&gt;Third big change was a complete revamp of the list view - it now looks a lot nicer and has more detailed about the size, type and creation date of the file.&lt;/p&gt;&lt;p&gt;Last addition was adding an a search. Just click on the search tab at the top and type in any part of the file name get a list of results. Click on the file to automatically jump to that file in the file manager.&lt;/p&gt;&lt;p&gt;Quick video below shows these things in action:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <enclosure type="" length="" url="http://cykod.com/system/storage/3/117/webiva_filemanager.flv"/>
    </item>
    <item>
      <title>Webiva UI: Designed Spatially for you</title>
      <link></link>
      <guid>16</guid>
      <dc:creator>Pascal</dc:creator>
      <pubDate>Tue, 28 Jul 2009 11:47:00 -0400</pubDate>
      <description>One of first things people usually notice when they log on to the webiva administration backend is the use of color. Each section of the website is indicated in it&amp;#39;s own color, and this color carriers over to the title and breadcrumbs for each page and all sub-pages in a section.&lt;p&gt;While it might be slightly overwhelming the first time you see it - I tend to prefer slightly subtler palettes - it quickly becomes very comfortable to work with. The reason for this is that your mind has an easier time remembering where stuff is if it has some additional cues - spacial cues, color cues, size cues, etc. We are creatures of habit and by putting our mind in a comfortable and consistent visual framework it makes it easier to put it in the correct context for remembering how to do what we need to do. That&amp;#39;s why every page in the backend (excepting the in-page editor) has a specific color associated with it as well as a consistent layout and set of bread crumbs, as giving your brain an extra little help will hopefully result in increased productivity.&lt;/p&gt;&lt;p&gt;As an example - I have a few different financial websites that I log into on a general basis, and because I&amp;#39;m slightly privacy paranoid, I don&amp;#39;t have any of the passwords memorized by my browser. I&amp;#39;ve been logging into the same 5 websites for at least past 4 years and I never have to think twice about what username and password I need to use. Except when every couple of years one of the sites will change it&amp;#39;s design, layout or login page. Suddenly I have absolutely no idea what credentials to use. In my mind my username and password aren&amp;#39;t keyed to the name of the financial institution, they are keyed to the site itself. When the site changes, my mind suddenly gets all confused - it doesn&amp;#39;t know what to do - I usually end up having to reset my password.&lt;/p&gt;&lt;p&gt;So, the next time your trying to figure out where that one page you were looking for was in Webiva, just try picturing the color of the page in your head, and that should at least give you a head start.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>

