Tuesday, November 15, 2011

New updates: sorting search results and power user recognition

Greetings Vidsters!  In my ongoing efforts to make myVidster your first and primary destination for viewing and sharing video content I have pushed out two updates based on your feedback.

Sorting search results by most recent.
This feature was requested by a user a few weeks ago and I was 100% on board with adding the sorting option.  There was one small issue, the search index was storing the post date as text and not as a date field.  To fix this I had to rebuild the entire index which contains over 3 million documents.  It took my server 3 days to complete the update.  I also took the opportunity to make some minor styling updates to the search page, lets see if any of my power users can determine what changes I made ;)


Power User Recognition!
The key to the success of any social network/sharing site is its power users.  They are activity engaged on the site by providing content (ie bookmarking videos), commenting, tweeting, inviting their friends to join and follow them, etc.  With that said I wanted to give them some recognition.  On myVidster's homepage I have replaced the Top User Collections section with Power User Collections.  To be highlighted as a power user you need to link or upload a profile photo and are activity collecting videos.  This list updates every 15 minutes with randomly selected users that meet the required conditions. 


Please continue providing me with your feedback and keep collecting!

Saturday, October 29, 2011

New Features: Chat Toolbar and Profile Photo Uploading

While general administration and break/fix has been consuming a lot of my time I still manage to allocate time to push out requested features!

Users have been wanting a way to communicate with other users on myVidster.  Some suggested an inbox. which is a great idea, but I decided to go with a chat toolbar solution instead.  The chat toolbar should be more effective because you are able to see if the person you want to communicate with is online and you will have a better chance of the user reading your message.  Who really wants to have another inbox anyway?  To chat with other users, you will need to follow one of their video collections.  When the users you are following is online they will show up on your buddy list.  Chat away!!!
You can now upload a profile photo as well!  Before you could only use your Twitter or Facebook photo.  To upload your profile photos go to your user options page.
I take user feedback seriously and around 60% of your suggestions are implement and one way or another.  Please continue providing feedback by contacting me via email, twitter, or commenting on my blog.

Thanks and keep collecting!

Monday, September 19, 2011

myVidster Android and iPhone App goes Public

I am pleased to announced that the myVidster Android and iPhone App is ready for the public!


Android
Install: https://play.google.com/store/apps/details?id=com.phonegap.myvidster

iPhone
URL: http://m.myvidster.com/
Note:  Bookmark this link to your Home Screen


The app is still in beta, but is stable for the public to use and enjoy.  The reason why the iPhone version is a web app is that I do not owe a Mac.  I am planning on purchasing a used one so that I can provide a native version for the iPhone.  Please use the comments to provide feedback and to report issues.

Thanks and keep collecting!

Sunday, August 28, 2011

myVidster Android and iPhone App Private Beta!

Here is a video demonstrating both the myVidster Android and iPhone app.


I was working on a shorter video but I kept messing up and I rather get the app to the beta testers then to worry about posting another video.

Android
Version: 0.5
Version date: 18-Sep-2011
Download/Install:
https://market.android.com/details?id=com.phonegap.myvidster (Andriod 2.1 and higher)

iPhone
URL:  http://www.myvidster.com/mobile/
Note:  Bookmark this link to your Home Screen

This is a private beta, only users with a PRO account can access the app.  PRO users can report any issues by commenting on this blog post or by contacting me directly.  When providing feedback please be descriptive of the problem.  Saying 'it does not work' does not help me much.  Include detail information like what version of Android/iPhone you are using and any error messages.  Also provide feedback on what additional functionality you would like for me to add.

OK that is all for now, I am exhausted!  Building a mobile app is not an easy task and I hope you all enjoy it!

Update: Issue Tracking
30-Aug-2011: I discover a possible memory leak which causes the video page to load the same video even if you select a different video.  I am working on a fix.

Tuesday, August 23, 2011

The Art of Adding a New Feature

Social media and network services (like myVidster) typically follow the same core concept.  Bringing people together with similar interests and/or relations to communicate and exchange information.  What sets each service apart is its implementation of features and tools.  The features you decide to develop and how you integrate them into your web service is how you set yourself apart from the competition.

Some take the 'easy' route and attempt to copy (or clone) an entire web service.  This method only works if your service is targeting an audience that the other service cannot reach or support.  An example would be to clone Facebook for a country that has blocked the Facebook domain.

I would like to break down my though process on a simple feature I recently launch called the share button.  Share buttons have been around for a while and popular sites like Twitter and Facebook uses them.  While it may be easier to copy this feature from Facebook or Twitter, it would not be a good 'fit' for myVidster.  Let's take a deeper look into this.

External vs Internal
Most share buttons are designed to be placed on external websites to drive traffic to your website.  The myVidster share button is an internal button that user's use to share video bookmarks with other users.  This increases user interaction at the expense of losing potential traffic from external websites.  In the future I might push out an external share button for webmasters, but I felt that focusing on user interaction was of higher importance.

