Thursday, June 21, 2012

More than a weekend project

I composed this post back in July, 2008, but never clicked Publish.

Since mid-Feb, my good friend Tom and I have been working on a web project: ScoobyDeal.com, is a deal-at-a-time social commerce site for cool gadgets and great deals. We're down to the last week of testing and bugfixing. I think of this project as my Guy Kawasaki how-I-built-a-web-site for under $X.


This is a v1 of ScoobyDeal with plans to add other social features. This post lays it all out for posterity.

We started the project Mid-Feb and have been working with an awesome team distributed globally on the implementation while doing the product/project management and testing State-side. So here is the breakdown.

One-time Costs:

  • Corporate entity: $115, DIY at the Secretary of State's office in San Francisco.
  • UI Design (mockups and flows): in- house with endless hours with Adobe Illustrator and lots of help from good friends.
  • UI Development: $935 Web Cake, Cairo, Egypt. Initial concepts State-side $350.
  • Web Development: $24,500 Idea2It, Chennai, India.
  • Logo: $125 Ukraine.
  • Copy: in-house (the typos are my fault).
Infrastructure:
  • PayPal Web Payments Pro for credit card processing.
  • Google Maps API.
  • Google Custom Search Engine.
  • Ruby on Rails 2.0 on Aparche and Mongrel plus MySQL
  • ImageMagick.
Ongoing Costs:
  • Web Hosting: Virtual Private Server $49.99/mo. Server Point.
  • Collaboration: $12/mo. Basecamp Personal Edition.
  • Credit Card Processing: $30/mo. PayPal.
  • Version Control and Bug Tracking: $49/year ProjectLocker Light Angel Edition.
Special Thanks:
  • Kamo Asateryan for help with social marketing.
  • Brodey Jenkins for creativitiy.
  • Suren Markossian for help with instrastrucutre.
  • Sanjay Kapoor for help with Ruby and Rails.
  • Alex Chee for the initial design.
  • Team Viewer for being such an awesome product.

Read more...

Octofeed.com and me

I tried out ocotofeed.com the other week. Octofeed is a cleaner way to read your Facebook Wall and Newsfeed. I liked it and turned my wife to it. She quickly noticed some posts from her feed weren't appearing in Octofeed. I emailed hello@octofeed.com and Daniel Chin-Yee responded promptly.


 It turns out that octofeed, like other apps, is at the mercy of the Facebook API's which don't pump all the content out. Plus, what gets pumped out to other apps varies by your friend's privacy settings. So the layout is great but you may not see everything. We've both cooled off Octofeed since. And here is the rest of it.

Read more...

Saturday, June 28, 2008

Gems Gems everywhere!

Today, I set out to upgrade my MacBook Pro to a full fledged dev machine. For this, I added XCode Tools and about a dozen 10 Ruby gems plus ImageMagick which proved to be a bit hairy.

Here we go...

Last login: Fri Jun 27 22:14:41 on console
Macintosh-2:RailsProjects roupen$ sudo gem install RubyInline
Updating metadata for 528 gems from http://gems.rubyforge.org/
...............................................................................complete
Successfully installed rubyforge-1.0.0
Successfully installed hoe-1.6.0
Successfully installed RubyInline-3.7.0
3 gems installed
Installing ri documentation for rubyforge-1.0.0...
Installing ri documentation for hoe-1.6.0...
Installing ri documentation for RubyInline-3.7.0...
Installing RDoc documentation for rubyforge-1.0.0...
Installing RDoc documentation for hoe-1.6.0...
Installing RDoc documentation for RubyInline-3.7.0...


Cool, 3 birds with 1 stone.

Macintosh-2:RailsProjects roupen$ gem install log4r
Successfully installed log4r-1.0.5
1 gem installed
Installing ri documentation for log4r-1.0.5...
Installing RDoc documentation for log4r-1.0.5...
Macintosh-2:RailsProjects roupen$ gem install dsl_accessor

