Tech section
This section contains articles about technology. Visit the Home section to see all the articles.
Redmine Timesheet plugin - v0.3.0
I’ve just released an update to Timesheet plugin for Redmine.
Changes
There are a few minor updates in this release, I fixed one bug in the calendar popup and have redesigned the form to use the screen real estate better.
- Feature #710: Wrap all common elements in fieldsets
- Feature #1223: Cleanup the Filter UI to not use as much screen space.
- Bug #1267: No action taken on selection of date
You can see more details on the Activity and Roadmap pages.
Upgrade
As part of my infatuation with git, this project is now hosted on GitHub.
Zip
- Download the latest zip file from https://projects.littlestreamsoftware.com
- Unzip the file to your Redmine into
vendor/plugins - Restart your Redmine
Git
- Open a shell to your Redmine’s vendor/plugins/timesheet_plugin folder
- Update your Git copy with
git pull - Restart your Redmine
SVN
To migrate from the svn copy to the git copy you will need to remove the plugin and reinstall it. Just remove the vendor/plugins/timesheet_plugin directory and follow the directions below.
Install
If you are installing a fresh copy, follow these steps:
Download the plugin. There are three supported ways:
- Downloading the latest archive file from Little Stream Software projects
Checkout the source from Git
cd vendor/plugins/ && git clone git://github.com/edavis10/redmine-timesheet-plugin.git timesheet_pluginInstall it using Rail’s plugin installer
script/plugin install git://github.com/edavis10/redmine-timesheet-plugin.git
Install the plugin as described at http://www.redmine.org/wiki/redmine/Plugins. (this plugin doesn’t require migration).
- Login to your Redmine install as an Administrator.
- Enable the “Run Timesheet” permissions for your Roles.
- Add the “Timesheet module” to the enabled modules for your project.
- The link to the plugin should appear on that project’s navigation.
What’s next
Since I don’t have the time to add a bunch of new features, I’m going to work with the Redmine core developers and try to migrate the Timesheet plugin’s features into the Redmine core.
Help
If you need help you can leave a comment here or enter an issue directly into my bug tracker.
Eric
RailsConf 2008 Summary
RailsConf 2008 is over and I’ve had some time to rest and recollect my thoughts on the sessions. Below is a quick summary of the main ideas I picked up in each session.
Friday 5/30/2008 (Day 1)
- Joel Spolsky keynote - The UI should help the user.
- Entrepreneurs on Rails - Work will always come in feast or famine cycles. It’s how you learn to deal with it that will determine your success.
- Hosting and the Woes - Caching is the key. Modern servers are powerful enough to handle a large load with some basic optimization and common sense.
- Faster better ORM with DataMapper - DataMapper shows that the Rails way is not the only way, we have the freedom to choose what tool will work best.
- The Profitable Programmer - You only have to spend one day a week to work on your idea. That’s how Peepcode was started.
- Microapps for Fun and
Profit- Take a day off and build an application. Nothing is better for a developer than to create something new and show it off to the world.
Saturday 5/31/2008 (Day 2)
- Jeremy Kemper Keynote - Rails is improving at an impressive rate with the community support.
- Using Git to Manage and Deploy Rails Apps - Git is flexible and stupid simple once you get the underlying concepts. I’ve seen wikis and backup systems using git as the file storage.
- Advanced RESTful Rails - Sometimes the relationship between data should be the resource, not just the data itself.
- Lightning Talks - Didn’t really get much from the Lightning talks.
- Integration Testing with RSpec’s Story Runner - Doing full stack testing is really useful to check the interactions between discrete components but it isn’t easy or maintainable.
- Meta-programming and Ruby Internals for Rails Programmers - A deep understanding of your runtime environment will make you a better programmer.
Sunday 6/1/2008 (Day 3)
- “Design Patterns” in Ruby - Many of the “Design Patterns” in other languages can be trivially implemented using Ruby’s built in language constructs.
- Advanced Mongrel: Handlers and Plugins - Since Mongrel is written in Ruby, it can be easily extended using Ruby. This is an easy way to bypass the Rails stack.
- Oh the Fail I’ve Known - Failure is the best teacher so we all need to hurry up and fail our first 50 times.
- Building an App in 48 Hours, A Rails Rumble Case Study - 48 hours is a long crunch time and near the end many bad mistakes are made, predominately around testing.
- Rails Core Panel - Releasing Rails is taking longer to because testers are waiting for a release but the core needs edge tested more before hand.
I’ll be digging into a few of these topics over time. I’m looking to do some more with Microapps, Git, and meta-programming.
Eric
Refactoring and Open Source - RailsConf 2008 - Day 1
I went to two tutorial tracks yesterday, Refactoring Your Rails Application and Refactotum: Contributing to Open Source.
Refactoring Your Rails Application
Refactoring Your Rails Application was good presentation by Zach Dennis and Drew Colthorp. It was great to see how some advanced Rails developers do some advanced refactorings but I got lost as they rushed through the examples. I’m still on a 1.6 GHz Pentium M so RSpec doesn’t run as fast as on the shiny MacBooks. I think the best benefit is the 70 page PDF they sent out that has details about doing several more refactorings. I’ll be using it later to clean up some of my old code.
Refactotum: Contributing to Open Source
I really enjoyed this session. I didn’t know going into it but a Refactotum is basically a large peer programming event where code is written for Open Source projects. So for about half the session the presentors talked about using several tools to check Rails code for areas that need improvement and used the other half to go around and help everyone try to create a patch for an Open Source Rails project. One thing I really learned was: you don’t have to contribute by sending in a new feature or bug fix, often some additional unit tests or refactoring is a much needed contribution.
Some tools they talked about:
Friday Schedule
Today’s schedule is going to be a lot more busy, since this is the first day of the real conference. If you are going to any of the events or sessions below, check for me there:
- 9:15am - 10:15am Joel Spolsky keynote
- 10:45am - 11:35am Entrepreneurs On Rails
- 11:45am - 12:35pm Hosting and the Woes
- 1:50pm - 2:40pm Faster, Better, ORM with DataMapper
- 2:50pm - 3:40pm The Profitable Programmer: Creating Successful Side Projects
- 4:25pm - 5:15pm Microapps for Fun and
profit - 7:40pm - 8:00pm Ruby Heroes Award Ceremony
- 8:00pm - 9:00pm David Heinemeier Hansson keynote
Eric
RailsConf 2008
RailsConf 2008 officially starts tomorrow and I’m all ready to go. If you want to look for me, look for the Rails developer who doesn’t have a Mac (I have an older Dell).
Thursday Schedule
- 7:30am - 8:00am Continental Breakfast
- 8:30am - 12:00pm Refactoring Your Rails Application
- 1:30pm - 5:00pm Refactotum: Contributing to Open Source
I’ll try to post updates here and to Twitter as the conference progresses.
Eric
Redmine Customer Plugin
I’m happy to announce that I’m finally Open Sourcing my Redmine Customer plugin. This is the plugin that I use to track my customer information for each project in Redmine.
Features
For this first release, I implemented the most basic features.
- Store Customer data
- Associate a Customer for each project
- Permissions to control user access to data
Install
Download the archive file and extract it to your
vendor/pluginsfolder. You can also download directly from GitHub using git:git clone git://github.com/edavis10/redmine-customer-plugin.git vendor/plugins/customer_pluginFollow the Redmine plugin installation steps. Make sure to install Engines 2 if you use Rails 2.0.
Setup the database using the migrations.
rake db:migrate_pluginsLogin to your Redmine install as an Administrator
- Setup the permissions for your roles
- Add the “Customer module” to the enabled modules for your project
- The link to the plugin should appear on that project’s navigation as Customer
Help
If you need help you can leave a comment here or enter an issue directly into my bug tracker.
Eric
