Err the Blog Atom Feed Icon
Err the Blog
Rubyisms and Railities
  • “My Rails Toolbox”
    – Chris on January 08, 2007

    Advertisement

    We’ve been finished with Chow for about a month now and that feels great. (PJ wrote about the launch back in the day.) The site is stable and it’s our second from-scratch Rails site at CNET, the first being Chowhound. Party time, right? Right.

    Since it seems like we did something correct, I’d like to share with you our toolbox. We have no golden hammer, but we sure use some kickass open source software. So here’s a high level overview of what we got. Maybe a hammer or tape measure you find within will be new and useful to you. One can only hope.

    tools!

    Servers

    The muscle, scar tissue, and bone behind our sites are not unusual. Rails convention: a hardware load balancer to Apache 2.0 to Pen to a cluster of Mongrels. Coda Hale has an infamous tutorial on setting up a similar architecture and Zed maintains a stellar documentation page over at the Mongrel site. We’ve had very few problems with Mongrel, and Pen is so quiet that I often forget it exists.

    Behind the backend we run an installation of Solr as our search engine. It’s Java, but a nice XML-RPC API helps alleviate the pain. A dedicated wiki page is available with Ruby help (which you probably won’t need). A cron or two is needed to insert items into the index, but that’s it.

    We (of course) run memcached and use it to cache tons of data. This helps keep our site speedy and takes the load off our largeish database. In case you missed it, a previous Err post touches on memcached. It’s a lot easier to use than you might think.

    Finally, we use MySQL for our database. Big surprise there.

    Deployment

    Like any red blooded America, we use Capistrano for deployment. There’s really no other option. The mailing list is invaluable, as are the various tidbits scattered across the internet. There’s even a great cheat sheet.

    We also use monit to handle our production environment. monit is a nice program which provides a web interface for monitoring your apps. It will restart wayward processes and e-mail you when trouble arises. On top of that, it can also watch to make sure daemons don’t take up too much CPU or memory and kill them when they do. It uses a nice little DSL for its config files and, as long as you have a pid file, is easy to get up and running. There’s a nice starter monit config file here and plenty of resources out there. monit can even replace mongrel cluster. Highly recommended.

    Plugins

    Okay, we use a lot of plugins. I’m going to make this a bullet list. Just pretend it’s a PowerPoint presentation. Er, on second though, don’t.

    acts_as_cached

    Already mentioned further up, we use memcached to cache many database queries. This plugin supports model caching, session caching, and fragment caching out of the box. A simply memcached.yml is added to our config/ directory and we can forget about it. The README file provides a wealth of common idioms and a mailing list keeps patches (and bug reports) flowing. Essential.

    query_trace

    Also essential, times two. This plugin attaches a short backtrace to every SQL query in your log files. The first time I heard this I thought, ‘so what?’ Well, it’s a big deal. Suddenly you know exactly what is going on with your ActiveRecord code—you know the exact line number from which queries are being spawned. When you’re trying to cache everything using memcached, this goes a long way in helping you sort out what’s what.

    exception_notification

    Again, essential. E-mails us whenever an exception is raised on the site. Some days I just gather up the exceptions in my Inbox and bang away on those bugs for an hour or two. Then, no more e-mails. It’s very gratifying. Best part is, you can control whether certain exceptions show a 500 or a 404, and you can even set the prefix of the e-mails you receive. For instance, I can set the e-mail prefixes then setup mailbox filters to have all the e-mails prefixed with [CHOW] go to my Inbox and all the e-mails prefixed with [CHOWHOUND] go into my trash can. Very slick.

    acts_as_textiled

    The first ‘official’ plugin extracted from our work, acts_as_textiled lets us forget about rendering Textile. Instead of having to ask ‘should I render Textile?’ the question becomes ‘should I not render Textile?’ If a story description uses Textile, we always want it rendered—except in special circumstances. It’s nice to not have to use the textile helper all over our app and instead focus on things that matter. Like pastels.

    acts_as_solr

    This is a bit of a white lie. We’re currently using a plugin PJ rolled called ‘acts_as_indexed,’ but he is in the process of transferring our stuffs over to acts_as_solr. It’s a fine piece of work and written by people who know Lucene (and solr) inside and out. One of those dudes even wrote a book, I hear.

    debug_view_helpers

    This is a real life saver. If you’ve ever used Smarty, you know how great that ‘debug’ window is that pops up. There’s no ambiguity for your CSS people: all the available variables are shown right there in a pop-up window. We installed this plugin and set the ‘debug’ link to appear a) in development mode b) if you’re on the VPN. That means, even in production mode, authorized elite personnel can always see the variables available to the view. So awesome for debugging. (Plus it means I don’t have to talk to our CSS guy, Todd, so much. He is weird.)

    has_many_polymorphs

    Evan Weaver’s crazy plugin lets us forget about all the black magic we learned from Josh Susser. Little o’ this:

    class Tag < ActiveRecord::Base
      has_many_polymorphs :tagged_things, :from => [:posts, :files, :tags]
    end
    

    Yup. Very nice. Also lets you do Tag.find(:all, :include => :tagged_things) and fetches the result in one query. But who cares, you’re caching everything anyway, right?

    request_routing

    Hey, check out this code:

    map.connect '', :controller => 'mobile', :conditions => { :subdomain => 'm' }
    

    Can you believe that’s not in core? Me neither. It’s great, and thanks to the request_routing plugin we’re able to use it for Chow’s mobile site. Plus, Dan Webb’s blog is hot. There. I said it.

    redbox

    You just have to see it for yourself. Real nice code which lets you pull off that whole ‘lightbox dialog’ thing. We’re using it for the ‘E-mail to a Friend’ links. The less Javascript we have to write, the better.

    unicode_hacks

    Right now, Unicode seems to fall down when you need to pattern match against it or do any sort of string manipulation. Lucky for us we just do input and output. Until the new Rails hits the streets, we rely on the unicode_hacks plugin to get those crazy foreign characters in and out of our database correctly.

    browser_filters

    Safari crashing randomly? We (correctly) suspected Unicode. This Super Official Rails Plugin solved our problems and may solve yours. Also provides a few more fixes and tweaks.

    composite_migrations

    Yes, we’re crazy enough to use composite primary keys. That’s just the way some of us were raised. This home rolled plugin allows us to create the dastardly fellows in a migration so that we may use the composite primary key gem freely and openly in our code. Hey, we’ve got opinions, too.

    Libraries

    First and foremost, hpricot is an amazing invention and a huge help. Scraping and parsing HTML/XML isn’t something we think twice about anymore. We use hpricot on more than one XML import feed because it’s just so damn easy. If you’ve never given it a shot, I recommend trying it soon.

    Both Dr Nic’s Magic Models and Camping are used by us to prototype all sorts of ideas and internal tools. Some of our top secret monitoring tools run using a combination of the two. Being fluent in Camping, and knowing some tricks to get it working with Magic Models, is a must.

    RFuzz, available as a standard Ruby gem, is a library which makes it trivial to test web sites. We run periodic RFuzz tests against our live sites to make sure they’re alive, bullet proof, and speedy. The tests run just like unit tests and help us feel that much better about our babies. During the big security fiasco RFuzz was instrumental, and since I’ve fallen in love.

    When it comes to testing, nothing gives me more pleasure than color. Thanks to Pat Eyler, the redgreen gem makes all those little repetitive dots that much more bearable.

    Use autotest. It takes your mind off the testing and lets you focus on the tests.

    FasterCSV is a gem you can get from the RubyGems stronghold. One of our data feeds is delivered as Excel, which is basically completely useless. We export it to CSV then import it into our database with FasterCSV, which can nail about 5000 records in 2 seconds. Awesome.

    Mocha is a library for stubbing and mocking tests. Because of it, I’ve slowly been moving over to a fixture-less and speedy state of mind. There’s all sorts of information out there on using Mocha (as well as a mailing list), so dive right in.

    First made known to me by technoweenie, Piston is an incredible tool for managing Rails plugins. We had troubles when deploying with svn:externals: our server would try to make too many connections to the external SVN server too quickly. As a result, the connections would die and the deploy would fail. Piston solved this issue: we can keep plugins in our local repository and sync them up with their remote repository whenever we want. So far it’s been working out wonderfully, and so easy! If you haven’t started yet, get on the Piston bandwagon immediately.

    Editing

    Sorry, I admit it: I’m not a TextMate guy. Sure, I’m writing this post in TextMate, but I still prefer vim for coding. I know there’s at least one duder out there who can side with me. For that one guy (you know who you are), here’re a few classy vim links: the wiki page, the gem, the Rails plugin, and the html-macros plugin. All essential.

    Outliers

    Like everyone else, we use Subversion and Trac to manage our source code and tickets. We also use Marshmallow and a polling Ruby process to notify us of changes to Subversion. It’s helpful to see the commits in Campfire as they’re always there, whether you are or not.

    We recently started using Crazy Egg to check out clicks on our site and wow wow wow. Everyone has already talked about it, but try it out. F’real. So easy, and it gives you an entirely new perspective on your site.

    Hammers and Tape

    So that’s my toolbox. Maybe I missed a few screws or rulers, sure, but you get the general idea. Have any really great sheets of sandpaper you want to share? Hit me in the comments.

  • Elliott Cable, 2 months later:

    I think you caught pretty much everything we use (cept maybe donthurtme lighttpd sigh), really awesome list – now i’m gonna have to set aside a few days next week to play with all the stuff you named that I’m NOT already using – thanks!

  • stiff, 2 months later:

    Awesome definitely is a good word – thanks :)

  • Tom Brice, 2 months later:

    I’ve had your feed in my “daily” list since you guys started this blog. I am continually amazed at the volume of useful information you provide. This is the best (only?) list I have seen that actually describes all of the stuff that goes into a real app. This glimpse into your world truly awesome. Thanks for Sharing!

  • Elliott Cable, 2 months later:

    One thing I forgot to mention the first time around is Juggernaut: http://juggernaut.rubyforge.org/ Most of the stuff I do includes some ‘literally live’ concept, and Juggernaut is invaluable for anything that is lie between the server and the user.

  • Zack, 2 months later:

    Really helpful stuff. Thanks!

  • Seth, 2 months later:

    Have you looked at searchable as an alternative to acts_as_solr?

  • Andy K, 2 months later:

    Wow, once again I am amazed by an amazingly useful and informative post from you guys. I would type more, but I had to open so many tabs (to view all that sweet stuff), that I can hardly see this textarea… Thanks a ton!

  • Jose F., 2 months later:

    Good stuff. Very helpful and informative.

  • Dave Snider, 2 months later:

    debug_view_helpers

    This sounds awesome if it is anything like SMARTY’s popup. Not having a variable debug window always kinda scared me about working on rails from a front-end standpoint.

    “and instead focus on things that matter. Like pastels.”

    Hilarious, sir.

  • Dylan, 2 months later:

    (vim for the win !)

  • Chris, 2 months later:

    Yes! It’s Dylan! The other vim dude!

  • Chad H, 2 months later:

    I agree on piston, that is awesome

  • Jake, 2 months later:

    Wow…Equally overwhelming and exciting. Great stuff.

  • John Topley, 2 months later:

    Very useful info and a great blog – thanks!

  • Garth, 2 months later:

    Nice article, it’s good to hear how you can implement a high traffic site such as chowhound. On a slightly related note, did you implement any rails page/action caching or just rely on memcache?

  • Kevin Marsh, 2 months later:

    Great list, thanks!

  • Tom Lester, 2 months later:

    Chris, thanks for the great writeup. It’s helpful to see what’s in use on a production site.

  • Joe, 2 months later:

    What is the traffic on Chow.com?

  • todd, 2 months later:

    nice.

  • Bobby Gaza, 2 months later:

    I love your use of pink.

  • Andrew, 2 months later:

    Thanks for posting this!

  • angurio, 2 months later:

    thank-you!!! awesome.. a well sharpened bunch of tools..

  • Chris B, 2 months later:

    Woot! Another Vim user!!

    Great list and excellent write up – many thanks!

  • Rob Pitt, 2 months later:

    This list is hot! Thanks for a few new links. How does the Lucene plugin you mentioned compare to acts_as_ferret? I’ll have to check it out.

  • Luke, 2 months later:

    Excellent thanks for this. Out of curiosity how did you end up converting the excel feed – did you manage it to automate it?

  • david lee, 2 months later:

    that’s one nice list, for sure. Duly stowed.

  • Dave Marshall, 2 months later:

    I’m no hardcare rails developer, but I’m learning and I’m vim all the way. Thanks for article.

  • Anil Maruti Wadghule, 2 months later:

    Thanks! for the nice post!

  • Mark, 2 months later:

    I’m just learning Ruby/Rails. This is a very helpful list. Nice to see what stuff is actually being used out there. Thanx!

  • Anthony, 2 months later:

    Wondering what your using for your backup tools.

  • Thiago Jackiw, 2 months later:

    I’m glad to see more and more people using the acts_as_solr plugin even though it’s on its early stages. Solr is a great engine and we’re glad to make it available to Rails users through the acts_as_solr plugin.

    If you’d like to learn more about integrating Rails with a robust full-text search using Solr and acts_as_solr, we’re trying to get a 1 hour session spot at the Rails Camp on Nov. 9th in San Jose, CA

    Just to mention, the new release of the acts_as_solr plugin will be available in a few days, with bug fixes and couple new features.

  • Jimmy, 2 months later:

    Cool! Very nice!

  • Kevin P. Taylor, 2 months later:

    There are at least three VIM dudes. I use it for anything except Java development. It is a solid Ruby “IDE,” if one is willing to write a few key mappings to run script, launch test suites, etc.

    Nice article.

  • Uday Kiran, 2 months later:

    Nice Article!

  • s22, 2 months later:

    Thanks,very nice.

  • Chuck Bergeron, about 1 month later:

    Blog post of the year!

  • Mike Revoune, about 1 month later:

    I also would like to see here Cerberus Continuous Integration tool. http://cerberus.rubyforge.org

    I found it very useful for my 4-person project. Very useful! And I recommend it any other developer.

  • Jamsona, 7 months later:

    Hello friends! i new on your forum! see ya:))

  • kingvenum, 7 months later:

    The Ultimate Search Engine On Music Video & lyrics All In One The Hottest Music On Earth good tools while you working listen to:::::

    http://www.oketube.com

  • roquestrew, 7 months later:

    Holy sweet Christ this is amazing; now if only there were blog posts out there like this . . . for us PHP heathens

  • Sumit, about 1 year later:

    This whole article was fabricated just so you could use that picture wasnt it? =]

    Great stuff!

  • Maxime Guilbot, about 1 year later:

    What we use really often:

    - will_paginate - acts_as_ferret - dynamic session expiration - haml - rspec & rspec on rails - ...

    Those are excellent plugins!

  • john, about 1 year later:

    could you share your .vimrc with us?

  • Smith, about 1 year later:

    The best article, thanks to the author good jokes

  • Heart Tattoos, about 1 year later:

    Tattoos Celtic Tattoos Lower Back Tattoos Dragon Tattoos Skull Tattoos Heart Tattoos Butterfly Tattoos Chinese Tattoos Layered Hair Styles Layered Hairstyles Emo Hairstyles Medium Hairstyles Bang Hairstyle Prom Hairstyle Hair Coloring Heart Lower Back Tattoos

  • how to care for the elderly, about 1 year later:

    For anyone with old or elderly loved ones, it is important to take care of your care for the elderly care for the elderly at home community care for the elderly program for all inclusive care of the elderly long term care for the elderly residential care for the elderly care homes for the elderly how to care for the elderly caring for elderly parents prudential online retirement center in home care services in hopes making sure you or your old / elderly loved ones are taken care of with the best nursing care available.

  • lezbiyen videoları, about 1 year later:

    sikiş porno sex video izle iyi porno uzun porno yeni pornolar porno seyret sex seyret porno filmler sex izleyin sex izle porno sex erotik porn video türk porno canlı porno porno izle porno porno film sex filmleri porn video porno film sex seyret porno video seyret orgazm porno seks izle erotik video sex videolar yetişkin video sex video izle porno video izle bedava porno 18 video seks porno sıcak izle yetişkin film sikiş seyret sex amatör videolar teen video erotik videolar yetişkin video yetişkin videolar pornolar porno video teen kızlık bozma sikiş sikiş video seks türban sex sex erotik seks izle sıcak ateşli

  • ad, about 1 year later:

    modern abstract art sofa manufacturer гранит 净水器 混合机 过滤机 DHL快递 保险箱 法兰 法兰标准 牛皮癣 皮肤病 北京快递公司 北京国际快递 传世私服 传奇世界私服 天龙八部私服 天龙私服 网络电话 免费网络电话 假发 补发 织发 植发 上海搬家公司 上海搬场公司 大众搬家 大众搬场 张家界旅游 香港旅游 深圳旅行社 打包机 收缩机 萎缩性胃炎 neoprene laptop bags SEO优化 SEO优化 计量泵 胃炎 胃病 冷水机 冰水机 工业冷水机 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 油罐车 北京办证 办证 北京特价机票 北京打折计票 北京国际机票 北京机票预定 北京飞机票 北京订机票 北京机票查询 血糖仪 血糖仪 银杏 水培花卉 企业宣传片 空分设备 机电设备安装 代孕 代孕网 代孕 代孕 代孕 试管婴儿 代孕 电话交换机 程控交换机 集团电话 集装袋 混合机混合机 混合机捏合机 捏合机 捏合机导热油炉 导热油炉 导热油炉 反应釜 反应釜 反应釜 回流焊 波峰焊 spherical roller bearing 搬运车 搬运车 电动搬运车 油桶搬运车 堆高车 电动堆高车 半电动堆高车 堆垛车 高空作业平台车 电动叉车 平衡重叉车 前移叉车 电瓶叉车 苗木价格 苗木信息 标牌制作 深圳标牌 儿童摄影 北京儿童摄影 防静电鞋 淘宝刷信誉 威海凤凰湖 威海海景房 大庆密封件 打标机 淘宝刷信誉 TESOL/TEFL国际英语教师证书 英语教师进修及培训 韩国饰品批发 代写论文 代写论文 代写论文 代写代发 论文代写 电源模块 模块电源 X架 超薄灯箱> 易拉宝 展柜制作 代理服务器 游戏加速器 网络加速器 网通加速器 电信加速器 电信网通转换器 电信网通加速器 网通电信互转 网通电信互通 网络游戏加速器 美国VPN代理 美国独享VPN 美国独享IP pvc ceiling panel Spherical roller bearings 天龙八部私服 SEO优化 安全鞋 劳保鞋 防砸鞋 电绝缘鞋 上海安全鞋 上海劳保鞋 江苏劳保鞋 服装软件 服装管理软件 进销存软件 进销存管理软件 服装管理系统 服装进销存软件 进销存系统 进销存管理系统 免费进销存软件 吉林中医 东北特产 打包机 dhl 阳痿 阴茎短小 阴茎增大 早泄 前列腺炎 阴茎增粗 阴茎延长 国际机票 上海国际机票 国际打折机票 国际特价机票 CRM 客户管理软件 客户关系管理 免费客户管理软件 客户管理软件下载 客户信息管理系统 销售管理系统 销售管理 CRM系统 CRM软件 客户关系管理系统 客户关系管理软件 客户管理 客户管理系统 营销管理系统 客户资源管理 销售管理软件 客户资料管理软件 客户资源管理软件 客户信息管理软件 客户资料管理 客户资源管理 客户信息管理 客户资料管理系统 客户资源管理系统 客户管理软件免费版 砂磨机 砂磨机 砂磨机 卧式砂磨机 卧式砂磨机 卧式砂磨机 三辊研磨机 三辊研磨机 三辊研磨机 混合机 混合机 混合机 锥形混合机 锥形混合机 锥形混合机 行星动力混合机 行星动力混合机 行星动力混合机 无重力混合机 无重力混合机 无重力混合机 干粉砂浆设备 干粉砂浆设备 干粉砂浆设备 捏合机 捏合机 捏合机 导热油炉 导热油炉 导热油炉 反应釜 反应釜 反应釜 搪玻璃反应釜 搪玻璃反应釜 搪玻璃反应釜 乳化机 涂料设备 干混砂浆设备 无重力混合机 胶体磨 涂料成套设备 双螺旋混合机 北京婚庆 北京婚庆公司 400电话 办证 呼吸机 制氧机 亚都 亚都加湿器 亚都净化器 亚都装修卫士 饰品批发 小饰品批发 韩国饰品 韩国饰品批发 premature ejaculation penis enlargement 破碎机 制砂机 球磨机 雷蒙磨 雷蒙磨粉机 鄂式破碎机 鄂式破碎机 免烧砖机 加气混凝土设备 反击式破碎机 选矿设备 安利产品 马来西亚留学 网站优化 网站推广 衬布 代写论文 代写论文 代写论文 论文代写 代写论文 代写硕士论文 代写毕业论文 磁力泵 离心泵 化工泵 隔膜泵 螺杆泵 潜水泵 油泵 耐腐蚀泵 泵 水泵 拖链 防护罩 排屑机 塑料拖链 钢铝拖链 水泵 磁力泵 隔膜泵 离心泵 液下泵 自吸泵 多级泵 排污泵 螺杆泵 油泵 化工泵 电动隔膜泵 气动隔膜泵 自吸式磁力泵 氟塑料磁力泵 管道离心泵 导热油泵 深井泵 潜水泵 污水泵 潜水排污泵 深圳装饰 深圳装饰公司 深圳装修公司 特价机票 打折机票 国际机票 机票 新风换气机 换气机 立式新风换气机 风机箱 新风系统 能量回收机 搅拌机 混合机 乳化机 分散机 毛刷 毛刷辊 工业毛刷 刷子 钢丝刷 涂层测厚仪 硬度计 兆欧表 激光测距仪 测振仪 转速表 温湿度计 风速仪 超声波测厚仪 粗糙度仪 噪音计 红外测温仪 万用表 硬度计 万用表 美容院 美容加盟 澳洲留学 澳大利亚留学 什么是法兰 电烤箱 酒店预定 北京酒店预定 北京酒店 离心机 nail equipment nail products nail product nail uv lamp nail uv lamp nail uv lamps uv nail lamp nail brush nail file nail tool nail tip nail gel curing uv lamps lights 万用表 风速仪 红外测温仪 噪音计

  • 123, about 1 year later:

    情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣,情趣,情趣,情趣,情人歡愉用品,情惑用品性哥,情人用品性哥,情趣用品,AIO交友愛情館,情人歡愉用品,美女視訊,情色交友,情人用品性哥,視訊交友,辣妹視訊,美女交友,性愛,嘟嘟成人網,按摩棒,震動按摩棒,微調按摩棒,情趣按摩棒,逼真按摩棒,G點,跳蛋,跳蛋,跳蛋,性感內衣,飛機杯,充氣娃娃,情趣娃娃,角色扮演,性感睡衣,後庭區,SM,潤滑液,情趣禮物,威而柔,香水,精油,芳香精油,自慰,自慰套,性感吊帶襪,情趣用品加盟,情人節禮物,情人節,吊帶襪,辣妹視訊,美女交友,情色交友,成人交友,視訊聊天室,美女視訊,視訊美女,情色視訊,免費視訊聊天,視訊交友,視訊聊天,AIO交友愛情館,嘟嘟成人網,成人貼圖,成人網站,AIO交友愛情館,情色,情色貼圖,情色文學,情色交友,色情聊天室,色情小說,七夕情人節,色情,A片,A片下載,免費A片,免費A片下載,情色視訊,情色電影,色情網站,辣妹視訊,視訊聊天室,情色視訊,免費視訊聊天,視訊聊天,美女視訊,視訊美女,美女交友,美女,情色交友,成人交友,自拍,本土自拍,情人視訊網,視訊交友90739,生日禮物,情色論壇,正妹牆,正妹,成人網站,A片,免費A片,A片下載,免費A片下載,AV女優,成人影片,色情A片,成人論壇,情趣,免費成人影片,成人電影,成人影城,愛情公寓,色情影片,保險套

  • qw, about 1 year later:

    Thanks so much for this! This is exactly what I was looking for

    mirc mırc mırç mirç mirc indir mirc yükle mirc yukle türkçe mirc mirc indir mirc islami sohbet kelebek kelebek script kelebek sohbet kelebek mirc chat çet cet çet odaları sohbet kanalları sohbet odaları kameralı sohbet kameralı chat sohbet eğlence mirc sohbet odaları sevgili arkadaş arkadaş bul arkaraş ara oto araba şarkı sözleri astroloji ikinci el telefon gazete gazeteler günlük gazeteler marifetname bedava domain ücretsiz domain benimurl parça kontör parça kontör radyo dinle bedava blog ücretsiz blog

  • , about 1 year later:

    Victorias Secret Victoria’s Secret Fashion show Victorias Secret Pink Victorias Secret Model Victorias Secret Credit Card Victorias Secret Coupon Code Victorias Secret Lingerie Victorias Secret Fashion Show 2005 Victorias Secret Fashion Show 2006 Victorias Secret Bra Victorias Secret Catalog Victorias Secret Pantie Victorias Secret Online Coupon Victorias Secret Fashion Show 2007 Victorias Secret Girl Free Shipping Victorias Secret Victorias Secret Home Victorias Secret Christmas Victoria’S Secret Pink Dog Victorias Secret Music Victorias Secret Semi Annual Sale Victorias Secret Jobs Victorias Secret Free Shipping Code Victorias Secret Shoes Victorias Secret Thong Victorias Secret Commercial Victorias Secret Promotional Code Victorias Secret Love Spell Victorias Secret Boots Victorias Secret Employment Victorias Secret Reviews Victorias Secret Jeans Victorias Secret Brasil Victorias Secret Bag

  • , about 1 year later:

    情人用品,情人用品性哥,情 人用品,情趣用品,視訊交友,視訊美女,視訊美女,視訊交友網,視訊聊天室,視訊聊天室,視訊 交友網,免費視訊聊天,辣妹視訊,辣妹視訊,情人視訊網

  • dd, about 1 year later:

    徵信社,案件討論,男女專區,法律諮詢,相關新聞,情趣用品,情趣用品,情趣精品,情趣用品,情趣用品,情趣用品,情趣用品,威而柔,自慰套,自慰套,SM,充氣娃娃,充氣娃娃,潤滑液,飛機杯,按摩棒,跳蛋,性感睡衣

    威而柔,自慰套,自慰套,SM,充氣娃娃,充氣娃娃,潤滑液,飛機杯,按摩棒,跳蛋,性感睡衣,視訊交友90739,情人視訊網,情色交友,視訊交友,辣妹視訊,美女視訊,aio交友愛情館,情色論壇,成人論壇,免費視訊聊天,辣妹視訊,視訊交友網,美女視訊,視訊交友,成人視訊,情趣用品,成人聊天室,情趣,情趣,視訊聊天室,視訊聊天,視訊聊天室,情色視訊,情人視訊網,免費視訊聊天室,aio交友愛情館,色情遊戲,寄情築園小遊戲,情色文學,一葉情貼圖片區

  • , about 1 year later:

    aksiyon oyunlari atis oyunlari barbie oyunlari basketbol oyunlari beceri oyunlari boyama oyunlari kumar oyunlari casino oyunlari cocuk oyunlari dovus oyunlari sexy oyun eski oyunlar oyun haberleri oyun hileleri yeni oyunlar futbol oyunlari macera oyunlari multiplayer oyunlar cift kisilik oyun ikili oyun muzik oyunlari spor oyunlari sue oyunlari sue oyun ucak oyunlari erotik oyunlar sexy oyunlari zeka oyunlari yemek oyunlari yaris oyunlari

  • jj, about 1 year later:

    :-)))) Very interesting! Thanks!!! phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex phone sex mootzie cosmology edvard munch humorous quotations hundredth monkey brain teasers jillian ann shakespeare quotations bride of frankenstein gettysburg address bill of rights van gogh bowling tips violin books eden prosper julia dreyfus violin bows chess download xslt aviation funny quotes xslt tips gothic abs self hypnosis gothic clothes monique olivia noda amanda roberts somethings happening bgreen68 bfire3 reldeve links psychology hypnosis phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex phonesex mootzie buffys bedroom blog the great adventure