text:  Nullcreations.net Viviti 2009-06-10T13:08:00-07:00 Nullcreations.net tag:nullcreations.net,2009-06-10:/entries/35473 AJAXify your Viviti Site 2009-06-10T13:08:00-07:00 2009-06-10T13:08:15-07:00 <p>I recently noticed an <a href="">interesting Viviti site</a> that utilizes the built in <a href="">jQuery</a> and some simple JavaScript to make all the pages load via AJAX, and thought I'd quickly do a write up for anyone else using <a href="">Viviti</a> who would like to do the same thing.<br /><br />Since the main content area of Viviti is inside a div#location_0, all you have to do is hook into the primary navigation links and use the <a href="">jQuery load function</a> to replace the contents of #location<em>_</em>0 on the current page with the contents of #location_0 on the target page. Adding a <a href="">slideUp</a>/<a href="">slideDown</a> with some callbacks makes it have a nice transition as well.<br /><br />The JavaScript to do this is: </p> <pre class="highlighted_code highlighted_code_jquery_javascript">$j('#primary_navigation li a').click(function() { loadPage( $j(this).attr('href')); return false; }); function loadPage( page ) { $j('#location_0').slideUp(300, function() { $j('#location_0').load( page + ' #location_0 > *', function() { $j('#location_0').slideDown(300);}); }); } </pre> <p> <br />You will need to add this in a script tag to your Viviti theme or as an external JavaScript file. YuAo's script is a bit more complicated and adds a loading indicator as well as dealing with url hash stuff so bookmarking and history works as well, you can check it out at <a href=""></a>. </p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2009-05-14:/entries/35020 Memcache Problems with Rails 2.3 and Litespeed or Passenger? 2009-05-14T00:11:00-07:00 2009-05-14T00:12:55-07:00 <p>This week was a fun week of code spelunking. </p> <p>Turns out, ActionController::Session::MemCacheStore runs through all the servers and checks to see if they are alive when the session store is first setup from your environment.rb. This causes it to connect to the Memcache server(s) and if you use a web server like <a href="">Litespeed </a>or <a href="">Passenger </a>that fork from a parent process, you end up with multiple processes sharing the same socket.</p> <p>This is bad because then your child processes trip over each other in their eagerness to get data from Memcache. This can result in all kinds of strange behavior from errors to having incorrect data returned. The Passenger documentation does a good job of example of <a href="">showing an explanation of the problem</a> (and a solution for those of you using Passenger).</p> <p>The easiest way to solve this is to ensure your parent process disconnects from Memcache before the fork occurs. In Litespeed this means editing RailsRunner.rb - specifically adding a call to <strong>reset </strong>to RailsRunner.rb, right before the existing call to <strong>ActiveRecord::Base.clear_active_connections!</strong> (which is there for the same reason). To do this we have to create a Memcache client and tell Rails to use it, otherwise there is no clean way to access the instance it will create.</p> <p>In environment.rb:</p> <pre class="highlighted_code highlighted_code_ruby"># you might have to require 'memcache' SESSION_CACHE = MemCache.new( 'myserver.com:11211', :namespace => 'myapp_session' ) config.action_controller.session_store = :mem_cache_store config.action_controller.session = { :cache => SESSION_CACHE, :key => '_my_app_session', :expires => 1.hour}</pre> <p> <br />Then in Litespeeds RailsRunner.rb add <strong>SESSION_CACHE.reset</strong> right after where it does it's <strong>ActiveRecord::Base.clear_active_connections! </strong><br /><br />This should do the trick. Monkey patching the MemCacheStore to reset after doing the alive? check (or not doing the check) should also fix it.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2009-04-29:/entries/34755 Rails 2.3 count with named scope 2009-04-29T11:22:00-07:00 2009-04-29T11:22:54-07:00 <p>There is a <a href="">known bug </a>in Rails 2.3 that is worth being aware of, count no longer works on anything using named_scope. There are some patches and a fix available in the ticket there and it looks like it will be resolved in the next version... but for now, beware!</p> <p>also, I'm not sure when but somewhere between rails 2.1 and 2.3 they changed the (partialname)_counter back to it's long lost behaviour of the index starting at 0 (it was changed to 1 awhile ago, and is now back to 0). Please, make up your mind!</p> <p> </p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2009-04-29:/entries/34751 BC Single Transferable Vote (BC-STV) 2009-04-29T08:20:00-07:00 2009-04-29T08:23:33-07:00 <p>In 2005 we had a chance to change the way our electoral system works. It failed because when most people arrived to vote they didn't know what they were voting on. Even then, it was supported by 58% of the voters - but 60% or higher is required for it to pass. On may the 12th we get another chance at it, and this time there is a lot more information available. I highly recommend checking out the <a href="">stv.ca</a> site and get informed!</p> <p> For the lazy, the BC-STV is a system proposed by the <a href="">Citizens Assembly</a>, 141 members of the public drawn from the voters list. It's not a new or untested system, STV is used by a lot of other countries including Australia, New Zealand, Ireland, Northern Ireland, and Scotland. It's a system that will reduce the effects of "strategic voting" and bring a more fair representation into our parliamentary system. </p> <p> Spend some time before you vote, read the <a href="">Myths</a> and the <a href="">faqs</a>. Everyone always complains that the system doesn't work... Let's stop complaining and change it.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2009-01-21:/entries/9352 Mid Island Web Workers Group 2009-01-21T11:57:00-08:00 2009-01-21T12:04:10-08:00 <p>Last night was the first meeting of the newly created Mid Island Web Workers Group at the <a href="">Longwood Brewpub</a> in Nanaimo. There were a lot of familiar faces as well as a bunch of new people, it was fun to meet some new people from the area. If anyone who reads this is living in the area, you should come to the next meeting! There is a group on facebook called 'Mid-Island Web Workers Users Group' you can join that has information on when meetings are, and I'm sure there will be a non-facebook site somewhere in the near future.</p> <p>The description of the group on facebook is 'A users group for people working with Web/Internet technologies in the mid Vancouver Island region.', It's been started and organized by <a href="">Jim Rutherford</a> and the focus is on getting together a group of people from all languages and aspects of internet tech - designers, programmers, etc. </p> <p>There is a newly created <a href="">google group</a> as well!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-12-02:/entries/6512 Reality Check, Mr. Harper. 2008-12-02T10:41:00-08:00 2008-12-03T13:14:40-08:00 <p>I'm getting sick of people calling what's going on in Canada Undemocratic. I'm looking at you, Harper.</p> <p>What Harper does not seem to realize is that in the Canadian Parliamentary system, we do not vote for him, or his Government. We vote for local MP's who then we send to parliament. The Governor General, who is our head of state (that's right Harper, not you) then asks a party leader to form a Government. Her job is to ensure that our parliament works. If the party in power loses confidence of the Parliament, it is then her duty to dissolve the acting Government and call upon another leader to form a new Government that will work.</p> <p>This is not Undemocratic, it's simply how our system works. We elected a Parliament, and it's now her job to make sure a Government based off it works. If that means changing who is in charge, that's what she has to do. There is no coup here. The MP's that each Canadian elected are still going to be serving in the capacity they were elected for, that won't be changing.</p> <p>It's sad, and a little pathetic, that the Conservatives are resorting to <a href="">illegal recordings</a>, <a href="">propaganda</a> (Radio ads? comon, and who's paying for those?), <a href="">slander</a>, and <a href="">outright lies</a> to try to cling to power in a government where most of the Parliament does not agree with them. And then they have the arrogance to call the opposition (which for the record, is every single political party in Canada except the Conservatives) Undemocratic.</p> <p>What would be Undemocratic would be allowing a leader who has lost confidence of the Parliament to continue running the country. For a good interview about this, check out part 3 of <a href="">todays 'The Current'</a> (it's at the bottom).</p> <p>Don't let the door hit you on the way out, Mr. Harper. </p> <p>Maybe after you have more time on your hands you should do a little reading on how the Canadian Parlimentary system works.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-12-01:/entries/6474 Viviti enters Open Beta 2008-12-01T17:31:00-08:00 2008-12-01T19:48:25-08:00 <p>We did it! Today marks the first day of open beta for <a href="">Viviti</a>, and we are pretty excited about it. Along with the open beta, <a href="">Shawn</a> did a great job on the new design for the front page so it looks pretty too. This is a personal milestone for all members of the team here as we've all put a lot into this project. <a href="">Dan</a> and <a href="">Tyler</a> have both worked tirelessly with me to get this out the door. Thanks to you both! Now we are on the home stretch to out of beta (no, we won't be in "beta" forever, this is actually a beta.).</p> <p>We still have lots to do, but we feel it has a solid enough feature set for most people to find useful, already surpasing a lot of our competition - and we still have a bunch more stuff before we drop the beta and start asking people for money (don't worry, we'll keep offering a free version!)</p> <p>If you've a blog and haven't played with Viviti yet, now's your chance - and we are always looking for <a href="">feedback</a>!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-11-22:/entries/6006 Redesigned! 2008-11-22T21:57:00-08:00 2008-11-27T23:50:23-08:00 <p>I've redesigned my blog again! I'm always open to feedback so if anyone thinks I missed anything or finds anything broken, let me know.. I've got a few small tweaks I want to do, but I think I'm mostly done. This is the second design I've done of nullcreations.net since it was moved to <a href="">Viviti</a>, and this time it feels much more complete. It didn't take much time to get working once I was done the mockups in photoshop!</p> <p>I was also very pleased to not have to do anything special to make it work in Internet Explorer. I checked in IE7 after I was finished, experienced the impending-doom feeling in my stomach as it contacted the server, and then joy upon seeing it render everything pixel-perfect! It will probably get destroyed by IE6, but I don't care :D</p> <p>Now I have to go finish reorganizing the downstairs of my house, as I've been changing everything there, too. I think I need a new table, and a new TV :(</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-11-20:/entries/5954 Google SearchWiki 2008-11-20T21:13:00-08:00 2008-11-22T02:12:22-08:00 <p>It's been a long time since google has made any real noticable changes to their search engine, so i was a little suspicious when two little icons appeared beside my search results allowing me to promote or demote search results... Had some malicious software found it's way to my computer? </p> <p>A quick search eased my mind - no, it's not malicious software - instead it's a new feature Google has added called 'SearchWiki' that allows users to provide feedback to search results. After poking around a bit I've come to the conclusion that it's actually pretty neat. When you remove results that are not relevant, they won't re-appear on repeat searches. You can also see a list of all the results you have promoted or removed, which is handy if you accidentaly remove something you want back. </p> <p>There is an <a href="">article on timesonline.co.uk</a> with more information on it, or just login to your google account and go search for something. There is more to it than just promoting and removing results, so it's worth a quick read.</p> <p>Interestingly enough, Google also saw fit to release some newness to Gmail as well, in the form of <a href="">themes</a>.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-11-17:/entries/5462 Simply Flickr library in ruby 2008-11-17T19:31:00-08:00 2008-11-22T21:03:35-08:00 <p>A long time ago, in a summer far, far away, I was working on <a href="">Flickr</a> integration in <a href="">Viviti</a> and found most of the ruby libraries I could find were for the old and now defunkt Flickr API. To solve this i created a very simple wrapper around their REST interface, and then fleshed it out a little bit to simplfy some of the more common things I needed to get done.</p> <p>If anyone is in a similar boat needing to interface with Flickr via ruby, feel free to check out the repo on github. It's not a proper gem yet, but one day i'll get that fixed. If anyone uses it and finds missing peices (I know there are a bunch, since there is lots of stuff you can do with Flickr that I haven't needed to do yet), please send me patches! I like patches!</p> <p>Usage is pretty simple: </p> <p> <pre class="highlighted_code highlighted_code_ruby">client = Flickr::Client.new( 'apikey' ) person = client.person( 'jerrett taylor' ) => #<Flickr::Person:0x11e5e14 ...> person.photosets.first.title => "Macro" person.photosets.first.photos => [#<Flickr::Photo:0x116ab10 ...></pre> Any call that you need to make that is not already wrapped can be directly made via Flickr::Client#request( method, args ), which will return hpricot. </p> <p>Anyways, the git repo is here: <a href="">simple-flickr.</a> Enjoy!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-10-15:/entries/3992 40th Canadian Parliament 2008-10-15T09:15:00-07:00 2008-10-15T16:19:57-07:00 <p>Well, it's the next day and things are more or less as they were. The Conservatives still don't have a majority, the Bloc still holds almost all the seats in Quebec, and the Liberals are still the official opposition. </p> <p>So who won? In my opinion there were no real winners. Sure, there were small victories - the conservatives gained a few more seats and thus have a little more power, the NDP also gained some seats and and made history with their first seat in Quebec, and the green did very well in popular vote - but still have no seats. </p> <p>The real story here though was who lost, and I don't mean the Liberals even though they had their worst turnout in the history of their party. Who really lost was Canadians. Not because nothing changed, and not because the conservatives are still in power, but because we had record low voter turnout. Our loss was our own fault, and we have nobody to blame but ourselves. </p> <p>I still can't understand how almost half the population of Canada can't be bothered to get out and vote. The arguments of not knowing enough about each party are garbage, especially these days where their platforms are so easily viewable online, on TV, radio, or even just talking to other people. While our system is not perfect, we'll never have a true representation of Canadian values in the Parliament if people can't be bothered to be a part of the system.</p> <p>This is an old and perhaps a boring, cliche argument, but it still pisses me off, and it's still a problem. Drop the apathy people, and do your civic duty next time we are sent to the polls. Stop bitching about how we are in another election and instead take pride in the fact that we have a system that allows for us to be in another election, and make a difference. Yes, every vote does count. </p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-09-19:/entries/3404 Fixing OpenSSL Certificates on OS X 2008-09-19T04:08:00-07:00 2009-02-10T15:31:01-08:00 <p>While trying to use OpenURI in Ruby to connect to a https site, I kept running into an error with certificates - <em>OpenSSL::SSL::SSLError: certificate verify failed. </em></p> <p>After some digging around on google I found <a href="">a lot</a> of <a href="">solutions</a>, but all of them involved manually specifying a path to a cert file or disabling certificate verification entirely, <a href="">or both</a>. For the code I'm writing the linux boxes it's deployed on don't have this problem so I wasn't happy with either solution. Adding extra code and cert files to the codebase just for my dev box, or skipping verification both seemed like Bad Ideas™.</p> <p>Turns out the solution is actually pretty simple. The problem is that while openssl is included by OS X complete with the standard Root Certificates that are needed for this to work, they are only available via Keychain. This means Ruby has no access to these certificates, and can't verify any SSL certificates.</p> <p>To fix it, open "Keychain Access" and select all the certificates under "System Roots", then export them (right click) to a cert.pem file and put it in: <strong><br />/System/Library/OpenSSL</strong></p> <p>That's it.</p> <p>If you want, you could probably grab <a href="">the list from haxx.se</a> instead, which is extracted from mozilla.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-08-22:/entries/2874 Back from Greece 2008-08-22T18:43:10-07:00 2008-11-17T20:08:46-08:00 <p>I'm back!</p> <p>My absence for the last 4 weeks was due to a much needed vacation, most of which was spent sailing <a href="">down the Pelleponese</a> with my father on the gaff-rigged schooner he built. Part vacation, part training so I'll be able to sail Iliopotissa without help, we had quite the adventure.</p> <p style="text-align: center;"><img src='/files/resized/15448/480;480;52595f5664eb13173b5d4e681ee3ef25790c2fa9.jpg' alt='Image'/></p> <p style="text-align: left;">In the 3 weeks sailing we managed to pack everything in - We had weather ranging from nearly flat calm to 6-7<a href="">bf</a>, engine problems made it very much a sailing trip, and I got to spend some good time getting acquainted with hanging from the top of the masts working on the rigging. We ran into people in the middle of knowhere who had heard about the boat and her trip from Canada to Greece, and when we got back to the house in Aegina 150 cubic meters of water was missing (and still is). I even managed to somehow find myself dancing at 6am. I blame the Bacardi.</p> <p style="text-align: left;">We went to some fantastic places in the trip, my favorites being Kyparisi and Astros. In Astros we arrived just in time for a festival in an outdoor amphitheater with traditional Greek music and dancing. Kyparisi has some of the most beautiful beaches I've seen (and yet, somehow, quiet), although the bay isn't that well protected for boats.</p> <p style="text-align: center;"> <img src="" alt="Image" /></p> <p style="text-align: left;">I'm back to work on Monday now, and am looking forward to getting back at it - even though I'm already missing Greece and the lounging around in the sun on a boat. I took a bunch of pictures, for those curious I've been uploading them to <a href="">a photoset</a> on my Flickr account. Likely I'll be adding a few more over the next few days as I dig through my memory card!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-07-16:/entries/1939 Explosions, Fires, and Birds 2008-07-16T22:54:38-07:00 2008-09-26T11:09:34-07:00 <p>Monday was planned to be our release day of a new version of <a href="">Viviti</a>, but it was not to be. An <a href="">underground explosion and fire</a> took down a chunk of the power in downtown Vancouver, and while the water cooled generators worked, they stopped working in a hurry when the Vancouver Fire Department tapped into the water supply to put out the fire. Oops.</p> <p>Tuesday we were getting ready to release in the afternoon when a bird flew into a transformer a block or two away from our offices, killing power to the building. Fortunately, our office buildings have nothing to do with our servers so this was mostly just a minor inconvenience, but pushed us to Wednesday.</p> <p>Today we managed to make it through the entire day without anything exploding or catching fire, so we've <a href="">pushed up the new build</a>!</p> <p> </p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-06-18:/entries/1019 New bike! 2008-06-18T19:18:10-07:00 2008-11-17T20:08:45-08:00 <p>After riding a supermarket giveaway bike (which proudly displayed the MJB Coffee logo on it's frame) for a couple years I finally gave in and bought a new bike. Perhaps more accurately, the bike gave out and I replaced it!</p> <div style="text-align: center"><img src='/files/resized/4070/480;480;8cfdf6a93b9d95b7dfb84f3375fecb239ddc3bae.jpg' alt=''/><br /><br /></div> <div style="text-align: center"><img src='/files/resized/4071/480;480;0c60ff1f94ea56f403a592516875848c445f4dde.jpg' alt=''/></div> .</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-06-14:/entries/908 The Canadian DMCA 2008-06-14T12:07:09-07:00 2008-09-26T11:09:33-07:00 <p>The Conservatives have finally introduced the <a href="">DMCA</a>, resulting in somewhat predictable <a href="">outrage from Canadians</a>. For those not familiar with what this means if it's passed, I urge you to read some of <a href="">Micheal Geist's</a> recent posts - he breaks down <a href="">the fine print</a>. He's also posted a nice list of <a href="">30 things you can do</a> to make a difference.</p> <p>For those that don't know why this is bad, It's similar to the American DMCA - It has privacy concerns and removes a lot of consumer rights. It adds a few as well, to be fair, but the problems need to be addressed. For more information I suggest you read Geist's <a href="">summary of the problems</a> with the bill.</p> <p>The easiest thing you can do is contact your MP - Call them, mail them, email them, meet them in person - whatever you are able to do, and ask them to oppose the bill. For the lazy, onlinerights.ca has a <a href="">simple form</a> you can use to select your MP and send them an email. They do read these, and it only takes a minute or two to send.</p> <p>Keep in mind, we do have a minority government, and we can be heard.</p> <p>There are good things in the bill, and there is nothing wrong with updating copyright laws in Canada. They are out of date, and out of step with the world we live in. We just need to make sure the Government hears our concerns, and modifies the bill to help protect consumer rights and privacy as well as the rights of content producers.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-06-02:/entries/817 Serialized hashes with partial_updates in Rails 2.1 2008-06-02T19:55:00-07:00 2008-11-22T21:11:26-08:00 <p>In Rails 2.1, they added <a href="">partial updates</a> - which is a great idea and a long time coming. This makes ActiveRecord only updates the parts of a model that has actually changed, and also gives you the ability to see if a field (or a record) has changed since retrieving it from the database. (via <a href="">model.changed?, model.attribute_changed?, and friends</a>)</p> <p>There is a gotcha though, If you are using <a href="">serialized</a> attributes it won't trigger the changed flag unless you assign to it - so if you are doing something like:</p> <pre class="highlighted_code highlighted_code_ruby">model.foo[:bar] = true</pre> <p>ActiveRecord will not realize you have changed anything and it won't get saved. You can get around this by doing something like:</p> <pre class="highlighted_code highlighted_code_ruby">model.foo = model.foo.merge( :bar => true )</pre> <p><strong>Update</strong>: You can also tell ActiveRecord it has changed, by calling model.foo_will_change!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-05-20:/entries/89 New layout, now using Viviti 2008-05-20T19:44:41-07:00 2008-09-26T11:09:32-07:00 <p>I've regressed back to the late 90's in terms of design for my personal blog, and once again have a black-based design. Not sure how long it will last, but for now I like it!</p> <p>Also, in the name of '<a href="'s_own_dog_food">eating your own dogfood</a>' I am now using <a href="">Viviti</a> for this blog. Previously it was custom blog software, which I'm not missing in the least. Now when I add new features to my blog, other people can enjoy them as well!</p> <p>My photography has gone missing from this site as anyone who may be looking for it will notice, I've decided along with going back to black, to also go back to splitting my blog and photography into two separate sites and I haven't put that up yet. Soon!</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-04-03:/entries/74 Nanaimo movie listings 2008-04-03T11:34:26-07:00 2008-09-26T11:09:32-07:00 <p>A friend was complaining that there was nowhere he could find to get an RSS listing of movie showtimes, so I made a little script using Hpricot to parse forreel.com. Hopefully they don't mind!</p> <p>Fr those of you locally, feel free to use it: <a href=""></a></p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/> tag:nullcreations.net,2008-03-13:/entries/73 Viviti Launched! 2008-03-13T01:32:56-07:00 2008-09-26T11:09:32-07:00 <p>Well we've finally launched <a href="">Viviti</a> - It's a web based/hosted CMS system that's component based. Fully themable using normal HTML, and all editable in browser (drag-n-drop to move stuff around, etc.).</p> <p>As it is now, it supports adding custom blocks (text or html blocks), rss feeds, blogs, and a few other components. It's pretty neat, and as we add more components will become more and more flexible.</p> <p>Currently it's still in a invite only phase, as we work through some final touches - but we will start sending out invites to people who request a beta key soon.</p><div class="feedflare"> <a href=""><img src="" border="0"></img></a> <a href=""><img src="" border="0"></img></a> </div><img src="" height="1" width="1"/>