Successfully installed activesupport-2.1.0
Successfully installed dsl_accessor-0.1.0
2 gems installed
Installing ri documentation for activesupport-2.1.0...
Installing ri documentation for dsl_accessor-0.1.0...
Installing RDoc documentation for activesupport-2.1.0...
Installing RDoc documentation for dsl_accessor-0.1.0...


Cool, 2 birds with 1 stone.

Next, i installed google-geocode but it turns out I didn’t need it so I uninstalled it (Murali ;-) ).

Macintosh-2:RailsProjects roupen$ gem install google-geocode
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/bin directory.
Macintosh-2:RailsProjects roupen$ sudo gem install google-geocode
Password:
Successfully installed ZenTest-3.10.0
Successfully installed rc-rest-2.2.1
Successfully installed google-geocode-1.2.1
3 gems installed
Installing ri documentation for ZenTest-3.10.0...
Installing ri documentation for rc-rest-2.2.1...
Installing ri documentation for google-geocode-1.2.1...
Installing RDoc documentation for ZenTest-3.10.0...
Installing RDoc documentation for rc-rest-2.2.1...
Installing RDoc documentation for google-geocode-1.2.1...
Macintosh-2:RailsProjects roupen$ sudo gem uninstall google-geocode
Successfully uninstalled google-geocode-1.2.1
Macintosh-2:RailsProjects roupen$ sudo gem uninstall zentest
ERROR: While executing gem ... (Gem::InstallError)
Unknown gem zentest->= 0
Macintosh-2:RailsProjects roupen$ sudo gem uninstall ZenTest

You have requested to uninstall the gem:
ZenTest-3.10.0
rc-rest-2.2.1 depends on [ZenTest (>= 3.4.2)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn] n
ERROR: While executing gem ... (Gem::DependencyRemovalException)
Uninstallation aborted due to dependent gem(s)
Macintosh-2:RailsProjects roupen$ sudo gem uninstall rc-rest
Successfully uninstalled rc-rest-2.2.1
Macintosh-2:RailsProjects roupen$ sudo gem uninstall ZenTest
Successfully uninstalled ZenTest-3.10.0
Remove executables:
autotest, multiruby, multiruby_setup, rails_test_audit, unit_diff, zentest

in addition to the gem? [Yn] Y
Removing autotest
Removing multiruby
Removing multiruby_setup
Removing rails_test_audit
Removing unit_diff
Removing zentest

A quick visual check…

Macintosh-2:RailsProjects roupen$ gem list

*** LOCAL GEMS ***

actionmailer (2.0.2, 1.3.6)
actionpack (2.0.2, 1.13.6)
actionwebservice (1.2.6)
activerecord (2.0.2, 1.15.6)
activeresource (2.0.2)
activesupport (2.1.0, 2.0.2, 1.4.4)
acts_as_ferret (0.4.1)
capistrano (2.0.0)
cgi_multipart_eof_fix (2.2)
daemons (1.0.7)
dnssd (0.6.0)
dsl_accessor (0.1.0)
fastthread (1.0)
fcgi (0.8.7)
ferret (0.11.4)
gem_plugin (0.2.2)
highline (1.2.9)
hoe (1.6.0)
hpricot (0.6)
libxml-ruby (0.3.8.4)
log4r (1.0.5)
mongrel (1.0.1)
needle (1.3.0)
net-sftp (1.1.0)
net-ssh (1.1.2)
rails (2.0.2, 1.2.6)
rake (0.8.1, 0.7.3)
RedCloth (3.0.4)
ruby-openid (1.1.4)
ruby-yadis (0.3.4)
rubyforge (1.0.0)
rubygems-update (1.1.1)
RubyInline (3.7.0)
rubynode (0.1.3)
sqlite3-ruby (1.2.1)
termios (0.9.4)

Carry on…

Macintosh-2:RailsProjects roupen$ sudo gem install image_science
Password:
Successfully installed image_science-1.1.3
1 gem installed
Installing ri documentation for image_science-1.1.3...
Installing RDoc documentation for image_science-1.1.3...
Macintosh-2:RailsProjects roupen$


