Code Spaces Upgrade to v2.2 3
Code Spaces is now running on version 2.2 which includes several small fixes, an upgrade to Rails v2.1 and some enhancements to the Forums and Work Items.
Rails v2.1
Code Spaces v2.0 included an upgrade to rails 2.0 which enabled us to deliver better performance and more caching. Rails v2.1 adds to this with better performance out of the box as well as a more complete caching mechanism which allows us to cache more content to make pages load quicker.
Forums
We have been aware of the limitations if the Code Spaces forums for some time, and starting with v2.2 we are addressing these issues.
Forums threads now show last replied by messages so you don't need to go into each thread to look for replies.
Forum messages now feature rich text editing.
Forum messages can be edited or deleted by the message creator or an account admin, this can be done from the message itself rather than being a task in the admin section.
Work Items
The Work Item grid now shows a created on column.
Work Item changes are now audited, this data can be viewed from the Work Item History tab in the Work Item viewer.
Work Items can now be linked to to Documents in the document module.
Work Item email notifications now include the correct link back to Code Spaces so you can go into the Work Item from the email.
Upgrade Fee
As always the upgrade has already been applied and is FREE to all users.
Version 2.3
We are already working on version 2.3 and will continue to make incremental improvements to the platform so please feel free to Contact Us with enhancement ideas.
Upgrade Complete 4
Part 1 of 3 major upgrades to the Code Spaces software and infrastructure has now been completed.
This upgrade includes much of the v2.0 functionality and some of the hardware upgrades to support it, we will be doing the second part of this upgrade in two weeks.
So What’s New?
Project Portals
Each project can now have a project portal, which can be public (anyone can see it) or private (only users you create can see it) – Portals consist of several pages from you project wiki and can include pages to submit bugs and view public work items.
Email Notifications
You can now subscribe to events such as Subversion Commits via email, simply go to your profile admin and select the notifications you wish to receive – Make sure you check you registered email address is correct?
Document Module
You can now upload documents to Code Spaces.
Anonymous SVN access
We now allow anonymous SVN read access, to enable this go to the project admin section and modify the repository settings.
Wiki
We have improved the wiki syntax and rendering to support the project portals.
Dashboard
We have included a new Subversion Stats module to the dashboard which gives a visual representation of your teams activity.
Caching
Many elements of Code Spaces have been re-written to make better use of caching, which means you should see some performance improvements.
Office Move
As many of you may know we moved into a new office last week, as such our contact details have changed
Code Spaces
Unit 1.17
The TechnoCentre
Coventry University Technology Centre
Puma Way
CV12TT
PHONE : +44 (0)2476 792025
View Larger Map
Code Spaces Server Maintenance This Sunday
Code Spaces will be down this sunday for server upgrades and software updates, this outage will start at 08:00 (GMT) and will be finished by 12:00 (GMT).
Subversion services will also be interrupted however this will only consist of a few reboots.
For more information please Contact Us
Subversion Cluster Planned Maintenance
We will be taking down the Subversion cluster on Sunday the 27th April for planned maintenance and server upgrades.
The outage will occur between 10:00 GMT and 13:00 GMT and all subversion repositories will be unavailible during this time.
Please Contact Us for further information.
RailsCasts.com 100th episode!
As many of you will know Code Spaces is a Ruby On Rails application and like many of you guys we love Ruby and in particular Ruby on Rails :-)
Most Rails fans will be aware of Ryan Bates and the RailsCasts.com weekly free Rails screen cast, for those who are not aware of Ryan’s work, he has been recording screen casts for the rails community since March 2005 and has covered pretty much every topic you can imagine from simple form helper tips to advanced debugging and performance tips.
RailsCasts.com have this week reached 100 episodes which I’m sure you will agree is an impressive contribution to the Rails community and demonstrates an enormous amount of dedication on Ryan’s part.
Code Spaces would like to thank Ryan for this contribution and wish him every success with the next 100 episodes ;-)
To mark this fantastic milestone Ryan has set up a simple contest where anyone who contributes 5 Rails tips back to the community via a blog or the Rails Forum can win a whole bunch of excellent prizes, some of which including an IPod Touch are donated by Code Spaces which is our very small way of saying thanks to Ryan for this contribution to the Rails community.
For further details about this contest and for a complete list of prizes visit the Rails Casts contest page
Code Spaces v2.0 6
For the last 3 months we have been working on a major update to Code Spaces and as we are now getting to the end of the development phase, I though I would share with you some of the features that will be included in the new Version.
Document Module
This is a basic document management module that allows you to store documents outside of your Subversion Repositories which can be linked to Work Items, Wiki pages or forums. The idea is that you can store specs and requirement documents here and link them to particular work items. These documents can also be marked as public which means they can be accessed by non Code Spaces user via the project portal.
Project Portal
Each Project can have a Project Portal which is a public facing view of your project. Elements of your project like Work Items, Wiki Pages, Subversion Repositories, Forum Threads and Documents can be marked as marked as public adding them to your project portal. Your customers and users can access the project portal at any time to raise issues, download files, Participate in the Forums, etc… The project portal look and feel can be changed by selecting on of the many themes. Project Portals are optional and can be switched off for any project that does not require public access.
Email Notifications
Code Spaces already exposes notificatoins through RSS, however each user now has the option to recieve notifications via Email.
Twitter Notifications
Each project can send notifications like Subversion Commits, Work Item status changes, Milestone completion/creation, etc to a desigbated Twitter account.
Project Email Addresses
Each project now has an email address which you can use to send messages into the project, messages recieved via this address will be turned into work items. Project Admins can specifiy white lists to avoid spam.
Anonymous Subverison Access
Each Subversion repository can be set to allow anonymous read access enabling you to give out a repository url to your customers or colleagues.
Fragment Caching
Code Spaces heavily uses fragment caching to speed up page requests, Dashboard and Work Item pages are now on average 20x faster, other pages also show impressive improvements.
Bug Fixes
All know issues have been resolved.
RELEASE DATE We are planning to release v2.0 into the production environment at the end of this month (Feb 2008).
NOTE This version was origionally scheduled to be released as v1.1 but due to the amount of new features in this release we have decided to jump to v2.0
UPGRADES All customer will recieve this version for FREE and will get access to ALL the new features, except for FREE users who will not get the Project Portal functoinality.
STAND ALONE VERSION The Code Spaces Stand Alone version (currently not released) will be based on the v2.0 code base, and is scheduled for a Beta release in March-April 2008.
Connecting to Subversion via a WebDav client.
Subversion has a number of very good clients, but sometimes you need to give non Geek staff access to your repositories, this usually presents a problem as the inner workings of subversion are hard to grasp if your not tech savvy.
Fortunately subversion (when exposed via Apache) partially implements a DeltaV server and exposes just enough to allow a standard WebDav client to connect, add, rename and delete files or folders. You do however need to explicitly enable this in order for it to work.
In your Apache http.conf you will have a location tag that exposes your repository to the out side world (something like this) :
<Location /repos>
DAV svn
SVNPath /path/to/repository
</Location><Location /repos>
DAV svn
SVNPath /path/to/repository
#Enable WebDav client access for my marketing department.
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>All modern Operating Systems allow you to mount a WebDav folder as a drive or folder:
Mounting a WebDav folder in Windows XP
Open the special folder called “My Network Places”, then click on “Add a network place” and fill in the URL of your repository url (like “http://svn.codespaces.com/account/repos”)
Mounting a WebDav folder in OS X
From the finder Go menu, connect to server and supply the repository URL (like “http://svn.codespaces.com/account/repos”)
Mounting a WebDav folder in Linux
You already know how to do this right?
Once the folder (or drive) is mounted you can use it as if it was a normal folder on you hard disk.
NOTE When adding files or folders to a Repository via WebDav each transaction is a least one commit in the SVN repository and adding a file is two commits (one to add the file, and one to add the file data), so adding 100 files will increment your repository revision by 200! This is also very ineeficient as it has to upload 1 file at a time.
Apart form the limitation and inefficiencies noted above this is a really useful way of granting access to your repositories to non IT users, for instance we have a repository for our marking materials which is simply mounted as a folder (in OS X) or as a drive (in XP) allowing everyone working on a project to simply save images, pdf, etc into the repos without having to update and commit from within a Subversion client.
Code Spaces If your using Code Spaces for your Subversion Hosting (and why wouldn’t you!!!) we can enable WebDav client access for you (it’s not on by default), simply send a mail to support[at]codespaces.com with your repository URL and we will enable it ASAP.
Streaming Files to the Browser with Ruby on rails
Quite often when building a web application you need to store and send Documents, with ruby on rails, streaming files from your application to the browser is simple.
def download_file
@document = Document.find(params[:id])
# this is where the magic happens...
send_file @document.file_location
end
This single line of code will stream a file from your servers filesystem directly to your browser.
The simple use described above is often enough but you have even further control over the file with the following options:
Options:
- :filename – suggests a filename for the browser to use. Defaults to File.basename(path).
- :type – specifies an HTTP content type. Defaults to ‘application/octet-stream’.
- :disposition – specifies whether the file will be shown inline or downloaded. Valid values are ‘inline’ and ‘attachment’ (default).
- :stream – whether to send the file to the user agent as it is read (true) or to read the entire file before sending (false). Defaults to true.
- :buffer_size – specifies size (in bytes) of the buffer used to stream the file. Defaults to 4096.
- :status – specifies the status code to send with the response. Defaults to ‘200 OK’.
- :url_based_filename – set to true if you want the browser guess the filename from the URL, which is necessary for i18n filenames on certain browsers (setting :filename overrides this option).
Pay particular notice to the :disposition option, changing this from its default to ‘inline’ will enable you to display the contents of the file in the browser window rather than downloading it as an attachment.
def download_file
@document = Document.find(params[:id])
# this is where the magic happens (inline)...
send_file @document.file_location, :disposition => "inline"
endThis is especially useful for things like word or excel documents when you know you target audience can read these in the browser.
EDGE RAILS
If you are brave enough to live on the Edge with Edge Rails you will get an extra treat for free, on Edge Rails the send_file method passes the correct information to your balancing server to allow it to stream the file rather than blocking your mongrel server.
