SyntaxHighlighter

Tuesday, October 23, 2007

Attracting Users

So, the Dazlus appears to be successful in the sense that users are able to get the things done they need to do - set up an actors profile, add photos, and link to videos. I haven't had any complaints, and I have a pretty good conversion rate.

So the next challenge, the real challenge is getting users to come to the site in the first place. I'm trying a number of strategies. My second post on Craigslist was flagged and removed. Wrong category I think. I believe if we could post some projects and roles we'd get a lot more signups and have a valid reason to post to Craigslist.

We'll see if we can get this in place next.

I've also signed up for a number of bulletin boards where actors hang out and talk about strategies to improve their careers, and I'm trying to get into those conversations where it makes sense. A couple clicks now come from these links.

Also, this blog seems to send a relatively lot of traffic to Dazlus.

And, for SEO, I'm adding some features that should help. Thanks to Tony Wright for his suggestions at the last Seattle Tech Startups meeting.

Monday, October 15, 2007

Exciting day

So I posted some details about Dazlus on craigslist - inviting people to try it out and to submit feedback. Here's my post...

http://seattle.craigslist.org/see/tlg/449937289.html

It's gone really well. I was hoping to get 3 users at least, and that took about 4 hours. In the last hour of the day, we had another 4 sign up and create profiles giving us 7 on the day. Actors and performers appear to be more active at night. Go figure.

Here's some of the profiles from our first users:

http://www.dazlus.com/mari
http://www.dazlus.com/riggs
http://www.dazlus.com/leah

Wednesday, October 10, 2007

Rails Cookies in a view

I never really found an answer to this anywhere, but it looks like Rails does not allow access to the cookies object in the view. You have to access it as @cookies. I suspect this is so you won't set a cookie in the view, but I don't really know why that's an issue. I was trying to access it to see what was in it while testing.

Also - it appears the default behavior of the cookie expires property is 'now', not 'never' as stated in the DHH's rails book, (Feb 2006).

So - to get the "remember me" cookie to act as I wanted - I set the expires to be far off in the future. Good enough for my purposes.

cookies[:user_id] = {:value => user.id.to_s, :expires => 1.years.from_now }

I don't know if there is a security issue with this at this point. Storing the users ID locally and using only that to sign in sounds like a security problem. I'll do something to hide this if so.

Tuesday, October 09, 2007

Rake Tasks and Cron Jobs on Webmin

Learning all sorts of new stuff lately...

Rake Tasks are great. You can access your database through Rails to do whatever you want. In my case, I wanted to email fans on dazlus.com with any profile changes that may have occurred by their idols (the profile of which they have indicated they are a fan).

IE - If Bob adds a new photo, his fans get an email later in the day letting them know about it with a convenient link to go in and see it.

This is pretty easy - though a little tricky at Joyent to set up the cron job. Joyent is my service provider. To get cron job set up here, you need to do two commands: 1) cd to the app directory and 2) run the rake task.

To do this - a command like this works:
cd /path/to/rails/app && /usr/local/bin/rake RAILS_ENV=production mail:fan_news
You have to cd to the rails app first. If not you will see permission denied errors.

I'm also using Cron + Rake to send me updates about the site - checking regularly to see if there are any broken pages and to send me an email if so. Very handy tool to know about.

Friday, October 05, 2007

Released Dazlus

So, the project I've been working on for a month, dazlus.com, was opened to the public today. It's a site aimed at aspiring actors, dancers, models, etc. I'm really happy with the development of it. Went very smoothly. I learned a lot and got a better handle on more aspects of development - databases, server configuration, 3rd party integrations - things a web developer doesn't usually mess with.

I started one month ago on Sept 5th, same day Ryan started Kindergarten.

Lots more to do, of course, but hopefully I'll start getting some feedback and be able to let the customer design the site from now on.

Thursday, October 04, 2007

FastCGI File Upload error

This error was tough to track down. I have a really simple rails app running using mini_magick and FastCGI and Lighttpd. I got the following error when I tried to upload an image that was greater than 120K

