Facebook: Top Friends Enabled
This is just a quick post related to the previous entry I had on the Top Friends application being displayed.
The Top Friends application has now been enabled and the privacy changes have been implemented. Basically now it seems that you can only view a persons Top Friends profile if you are friends with them, otherwise you are now redirected to your own profile. If the person you visits had Top Friends installed and a public profile you still will not be able to view their profile unless you become their friends.
One less privacy hole on Facebook. ![]()
Facebook: Top Friends Application Suspended
Although this may come as old news to some people, others may not have even yet noticed it.
On the 26th of June the Top Friends application was suspended due to a security and privacy breach. A week prior to it’s suspension I actually took some time to look into it and how it functioned and actually found it to be quite an interesting application. Although like many others it did strike me as odd when you could see the relationship status, interests and some other profile information of people who were set to private and didn’t have myself as a friend. This of course wasn’t on their actual profile instead on a sub-profile which was attached to the application where it would display basic information, the users display picture and other applications.
After looking around on the internet and news sites it seems that it will not be re-enabled until the security and privacy breach is fixed. I can’t yet find a place which states when this actually will be fixed.
Cnet Article:
http://news.cnet.com/8301-10784_3-9977762-7.html
Mashable Article:
http://mashable.com/2008/06/26/top-friends-disappear-facebook/
Database Changes
After encountering a problem with creating a Wall-2-Wall function just like Facebook allows I encountered problems with quering the comments from the database because of how I separated the tables of comments. To solve this I have just regrouped all the comment tables into one larger table. With this change it’ll decrease the amount of code in some modules thus making a slight speed improvement.
Looking at it all it seemed pointless with the current size of the site and the realistic size of it in the future to separate the comment tables in such a manner. If in the future something needs to be done then MySQL partitioning should be available for me to use when taht change is needed. Until then the current method should work fine for a few million comments, maybe even the 10’s of millions depending on the database server I have.
As this change is quite major there are a lot of things which have now been broken, so they are being fixed as they are found.
Current Lines of Code: 22,000+ (approx)
Current Version: 3.0.8a (Alpha)
Facebook to discontinue Networks
After just randomly checking through Facebook it has come to my attention that they are going to discontinue networks. That somewhat struct me as odd as they were a valuable way to connect with fellow students at University as well as people in the area. After a quick search there was no success in finding out the reason why it actually was to be discontinued.
The displayed message:
Network Pages will be discontinued soon
Facebook will soon be removing Network Pages from the site. Please keep this in mind when communicating with others on the Wall and on the discussion board. You can use Groups to connect with the people around you.
Having to resort back to just using groups is a mistake in my opinion but I guess the administrators think thats the right thing to do as they actually chose to do so.
I did though notice that a while back Facebook removed the networks link from the top area of the page. I guess by that then, this has been something that has been coming for a while now. I wonder how long it’ll be before it disappears.
A little history…
This project intially started from general interest as well as to improve my skills in PHP, MySQL, Application Design as well as using Unix, and Apache from developing websites but during it’s development has created many difficult and confusing situations. As i’ve figured out how to fix those problems they’ve unleashed more resulting in numerous rewrites of the source code. I was always sure to separate logic from presentation in every area possible except the occasional condition or loop in the source code.
Here is a little timeline on the rewrites of the site and problems which made it necessary.
Late 2006 - Version 0 (first alpha)
The site was entirely coded in procedural code and it very quickly became hard to manage and keep track of where all the needed functions were for different aspects of the code. Back then I also used a template parser and only in the last version did I opt out of using such a tool and instead just turned back to using php as it’s own template parser. Another issue with that was the useability of code being that nothing was reused at all causing extensive bloating of the overall code.
This was soon scrapped for version 1 (alpha), stated below.
Early 2007 - Version 1 (first alpha)
Two or so months later the start I decided to attempt a basic Object Orientated Approach which worked well but was coded in PHP 4 rather than PHP 5. For at least three months this version was further developed and after a month the site was back to it’s former glory. Of course though as it was one of first serious attempts at building a site in an object orientated style. I wasn’t to sure on using pointers/references so objects were continuously iniated as they were needed rather than reusing the already iniated objects. This took it’s toll on the site and it started loading slow on some areas which is quite pathetic thinking that there were only 4 active testing accounts on the site and no more than 20 posted comments.
The way I did it was by enclosing all the different sections in of the site into their own classes and initated them as needed. This was extremely buggy at times as was extremely resource intensive. Infact the site was probably more so coded in procedural code rather than object orientated code.
For a month or so after stopping the development in that way I just read numerous articles on object orientated programming styles such as the Factory pattern, Singleton pattern and of course my favourite the Model View Controller pattern (MVC). It was not until version 3 that something like MVC was actually used, instead version 2 used a slightly different pattern which I can’t precisely put a name to because alot of it was done how I thought was good.
I guess not.
Mid 2007 - Version 2 (first alpha)
As mentioned above I started using my own little pattern. Just like all the other ways I coded the site it did work well and but I only stuck with it for a short period of time. When it was being worked on no way near as many problems were encountered as in the previous coding styles. This version as well as the last still using a template parser and although only lightweight it still significantly increased the resources that the site used on every request.
This version mainly turned out to be for testing for how I can do the future version and it ended up helping alot in various aspects of object orientated programming. Not only did it improve how I viewed the code but also how I reused various aspects of the code and only created one instance of each object not numerous like the previous version. No more than 6 weeks after I started working on this version was it halted and the next version started.
Late 2007 - Version 3 (first alpha)
The final version that i’ve created and hopefully the last for the framework. This version works like the mvc in some ways in that there is a single entry point and a controller, model and a shared view (as well as tempaltes). The templates are parsed in php rather than in the template parser I used before and that in turn halved the amoutn of memory used to process one page.
The basic way the site works is that the users request is made, the entry point determines what was requested and selects the specified controller and model. Within the controller the specific action is located and processed as well as retrieving the required data from the database and other sources. It is further altered in the controller then passed onto the view object then outputted to the user. Doing it this way has also allowed some sections of the site to very quickly be build as alot of the needed functions and libraries has been created to cater for this and could easily just be reused. Not gonna say to much more because that’d ruin the secret to how it completely works.
There are still various places where alot of improvement can be made and that is done as I find or get the chance to fix the issues slowing down the site.
As you can see there have been various speed humps in my development of the site and in the future i’m sure many more will arise but I guess you could say that is all part of the learning curve.
Some random screenshots :)
Just some random screenshots from some areas of the site. Click on the images for the full size view. Warning, large files!
User Control Panel Area (edit favourites)

