1 comment Latest by Alex Stoneham Tue, 02 Feb 2010 18:20:27 GMT
Our development team likes to extract reusable pieces of code for our projects and have historically used plugins. However, we are finding more and more people releasing these sorts of modules/components/patterns as gems.
Which do you prefer and why?
If you use both, how do you decide to use plugins or gems?
We’re starting a new project and I’m finding myself adding things to the code base that we’ve done in the past… hence the last few posts. As we’re doing this, I’d like to highlight some of the little things that we do on each project to maintain some consistency and in that process reach out to the community for alternative approaches.
I’m intrigued by the vendor everything concept, but we haven’t yet adopted this on any of our projects (yet).
What we have been doing is to maintain a
REQUIRED_GEMS file in the root directory of our Rails application.
$ cat REQUIRED_GEMS actionmailer actionpack actionwebservice activerecord activesupport cgi_multipart_eof_fix daemons fastercsv fastthread feedtools gem_plugin image_science mongrel mongrel_cluster mysql rails rake RedCloth Ruby-MemCache soap4r uuidtools
Everybody on the team (designers/developers) knows to look here to make sure they have everything installed when beginning to work on the application.
This has worked fairly well from project to project but since we’re starting a new project, I’m curious if anybody has some better ways to approach this. Should we look more seriously at the vendor everything approach or are there any alternative approaches?
This is inspired by a recent post by Seth Godin titled, Things you don’t understand, where he shared a list of things that he probably could understand if he put your mind to it, but doesn’t. I decided to post a list of five (5) things in response within the context of Ruby/Rails.
I’m really interested in various things but am really unable to prioritize them high enough to spend the time to understand them.
- RSpec User Stories
- Using Selenium with RSpec
- JQuery (Graeme speaks highly of it)
- Using the Google Charts API with Rails
What about you? What’s your list of things that you’d like to understand more about?
RubyURL was a project that I built about 2 1/2 years ago as a late night attempt to see what I could build and deploy with Ruby on Rails in a night. It’s nearing 50,000 unique website links, has a Ruby gem that you can use with it, and rbot plugins.
I’ve rewritten it about three times in the past six months, to try out some new approaches, but haven’t deployed with a new version as I’ve been waiting for someone to help me with a new design. Chris has offered to help out and once we integrate his new design with it, we’ll be launching it.
Everything is not great in RubyURL land though. It appears that it’s become an easy target for comment spammers to abuse the site to generate rubyurls and paste those links in their spam comments. Several pissed off bloggers, forum administrators, and system administrators have emailed me to complain that I’m spamming their site. Sadly, even with a basic disclaimer on the site, they still like to blame me for their spam. It’s gotten common enough, that I’ve written a template email that I respond with that explains how the site works and that I’m not accountable for people posting links to my URL redirect tool.
You can see that it’s popping up around the net via a google search.
So, I’ve been trying to think of ways to make it easier for people to flag URLs as being abusive of the site. I’ve not come up with any elegant solution that doesn’t force the good users of the site to have more steps in their process to create a basic RubyURL.
The ideal (and current) workflow:
- User navigates to http://rubyurl.com
- User pastes in long url into text box/area
- User submits form
- User is provided with new (shortened) rubyurl
- User copies the rubyurl and does what they want with it (generally… pastes into IM, IRC, Email, etc.)
Some people have suggested using a user system to do this, but I really don’t like that as a solution.
Another idea, which I built… and later removed from my new version, involved having the original url load in a frame, and then provide a way for users to flag it as ‘spam’, ‘nsfw’, or ‘dead’. Then, we could provide the user with a warning that the following URL was flagged before, are you sure you want to continue? I didn’t like this as a solution in this way as it felt very obtrusive to have a rubyurl frame at the top of the browser window.
One person suggested a captcha to try and verify that the user is human, but there are problems with this.
- I really dislike captchas. ;-)
- This doesn’t prevent spammers from using the ShortURL gem, which does everything via an API.
In regards to the API, this could be enhanced by requiring that everyone register an email address to get an API key, but only solves the API abusers.
I’m starting to brainstorm some solutions that specifically help the requests made through the web. I haven’t checked the logs enough yet to verify it, but I have a strong suspicion that much of the abuse is happening through a web-based bot, not through ShortURL… because Ruby developers are nicer than that. (I hope…)
So, I am curious… dear readers of my blog. How might you solve this problem without disrupting the user experience? Or, should I just stick with what I’ve got going and find a better way to respond to pissed off bloggers who think I’m spamming them?
During my recent trip to London, I plugged my mobile phone charger into my UK power adapter and it blew the charger… leaving me across the world with no charger for my phone. It didn’t matter much because I couldn’t get coverage with my service with Verizon Wireless. My second two-year contract with them came up a few months ago… so I am now considering leaving them for something else. After four years… I would grade them a B+. I’ve always liked their web tools and since all of my close family and girlfriends family has used Verizon… the in-network calls have always been free. The coverage is generally good within the states… however, lack of international plans doesn’t work out well with my recent and upcoming travel plans for work. Also, I need to sneak my way over to the Nokia phones as one of our projects requires that it work with opera mini and the mobile version of mozilla. So… I’d like to test the application first hand. ;-)
Since you have all been so helpful in the past with open questions… who do you have mobile service through?
I would like to get the following:
- java-enabled for mini opera, ssh client!, etc…
- camera-not-so-important but useful
- bluetooth for getting an internet connection and sharing to my laptop while on the road
- lots of text messaging/email (server notices…)
- ability to use phone internationally
Who do you use and why do you like them (or not)?
Older posts: 1 2