Time for ImageMagick.

See this go to section about Mac OS X binary release.


Download ImageMagick-universal-apple-darwin9.3.0.tar.gz and copy to /Users/roupen or somewhere permanent because you’re going to point environment variables to here.

tar xvfz ImageMagick-universal-apple-darwin9.3.0.tar.gz
rm ImageMagick-universal-apple-darwin9.3.0.tar.gz

You should see a new dir /Users/roupen/ImageMagick-6.4.1

Next, set some env variables


export MAGICK_HOME="$HOME/ImageMagick-6.4.1"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib"

Run a quick test to make sure ImageMagick is working

Macintosh-2:~ roupen$ cd
Macintosh-2:~ roupen$ pwd
/Users/roupen
Macintosh-2:~ roupen$ convert
Version: ImageMagick 6.4.1 06/12/08 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC

UPDATE

I had some problems getting RMagick going – the issue is well covered in discussions on the web. So I backed away from installing image_magic and then the rmagick gem separately. I deleted the image_magic directory and well rmagick never installed.

The NEW path that paid off is described here using rmagick-osx-installer. Search for How do I install RMagick on OS X? on this page for details.

As described in the README for the rmgaick_osx_installer, I first installed XCode Tools and X11SDK off the MacBook Pro DVD. After that, I installed the script and it took a while but it was very uneventful.

libpng was installed successfully
libjpeg was installed successfully
ghostscript was installed successfully
ghostscript-fonts-std was installed successfully
FreeType was installed successfully
libwmf was installed successfully
ImageMagick was installed successfully
RMagick was installed successfully
Removing rm_install_tmp directory...Done


I think I am done. The convert test passed.

Macintosh-2:rm_install-1.1.1 roupen$ convert
Version: ImageMagick 6.4.2 06/28/08 Q8 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC

I got real close to using MacPorts for this last step but didn’t (felt heavy handed).

Read more...

Friday, June 27, 2008

Payo who?

Every now and then, a horrible customer service experience comes around that redefines for me what bad customer service actually is. Over the last 24 hours, I have been experiencing just that with Payoneer.com. I set out to transfer some funds (sub $1k) from here to an offshore location using their service. On this end, I am using a credit card.

The only way to reach these people is via chat support on their site where you wait time can vary from a few minutes to half an hour. The help you get over chat is robotic at best. You try calling their main number and "press-2" gets you to support which after telling you to go online actually dead-ends and the call drop right after they tell you to leave a message. You "press-3" to reach sales. Well, yesterday, I left a voice message and no one called back of course. Today, it too was dropping the call. There is no one to talk to.

Finally, it came down to them asking me to FAX over a copy of my drivers license and a copy of the back and front of the credit card I am using (as to why they wanted this is a whole other story of course). This came after I got an email yesterday telling me that the transaction was approved. Today, they decided they needed more "documentation".

Ok, so where do I send it to? They gave me 2 fax numbers non of which worked. Finally, they had the audacity to ask me to scan the 3 pages and send it in. Meanwhile, I had an unpleasnt call with one support rep. And an unpleasant chat with another. WOW! A horrible customer service experience.

I had to use these guys but if you ever have a choice, avoid this one.

Read more...

Thursday, June 05, 2008

S3 the way to go for backups...

So I'm still a newb with all this web app dev stuff. One of the many worries as we get ready to deploy a real app - with real customer data - is backups.After hashing it over with Suren and Murali and talking with the hosting provider (ServerPoint - who so far haven't been very helpful, so may be x-provider soon).

My spiritual adviser at SpeedyRails, Maykel Rodriguez suggested S3 and he has the data to prove it.

For example, if you transfer 100MB every day to amazon s3, that's 3GB of data transfer-in per month, and then 3GB of storage (considering you only keep one month of backups), let's say you download 1GB per month as well and you have a total of 1000 requests (many http get/post requests)... this is... only 0.93 USD per month! LOL ... pretty cheap eh?
Here, do the math using the S3 cost calculator.