[04/Oct/2007:19:33:42 :: 28348] Dispatcher failed to catch: protocol error (FCGI::Stream::ProtocolError)
/usr/local/lib/ruby/1.8/cgi.rb:980:in `read'
/usr/local/lib/ruby/1.8/cgi.rb:980:in `read_multipart'
/users/home/dazlus/web/public/../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb:20:in `initialize_query'
/usr/local/lib/ruby/1.8/cgi.rb:2275:in `initialize'
(eval):16:in `initialize'
/usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:612:in `new'
/usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:612:in `each_cgi'
/usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each'
/usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each_cgi'
/users/home/dazlus/web/public/../config/../vendor/rails/railties/lib/fcgi_handler.rb:53:in `process!'
/users/home/dazlus/web/public/../config/../vendor/rails/railties/lib/fcgi_handler.rb:23:in `process!'
/users/home/dazlus/web/public/dispatch.fcgi:24
almost killed by this error

Looking into it, there wasn't much on the web. I found some general posts about a cgi.rb issue with FastCGI that crashes for certain file types. I saw a couple posts about tmp directory file size limits. But neither was it. I then found some reports about FastCGI errors and Mongrel is recommended at Joyent.com, so I switched to Mongrel and I had no trouble afte that.

Tuesday, September 25, 2007

Feature complete

The last two features - Ratings and Email went in quickly, but email required some tricks that I'll outline below. I was trying to hook up with my Google Apps account, and this required some extra configuration as Google requires SMTP+SSL or TLS.

Here's what I did to get my Ruby on Rails app to send email through ActionMailer using Google Apps.

First - you need to add a plugin. Follow the instructions on this blog post by Stephen Chu How to use Gmail SMTP server to send email in Rails ActionMailer. The plugin is necessarly to allow ActionMailer to use TLS.

Lastly, I was getting errors in production. No template found...

The answer to this problem was on a blog post by Miroslav Škultéty: No rhtml, rxml, rjs or delegate template found.

It is still slow, the server logs in to send the email while the browser waits for a response. I'll fix this later and figure out how to move it to a separate thread.

Tuesday, September 11, 2007

Image Upload and resizing using mini_magick

I got the image upload piece working on my new app. I used mini-magick and it went just great. I followed the post at railsforum and it went relatively smoothly. I had to unpack the gem for mini_magick and make it a plugin so it could run at TextDrive. They don't have this gem in their library.

Sunday, September 09, 2007

Setting up a Mac for Ruby on Rails Development

I use Textdrive.com for my hosting, and I was developing on a Windows PC running XP pro. I wanted to switch to a Mac so I could (hopefully) load the gems that I need in my ruby application like ImageScience, or Mini-Magick. I was having trouble getting these running on a PC. I assumed the operating system of the Mac and my Linux based server would be more similar than the pc, and a laptop sounds useful.

So I bought a 15" macbook pro from Powermax and followed the instructions on this site:

http://hivelogic.com/narrative/articles/ruby_rails_lighttpd_mysql_tiger

Textdrive uses Rails 1.1.6, so I stuck with the older installs on Rails. For the most part, the article was great - a little out of date with a few links, but those were easy enough to work around. For example, the link to the Mac Mysql package was old, but finding the latest link was easy enough.

There is an updated article referenced that I didn't try.

Overall, setting up the Mac for development with Ruby on Rails went very smoothly. I'm pretty new to system configuration, and it's been years since I used a mac regularly, so I was pleasantly surprised how it went. I now only use the PC for IE testing and for Photoshop work (until I can start creating graphics on the Mac).

Been a while

It's been a while since I've been posting, but will start doing this again more frequently.

I left Snapvine at the end of August - we'd just wrapped up the latest version, which was a heavy web-focused release. I'm now trying to start a venture, a website for actors and film makers, with my brother in LA.

That's the details in a nutshell. I'll now return to my normal blog topics.

Friday, April 27, 2007

Google Analytics

I've added Google Analytics to Grovr. I will now start to track usage a bit, getting an idea of the most popular pages and traffic flow.

Luckily, I have a very nice architecture, where all the pages, including the edit forms, administrative pages, everything, use the same wrapper. I also added the Urchin Account number to my domain model so this could be swapped out dynamically, depending on the domain that the user is looking at. All-in-all, it took about a half an hour to set up and ship. After than, on April 26th, I had 27 page views, and 3 visitors.

Wednesday, April 04, 2007

Debugging Javascript in IE

When a javascript error comes up - it normally gives some basic information, like what line the error occured. It's usually not enough to debug it.

You can add a script debugger that will be considerably more helpful. To do this, do these two things...

1) Don't disable script debugging -> IE/Tools/Internet Options/Advanced
2) Get the debugger

Here's some more info about the script debugger from Jonathan Boutelle

Tuesday, April 03, 2007

Wired article on CEO Blogging

This is pretty cool from a couple angles. I think we all suspected honesty and openness would lead to better business relationships - it's neat to see that it's actually a financially smart to be honest. I suspect the next generation that is far more used to open dialog will expect even more public information than the current.

It's also interesting to understand a bit more why people want more information. Why would you be so open and public? How is it beneficial? Because it's an exchange. If your not open and I am, I don't trust you...

This article from wired has some good insights.

Wednesday, February 28, 2007

Going to Snapvine

I left Jobster last week, and am now working for Snapvine. Snapvine is a small, web 2.0 company - specializing in voice applications. Their most popular application right now is the VoicePlayer - a widget that goes on any web page that allows visitors to the site to call and leave messages and the message appear on the page. Instead of typing comments, you can leave audio for everyone to hear.

It's very popular for social networking sites, like MySpace or Bebo.

Snapvine's page on MySpace

The demographic of the Snapvine user tends to be younger, hipper, and more social than the average internet surfer.

The next generation has many differences than the current one, and it takes a little getting used to (if your older than 30). Here's a great article about Kids and their attitudes in the internet age.

Tuesday, February 13, 2007

The Starfish and the Spider

Just finished another book - the Starfish and the Spider: the unstoppable power of leaderless organizations. The subtitle is a bit of a simplification - I think this book is really just more about the power of networks - they are more stable that centralized organizations. This topic is covered much better in other books - notably Mark Buchanan's book, Nexus: Small Worlds and the Groundbreaking Theory of Networks.

Even so, there were a few interesting tidbits - like how to fight a leaderless organization (like eMule). The benefits and problems associated with being one and how to find the middle ground to maximize profit - as Apple and Skype have done.

The UI of programming languages

I've started to run unit tests and functional tests in Ruby on Rails. This is a milestone. I haven't done much of this in the past - as this is usually a "core developer task", but I have found with Ruby, that many of the tasks that traditionally have been devided by Front-end and Core dev has become much blurrier. And, I found out I like writing test cases.

I am a pretty traditional front-end developer - HTML, Javascript, Scripting languages (JSP, ASP, PHP, XSLT), and CSS. Throw in Ajax and DHTML if you want to cut up the Javascript area further. But now, with Ruby on Rails - the ability to do the controller logic, model development, and TestCase development has opened it up so I can contribute at a much deeper level. I still don't get into the trickier SQL or performance issues, but it's clear to me that with Ruby on Rails, and specifically the improvement to the Application Developers User Interface that is writing code - it is easier to understand the process and to develop the application in a shorter period of time - that I am able to accomplish more where before I would have had to work with a core developer. I assume this is also true for the core-developer. With all the built in "helper" functions in RoR, it's very easy to make a web page look great and use all the latest Web 2.0 gadgets.

This is pretty interesting. Donald Norman's book "Things that make us smart" included examples of everyday tools that make you feel smart or powerful - like the calendar or road map.

The Ruby on Rails development environment has a similar effect. You just feel like you can do more, cover more ground, in a shorter period of time. I suspect this is similar to the feeling early Java developers got in 1995-1996 when Java started to be used for large-scale web applications.

I expect we'll go through another leap in usability in the future - maybe 10-12 years from now - one that will allow more people that want to, to create a web application. Putting this power in the hands of the artists and authors, skipping the developers, seems like the ultimate goal.

Tuesday, February 06, 2007

Stamps

39 cent stampI went to buy stamps today - 39 cents each. $7.80 for book of 20 and I wondered - why do the write .39 cents on the front of the stamp and lock it into a specific value? When I go to the post office, I think I'm buying the right to mail 20 first class letters when I buy 20 stamps. Shouldn't I always be able to mail a first class letter with one of those stamps? Or is it really just conveniently-sticky currency? I'll ask next time...

Multiple domains - one application

On Grovr - I recently implemented a feature I'm pretty happy about. I can now support multiple domains. Normally, this is pretty trivial, but I wanted the 'root' site to be tied to the domain. So all uplinks for any site within the domain would link "up" to the correct site and the root site would show the right site.

For examples of this check out http://www.grovr.com and http://www.flatball.com. Both point to the same ip address, but I look to see what the domain of the current request is, lookup that site (the object in the database) - if I find it, that becomes the root site. All other sites under this domain now link "up" to this site. Simple, but I can't say I've seen this anywhere before...

So - if you expand this out to it's ultimate conclusion - I should be able to host a significant portion of the internet (if not the whole thing) on grovr. All for $15 a month.

Thursday, February 01, 2007

Urban Spoon

A nice restaurant directory site called Urban Spoon was created by a couple friends and ex-Jobster dudes. I visit it regularly and use it to look up good places for lunch or dinner.

The best thing about it - it's being made by just two guys - Ethan and Adam. With a low overhead and simple concept, they have a great chance of becoming self-sustaining quickly and becoming a valuable property. We've all heard the story about Plenty of Fish - a great example of a single individual creating a valuable property on the web. The future looks bright for small teams creating inovative, new ideas as well as competing against the larger, established companies. After all, once the concept is established and proven by a large company, it's trivial for a micro company to create something similar for a niche. Many times, it can be made better with the latest, more powerful, and less expensive tools.

For an individual (or two) with skills in development, design, and deployment, a whole new set of possibilities are opening up to compete and succeed on the web.

Wednesday, January 31, 2007

Rhapsody - 'My Library' is missing.

I use Rhapsody from Real.com and it's great. I'm definately a streamer - I don't really care about collecting music, and I would much rather be discovering new music and staying up-to-date. But, the service is really buggy - always has been. I just discovered a fix for one of those problems - it's when your saved library just disappears - this usually happens during an upgrade which is often. Anyway, here's the fix (from a guy named Lopez)

1. Open My Computer
2. Open the C: drive
3. Open Documents and Settings folder
4. Open your user profile folder
5. Find the Application Data folder and open it. (note this folder might be hidden)
5a. To unhide this folder please Click on tools and folder options
5b. Then click on the view tab and select show hidden files and folders.
6. Find and open the real folder
7. Delete the Rhapsody and RhapsodySDK folders.
8. Close all windows.Hope this information helps.

Tuesday, January 30, 2007

Get back in the box

The title of this book is very misleading. Primarily, "Get back in the box" is about how brands are trying to be more interactive than they were in the past. Today, brands are extending the interactivity and embedding themselves into users lives further than before. They are trying to be fun, and fit in. It is no longer about wearing a brand, it's about identifying with it and interacting. When I read it, I felt many times that the author was incredibly insightful - no one else had identified this trend.

The long tail

I recently read The Long Tail, by Chris Anderson. I liked it very much.

A couple great points - we are moving towards massively parallel cultures - where you and another person in your city can live completely different lives culturally - watching different tv, visiting different restaurants, listening to different music - all because there is so much choice. People tend to say things like "The next generation is so different than the last", but that's only half true.

As for the long tail itself, there are many industries where the long tail has not been tapped into. The trick is to see them and go for that market. In recruiting - this may be enabling the "passive candidate" to become a prospect. In the past this was too difficult to find, but with social networking sites like LinkedIn and Jobster, this is now possible.

Thursday, January 18, 2007

Blogger's been slow

Blogger.com has lots of new interesting features, but it's been really slow lately. I suspect it will be fixed soon and it is now "out of beta".

Wednesday, January 17, 2007

Search Engine Optimize your LinkedIn profile

If you are using LinkedIn, the professional networking site, you can create a custom url. It will have the form of something like http://www.linkedin.com/in/swardstrom (your name if you want). This is great for people searching for you by name.

But, if they happen to be searching for you by skill or quality, like "java" or "creative", this doesn't help you show up in search results. To optimize your page for search results, so searches on google on specific keywords will bring up your site, you may want to choose another term. What term would you want to be associated with? "manager", "java", or maybe "retired".

To have your link appear for terms that matter to you, you might want to use these terms in your public profile url to help searchers find you. This could be the small tweak needed to have your profile page stand out on a Google Search result over another candidate.

PS - I was able to get http://www.linkedin.com/in/developer.

Thursday, January 11, 2007

Freezing temperatures in Seattle

A little snow and freezing temperatures on the wet streets and Seattle is shut down. About half the people at Jobster make it into work on these days - the rest work remotely. This year - we've seen this happen 3 or 4 times which is odd. This rarely happens in Seattle. We just don't have wind, rain, and temperature fluctuations like this.

Electric Cars

My bet for the future is battery power - not hydrogen fuel cells or ethanol or anything else. If batteries could be made to recharge quickly, hold a lot of energy, and weigh a reasonable amount, we'll have the potential to store all the renewable energy we can grab from wind, solar, hydro-electric. Of course, you have to build batteries, create plastic, mine for metals, etc - so hopefully the battery power will be able to do all these things too. I suspect we'll see some small breakthroughs in battery technology which will be ideal for a specific type of car - maybe a sportscar, delivery van, or urban commuter. Hopefully we'll see some exciting innovations in 2007.

Layoffs at Jobster

On January 3rd, we got the word at work that 60 people were being laid off at Jobster. We had heard rumors and there was plenty of drama before this so it was not a surprise to me on January 3rd. Nor am I concerned. In this case, this is probably a sign that Jobster is undergoing a correction more than a collapse. The hiring boom of 2006 at Jobster was (in hindsight) not supported by the business and the company was simply too big.

Working for a startup is tough to recommend to anyone. These things happen, and its tough to watch friends lose their jobs or to lose your own job (which happened to me at Nimble technology), but people always bounce back, you learn a lot, and it can be a benefit.

Custom styles on Grovr

I was able to do a little work on Grovr over the break - rewriting the model that supports styles. I released the new version on January 2.

Grovr now has the ability to add styles, if you know CSS. I know, niche market, but that's OK - good for some - like MySpace where you can modify the look and feel, I can now say Grovr has that too. Just like MySpace. We're practically the same.