This week's meta discussion

1 comments
An exciting new feature for Talentopoly will be launching at today's meta discussion. Be one of the first to check it out.

Chat details

Jan 25 at 12pm EST


Other topics to discuss
  • API closed beta
  • SSL protection
  • Scheduling posts
  • How the community would want a job board to function
The last topic is one we need to start discussing. The plan is to come up with a way to help match good gigs with talented developers & designers through the site.
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

Big moves for fellow cohost Stephen Dixon

0 comments
Stephen Dixon was an intrepid podcast cohost and a talented designer too. Unfortunately for us Stephen recently got a new job and won't have time to cohost the podcast. Apparently there are things more important than the podcast. Who knew?

On a serious note, congrats on the new job!

Don't worry, we'll have our token Brit back as a guest from time to time.
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

Meta discussion (1:30pm EST) - Newsletter, Podcast tweaks, Bookmarklet progress and more

0 comments
Important: The chat has been moved to 1:30 EST this afternoon due to a scheduling conflict.

Topics

1. Discussing the first monthly newsletter
2. Get feedback on proposed tweaks to the podcast
3. Give an update on the bookmarklet

I hope to see you in the chat!
http://talentopoly.com/chats/22
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

Changes to the Podcast

0 comments
I want to share with you some changes that are coming to the podcast. Something we've discussed since the beginning is quality. The aim is to create a podcast that supports the main goals of the site. That is to help people improve their craft by staying current and learning new things.

If you haven't heard the podcast you can tune in at http://podcast.talentopoly.com. There's also an RSS and iTunes feed. If you enjoy Instacast you can find us on there too.

Doing a better job

I think we can do a better job. We've done 22 podcasts to date and each one has been unique. It's been a learning experience for me. Before this podcast my only experience had been as a guest on 8IFY. Along the way I think I've begun to understand some of things that are working and a few things that don't.

More guests (and cow bell)

Having guests on the show is both a lot of fun and a boon to traffic. Our most listened to episode was not surprisingly the one we did with Rogie King. Guests bring a fresh perspective and new listeners. We get a chance to interview them in a candid, relaxed setting. Rogie and Cameron both appreciated that the questions aren't scripted and having a drink during the show doesn't hurt either. So the first thing we're going to do is have at least one guest a month on the podcast.

Biweekly episodes

Having a podcast to discuss some of the most interesting links posted on Talentopoly is yet another source for consuming the content on the site. For those that commute or don't have time to read the links being posted on the site I hope the podcast offers a good alternative. The problem is that doing a podcast with 8 - 10 links to discuss each week means we don't have time to research them in any meaningful depth. So we're going to try doing a deep dive on each link we plan to discuss. To manage this we're going to tackle fewer links and move to a biweekly schedule where we record an episode every other week. Hopefully we'll be able to describe and discuss the links at a level of detail that people find valuable.

Shelving live streaming (for now)

We don't always record at the same time, which makes it hard to schedule a live show. Live streaming also adds a layer of technical complexity. We had a few technical glitches including an annoying echo in the two recordings we live streamed. So we're going to put live streaming on the shelf for the time being. That doesn't mean that we won't revisit it down the road. It just means that for now we're going to focus on some other aspects of the podcast first.

tl;dr

  • Focus on quality
    • Expect more expert guests
    • We'll play with and really research the links we plan to discuss
    • As a result the podcast will be every other week
    • And we're going to discuss fewer links
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

Conversion to Ruby 1.9 and Rails 3.1 complete

0 comments
The site has been updated to run on Ruby 1.9 and Rails 3.1.

Performance

For those interested in how performance is effected I will post some before and after stats soon.

Credits

  • Ed Rudd - Lead code wrangler for the conversion
  • Abelardo Gonzalez - Beta tester
  • Arlo Carreon - Beta tester
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

How to validate acts_as_taggable_on tags in Rails 3

1 comments
The answer to this question had eluded me and I couldn't find a good existing answer to it after a few Google searches. I figured it out and the answer was simple, which is always great. Hopefully this helps someone.

My problem

acts_as_taggable_on doesn't use validators to prevent excessively long tags or tags with periods in them.

One of our beta testers found that he could enter any length tag name in a new post and it would be accepted. Except that the database uses a 255 character varying length string so anything bigger will blow up the page.

Periods will screw up your tag show route if you use the name as the id (this is a common practice) since Rails routes use the period as a delimiter to infer the format (json, etc).

Solution

class Post < ActiveRecord::Base
  acts_as_taggable

  validates :tag_list, :length => { :maximum => 30 } # Limit to 30 tags max
  validate :each_tag

  private

  def each_tag
    for tag in tag_list
      errors.add(:tag, "too long (maximum is 50 characters)") if tag.length > 50
      errors.add(:tag, "can't contain a period") if tag.include? '.'      
    end
  end
end

Failed attempts

Before I arrived at the above code I tried a couple things that didn't work.

First attempt

class Post < ActiveRecord::Base
  validates_associated :taggings
end

class Tagging < ActiveRecord::Base
  validates_associated :tag
end

class Tag < ActiveRecord::Base
  validates :name, :length => { :maximum => 30 }
end

Besides this one needing a Tagging.rb model be created, which I didn't like, it didn't work.

Second attempt

Tag.validate :name, :length => { :maximum => 50 }

Why the solution works

tag_list exists before the model is saved. The tags don't exist at this point because the model hasn't been saved.

Thankfully tag_list is stored as a collection so you can traverse it easily and run validators on it the way you'd want to. That's why this works.

Note: If you have named your tag set something else, say for instance "bands" then it would be "band_list".
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.

Tomorrow We're Podcasting

0 comments
After taking the last two weeks off for the holidays we'll be back on the mic with drinks in hand tomorrow night. We also have a few changes up our sleeves for the podcast. But I don't want to give anything away just yet.

No live stream

For the time being we're going to shelve the live stream. We didn't have a large turn out and there are some technical glitches we need to work out if we're going to do that again.

Hot and fresh

The podcast will be posted later tomorrow night with the show notes. As usual you'll be able to find it via the RSS, iTunes, Instacast and of course on http://podcast.talentopoly.com
Talentopoly.com is a community for programmers, designers, and IT professionals to share what they're reading, ask questions, and find others to work with. Request an invite.