$0.93 BRILLIANT! EUREKA!

Read more...

Wednesday, June 04, 2008

Wazup up with eFax lately?

eFax is one of the very-very first "free" services that I remember coming across in my early days with the internet. So we are talking 10+ years.

It was always a paid and a free model. I signed-up for a free version and got a number. Who uses FAX these days anyway, you ask? I don't receive much but having school-aged kids, they receive homework and stuff from friends now and then...

So I guess this pre-Web 1.0 fixture must be having monitization issues because I have been getting some random emails from them in the last couple of months trying to get me to upgrade. First, it was "hey, your number is changing" GREAT! Its still customary to have a FAX number of business cards and I have used my eFAX number for years. Thanks eFAX! Today, it was an email saying I have received 45 pages in the last 90 days and that I am violating my service agreement.

First, I understand a company has to monitize but is this the best way to go around it with a 10+ year user? Second, in this day and age of VOIP and ad models, isn't there some other ways that eFAX can monitize?

I think I am going to look for an alternative service or just stop including a FAX number in my coordinates. As for the kids, we have an traditional FAX number attached to the phone line, they can start to use that...

UPDATE: I got (yet) another email from eFAX today that I violated their terms of use, yadi yada. This time, I called the sales number in the email (oy vey!). After some classical music, some perky lady answered and after asking for my eFax number she kept reminding me that they have NO infomration about my account (because its free). So then why am I getting these notices? She had no idea. Bottom line: wait until June 25, your old number will expire and we will issue a new one. Ha? That's it? thats it... According to her, they are trying to recover number because they are short (443 area codes? hm, ok). To me, this is just bully-spam to get people to upgrade. Shame on eFAX.

Read more...

Saturday, May 17, 2008

Smoother than expected

I just got around to upgrading my MacBook Pro to Rails 2.0.2 and the experience was smoother than expected. I figured something was going to blow-up somewhere but it all went smooth. I followed the 4 steps outlined here.

sudo gem update --system
sudo gem install rails
sudo gem update rake
sudo gem update sqlite3-ruby
Step 3 reported that it had nothing to update. Step 4 likewise. I don't use sqlite so I probably did'nt need to do the last step but I did for completeness.

David updated textbull to run on 2.0.2 so it was time to upgrade. I'm now merging Purnima's code in.

Read more...

Monday, April 14, 2008

Firefox and gmail not happy


Firefox and gmail not happy
Originally uploaded by roupen
I been using my MacBook Pro happily for the last few months including Firefox 2.0 and Gmail. A couple of days ago, gmail stopped working with Firefox on my machine.

I tried clearing cookies and even reinstalled firefox but the problem wont go away. So for now, I am using Safari to read my gmail, which is not bad but its no firefox :(

Update: I upgraded to FF3 Beta and the problem went away (thanks to Noam for the suggestion). I lost a few plugins along the way that weren't compatible with FF3 but oh well.

Read more...

Saturday, April 12, 2008

My unintentional hike

So at 3PM Friday I had an appointment to go see an oral surgeon referred by my regular dentist to pull out a wisdom tooth whose time had come. The address I was trying to get to was something California Ave in San Francisco. So I Google mapped it and decided to BART. HAH!

I landed at Montgomery street BART - the city was brilliant and sunny. The Google map showed a few blocks on California from Montgomery - no sweat. I was even a half hour early for my 3PM appointment. So I turned on California and noticed the addresses were 300-something hah, I was trying to get ot 3500-something. O-oh. So Google maps was wrong, clearly. I was trying to get to the corner of Spruce and California. I asked a cab driver and he said "couple of miles". So I figured I have time and let me hike it - its a beautiful day. What I didn't take into account is the UPHILLS of San Francisco - haha. Up towards Mason I will breathing from every orafesus on my body. An hour later, I made my way to my destination half hour late. I must have hiked about 40 blocks. The good news is that taking the wisdom tooth out was a breeze!

Read more...

Sunday, April 06, 2008

Teen influence

My teen influencing my musical taste days.

Read more...