tag:blogger.com,1999:blog-60980240345142324772024-03-19T03:31:03.841-07:00MyVidster Developer BlogMy struggles and triumphs developing myVidster.MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.comBlogger63125tag:blogger.com,1999:blog-6098024034514232477.post-54740641406230851972014-01-14T14:46:00.002-08:002014-12-16T19:34:21.468-08:00How to remove the filter on the MyVidster App<span>Hey, Vidsters! Want to access all of your curated content on
our mobile app regardless of whether it’s family friendly or not? No
worries. Here’s how:</span>
<br />
<br />
<span>1. Remove the filter by toggling it from your desktop first. You can do that by clicking </span><a href="http://www.myvidster.com/user/options.php">here</a><span>. </span><br />
<span>2. Restart the app on your mobile device and log back in. </span><br />
3. You should leave us a review!<br />
<br />
We love hearing your feedback and
not only do we read them, we work really hard to make improvements on a
daily basis. IOS users can leave us a review <a href="https://itunes.apple.com/us/app/myvidster/id611470289?mt=8" target="_blank" title="here">here</a> and Android users can leave us a review <a href="https://play.google.com/store/apps/details?id=com.myvidster&hl=en" target="_blank" title="here">here</a>.<br />
<br />
For feedback on the app or any questions, please feel free to contact us through twitter <a href="https://twitter.com/myvidster" target="_blank" title="here">here</a>.<br />
<div>
<div>
<br /></div>
<div>
<br /></div>
</div>
MyVidster Teamhttp://www.blogger.com/profile/02017638141579589241noreply@blogger.com703tag:blogger.com,1999:blog-6098024034514232477.post-68601063612969935792013-11-02T16:46:00.001-07:002013-11-02T16:47:29.217-07:00Just released myVidster iPhone App and store coming soon!Greeting Vidsters!<br />
<br />
Its been awhile since I last posted, but that does not mean I have not been working hard on myVidster. I have been focusing my time on the backend and the mobile platform of myVidster.<br />
<br />
<b>Backend work</b><br />
Being that myVidster is a social bookmarking site and not a 'tube site', we cannot control the source video files. This causes issues when a video is removed or is changed by the host site. These dead/changed video bookmarks need to be removed and manually removing these links are very time consuming and is repetitive work. To solve this problem I have developed site monitoring to track down when a video file has been removed and scripts to verified its removal from the source site before removing them from public view on myVidster. Also note that these video bookmarks are flagged as broken and removed from public view and the poster still has access to these bookmarks.<br />
<br />
<b>Mobile support</b><br />
Recently I published the <a href="https://itunes.apple.com/us/app/myvidster/id611470289?mt=8" target="_blank">iPhone app</a> which was long over due. I did not announce its release because it was launched before IOS 7 and I was not sure if the app was going to function properly for the new OS. The latest version of the app was released this week and is IOS 7 ready. Lets not forget the popular Android app, which you can download from <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster&hl=en" target="_blank">Google Play</a>.<br />
<br />
<br />
<b>myVidster store 'coming soon'</b><br />
Want to represent and show your myVidster love to the world (and look good while doing it)? We will be doing a beta launch of the myVidster store where you can buy your own myVidster t-shirt and other goodies. <br />
<br />
<b>Traffic by the numbers</b><br />
For the curious here are the lastest traffic anaylitcs for the last 30 days.<br />
Pageviews: 310 Million<br />
Visits: 14 Million<br />
Registered users: 442,505<br />
<br />
Take care everyone and keep collecting! MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com645tag:blogger.com,1999:blog-6098024034514232477.post-44344217606575690902013-03-21T16:26:00.000-07:002013-03-21T16:26:11.039-07:00myVidster PRO is back and language supportGreetings Vidsters! Here is a quick development update for your favorite video sharing site myVidster!<br />
<br />
<b>myVidster PRO is back!</b><br />
By popular demand I have brought back myVidster's <a href="http://www.myvidster.com/get_pro.php?ref=blog" target="_blank">PRO</a> membership. The membership gives you an Ad free experience, PRO badge and is a easy way of showing your love and support for myVidster :)<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="http://img.myvidster.com/images/myVidsterPro_160x160.png" /> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.myvidster.com/get_pro.php?ref=blog" target="_blank">Get PRO today!</a></div>
<br />
<b>Language support in French and Spanish</b><br />
If you look at the top right corner of myVidster you can change the language from English to either French or Spanish. Currently the front end is translated and I am working on getting the user administration translated. Hopefully I can have the entire site translated by the end of March.<br />
<br />
<b>Mobile App updates</b><br />
I have made several updates to the <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster&hl=en" target="_blank">Android</a> and <a href="http://m.myvidster.com/" target="_blank">mobile</a> app, mostly stability fixes. I developed a native iPhone app, but was unsuccessful in getting it approved for the app store. All I can say is that I tried, heck I even purchased a Mac Mini to develop the app. Maybe in the future Apple will relax their guidelines so that great Apps like myVidster can be published. For now iPhone users please use the <a href="http://m.myvidster.com/" target="_blank">mobile</a> app, it works great you just lose the download to phone functionality.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52sdPIjvEwRGrtXRH-FKhM7Aer9fH6OshFCpucwHRHFLvOqVSBzoq8vmEGjCfCUvxeAobbQy3WT9c5VHjOQuqsaJPcysuYtXQwWyxM_lszq6u79-62mPs6KowTOhXUuhu1mYtO3C-GVI/s1600/16309_154674088022996_498904545_n%5B1%5D.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi52sdPIjvEwRGrtXRH-FKhM7Aer9fH6OshFCpucwHRHFLvOqVSBzoq8vmEGjCfCUvxeAobbQy3WT9c5VHjOQuqsaJPcysuYtXQwWyxM_lszq6u79-62mPs6KowTOhXUuhu1mYtO3C-GVI/s320/16309_154674088022996_498904545_n%5B1%5D.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">On the bright side I can now say that I am a proud Mac owner ;)</td></tr>
</tbody></table>
Well that is all for now, keep collecting!<br />
<br />MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com952tag:blogger.com,1999:blog-6098024034514232477.post-11389633004066988852013-01-08T15:18:00.000-08:002013-01-08T15:22:29.610-08:00myVidster's 2012 year in review<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
Greetings Vidsters! 2012 was a great year, myVidster experienced another year of rapid growth. This growth being all organic, expect for our <a href="http://blog.myvidster.com/2012/07/results-from-our-day-of-shameless.html" target="_blank">day of shameless promotion</a> campaign ;). I added more servers to handle the growth and to maintain an enjoyable user experience. Here are some stats to give you and an idea of the size of our community. <br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Stats:</b></div>
<div class="MsoNormal">
Register users: 314,748</div>
<div class="MsoNormal">
Group membership: 21,807</div>
<div class="MsoNormal">
Android user installs: 34,507<br />
Monthly Unique Visitors: 5.1 Million (current)<br />
Pageviews: 240 Million (current)</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<b>2012 highlights: </b></div>
<div class="MsoNormal">
myVidster wins <a href="http://arstechnica.com/tech-policy/2012/08/mpaa-embedding-is-infringement-theory-rejected-by-court/" target="_blank">appeal</a> in the 7th circuit count <b>rejecting </b>the claim that embedding is infringement.</div>
<div class="MsoNormal">
myVidster <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster" target="_blank">Android</a> and <a href="http://m.myvidster.com/" target="_blank">web app</a> <a href="http://blog.myvidster.com/2012/09/myvidster-mobile-app-support-reloaded.html" target="_blank">reloaded</a>!</div>
<div class="MsoNormal">
myVidster <a href="http://blog.myvidster.com/2012/03/new-feature-myvidster-group-pages.html" target="_blank">Group Pages.</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
While this list of accomplishments may appear small, I always focus on quality over quantity. I spend most of my time improving new and legacy functionally on the site to ensure that users have the best experience.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>What to expect for 2013:</b></div>
<div class="MsoNormal">
The return of the <a href="http://www.myvidster.com/user/upgrade.php" target="_blank">PRO</a> membership!<br />
Localization of myVidster.com (beta launch will support French and Spanish)</div>
<div class="MsoNormal">
myVidster store!</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Well that is all for now, thanks for all the love and support and keep collecting!</div>
<div class="MsoNormal">
<br /></div>
MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com328tag:blogger.com,1999:blog-6098024034514232477.post-1816013054982876962012-10-13T11:52:00.002-07:002012-10-13T11:52:43.945-07:00myVidster and personal updateGreetings Vidsters! This is an update on whats been going on with myVidster and myself. Most of my work on myVidster has been on the backend. I recently retired a server and replaced it with a larger one. This was needed to handle the site's growth. To give you an idea of myVidster's growth here are some stats. <br />
<br />
Pageviews (Google Analytics)<br />
August: 162 million<br />
September: 194 million<br />
<br />
I have also spent a lot of time on mobile app development and manage to get a <b>4.0 rating</b> on <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster" target="_blank">Google Play</a>! I know that iPhone users want a native app as well, but I am still undecided on if its worth my time developing a native app and take the risk of Apple rejecting it. For now use the <a href="http://m.myvidster.com/" target="_blank">web app</a>, its has all the same functionality that the native would have with the exception that you cannot download videos.<br />
<br />
For personal, I decided to leave the boring Midwest and moved myVidster and myself to Austin TX. Perfect timing because <a href="http://www.aclfestival.com/" target="_blank">ACL</a> is this weekend! Expect to find me at local tech and start-up happy hours and events.<br />
<br />
What to expect in the future for myVidster? Currently I do not know, now that I have a stable mobile app and I have scaled out the site for future growth I now have the time and capacity to brainstorm on new and exciting ideas for myVidster. If you have any suggestions feel free to <a href="http://www.myvidster.com/docs/contact" target="_blank">contact me</a> or post a comment.<br />
<br />
Take care and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com282tag:blogger.com,1999:blog-6098024034514232477.post-62878159620961852452012-09-05T13:52:00.000-07:002012-09-12T10:50:42.700-07:00myVidster mobile app support reloaded!Greetings Vidsters, I have spent the last two months improving mobile support for both the Android and iPhone/iOS devices. I will admit that the first version of the mobile app had its laundry list of issues and user experience was OK at best. Keep in mind that it was my first attempt at developing a mobile app and my goal was to get a 'working' version out just to see if I could do it. Now that I have gained some experience, I decided to resume development with the goal of creating an app that you will want to use everyday. Here are the goals I set for myself. <br />
<br />
<b>Only display mobile compatible videos</b><br />
One of the biggest challenges was filtering out the video bookmarks that would not play on your mobile device. To tackle this issue I had to create a MySQL memory table that keeps tracks of the video bookmarks that are mobile friendly (encoded in h.264). This table is used to display only the mobile friendly videos on the homepage and in your subscriptions. Please note that this filtering does not take place when running a search or when you navigate through a users video collection. To enable filtering go to your <b>setting</b> screen in the app.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUVVpJ0JaJS373FB3XCt2bFnXpMZhsLye_It9UctDPHVGi8AUyif38vPCEbBoUSg0xQtPMTl66_xdZtHmX_1rx7-dhpviISzRg2Mf_m6SZ4WzXGbeNlRrcB5NHtqR5bEQcJYDnKBeNn2I/s1600/IMG_1004.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUVVpJ0JaJS373FB3XCt2bFnXpMZhsLye_It9UctDPHVGi8AUyif38vPCEbBoUSg0xQtPMTl66_xdZtHmX_1rx7-dhpviISzRg2Mf_m6SZ4WzXGbeNlRrcB5NHtqR5bEQcJYDnKBeNn2I/s320/IMG_1004.PNG" width="213" /></a></div>
<br />
<b>Improve the user experience</b><br />
If you have been a active user of the mobile app then you already know that the user experience (UX) needed an overhaul. With the help of my friend Ryan, we went though the interface of the app to make navigation more intuitive by adding left/right swipe navigation and redesigned the video display screen. Features like video history was added and I did some changes to the css to make the app more attractive.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkIH0_Zo8DAOhY-D1mXjGwwA5Io_phZtOZVsZsNkW0ynPCTt0d1TI17iVdUu5X76q6_TLo_yZNfu-xYjqBUf-s8Wz_aN_8kFlutm28csW7J7OWGC80GBtOWRx84eZXEin2uc8Jw2VZLMA/s1600/IMG_0997.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkIH0_Zo8DAOhY-D1mXjGwwA5Io_phZtOZVsZsNkW0ynPCTt0d1TI17iVdUu5X76q6_TLo_yZNfu-xYjqBUf-s8Wz_aN_8kFlutm28csW7J7OWGC80GBtOWRx84eZXEin2uc8Jw2VZLMA/s320/IMG_0997.PNG" width="213" /></a></div>
<br />
<b>Improve performance and stability</b><br />
Load times for displaying a video bookmark was around 3-10 seconds which is unacceptable for any web or mobile app. With the used of smart caching and code optimizations load times have been reduce to 2-3 seconds. Can I get loads times to under a second? As I gain more experience with mobile development I should be able to reduce the loads times in future updates. As for stability that is a no brainier, if the app crashes for any reason, I would track down the issue and fix it!<br />
<br />
<b>Where can I get this wonderful app?</b><br />
For Android you can install it from <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster" target="_blank">Google Play</a> or you can download <a href="http://www.myvidster.com/mobile_deploy/stable/myvidster.apk" target="_blank">APK</a> file from us.<br />
<br />
For iPhone please use our <a href="http://m.myvidster.com/" target="_blank">web app</a>. When Apple decides to relax their submission policies then I will submit the app to their app store.<br />
<br />
That is all for now, take care and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com518tag:blogger.com,1999:blog-6098024034514232477.post-90359778928926973392012-07-18T10:29:00.001-07:002012-07-18T10:29:45.839-07:00Results from our day of shameless promotionVidsters, here are the results from our day of shameless promotion (Monday, July 16th).<br />
<br />
Total Unique Visitors: 191,021 (net gain ~<b>20k</b>).<br />
Pageviews: 4,055,575 (net gain ~ <b>300k</b>).<br />
<br />
All I can say is WOW! My servers were working hard that day to handle the additional traffic.<br />
<br />
Special thanks to my top referral sites that day (does not include Facebook or Twitter)!<br />
<a href="http://bgclive.com/">http://bgclive.com/</a> <br />
<a href="http://www.lpsg.com/">http://www.lpsg.com/</a><br />
<a href="http://www.machomoe.com/">http://www.machomoe.com/</a> <br />
<a href="http://pingalista.tumblr.com/">http://pingalista.tumblr.com/</a><br />
<a href="http://gayvenue.tumblr.com/">http://gayvenue.tumblr.com/</a><br />
<a href="http://passivosdocaralho.blogspot.com.br/">http://passivosdocaralho.blogspot.com.br/</a><br />
<a href="http://theluckeystar.com/">http://theluckeystar.com/</a><br />
<a href="http://blackcock.tumblr.com/">http://blackcock.tumblr.com/</a><br />
<a href="http://dick-down-nigg.tumblr.com/">http://dick-down-nigg.tumblr.com/</a><br />
<a href="http://marriedgaydad.tumblr.com/">http://marriedgaydad.tumblr.com/</a><br />
<a href="http://gayxx.tumblr.com/">http://gayxx.tumblr.com/</a><br />
<br />
This campaign exceeded my exceptions. In return for your support I been working overtime on providing new features and services to the myVidster community. Please install the lastest version of the myVidster mobile app, new features like left/right <b>swipe navigation</b> have been added.<br />
<br />
Android App (please rate with comment)<br />
<a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster">https://play.google.com/store/apps/details?id=com.phonegap.myvidster</a><br />
<br />
iPhone Web App (weak video playback support, but it still rocks!)<br />
<a href="http://m.myvidster.com/">http://m.myvidster.com/</a><br />
<br />
Thanks and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com255tag:blogger.com,1999:blog-6098024034514232477.post-30675109567419558792012-07-02T09:00:00.000-07:002012-07-13T08:03:35.879-07:00July 16th, myVidster's Day of Shameless Promotion!Greeting Vidsters! myVidster has come a long way from its humble beginnings as a simple video bookmarking service to one of the largest social media networks on the web today. myVidster reaches over <a href="https://www.google.com/adplanner/planning/site_profile?hl=en#siteDetails?identifier=myvidster.com&lp=true" target="_blank">3 million</a> unique visitors a month generating over <b>100 million page views</b>! The growth of the myVidster community was not due to a post on a popular blog or by the mainstream media. Its success was from <b>YOU</b>. You told your friends about myVidster, shared your favorite video bookmarks on Facebook and Twitter, provided feedback and help financially by upgrading to our <a href="http://www.myvidster.com/user/upgrade.php" target="_blank">PRO</a> account.<br />
<br />
I know you have given a lot and I am thankful for this, but I would like to ask for one small favor. On <b>Monday, July 16th</b> I will be launching promotional campaign to inform the rest of the world of our wonderful service. My issue is that myVidster's entire staff consist of one person who is myself. I am asking you, the myVidster community to set aside of few mintues of your busy day to help in the promotions.<br />
<br />
<b>If you want to help this is what you can do.</b><br />
<ol>
<li>Follow us on Twitter <a href="https://twitter.com/myvidster" target="_blank">@myvidster</a>. </li>
<li>Install and rate the Android <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster" target="_blank">myVidster App</a> on Google Play.</li>
<li>Share myVidster on your favorite social networks (Facebook, Twitter, Google+).</li>
<li>Tell the world why you love myVidster on your Tumblr/Blogger/Wordpress.</li>
<li>Add our video sidebar <a href="http://www.myvidster.com/user/widget.php" target="_blank">widget</a> on your Tumblr/Blogger/Wordpress.</li>
<li>Make a 60 second video about myVidster.</li>
<li>Tell your friends about myVidster over beers.</li>
<li>Be creative and have fun with it!</li>
</ol>
Some would ask, so what do I get in return for being your marketing rep for the day? For one, I will be eternally grateful and if we was to cross paths I would offer to buy you a beer :). If you are promoting myVidster to a large audience and you can provide proof of your work please contact me and I will upgrade your account to our <a href="http://www.myvidster.com/user/upgrade.php" target="_blank">PRO</a> service for free.<br />
<br />
So mark your calendars for this day, I will be post announcements on myVidster.com a few days in advance as a friendly reminder.<br />
<br />
Thank for all the love and support. Keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com167tag:blogger.com,1999:blog-6098024034514232477.post-68889778612112315162012-05-30T10:39:00.004-07:002012-05-30T14:57:27.773-07:00myVidster Embraces NoSQLIf you are a hardcore web techie you have seen the word <a href="http://en.wikipedia.org/wiki/NoSQL" target="_blank">NoSQL</a> toss around. In a nutshell its an alternative database management system. Most websites (including myVidster) are build with mySQL, a traditional relational database management system (RDBMS). For the most part mySQL is one of the best database solutions out there and will meet most (if not all) of your data needs.<br />
<br />
As myVidster user base grows so does its need for more and more data. When your data gets into millions of stored rows and you are trying to insert 3000+ rows of data every 2 minutes, mySQL faults begin to show.<br />
<br />
In my experience mySQL does everything well expect for inserting large amounts of data in a given batch job and your queries can take a performance hit when you are have to sort large amounts of user data. Most developers will agree with my issue with inserts, but some will argue that proper use of indexes will solve your performance issues when sorting. I beg to differ.<br />
<br />
Lets say you want to sort all user notification by date and return the last 5. You will put an index on both the user id and the post date. If the users has 5000 notifications, mySQL will run a <a href="http://s.petrunia.net/blog/?p=24" target="_blank">filesort</a> on the post date index (all 5000). Disk I/O starts to become an issue when you are auto refreshing user's notification every minute. Now if mySQL provided sorted indexes, then fetching the last 5 rows by date would not require a filesort, but sadly mySQL does not provide this feature.<br />
<br />
I knew I have reach the limits of what mySQL can do so I decided to look into <a href="http://www.mongodb.org/" target="_blank">MongoDB</a>. MongoDB is a NoSQL document oriented storage database. During my testing MongoDB could insert documents (there like rows in a table) at a rate of 1000+/sec. That solved my first problem, what about querying large data sets? MongoDB provides sorted indexes and as long as you define the sort order of your indexes correctly (ascending or descending) MongoDB will not need to perform an nscanned (its like mySQL filesort) on the user's data. I am also using MongoDB for backing up and achieving data as well. <br />
<br />
Am I planning on replacing mySQL with MongoDB? For now my answer is no, MongoDB does not support table linking and the code rewrite would be massive and the performance gain might not be worth it. I do see myself using MongoDB for new features that I have in the pipeline.<br />
<br />
Well, I think that is enough geek talk for now, take care and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com326tag:blogger.com,1999:blog-6098024034514232477.post-19566916509605048722012-04-30T16:29:00.000-07:002012-05-30T14:57:49.535-07:00Image Server RevisitedSince my <a href="http://blog.myvidster.com/2012/04/im-back-actaully-i-never-left.html" target="_blank">last post</a> I have made important changes to how images (mostly thumbnails) are serve on myVidster. Stated in my last post I divided the image workload between the new image server and the master server. I really did not like this setup because the master server should not be wasting disk I/O on image hosting.<br />
<br />
My first attempt was to setup the image server to handle the entire load. This solution would have work if I was running <a href="http://en.wikipedia.org/wiki/RAID" target="_blank">RAID</a> on the server, but I was not. It only took a few minutes before the server's hard disk was overwhelm. When you run into the dreaded disk I/O bottleneck you have two options which are to upgrade your hardware (SSD or RAID) or memory caching.<br />
<br />
If you have been keeping up with my blog, you will know that I try to use in memory caching whenever possible so I did some research and learn about using a reverse proxy for image caching. For the reverse proxy I decided to give <a href="https://www.varnish-cache.org/" target="_blank">Varnish Cache</a> a try, which was recommended by a developer/friend.<br />
<br />
Setting up Varnish has straight forward the only catch was that I needed to disable cookies (remove req.http.Cookie) so that the images were always cached. Technicality the image server is now a web application accelerator with the task of caching and serving images.<br />
<br />
As for performance, currently I am getting a hit rate around 85% with 400-500 requests per second. CPU load hovering around 10% which gives the server lots of room for handling more traffic when needed. Overall I am very pleased with Varnish's caching performance and would recommend this solution to those who want to accelerate image serving and to reduce disk I/O.<br />
<br />
For the curious here is a list of memory caching solutions that myVidster uses.<br />
<a href="http://www.php.net/manual/en/intro.apc.php" target="_blank">Alternative PHP Cache</a> (APC) opcode caching for PHP<br />
<a href="http://memcached.org/" target="_blank">Memcached</a> for user session caching<br />
<br />
Take care everyone and keep collecting!<br />
<br />MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com195tag:blogger.com,1999:blog-6098024034514232477.post-79180229973419422842012-04-24T20:39:00.001-07:002012-05-30T14:58:08.837-07:00I'm Back, Actually I Never LeftGreetings Vidsters and guests! Here is a development update for the curious.<br />
<br />
I recently added a new server to the family. This one will act as a image server to offload some of the image hosting that the master server has been handling. Also on my master server I had an under utilize RAID disk, so I move the most of the images (ie video thumbnails) to RAID. These updates have reduce server load during peak hours by around 30%.<br />
<br />
Also in the works is an automated system for removing video bookmarks that no longer play.<br />
<br />
On a personal note, I was in San Fransisco for 2 weeks for business and I love it! What I love the most was not the city, but the people. They are diverse, creative and all around good people. Living in the Midwest you get good people but can fall short on the diversity and creativity. Not trying to bash my own home, oh wait I will ;). Anyway there is a possibility that I might move out there, if I do watch out, because I am bringing a storm with me!<br />
<br />
Take care and keep collectingMyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com247tag:blogger.com,1999:blog-6098024034514232477.post-28462628190891423382012-03-05T12:42:00.001-08:002012-03-05T21:53:01.618-08:00New Feature: myVidster Group Pages!Greetings Vidsters! It has been over a month since my last blog post and during that time I have been collecting your suggestions and feedback. Most of your feedback revolve around the theme bring users together. Users requested chat rooms, a discussion board and I have received emails of users seeking other users of similar interests.<br />
<br />
While setting up chat rooms or a discussion board would be easy to do, I did not feel that it would integrate well with myVidster. This lead me to a <b>group page</b> solution. Users can <a href="http://www.myvidster.com/user/groups.php" target="_blank">create</a> a group page on any subject they are interested in and use that page to attract and build a community. Here is break down of the features.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjUVGURfNlPGw81YOjSDkPcLtOaR9kmlKueq9SU-d9wJCw-jZqd-XKLnD9enWxmRL0RwX4cDaILr1wPzeuchxesAkVsaC89NcHOnxkGJmmWol4vRetrTfTaWAqUvjXmvDBZFkCTOUqCVo/s1600/group_page1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjUVGURfNlPGw81YOjSDkPcLtOaR9kmlKueq9SU-d9wJCw-jZqd-XKLnD9enWxmRL0RwX4cDaILr1wPzeuchxesAkVsaC89NcHOnxkGJmmWol4vRetrTfTaWAqUvjXmvDBZFkCTOUqCVo/s320/group_page1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Group Pages, one page to rule them all!</td></tr>
</tbody></table><br />
<b>Wall (Group homepage)</b><br />
Members can post to the wall and if they desire provide link(s) to myVidster video bookmarks to share to the group. When you provide the link(s), the thumbnail, title and description from the video bookmark will be added to the wall post. Replying to a wall post is also supported.<br />
<br />
<b>Shared Videos</b><br />
Members can share a video channel to the group. This is a easy way for members to automatically share videos to other members. It is also recommended that you share a channel that contains videos that are directly related to the group.<br />
<br />
<b>Integration</b><br />
When adding a feature it needs to be integrated if you expect users to use it! Notifications are sent out to the members when a new wall post is created. You can auto post a video bookmark to the group's wall by using the video bookmark's <b>share button</b>. myVidster's <a href="http://www.myvidster.com/search/?q=myvidster&filter_by=groups" target="_blank">search engine</a> now supports group search. Select <b>groups </b>in the search drop down to perform a group search.<br />
<br />
<b>Missing Features</b><br />
Currently the only administration task the group owner can do is delete member's wall posts. Future updates will include giving group owner the ability to manage members and add moderators. Users will also be given the option to add the group's shared videos to their video subscriptions.<br />
<br />
For the curious I have created a <a href="http://www.myvidster.com/groups/1/myVidster_Test_Group" target="_blank">test group page</a>, feel free to join it. I do encourage active users to <a href="http://www.myvidster.com/user/groups.php" target="_blank">create</a> their own group page. Well that is it for now, as always keep providing the feedback.MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com245tag:blogger.com,1999:blog-6098024034514232477.post-11909983304211684302012-01-25T12:12:00.000-08:002012-01-25T12:12:31.080-08:00Site Optimization and the Law of Diminishing ReturnsIf you have reading my blog, site optimization has always been apart of my development. Techniques like rewriting slow sql queries and in memory caching will boost the performance of your site and reduce the need of purchasing more hardware. <br />
<br />
Currently myVidster's growth is at 16% (Source: Google Analytics). While this is great, I have to activity monitor the site to ensure that performance stays optimal. Most pages like the homepage, video bookmark and user profile will load within a second even during peak traffic. Performance starts to take a hit when viewing a collection homepage and user subscription page when the video bookmark count are in the 1k+ range. In this case performance is reduce to 2-4 seconds.<br />
<br />
In response I have spent the last few weeks combing though my code and doing some house keeping cleaning up my code and updating sql queries. In the end I was only able to increase performance by 500-1000ms. On the bright side I did reduce the memory consumption of my PHP processes :).<br />
<br />
Now we enter the <a href="http://en.wikipedia.org/wiki/Diminishing_returns" target="_blank">Law of Diminishing Returns</a>. Do I spend more time trying to optimize my code or do I upgrade or add new hardware? I know I can only do so much optimization before I get to the point that the benefits no longer justify the time I am spending (time is money). You also have side affects where an update intended for optimization breaks or limits site's functionality.<br />
<br />
With that said, I will most likely add a new server to handle myVidster's growth. I being a geek always enjoy adding a new server to the family. Well that is all for now, take care and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com298tag:blogger.com,1999:blog-6098024034514232477.post-64433028565458900802012-01-21T12:18:00.000-08:002012-01-21T12:18:08.849-08:00New Feature: Subscription ViewerYo dawg, I herd you like viewing your video subscriptions, so I put an subscription viewer in your chat bar so you can view your subscriptions while you watch videos.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuEu_RACoKRgis8wt359-VYTi8fS8Sbnyev9CvFSI9VQnGAzGqqUrBjj5Z-20tmd2QvyCiXIWTvpXyKTEVD3IgBprdmdps6zIBGbmjboennthRIbpKBQTLinJK-XZ8qL-fjMWeo7Zf-e8/s1600/subscriptions_bar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuEu_RACoKRgis8wt359-VYTi8fS8Sbnyev9CvFSI9VQnGAzGqqUrBjj5Z-20tmd2QvyCiXIWTvpXyKTEVD3IgBprdmdps6zIBGbmjboennthRIbpKBQTLinJK-XZ8qL-fjMWeo7Zf-e8/s320/subscriptions_bar.jpg" width="320" /></a></div>I hope I got that meme right :). As stated in the meme (or lack of), you can now view your subscriptions while you navigate myVidster! Before I started developing this feature I had set 3 goals. The viewer needed to have a simple user interface, fast loading and non obtrusive. Here is a summary of how I accomplished these goals.<br />
<br />
<b>User Interface:</b><br />
The viewer looks a lot like the existing subscription page, but with fewer features (you cannot search/display videos by user). Users are given the option to naviagate though their subscriptions by clicking the prev and next buttons. The state of the viewer (what page its on) is maintain while the user navigates the site. To notify the user of new videos collected by those they follow, the existing video bookmarks in the viewer will fade out and the new video bookmarks will fade in.<br />
<br />
<b>Fast Loading:</b><br />
Smart caching is used to speed up load times and when the data needs refreshing the data is pulled from mysql memory tables. Other features like minify html/js/css are also used to minimize the 'payload' sent to the user's web browser.<br />
<br />
<b>Non Obtrusive:</b><br />
By default the viewer will remain open and auto refresh is enabled. While I feel these features are great I know some users would prefer not to use them. I can see this being the case with users with low resolution monitors (especially older laptops) where the viewer is taking up too much space. With that in mind, users can disable the keep open and auto refresh feature.<br />
<br />
I hope you will enjoy this new feature as much as I enjoyed coding it :). That is all for now and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com284tag:blogger.com,1999:blog-6098024034514232477.post-5630575946556459282012-01-01T19:03:00.000-08:002012-01-01T19:03:26.437-08:00A geeky explanation on myVidster's growthIt's time to start the new year by geeking out! December was a great month in terms of growth. To give you an idea of myVidster's growth rate I ran a few queries for video bookmarking. <br />
<br />
Video bookmarks for the last 3 months.<br />
Oct: 300,460<br />
Nov: 308,709<br />
Dec: 357,149<br />
<br />
Now lets take the daily average for December which gives us <b>11,520</b> video bookmarks a day! We also have over <b>163,000 </b>registered users.<br />
<br />
To manage our growing community and to keep the site running smoothy I have added another server to the family :). Currently myVidster operates on 4 servers, now lets break down what each server is doing.<br />
<br />
Server1: Web Server<br />
Server2: Database<br />
Server3: Chat/Messaging<br />
Server4: Search<br />
<br />
The servers do other important tasks, but the ones listed above are their primary tasks. I have also been hard at work with code optimization for the search, chat/messaging and database services. I will like a make a side note that chat/messaging performance has been <b>improve greatly</b>, so please message away!<br />
<br />
Well that is it for now, take care and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com166tag:blogger.com,1999:blog-6098024034514232477.post-8317658294091289412011-11-15T15:37:00.000-08:002011-11-16T00:58:07.198-08:00New updates: sorting search results and power user recognitionGreetings 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.<br />
<br />
<b>Sorting search results by most recent.</b><br />
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 <b>3 million documents</b>. 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 ;)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Bf2ovAxoQh8Wk0mXVOaRB5mn2_0GAfkvB5g9vuJB2fH5d_Jc9uShd7dy3ioH0QJdDNy1wJN9Ar8X6-dzCmk9t3Z05nxHz8d6ZYmlHX7rOABgVR6FV7P6kvtH44BTjAi3VTZ8hYZJzs8/s1600/search_recent_sort.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Bf2ovAxoQh8Wk0mXVOaRB5mn2_0GAfkvB5g9vuJB2fH5d_Jc9uShd7dy3ioH0QJdDNy1wJN9Ar8X6-dzCmk9t3Z05nxHz8d6ZYmlHX7rOABgVR6FV7P6kvtH44BTjAi3VTZ8hYZJzs8/s320/search_recent_sort.jpg" width="320" /></a></div><br />
<b>Power User Recognition!</b><br />
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 <b>Power User Collections.</b> To be highlighted as a power user you need to link or upload a <a href="http://www.myvidster.com/user/options.php">profile photo</a> and are activity collecting videos. This list updates every 15 minutes with randomly selected users that meet the required conditions. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8-MmsSZg0v-59KHabgO_3KWdkBxyPPyXDw6dUi0TdURyItljYuhKtNiNdbO0PQm9mb8yDC9UD4SjmVQJg_lmGwbTbJaemXNdKZGto3AUGlR_VOPqXxu8uk_BN6Gee9WPflqsTVWSlw4I/s1600/power_users.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8-MmsSZg0v-59KHabgO_3KWdkBxyPPyXDw6dUi0TdURyItljYuhKtNiNdbO0PQm9mb8yDC9UD4SjmVQJg_lmGwbTbJaemXNdKZGto3AUGlR_VOPqXxu8uk_BN6Gee9WPflqsTVWSlw4I/s320/power_users.jpg" width="320" /></a></div><br />
Please continue providing me with your feedback and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com174tag:blogger.com,1999:blog-6098024034514232477.post-27592621172177351462011-10-29T14:19:00.000-07:002011-10-30T14:25:40.981-07:00New Features: Chat Toolbar and Profile Photo UploadingWhile general administration and break/fix has been consuming a lot of my time I still manage to allocate time to push out requested features!<br />
<br />
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!!!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvmeSacq9lNu3o2HQ0imwYHBoAxT_RQjL3AyvyCse8ORPyyI6x92ODgG_bTS706bR1unCo6Pzh0nKUzbiv5ACUH2iDOU2z7wd63O9y0JWcVExdyghsifTDMJ31g_HLewiX7Rtrjys8FgM/s1600/chat1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvmeSacq9lNu3o2HQ0imwYHBoAxT_RQjL3AyvyCse8ORPyyI6x92ODgG_bTS706bR1unCo6Pzh0nKUzbiv5ACUH2iDOU2z7wd63O9y0JWcVExdyghsifTDMJ31g_HLewiX7Rtrjys8FgM/s320/chat1.jpg" width="320" /></a></div>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 <a href="http://www.myvidster.com/user/options.php">user options</a> page.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixoBY0r8fuhykIpTCumhfrwJOnyRBAFoaqNFDoTbbfS1Gs_l9XzYGhwkpGM1A-EGN7GWSRRZ_yKpv_FCMiUig9fkSr5QPtUXn2WshMKXYiUZdqzKEDSiOqt0ErqLzlxTIpJDzWQWeiq4Q/s1600/photo_upload.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixoBY0r8fuhykIpTCumhfrwJOnyRBAFoaqNFDoTbbfS1Gs_l9XzYGhwkpGM1A-EGN7GWSRRZ_yKpv_FCMiUig9fkSr5QPtUXn2WshMKXYiUZdqzKEDSiOqt0ErqLzlxTIpJDzWQWeiq4Q/s1600/photo_upload.jpg" /></a></div>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 <a href="http://www.myvidster.com/docs/contact">email</a>, <a href="http://www.twitter.com/myvidster">twitter</a>, or commenting on my blog. <br />
<br />
Thanks and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com271tag:blogger.com,1999:blog-6098024034514232477.post-51390966692799922672011-09-19T18:18:00.000-07:002012-07-14T21:51:20.570-07:00myVidster Android and iPhone App goes PublicI am pleased to announced that the myVidster Android and iPhone App is ready for the public!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzdAQTQ3Z6MVt3mbNpMQYU9p30mNLOti5mzk2as2_Kk_W8XLypSPn8ezGxoGCEKSzmCHG8LoqpgxJD-T4wMlmfOmwZbGr5f-wq4cBksmHJWeOZSYc8CBKA4ounamkMq2EkvCrl89gKQwg/s1600/myv_app6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzdAQTQ3Z6MVt3mbNpMQYU9p30mNLOti5mzk2as2_Kk_W8XLypSPn8ezGxoGCEKSzmCHG8LoqpgxJD-T4wMlmfOmwZbGr5f-wq4cBksmHJWeOZSYc8CBKA4ounamkMq2EkvCrl89gKQwg/s320/myv_app6.jpg" width="213" /></a></div>
<br />
Android<br />
Install: <a href="https://play.google.com/store/apps/details?id=com.phonegap.myvidster">https://play.google.com/store/apps/details?id=com.phonegap.myvidster</a><br />
<br />
iPhone<br />
URL: <a href="http://m.myvidster.com/">http://m.myvidster.com/</a><br />
Note: Bookmark this link to your <b>Home Screen</b><br />
<br />
<b> </b><br />
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.<br />
<br />
Thanks and keep collecting!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com229tag:blogger.com,1999:blog-6098024034514232477.post-76506055408890797272011-08-28T12:45:00.000-07:002011-09-29T11:34:25.971-07:00myVidster Android and iPhone App Private Beta!Here is a video demonstrating both the myVidster Android and iPhone app. <br />
<iframe allowfullscreen="" frameborder="0" height="325" src="http://www.youtube.com/embed/CfbvnxTpS0g" width="540"></iframe><br />
<br />
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.<br />
<br />
Android<br />
Version: 0.5<br />
Version date: 18-Sep-2011<br />
Download/Install:<br />
<a href="http://www.myvidster.com/mobile/deploy/2.1/myvidster.apk"></a><a href="https://market.android.com/details?id=com.phonegap.myvidster">https://market.android.com/details?id=com.phonegap.myvidster</a> (Andriod 2.1 and higher)<br />
<br />
iPhone<br />
URL: <a href="http://www.myvidster.com/mobile/">http://www.myvidster.com/mobile/</a><br />
Note: Bookmark this link to your <b>Home Screen</b><br />
<br />
This is a private beta, only users with a <a href="http://www.myvidster.com/user/upgrade.php">PRO</a> account can access the app. PRO users can report any issues by commenting on this blog post or by <a href="http://www.myvidster.com/docs/contact">contacting</a> 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.<br />
<br />
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!<br />
<br />
<b>Update: Issue Tracking</b><br />
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.MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com207tag:blogger.com,1999:blog-6098024034514232477.post-59773839922691248572011-08-23T12:22:00.000-07:002011-08-23T12:22:55.357-07:00The Art of Adding a New FeatureSocial 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.<br />
<br />
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.<br />
<br />
I would like to break down my though process on a simple feature I recently launch called the<b> share button</b>. 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.<br />
<br />
<b>External vs Internal</b><br />
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.<br />
<br />
<b>User Interface (UI)</b><br />
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 <a href="http://blog.myvidster.com/2011/07/video-shuffle-wall-new-way-to-discover.html">shuffle wall</a> 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 <a href="http://blog.myvidster.com/2011/08/new-feature-notifications.html">notifications</a> 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.<br />
<br />
<b>Final Test User Engagement</b><br />
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.MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com180tag:blogger.com,1999:blog-6098024034514232477.post-29849787165212034672011-08-16T13:13:00.000-07:002011-08-17T08:53:13.463-07:00New Feature: Notifications!<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5VEqm3JaVX4no4CwQROXB1PorJx17KT9AQt27lYF1W7mZKq7STXEXi8QXl9Z6q7CzdCzqrH7zNlCzT7SHtjIU-eGbl8EghFKLRevn8JgY13qz1QlMDMC0Xky0DhJ_LYFn0g-DkvKtLeU/s1600/notify.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5VEqm3JaVX4no4CwQROXB1PorJx17KT9AQt27lYF1W7mZKq7STXEXi8QXl9Z6q7CzdCzqrH7zNlCzT7SHtjIU-eGbl8EghFKLRevn8JgY13qz1QlMDMC0Xky0DhJ_LYFn0g-DkvKtLeU/s400/notify.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />
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.<br />
<br />
<b>Comments</b>:<br />
When a new comment for a video is posted, a notification is sent to all users who have bookmarked the video.<br />
<br />
<b>Share</b>:<br />
You can share any video bookmark on myVidster to other users and to all of your followers.<br />
<br />
<b>Followers:</b><br />
When a user follows your collection or channel, you will be notified.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZOHadnNuAYE_2KbA-bM0arpKVwV924O-bcXTkoBrFLNimNEboM56Z8XQbGi-6zILE0b0VyjnQFUmnghXJmNIaaWx9SULNsyQ78Om8qjNzrwUnG8uiaaSaxLstQsXmCHFBJCqWFxf9ek0/s1600/share1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZOHadnNuAYE_2KbA-bM0arpKVwV924O-bcXTkoBrFLNimNEboM56Z8XQbGi-6zILE0b0VyjnQFUmnghXJmNIaaWx9SULNsyQ78Om8qjNzrwUnG8uiaaSaxLstQsXmCHFBJCqWFxf9ek0/s400/share1.jpg" width="400" /></a></div><br />
I might add more notifications in the future, if it provides value to the user experience. Please provide suggestions and your thoughts as well.<br />
<br />
<br />
MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com167tag:blogger.com,1999:blog-6098024034514232477.post-90729067885979970102011-08-11T15:28:00.000-07:002011-08-11T18:52:18.638-07:00Sneak Peek: myVidster Andriod and iPhone App!As mention in a previous <a href="http://blog.myvidster.com/2011/06/making-myvidster-more-social.html">post</a>, 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.<br />
<table align="center"><tbody>
<tr><td><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiia50DcE1gBtmUu8C8E4keFg7xzymiqgzoO0oRHXX03iqp_r3_FFN2Sj7mKYEfPt0B9iLox1Vpik6L_uuwaVvaBxYqmX609rOQkPwsmBfjkkvx8oEASOLBos9scI94CM0ocdZqutOWjOs/s1600/myv_app1.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiia50DcE1gBtmUu8C8E4keFg7xzymiqgzoO0oRHXX03iqp_r3_FFN2Sj7mKYEfPt0B9iLox1Vpik6L_uuwaVvaBxYqmX609rOQkPwsmBfjkkvx8oEASOLBos9scI94CM0ocdZqutOWjOs/s200/myv_app1.jpg" width="133" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Homepage</td></tr>
</tbody></table></td><td><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NgwZHTDPIw9HXPHOMkLKUtUWMuHZLiGMH-7OnH7bOtjLn8j0Bo0rnkKz6EarwcDyCej3ZiBG-Liyxh10EFtbWo8NEzHNB6Me3HxYFHlgHIhPVju0wYbAn0qEXzhzo-9JGP2qOqjMoDo/s1600/myv_app3.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NgwZHTDPIw9HXPHOMkLKUtUWMuHZLiGMH-7OnH7bOtjLn8j0Bo0rnkKz6EarwcDyCej3ZiBG-Liyxh10EFtbWo8NEzHNB6Me3HxYFHlgHIhPVju0wYbAn0qEXzhzo-9JGP2qOqjMoDo/s200/myv_app3.jpg" width="133" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Video in portrait view</td></tr>
</tbody></table></td> <td><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJGVW6I-AbCDP9Eiw6FgT6Qqp3_n4zBNMs0HBRiFh7TAjgaLRrg0JEkMi2Fx2mdIeXK8vJj4Zi1IUMB7qmwpKY5K_4rDm-7dsxMLEkmOZ9s_hBOHk4Xjh-9UTHLmcNt0HuYt0AGTxf3_s/s1600/myv_app2.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJGVW6I-AbCDP9Eiw6FgT6Qqp3_n4zBNMs0HBRiFh7TAjgaLRrg0JEkMi2Fx2mdIeXK8vJj4Zi1IUMB7qmwpKY5K_4rDm-7dsxMLEkmOZ9s_hBOHk4Xjh-9UTHLmcNt0HuYt0AGTxf3_s/s200/myv_app2.jpg" width="133" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sort options</td></tr>
</tbody></table></td></tr>
</tbody></table><div align="center"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg25wi1pgMBrHepEgPeOaOfSNgRpHFZ9SSsrxF-DFPWF5eCbXnXpzPK-2_ZJP5_ZIB4sqGsKHuYYSyZq7SBMpp5QI41LMtAJuhnCRey9eKr_8XpCQKVQUIXOY8IUVkwWkVv8rqayzhZlnM/s1600/myv_app5.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg25wi1pgMBrHepEgPeOaOfSNgRpHFZ9SSsrxF-DFPWF5eCbXnXpzPK-2_ZJP5_ZIB4sqGsKHuYYSyZq7SBMpp5QI41LMtAJuhnCRey9eKr_8XpCQKVQUIXOY8IUVkwWkVv8rqayzhZlnM/s400/myv_app5.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Video in landscape view</td></tr>
</tbody></table></div>For those who would like to get their hands on a beta copy, I will be providing access to the beta version to the <a href="http://www.myvidster.com/user/upgrade.php">myVidster PRO</a> 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.<br />
<br />
Till next time, keep collecting! <br />
<br />
MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com189tag:blogger.com,1999:blog-6098024034514232477.post-20898712634100898842011-07-06T14:52:00.000-07:002011-07-06T14:52:21.859-07:00Video Shuffle Wall: A new way to discover videos on myVidsterCurrently on myVidster there are serval ways to discover new videos.<br />
<br />
Homepage (sorted by recent, popular and new videos)<br />
Your subscription page (videos bookmark by those you follow)<br />
myVidster's search engine<br />
Random exploration of user's collections and channels<br />
<br />
<b><i style="color: red;">New </i>Video Shuffle Wall</b><br />
I decided to add a new method for video discovery call the <a href="http://www.myvidster.com/video_shuffle/new">video shuffle wall</a>! When visiting the homepage you will see a new sort option call <b>Shuffle</b>. 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 <a href="http://www.myvidster.com/video_shuffle/popular">popular</a> as well. Give it a try and I promise that you will not be disappointed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8ejJmnkKwMDgAZ4xbdEJ8V54eoV5GYiM5cQ7204-44_gBKyTMoOBXmut-nEXStBTt-fjWqg8W8BLMs9Os6ZE-Ix897SvJSluPgNVfDAiG2yCeF9Bz6t8zLUsGLgDL2ZIsJhwxuW5KbQ/s1600/video_shuffle_pop.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8ejJmnkKwMDgAZ4xbdEJ8V54eoV5GYiM5cQ7204-44_gBKyTMoOBXmut-nEXStBTt-fjWqg8W8BLMs9Os6ZE-Ix897SvJSluPgNVfDAiG2yCeF9Bz6t8zLUsGLgDL2ZIsJhwxuW5KbQ/s320/video_shuffle_pop.jpg" width="320" /></a></div>MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com210tag:blogger.com,1999:blog-6098024034514232477.post-91269337341116467352011-06-22T13:52:00.000-07:002011-06-22T14:04:25.765-07:00Random 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.<br />
<br />
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.<br />
<br />
As with most issues, a simple Google searched reveal the solution. Enabling Apache's <a href="http://httpd.apache.org/docs/1.3/logs.html#piped">Piped Logs</a> 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.<br />
<br />
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.MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com380tag:blogger.com,1999:blog-6098024034514232477.post-64499806817568001382011-06-05T13:42:00.000-07:002011-06-05T14:35:17.251-07:00Making 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.<br />
<br />
<b>Social Network Linking (Beta)</b><br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zYFauR4UwNEuQbhNmo-V9ISb1L-LiXAxcm-_uHarHi7wy9wYMOpKm_9YbVtG21EM_Ykbp01zKgowN8bYPUZMTVpmHa8E59aboUK8w43O9WZkb94P3WYZOYltEbk0-9V9fQJcWWES0rA/s1600/social_linking.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zYFauR4UwNEuQbhNmo-V9ISb1L-LiXAxcm-_uHarHi7wy9wYMOpKm_9YbVtG21EM_Ykbp01zKgowN8bYPUZMTVpmHa8E59aboUK8w43O9WZkb94P3WYZOYltEbk0-9V9fQJcWWES0rA/s400/social_linking.jpg" width="400" /></a></div><br />
<b>Profile Photos</b><br />
After you have linked your social network account(s) to myVidster you can use your profile photos for <span class="sub_links">your myVidster profile photo. The reasoning behind using the user's social network profile photo instead of allowing users to upload a photo</span> 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.<br />
<b><br />
</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGrmlZM39PUwpbL7OXr47mZT4Qg9-dmd4L0xYuE77oyKjiwqFUNxwUPoagVuLxh7lkyNoAZJZuuReeBhNLTfKgXICUDmz40SfHFt2eTtq-GypKzJ40ZBhWamO8MyeuOfvjTcWu9yAy2R4/s1600/profile_photo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGrmlZM39PUwpbL7OXr47mZT4Qg9-dmd4L0xYuE77oyKjiwqFUNxwUPoagVuLxh7lkyNoAZJZuuReeBhNLTfKgXICUDmz40SfHFt2eTtq-GypKzJ40ZBhWamO8MyeuOfvjTcWu9yAy2R4/s400/profile_photo.jpg" width="400" /></a></div><br />
<b>Social Sharing</b><br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHDTOa-9xEa9iDNYLCLPUoZO3-RkK28nh3O8-UfwMACao08WkKpkNWcLUJtL2bwiqCYj-SjEjf88sblbIYjFXItpuCgUNO1PYZoV7qXAV7KDM8Xtnm6hyphenhyphenDGRW-Uej4hSGiIT7s8GBiWHI/s1600/social_share.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHDTOa-9xEa9iDNYLCLPUoZO3-RkK28nh3O8-UfwMACao08WkKpkNWcLUJtL2bwiqCYj-SjEjf88sblbIYjFXItpuCgUNO1PYZoV7qXAV7KDM8Xtnm6hyphenhyphenDGRW-Uej4hSGiIT7s8GBiWHI/s1600/social_share.jpg" /></a></div><br />
<br />
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!MyVidsterhttp://www.blogger.com/profile/01518345139894984414noreply@blogger.com439