• 11
  • Jul

have you ever wanted to watch tv online for free? now you get a chance at zattoo.com. i’m really impressed by the quality of this service, as it is all for free. you only have to download a small client to be able to watch the local channels you like (right now there are 8 countries with 187 different channels supported). the software has also build in a nice program guide which displays the schedule of all channels in a clear way. so have a try…

  • 31
  • Dec

auch wenn es schon diverse howtos und einführungen im internet zu ruby on rails gibt, habe ich mich entschlossen, eine von mir kürzlich zu dem thema erstellte präsentation hier zu veröffentlichen. ich hoffe es erleichtert dem ein oder anderen den einstieg in rails…

  • 26
  • Nov

yesterday i was at the atreyu concert in cologne. all in all it was a nice show, although the first supporting band “engel” had a poor start and wrecked their equipment right at the beginning, so that there was no bass for a few songs. the second band “still remains” did a better job and managed to heat up the crowd quite well. afterwards atreyu played a good mix of old and new songs. you can find one of them as a video below (i’m sorry for the miserable sound quality). or you can have a look at the photo gallary

Medium: www.youtube.com
Link: www.youtube.com

  • 25
  • Nov

here is a little appetizer for the upcoming new mars volta album “the bedlam in goliath”. the video features the song wax simulacra…

Medium: www.youtube.com
Link: www.youtube.com

  • 22
  • Nov

the mars volta will embark on a european tour in the next few months. check out the schedule:

February 17th – Hamburg, Germany – Docks
On Sale Friday, November 23rd
Tickets available at www.eventim.de or www.kartenhaus.de

February 19th – Oslo, Norway – Sentrum
On sale Saturday November 24th
Tickets available at www.billettservice.no or by calling +47 815 33 133

February 20th – Stockholm, Sweden – Cirkus
On sale Wednesday November 21st
Tickets available at www.ticnet.se or by calling +46 8 660 1020

February 22nd – Copenhagen, Denmark – Vega
On sale NOW
Tickets available at www.billetlugen.dk

February 24th – Berlin, Germany – Huxleys
On Sale Friday, November 23rd
Tickets available at www.eventim.de or www.kartenhaus.de

February 26th – Zurich, Switzerland – Volkshaus
On Sale Friday, November 23rd
Tickets available at www.ticketcorner.com or www.starticket.ch

February 27th – Milan, Italy – Alcatraz
On Sale Wednesday, November 21st
Tickets available at www.ticketone.it

February 29th – Madrid, Spain – La Riviera
On Sale Friday, November 30th
Tickets available at: www.iguapop.com, www.servicaixa.com, or by calling: 902.10.12.12

March 1st – Barcelona, Spain – Razzamatazz
On Sale Friday, November 30th
Tickets available at: www.iguapop.com, www.servicaixa.com, or by calling: 902.10.12.12

March 3rd – Munich, Germany – Elser Halle
On Sale Friday, November 23rd
Tickets available at www.eventim.de or www.kartenhaus.de

March 5th – Paris, France – Olympia
On Sale Saturday, November 24th
Tickets available at: www.fnacspectacles.com and www.olympiahall.com

March 6th – Tilburg, Netherlands – 013 Music Hall
On Sale Saturday, November 24th
Tickets available at: www.ticketservice.nl

March 8th – Cologne, Germany – Live Music Hall
On Sale Friday, November 23rd
Tickets available at www.eventim.de or www.kartenhaus.de

March 9th – Brussels, Belgium – Ancienne Belgique
On Sale Wednesday, November 21st
Tickets available at: www.abconcerts.be or by calling +32 2 548 24 24

March 11th – Glasgow, Scotland – Academy
On Sale Monday, November 26th
Tickets available at: www.pclpresents.com or by calling 08700 600 100

March 13th – Manchester, UK – Apollo
On Sale Tuesday, November 27th
Tickets available at: www.gigsandtours.com

March 14th – London, UK – Brixton Academy
On Sale Tuesday, November 27th
Tickets available at: www.gigsandtours.com

  • 20
  • Nov