User Interface (UI)
Lets say user A wants to share a video bookmark with user B; how is this accomplished?  UI is what makes or breaks a new feature.  Will the share button be a button or link?  Where do I place the button?  Do I send the user to another page or present a popup display when they click the button?  I decided to replace the shuffle button with the share button and present a popup display when clicked.  The shuffle button was rarely used and was redundant due to the shuffle wall feature that I released over a month ago.  This also keeps the UI clean.  That was the easy part; how does user B get notified that user A has shared a video?  This question tabled the share feature for months.  One idea I had was to add the shared videos to the users subscriptions or to create a new page exclusively for shared videos.  I did not like either idea and it was not until I started working on user notifications where the it all fell together.  Video sharing would be an notification activity!  Grouping video sharing into notifications just made sense.  The user does not have to navigate to a new page and it felt more intuitive.

Final Test User Engagement
Since the launch of the share button, its usage has been increasing every day!  If the usage rate slows down or goes negative then you need to reevaluate and determine if it needs to be change to help encourage its usage or to scrape the feature completely.  Some webmaster have an issue with dropping features.  Maybe its ego and dropping a feature is admitting that you have devople something that no one wants to use.  Remember "less is more" and the best sites are the ones that offer features that the user wants and not the features that the webmaster wants.

Tuesday, August 16, 2011

New Feature: Notifications!


myVidster now provides notifications!  Notifications are display on the top menu bar as a number in a blue box.  The box turns grey when there are no new notifications.  Here is the break down on the notification types.

Comments:
When a new comment for a video is posted, a notification is sent to all users who have bookmarked the video.

Share:
You can share any video bookmark on myVidster to other users and to all of your followers.

Followers:
When a user follows your collection or channel, you will be notified.


I might add more notifications in the future, if it provides value to the user experience. Please provide suggestions and your thoughts as well.


Thursday, August 11, 2011

Sneak Peek: myVidster Andriod and iPhone App!

As mention in a previous post, the most requested featured from the myVidster community is a mobile app.  I have held off from creating an app because I felt that mobile and video technology needed to mature.  When you are a one man shop, you need development tools and frameworks that are both stable and robust so that you can push out a good product in a reasonable amount of time.  Here are few teaser screenshots, please note that this is an early development version and will most likely not reflect final version.
Homepage
Video in portrait view
Sort options
Video in landscape view
For those who would like to get their hands on a beta copy, I will be providing access to the beta version to the myVidster PRO users.  The beta version will be available to the PRO users by the end of August.  Everyone else will have to wait till the app goes public.  The final version will be a free app supported with ads. PRO users will get an ad free version.

Till next time, keep collecting!

Wednesday, July 6, 2011

Video Shuffle Wall: A new way to discover videos on myVidster

Currently on myVidster there are serval ways to discover new videos.

Homepage (sorted by recent, popular and new videos)
Your subscription page (videos bookmark by those you follow)
myVidster's search engine
Random exploration of user's collections and channels

New Video Shuffle Wall
I decided to add a new method for video discovery call the video shuffle wall!  When visiting the homepage you will see a new sort option call Shuffle.  This will take you to the video wall.  Video thumbnails will randomly be displayed.  By default the videos are filtered by new video bookmarks and can be filtered by popular as well.  Give it a try and I promise that you will not be disappointed.

Wednesday, June 22, 2011

Random slow page loading and timeouts resolve!

It took me 2 weeks, but I finally solved a issue that was causing slow page loading and timeouts during peak hours.  This issue caused mininum impact (1-2 minutes) to myVidster, which was the reason why it took so long to resolved.  Being the only developer forces you to prioritize tasks and this was not a critical issue.

By default Apache rotates its logs every 2 hours.  When this happens it issues a graceful restart to the Apache service.  During peak traffic, the Apache service can take a few minutes to catch up to users requests causing slow page loading and timeouts.  I did not notice this because graceful restarts does not reset the server uptime when monitoring the Apache server status page.  It was not notice till I drive into the Apache error_log and saw that the graceful restarts were happening in 2 hour intervals.

As with most issues, a simple Google searched reveal the solution.  Enabling Apache's Piped Logs resolved Apache's need to perform a graceful restart to rotate the logs.  I also made a few tweaks to the logging service to reduce the amount of useless and redundant data that was being logged.

For the end user, this should resolve the periods of slow page loading and timeouts that has been occurring during peak hours.  As always I continue my efforts to make myVidster an enjoyable social experience.

Sunday, June 5, 2011

Making myVidster more social!

The two most requested features that I get from users are more integration with social networks like Facebook and Twitter and a mobile app.  While the idea of building a mobile app is worthwhile, there are a lot of technical barriers and could easily take months to develop.  For now I am going to hold off on building a mobile app and continue my work on the myVidster site.

Social Network Linking (Beta)
Users can connect their social network accounts (Facebook/Twitter) to myVidster so that other users in your social networks can find and follow you. myVidster will automatically find other users in your social networks that are using myVidster as well!  Also out of curiosity myVidster will not auto post to your social networks.  This feature is in beta, please provide feedback and report any issues.