More to come. ![]()
Current News Pt. 1
Recently not much work has been done because of University work taking it’s toll. Once i’ve caught up with all the work and hopefully get ahead and can get back to working on this for decent amounts of time.
At current there are many new updates to note yet so they’ll instead be coming within the next few days. Some noteable things include further improvements to the new design and further integration of it on the site. There are also a few little test pages going for sections such as the networks and user browser although no such links are provided to those areas yet.
Stay tuned as updates should be listed by the end of the week.
Current Lines of Code: 20,000+ (approx)
Current Version: 3.0.7a (Alpha)
[Update] - 0.0.6a (fixes and improvements)
Minor update so here is a list of changes since the most recent update.
Kudos to tremolo for all your recent help! ![]()
- Bug Fixes
- Fixed randomizing when viewing all friends
- Fixed PHP Magic Quotes problems
- Fixed broken links in the Account area
- Fixed broken links in the Profile Area
- Fixed add comment text on Profile
- Fixed Video Box not appearing
- Fixed name display, full name or nickname
- Fixed adding comment restrictions (approval system pending)
- Fixed Edit About/Quick Info/Permissions/Avatar
- Fixed Font size glitches in IE
- Fixed Public/Private profiles
- Fixed (basic things) Applications section, needs a alot more fixes
- Fixed form glitches and problems submitting
- Fixed last guest visitor being shown
- Fixed Public/Private profiles
- Fixed Video Comments assuming profile owner, rather than visitor
- Fixed Video Box not appearing on profile
- Fixed typos in the Profile Area
- Optimizations
- Optimization to Account Area
- Optimization to User Control Panel
- Improvements (speed & access etc)
- Improved permissions system and cleared some bugs associated
- Improved some CSS
- Improved Template Mode (complete Profile, Account and UCP)
- New Features and Additions
- Added total time online
- Added online status for profiles
- Added basic Email address search
- Added last profile visitor
- Added friend status near name (”Strangers/Friends etc”)
- Added Edit Applications
- Added success messages to top of page rather than new page
- Added Permissions display box (debugging values)
- Added Favourite Books section
- Pending (next milestone)
- New Search (names and ages)
- Variable Profile Types
- Profile Scraping Tool
- Application System Completion (Blog and Gallery as initials)
Nothing much else to mention in this post other than:
Current Lines of Code: 17,377 (approx)
Current Version: 3.0.6a (Alpha)
Current Status - 14th January
After a month of taking it easy and doing minimal work on the site i’ve decided that it’s time to start working on it more again. But at the same time there are other projects which have to be started too such as some which will help to earn some money online.
There are a few reasons why I want to start earning more money online such as for extra money for myself and for the initial investment for Project-SN’s launch in the near future. I’d like to be able to earn enough to have the site be launched on a VPS or Dedicated Server rather than on a shared one (like it currently is). This is mainly to reduce the bad reputation which can quickly come upon the site if it starts running slow or goes down in it’s early stages of public life.
Another reason is also to help pay for the hosting costs as I know that Project-SN most likely won’t make money for a while and i’d like to keep sponsorship on it to a minimum, hence other means to pay for the sites expenses.
Back to the site though, currently improvements are been made to the security as well as the enabling of notifications. They seem to be a little buggy at the moment but I am working on it and it should be working properly very shortly. I’ll also be updating the Alpha version which is available to the public after I complete these updates.
Stay tuned…
Almost Alpha
It’s again been a while since my last update and it may still be another week before an in depth update is posted. At the moment within the next week or two i’ll be allowing people to test a partially public alpha version of Project-SN. This version of course is may have several bugs in it as well as in correct functioning in Internet Explorer (any version).
The new Account section of the site which was mentioned a few posts back has fully been implemented as with the updates to the User Control Panel section. Numerous bugs are still being fixed at the moment such as galleries and image uploads. They are of course protected from malicious scripts being uploaded and executed on the site.
Some notable fixes include:
- Fixed public and private profile access (top friends still being fixed)
- Fixed online status and added total time online of the user
- Improvements to the Applications section (only 1 publicly available application at the moment)
- Fixed edit success and failure messages
- Added Mutual Friends to friends profiles
Many more site sections have also been modified to use PHP as the template parser rather than a template engine which just adds extra unnecessary overhead to the application.
Some important things that need fixing:
- Delete Video Comments (no edit mode will be available yet)
- Gallery Uploads/Editing etc so it can become a public application
- Accept/Decline/Modify friend requests and friends respectively
- Member Search (needs some work still)
- Final updates to the User Control Panel (minor fixes)
A new feature which will help entice MySpace members to migrate or create accounts on Project-SN is also being researched at the moment too. This should allow for easier profile creation and save the user having to copy or retype all their profile information onto Project-SN. As this tool is early in development it may be a month of 2 before it appears on the site in a publicly accessible area.
Current Lines of Code: 17,250 (approx)
Current Version: 3.0.5a (Alpha)