at this years w-jax conference i attended a keynote by scott ambler, who’s one of the guys pushing the agile movement for several years now. in his talk he presented results of surveys about adoption rates of agile techniques and success rates of agile it-projects. there are some interesting numbers in it, despite the fact that they are mostly covering the situation in the states. it would be even more interesting to collect data for these topics in europe, too, and draw some comparisons. for me the most important findings are:

  • 69% of organisations have adopted agile techniques so far
  • the most effective agile practices are “iterative development” and “regular delivery of working software”
  • one-third of projects are done with two week iterations
  • 44% of organisations had a success rate of 90% or above for agile projects
  • project success rate for agile projects is 10% higher than for “traditional” projects
  • only 42% of offshoring projects are successful, but they are considerably more succesful in asia than in the rest of the world
  • the number of successful projects is dropping significantly for teams larger than 10 members
  • 80% of it-managers and 70% of project managers put the needs of their staff over beeing on time and on budget
  • 70-80% of it-personnel see a healthy workplace beeing more important than beeing on time and on budget, but only 53% of business stakeholders share this opinion :-(
  • 02
  • Oct

watch randy pausch, a 47 year old computer science professor of the carnegie-mellon university performing a stirring lecture about reflections on his life and the lessons he learned. you should know that randy is diagnosed pancreatic cancer and only has a few more months to live.

if googlevideo doesn’t work, try here for a windows media player link.

Medium:

  • 21
  • Sep

Medium: www.youtube.com
Link: www.youtube.com

some nice slowmo moves of his airness…

  • 16
  • Sep

during my rails development i recently came across the problem mentioned here. this is my concrete scenario…
first of all there are two model elements referenced by belongs_to resp. has_many:

class WorkingTime < ActiveRecord::Base

  belongs_to  :project

  validates_presence_of :project, :message => 'Please select a project!'
  validates_associated :project
  validates_presence_of :hours_worked

end

class Project < ActiveRecord::Base
  has_many :working_times
end

the input form to create an instance of this model looks something like this:

[...]
<%= error_messages_for 'working_time' %>

<label for="project_of_working_time">Project</label>
<%= select :working_time, :project_id,
    Project.find(:all).collect {|p| [ p.name, p.id ] },
    { :include_blank => true }, :class => "working_time_select" %>

<label for="working_time_hours_and_minutes_worked">Hours Worked</label>
<%= text_field 'working_time', 'hours_worked', :size => 5  %>

[...]

now if you try to save the form without selecting a project an appropriate error message is shown. this is not really remarkable. but the problem is that the select input field isn’t highlighted correctly like other input fields (i.e. the hours_worked if it is empty). i had a hard time to figure out the reason for this.

the error highlighting is based on the errors object that is passed to the view in case of validation errors. when the view is evaluated every input field looks in this object for an error associated to it by its name. if the method errors.on(name of input field) returns a value, a html-snipped is wrapped around the input field (btw, if you want to change the snipped, look here). here is an example for the input textfield hours_worked:

<div class="fieldWithErrors">
<input id="workind_time_hours_worked"
     name="working_time[hours_worked]" size="5" type="text" value="" />
</div>

the issue with the above mentioned working_time / project relation is that the validation error is mapped to the field project and not to project_id, since this is what i described in the model working_time. because the view cannot get the link to the project-error, the field will not be highlighted. you can validate this with a unit-test:

require 'working_time'

class WorkingTimeTest < Test::Unit::TestCase

  def test_create_without_project
    @working_time = WorkingTime.new
    @working_time.hours_worked = 3
    result = @working_time.save
    assert !result
    errors = @working_time.errors
    assert_not_nil errors[:project]
    assert includes_match?(errors[:project], 'Please select a project!')
  end
end

the only solution is to change the validation in the working_time model from project to project_id. this is quite confusing because the working_time model actually doesn’t have a project_id field. what makes this even worse is that you also get validation errors if a project instance will be set in the working_time model. therefore the following test always fails:

require 'working_time'
require 'project'

class WorkingTimeTest < Test::Unit::TestCase

  def test_create_with_project
    @working_time = WorkingTime.new
    @working_time.hours_worked = 3
    @working_time.project = Project.find(1)
    result = @working_time.save
    assert result
  end
end

i hope this issue will be fixed in a future version of rails.

  • 09
  • Aug

as you probaby know, ruby on rails has a very handy test integration. you can easily write unit tests for your rich domain model and some functional tests (that can be roughly compared to http-units in the java world, but with integrated webserver) for the controller and views.

unfortunately, one part of rails basic implementation architecture cannot be tested as easy as the above mentioned components: the view helpers. actually they are used to extract view functionality and keep the view templates clean from ruby scriptlets. of course, you can test them indirectly through your functional tests, but rails provides no pure way to test them individually. an obvious approach is to write some unit-tests for each helper class. this works fine as long as you are not using some methods provided by rails, i.e. link_to, url_for, all the input tag methods and so on.

so here is an example of a simple view helper. the method time_link_to returns a link including the current date as parameter in the form http://www.yourhost.com/railscontroller/year/month/day.

# Methods added to this helper will be
# available to all templates in the application.
module ApplicationHelper

  def time_link_to(controller_name, name, date, html_options = nil)
    if html_options
      html_options = html_options.stringify_keys
      convert_options_to_javascript!(html_options)
      tag_options = tag_options(html_options)
    else
      tag_options = nil
    end
    url = url_for(:controller => controller_name) +
           "/#{date.year}/#{date.month}/#{date.day}"
    "<a href=\"#{url}\"#{tag_options}>#{name || url}</a>"
  end

end

since the method url_for is provided by the controller that is executed when the view and therefore the helper is evaluated, you have to fake it for the unit test. this can be done in the setup method of the unit test like this:

class ApplicationHelperTest < Test::Unit::TestCase

  include ActionView::Helpers::AssetTagHelper
  include ActionView::Helpers::UrlHelper
  include ActionView::Helpers::TagHelper
  include ApplicationHelper

  # called before every single test
  def setup
    # creating a dummy controller with the method url_for that
    # returns the url assigned to the controller
    @controller = Class.new do
      attr_accessor :url, :request
      def url_for(options, *parameters_for_method_reference)
        url
      end
    end
    @controller = @controller.new
    # setting the url of the controller
    @controller.url = "http://www.example.com"
  end

  # testing the view method
  def test_time_link_to
    assert_equal "<a href=\"http://www.example.com/testcontroller/" +
      "#{Date.today.year}/#{Date.today.month}/" +
      "#{Date.today.day}\">test</a>",
      time_link_to("testcontroller", "test", Date.today)
    assert_equal "<a href=\"http://www.example.com/testcontroller/" +
      "#{Date.today.year}/#{Date.today.month}/" +
      "#{Date.today.day}\" id=\"test_id\">test</a>",
      time_link_to("testcontroller", "test",
        Date.today, {:id => "test_id"})
  end
end