Profile Photos
After you have linked your social network account(s) to myVidster you can use your profile photos for your myVidster profile photo.  The reasoning behind using the user's social network profile photo instead of allowing users to upload a photo is to reduce redundancy.  myVidster directly links to the photo from your social network so that if you decide to change it (which most people do regularly) you will not have to updated your photo on myVidster.



Social Sharing
The social sharing buttons have been available on myVidster for some time.  Recently I have made a few updates to make them more useful.  When you bookmark a video, the confirmation page now gives you the option to share your video bookmark with your social networks (Facebook, Twitter, etc).  Before you would bookmark the video then navigate to the video bookmark page to do this.  I have also added the tumblr share button.



The last few weeks have been busy and I am continuing my work with improving site performance (expect faster page load speed during peak hours) and solving issues.  Well its time to have another cup of coffee and back to work!

Monday, May 9, 2011

myVidster update, better late than never

I am long overdue for a development update so here it is!!!

I have been focusing most of my time on the back end of myVidster.  Why spend your time making your site look 'pretty' if it slow and/or sucks at the task that it is design to do.  I have upgraded my hardware (more cpus and ram) and I continue with code optimization. 

Minor tweaks have been made to the video and subscription page, but the major updates have been on the bookmarking of new videos.  The time needed for myVidster to fetch a video and bookmark it has been greatly improved.  I have also improved bookmarking for Internet Explorer (IE) users.  For those who may not know, myVidster and IE does not play well together when it comes to bookmarking videos.  The issue involves the IE bookmarklet not being able to fetch the flash variables from certain video players.  None of the other web browsers have this issue.  While the bookmarking functionality has been improved for IE users I would still recommend an alternative browser like Firefox or Google Chrome.

There is one design change worth mentioning.  When browsing the popular video bookmarks on myVidster, you can now see the first and total number of users collecting the video.  I have also improved the logic when determining what videos are currently popular on myVidster.

On a side note, I am pleased to announce that the myVidster community continues to grow!  Thanks for the support, feedback and love.

Monday, March 28, 2011

Unexpected Downtime

Why does myVidster want to go down when I am either sleeping or taking a shower?  myVidster had some unexpected downtime today (around 30 minutes).  After restarting the Apache and PHP-FPM service myVidster was back up and running smoothing.  I took a look at the error logs and it appears that the service that runs PHP-FPM failed to respond.  I have enabled monitoring for PHP-FPM and if it fails to respond again, then the service will be restarted.  Hopefully this will remedy any future downtime.  Keep collecting!

Sunday, March 20, 2011

Scaling myVidster Part 3: Apache + PHP-FPM

Recently I decided to upgrade my servers so that myVidster can keep up with its growing traffic. I also decided to implement PHP-FPM to fix an issue with my APC setup discussed in Scaling myVidster Part 2.

Before the upgrade my setup was Apache +  MOD_FASTCGI + APC.  I did not have any issues with server performance but the APC host would restart every 2 hours.  This concern me because the cache would have to warm back up (rebuild) and during high traffic this could cause a bottle neck.  With that in mind I decided to add PHP-FPM to my setup.

I follow the setup instructions posted here and got PHP-FPM setup with only a few headaches.  My biggest learning was recompiling MOD_FASTCGI.  His steps are for a DSO install and I decided to go with a static library instead because I have done it before and was succesful.  After I recompiled PHP with PHP-FPM, I tried to use my old static library copy of MOD_FASTCGI which caused my server to fail.  To solve this I had to recompile the static library.

Also the default settings in the php-fpm.conf could not handle the traffic.  For those who use PHP-FPM here are my settings.

pm.max_children = 225
pm.start_servers = 60
pm.min_spare_servers = 40
pm.max_spare_servers = 80
pm.max_requests = 500

I am still getting the '[pool www] seems busy' warnings once in a while, so I might increase these values.

My new setup is Apache +  MOD_FASTCGI + PHP-FPM + APC and have been running this setup for the past 2 days.  My first impression is that I love this setup!  PHP-FPM gives you more control on how your server executes php scripts and the APC host no longer restarts every 2 hours.  As for performance I did not execute any benchmarks but I did notice faster and more responsive page loading.  I will also like to note that the Apache + PHP-FPM setup is not too common and most people use Nginx instead.  Right now no one has published any benchmark data comparing the two setups.  So for now go for what works for you and your visitors!

Friday, January 14, 2011

Scaling myVidster Part 2: Caching

I would love to announce that I have deployed a new ground breaking feature for myVidster, but most of my time has been spent on code optimization and scaling.  One tip I have for those who want to start their own social service is caching!  To add more clarification you want to cache static data in memory cache and avoid disk cache when possible.  The benefits of disk cache are not worth the performance hit you take for disk access.  myVidster runs on a LAMP solution and for caching I have opted for PHP APC for server scripts and Memcached for user sessions.  These updates have drop server load dramitically which avoids the need to purchase additional servers.

As I have mention before I decided to stop posting stats on myVidster's traffic (it caused me some drama), but I would like to tell everyone that myVidster has a positive growth rate at 15-20%.  This rate has been steady and all organic!  You can see people tweet about myVidster everyday!  Thanks again for all the love and support.  Take care