Colnect, Connecting Collectors. Colnect offers revolutionizing services to Collectors the world over. Colnect is available in 63 languages and offers extensive collectible catalogs and the easiest personal collection management and Auto-Matching for deals. Join us today :)
Friday, March 20, 2009
Biggest phone cards catalog for collectors - 142,000+ phone cards listed
Coins catalog: over 14,000 coins
Colnect's coins catalog is currently the world's biggest freely available resource for coin pictures and information.
Wednesday, March 18, 2009
Colnect rises on Compete / Quantcast / Alexa
I've been updating about Colnect's rank rising on Alexa and have now decided to include links to other rankings. So you can check out Colnect's rankings on Compete and Quantcast and start wondering what all these ratings are actually worth. So although it's nice to see Colnect gains momentum on all non-related meters, it's interesting to note the difference between what they report and between the reality. By "reality" I usually mean my reports from Google Analytics and, when really bored, the server's logs can be inspected. There's little connection between the real graphs and the estimated ones by these services. Colnect has been growing and growing throughout. Sometimes slower, lately faster. The graphs by Compete and Quantcast actually show a very inaccurate picture. Oh well...
Monday, March 16, 2009
Collectors premium services on Colnect
The announcement has been made:
"Premium membership gives you access to several features that will enhance your Colnect experience. If you regularly use Colnect, please consider supporting us by becoming a premium member."
Currently, not many premium services are offered but these will be added with time according to collector demands.
Happy collecting :)
Sunday, March 8, 2009
Colnect's Alexa Rating Keeps Climbing
The ranking is coherent with Colnect's internal report, showing a significant increase in traffic during the last months.
Wednesday, March 4, 2009
Email Anti-Spam Tip
An Example
Today I've received this unsolicited (SPAM) email trying to frighten me into buying colnect.tw, colnect.cn and so on. Here it is:
From: kevin.wu
(If you are NOT CEO,please forward this to your CEO, because this is urgent.Thanks.)
Dear CEO,
We are the department of registration service in China. we have something need to confirm with you. We formally received an application on March 3, 2009, One Japan company called "Path soft investment Corp" are applying to register (colnect) as internet brand name and domain names as below (colnect.net.cn colnect.org.cn colnect.mobi colnect.asia colnect.hk colnect.cc colnect.tw etc.).
After our initial checking, we found the internet brand name and these domain names being applied are as same as your company’s, so we need to get the confirmation from your company. If the aforesaid company is your business partner or your subsidiary company, please DO NOT reply us, we will approve the application automatically. If you have no any relationship with this company, please contact us within 15 workdays. If out of the deadline, we will approve the application submitted by "Path soft Corp" unconditionally.
We would like to get the affirmation of your company,please contact us by telephone or email as soon as possible.
Best Regards,
Kevin Wu
Senior Director
TEL: +86 21 69929440
Fax: +86 21 69929447
Website:www.qpnic.org.cn
Shanghai QPNIC Web Property Solutions Limited
Now, this email was sent to management@ and webmaster@ (both of them at my domain colnect.com). However, since I never give these email addresses to anyone, it means that every email I get there is SPAM. Other common names such as info@ and contact@ and others are frequently used.
A short search on the Internet affirmed my suspicion of a scam, when I found this blog post and that one.
What About My Private Email?
Well, you can easily get yourself a free domain on any service that would freely forward your email (such as cjb.net). Then, whenever you register a website, make up an email site_x@mydomain.cjb.net and use it to register the site. You would always be able to receive such emails but when this address becomes 'dirty' (starts receiving much spam), you can filter out all emails coming to it. It's a better solution than one-time emails since sometimes you do actually want to allow the site to later contact you. It is also a completely legitimate email address.
Symfony: Error Logging Hack
The following hack can be has been customized for my needs but you can change it to your preferences. It'll change the output Symfony places in the PHP error log file.
What the Hack Does?
A boring Exception such as:
[04-Mar-2009 17:20:25] Action "coins/collect" does not exist.
Will become:
[04-Mar-2009 17:20:25] CODE[0] MESSAGE[Action "coins/collect" does not exist.]
FILE[.\config_core_compile.yml.php] Line[715]
REQUEST[/it/coins/sdlk] REFERER[]
AGENT[Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6] ADDR[127.0.0.1]
How To?
Find sfException class (should be /symfony/lib/exception/sfException.class.php) and add the following method:
public function getMessageFull() {
$exception = is_null($this->wrappedException) ? $this : $this->wrappedException;
try {
$sReq = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
$sRef = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$sUserAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$sRemoteAddr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
$sErrMessage = "CODE[".$exception->getCode().'] MESSAGE['.$exception->getMessage()."]"
."\n\tFILE[".$exception->getFile()."] Line[".$exception->getLine()."]"
."\n\tREQUEST[$sReq] REFERER[$sRef]"
."\n\tAGENT[$sUserAgent] ADDR[$sRemoteAddr]\n"
;
}
catch (Exception $e)
{
$sErrMessage = $exception->getMessage();
}
return $sErrMessage;
}
Customize this method to your needs. Make sure it doesn't raise any exceptions itself.
Now you need 2 more small changes in both sfException.php and sfError404Exception. Change the line:
error_log($this->getMessage());
to:
error_log($this->getMessageFull());
More Enhancements?
It's your call. You can email yourself an alert, include more system-specific pieces of information or use the code as is. It's obviously not the cleanest solution possible but it works for me and hope it helps you.
Wednesday, February 25, 2009
3,500 collectors on Colnect
How do collectors learn about Colnect?
As Colnect allows collectors to manage their personal collection and semi-automatically manage swaps with other collectors from around the world, it's the collectors' own interest to have their collector friends join the site. Why would a collector go through the swap and wish lists of another collector manually when a match to his own lists can be done using a single click?
So what's next?
Colnect will expand to more collectible fields as requests come from existing members of the community. Some requested premium services are also planned.
Thursday, February 19, 2009
BE CAREFUL when using both AdSense + AdWords by Google
Do you have a website and using both AdSense and AdWords? If so, this post will interest you. You may start by looking at the attached picture.
AdWords and AdSense are the different sides of the same coin and Google is in the middle, biting on the metal. AdSense allows website owners to show different ads from different advertisers on their website and receive revenues for it. AdWords allow you to advertise your website on many other websites running AdSense. Google takes its commission for providing both these services. Though many other competing programs exist on the web, Google's generally have good reputation.
Advertising my site on my site?!?!?!
This morning, I was amazed to see an ad to my website for collectors on the same site! Had I clicked this ad, my AdWords account would have been billed for the click while my AdSense account would have received some revenue. Obviously the latter would be lesser since Google get their cut. This is, of course, ridiculous and should be automatically prevented by Google. Apparently, it isn't. Just to ensure you that I'm not an idiot, the ad is for colnect.com and the website is on the same domain - colnect.com
I usually view my own site with ads disabled so I don't accidentally click an ad and violate the terms of service. This time I was at a friend's house and am quite happy to have stumbled upon the aforementioned bug/feature.
Quick Remedy
Both accounts allow you to use filters and I've now added "competition filters" for my AdSense account that will prevent showing ads for any of my domain. It's also possible to filter out sites on AdWords but this can seemingly be done only on the campaign level so if you're running many different campaigns, it'll become tedious. See the attached pictures.
Saturday, February 14, 2009
Upto 80% Speed Increase on Colnect with Symfony
Partials are evil
Maybe not that evil but they take their toll on your loading time. The worst is when using them inside a loop as the price increases linearly. Use helpers whenever possible but make sure you load only the necessary helpers on each call and don't try to re-load helpers when inside a loop.
Re-use function results
Symfony encourages you to use methods and functions repeatedly, for example
sfContext::getInstance()->getModuleName();
. Obviously, the more calculations, the longer things take so whenever you need to re-use results, save the variable content.A good PHP structure for re-using results is:
function foo_calculate() {
static $result = null;
if (is_null($result)) {
# perform calculations
$result = calculation results...
}
return $result;
}
Escaping PHP and going back to PHP takes its toll
Using
?>xxx
is more costly than
echo 'xxx';
See code on the next paragraph.
Using many echo calls slows things down
It's better to accumulate output in a variable and call a single echo.
The following code performs simple tests so you can get a feeling of the differences in execution times. Run it a few times (when all other applications are closed) since results alter a bit every time.
public function executeCompareOutput(sfWebRequest $request) {
$times = 100000;
echo 'Looping for '.$times.' times - results in msec';
echo '<-div style="display:none">';
$start = microtime(true);
for ($x = 0; $x++ < $times;) {
echo ' '.$x;
}
echo '<-/div><-br/>'.round(1000 * (microtime(true) - $start));
$start = microtime(true);
echo '<-div style="display:none">';
for ($x = 0; $x++ < $times;) {
?> echo $x;
}
echo '-div><-br/>'.round(1000 * (microtime(true) - $start));
$start = microtime(true);
echo '<-div style="display:none">';
$sBuf = '';
for ($x = 0; $x++ < $times;) {
$sBuf .= ' '.$x;
}
echo $sBuf;
echo '-div><-br/>'.round(1000 * (microtime(true) - $start));
$start = microtime(true);
echo '<-div style="display:none">';
$sBuf = '';
for ($x = 0; $x++ < $times;) {
$sBuf .= ' ';
$sBuf .= $x;
}
echo $sBuf;
echo '-div><-br/>'.round(1000 * (microtime(true) - $start));
$start = microtime(true);
echo '<-div style="display:none">';
$GLOBALS['bufbuf'] = '';
for ($x = 0; $x++ < $times;) {
$GLOBALS['bufbuf'] .= ' '.$x;
}
echo $sBuf;
echo '-div><-br/>'.round(1000 * (microtime(true) - $start));
die('<-br/>bye');
}
Here is a sample output:
Looping for 10000 times - results in msec
3044
5503
10
15
16
bye
On this run using multiple echo calls + PHP escaping took 55 TIMES MORE than buffering the output in a variable. This clearly proves that the style suggested by Symfony templates, using many PHP echo blocks, is HIGHLY inefficient. If you have a few dozens of it in your templates and your content is cached, this is negligible. If your content is very dynamic, as is the case with Colnect, we're talking about something very worth noting.
Wednesday, February 11, 2009
Colnect's Alexa Ranking Keeps Going Up
To those who may not know, Alexa ranks many (most?) websites out there of the big WWW. It does that by analyzing the traffic of (mostly unsuspecting?) users who install the Alexa toolbar on their browsers. This nice toolbar delivers the information back to their big servers, they crunch it whichever way they like and then rank the sites according to this information.
Why would anyone care about Alexa's ranking? Well, it has come to be relatively important in the WWW world. It allows you to have some (allegedly non-biased) objective information about how your website fairs on the Internet.
Are the results reliable? The short answer IMHO: no. The longer answer: perhaps, to some length. Since some website owners/operators/SEO personnel think of it as important, they are making an effort to get their ranking up. This isn't that hard, considering the fact the grand majority of users don't have the Alexa toolbar. There are many methods but they're basically about making people who use your site have the Alexa toolbar thus your site will have an improved ranking.
Another important disadvantage of Alexa is that ranking is on a per-domain basis. As such, this blog (which a few read) ranks the same as Colnect (which many frequently use). Personal websites on some free hosting all rank the same so you cannot tell them apart and so on.
Does Colnect try to improve its ranking? No. I did think about it for some time, since after all it may look better to some people, but have decided not to. The main two reasons would be not to spend my time on metrics that don't really matter and the second that since I wouldn't install it on my machine, I wouldn't ask others to do so.
Okay, let's hope this post won't cause Colnect's Alexa ranking to crash :)
Sunday, February 8, 2009
Numbers, Numbers, Numbers...
The big benefit becomes clearer when looking at a collector's collection, swap list or wish list. It's then very easy to know how many items the collector has of each country, company or even series.
Here's for example the information for an expert collector on Colnect, Dravec
Phonecards
Collection: 7,546 Phonecards
Swap list: 1,290 Phonecards (Match with my wish list)
Wish list: 6,199 Phonecards (Match with my swap list)
Stamps
Collection: 1,137 Stamps
Swap list: 3 Stamps (Match with my wish list)
Wish list: 5,678 Stamps (Match with my swap list)
Coins
Collection: 2,155 Coins
Swap list: 301 Coins (Match with my wish list)
Wish list: 10,938 Coins (Match with my swap list)
On the back end side of Colnect, the system is very flexible in supplying the given information so the real challenge was to try and create an as-intuitive-as-possible user interface. I've recently made a post about usability and the addition of counters and simplification of the user interface that followed is a big step forward.
Friday, January 30, 2009
Phonecard Puzzles
Click here for an example Disney puzzle
or better
All phone card puzzles on Colnect
Monday, January 26, 2009
Usability
Though these are old news, the user interface on Colnect V2 has initially not been properly designed and implemented. I admit this was a big mistake since it made the usage of existing users much more awkward and wasn't inviting enough for new users. Though Colnect did grow very nicely since V2 has been released, it's likely despite the user's interface rather than because of it.
So the good news is that in the recent days and upcoming days the user's interface will be added with many useful options to make the usage of Colnect as easy and intuitive as possible.
Here are two examples for recent additions:
CSS-only popup menus
Sorting collectors lists by clicking the column header
Friday, January 9, 2009
Colnect's Minor Contribution to World Peace
Colnect's platform allows translation to any language so that people of different cultures can join us and enjoy sharing their hobby with others. Currently 25 languages are translated properly and 5 more are pending translation. All translations are done by volunteers and so any new language is welcomed.
Colnect does not promote political discussions since there are other, more suitable, sites for that. The lack of politics on Colnect allows all to join in and make friends without prejudices.
Though personally I come from a turbulent region, Colnect isn't and wouldn't be identified with any specific country or political stream. The English language is used as Colnect's base language only because it's the most popular language on the web world for now.
Happy collecting and peace to us all :)
Wednesday, December 24, 2008
Very happy holidays :) Over 3,000 collectors on Colnect
Colnect's development relies on the assistance of its ~70 contributors who volunteer to translate Colnect, update its database with new collectibles and help with various tasks.
Though this blog has recently been quiet, a lot has happened on Colnect recently. The lack of a PR department in Colnect takes its toll and certainly Colnect would have bloomed much sooner with such. New features and fixes are added daily to the site and the contributors help update the catalogs on a regular basis. Colnect's collectors forums provide more detailed information about recent updates to the site.
Wednesday, November 5, 2008
iGoogle Collectibles Gadgets
Here's the description:
A cool gadget for collectors! See a new random collectible item. Click the picture to see complete information about the item: which memebers of Colnect Collectors Community have it on their collection, swap or wish list. You can easily manage your personal collection on Colnect and find swap buddies from all around the world. The huge catalogs on Colnect are created by collectors for collectors. Join Colnect now. It's fun, it's quick and it's free! Happy Collecting :)
Some personal thought about the current crisis
Colnect is embracing the change in the economy. So far it has maintained a positive cash flow and will continue to do so in the future. Now is probably not the time for big spendings or risk takings. Now is the time to spend less but do more with the resources available.
An interesting campaign I've came across made me even more aware of how some companies (as well as some people) do not try to prepare for a gloomier future although the writings are clearly on the wall. The campaign was for mobuzz.tv, which I haven't known before. Apparently, they're burning 50 grands a month in producing 5 daily shows a day and now they're vying for donations because they've ran out of money. They expect to raise Euro 120K in one week with donations of 5 Euro. Yes, they really expect 24,000 people to donate them 5 Euro each in a week. They just need it for 3 months and then they'll get the funding they need.
Pardon me cynicism, but I'm not even sure that FaceBook, with its huge worldwide users community, would have been able to raise 24,000 donations in a week. There are probably much sadder things happening in the world today to which one would donate. Skinning living dogs & cats is one of them.
The truth is that although I have no idea about mobuzz's business, it seems (at least on the surface of it) that someone there has not done a brilliant job planning the business side of the company. How do you get to run out of money in a week? Can't you tell when you have only 6 more months to live and then do your best to raise capital alongside with cutting expenses sharp? How can you be sure to get funding in 3 month? In a happy market you can't be sure about it, so now?
The technical side might have flows as well since there was no link to their shows to see what it is we're supposed to help with. Also, the video took very long to load.
My guess is that mobuzz isn't the only company that's about to close its doors soon due to problematic financial planning. As times get rough, survival of the fittest prevails once more. Heed the warnings out there and be ready for the future. Every storm eventually ends. Good luck to everyone.
Monday, November 3, 2008
Who hacked the network on Google Developers Day 2008 in Israel?
Turns out I was right, here's the email sent form "The Google Developer Day Team":
Developer Day
3 de noviembre de 2008 11:02
PLEASE READ: Unauthorized network activity at Google Developer Day
Dear attendee,
First of all thanks for attending Google Developer Day yesterday, we hope you found it useful. Unfortunately, we need to let you know about an incident which took place during the conference which you may need to take precautionary action on.
We identified unauthorised activity on the public wired Ethernet network which was provided by the convention centre for conference attendees to access the Internet. This may have affected a limited number of attendees accessing websites and online applications through the wired Ethernet connection. We have no evidence so far to suggest that the wireless network also provided at the event, and which was used by most attendees, was affected.
Due to the unauthorised activity, there is a chance that if you used the wired network, any user name and password entered to access a website may have been put at risk. When trying to access a secure website (a website using https), you may have received an alert indicating that the page had an invalid security certificate. In any case, we advise users as a precaution to change the passwords for any websites or services they accessed through the wired connection during the conference.
We're really sorry that this has happened but we believe that the vast majority of attendees won't have been affected by this incident. In the meantime, we look forward to seeing you at future events very soon.
The Google Developer Day Team
Sunday, November 2, 2008
Google Developers Day 2008 in Israel
Perhaps the most interesting parts of the day, in regard to Colnect, were related to OpenSocial. From their website: "OpenSocial defines a common API for social applications across multiple websites. Built from standard JavaScript and HTML, developers can create apps with OpenSocial that access a social network's friends and update feeds. By using a common API, developers can extend the reach of their applications more quickly, yielding more functionality for users."
What does it really mean? As I see it, FaceBook has taken too big a share of the social networks world than Google (and others) think they deserve. One of the main reasons for the success of FaceBook is the FaceBook applications written by developers and extending FaceBook's functionality in many different directions. The problem is that developers are mostly unable to devote many efforts to writing their social applications to all social networks out there and would thus focus on the biggest ones. Orkut (Google's social network) is surely not the biggest and so the way to convince developers that they should write Orkut-complaint applications, we now have OpenSocial.
OpenSocial supports other networks as well which altogether (according to their figures) serve nearly 500 million users worldwide. Though I'm skeptical of how someone knows my Linked In and Orkut accounts are of the same person (they probably don't share email addresses around), it's still quite a big figure which should be a motivation enough for a developer to focus on it instead (or in addition to) FaceBook.
Colnect is about to release some social applications to the social networks world to assist collectors integrate their collectibles hobby with their other activities and help spread the word about Colnect to fellow collectors. OpenSearch seems an appealing choice since it involves many networks which cater to different crowds which altogether might coincide better with Colnect's target crowd than FaceBook.
Last but not least, there's the issue of Chrome, Google's new browser. While promoting it as simply a means to make your surfing better, it would still have been a bit more amiable and transparent to say "we've made our own browser so that we can make Google search the default search engine and not allow you to block AdWords ads with some addon". If Google really would have cared just for the web users community, it would have simply put more efforts into the existing open source browsers. In my experience, Chrome is still much inferior to FireFox.
Tuesday, October 28, 2008
50% increase in Colnect's growth rate - welcoming stamps and coins collectors
The overall amount of newly registered members during the last week shows ~50% increase over the weeks before it. This achievement, enhanced by the facts that the new site experienced some downtime and that registration now requires email address confirmation, should probably be attributed to the collectors who already know Colnect. Some collectors collect more than a single collectible and so many phonecard+coin collectors would know other coin collectors and let them know about how useful Colnect would be for them.
To help motivating collectors the following news item has recently been published on Colnect:
Help Colnect and Win Free Phonecards!
Colnect now has a huge stamps and coins catalog. However, since it's so new, many collectors of stamps and coins have not yet heard about us. Now is your chance to help Colnect and win free phonecards.
How?
Simply tell your collector friends to join Colnect. Once they join and update their collection, they should Contact Us and tell us you told them about Colnect. Every friend that joined Colnect with your help entitles you to 10 points. Each friend your friend bring, gives you 3 more points.
Who will win?
The 3 collectors who has accumulated most points until the 30th of November.
What will you win?
First place: 50 Phonecards
Second place: 40 Phonecards
Third place: 30 Phonecards
BONUS: A Colnect T-Shirt.
Questions?
Visit the forum for answers.
What about commercial advertising
Though so far Colnect did not rely on any commercial advertising but rather 'word of mouth' and friendly reviews and backlinks, it may be a good idea to advertise it some more with AdSense or a similar program. For the time being, I prefer to see a steady growth while I'm fine tuning the system and perfecting it rather than a flood which will make Colnect buzzing and later endangered.
150 OpenSearch plugins for Colnect
Colnect supports OpenSearch for the benefit of the collectors on the site who often search the huge catalogs for the items they're interested in.
In Firefox:
and IE7:
Yesterday I've tried to publish the plugins on Mycroft Project so collectors could easily install from there as well. It's probably the web's most notable directory for OpenSearch plugins. The problem is that Mycroft has no auto-submission feature to be found and so I couldn't add all the plugins.
"How many plugins have you made?" you might ask and the answer is quite simple. There's one plugin to search for a collectible item by name and another to search for a collector by username. Later I may add searching by catalog code. So what's the problem submitting 2 plugins manually? Well... that 2 turned into 150 since currently there are 3 collectible types on Colnect (coins, stamps and phonecards) and the site is supported in 25 languages. 2 times 3 times 25 gets to 150 and that's not so much fun to do manually anymore... I hope they'll come up with a solution. The best would be to use simply submit the site's URLs and let MyCroft use the auto-discovery link tags like the browsers use to allow you to add the plugin.
Happy OpenSearching...
Sunday, October 19, 2008
Colnect V2 is now LIVE! :)
Following a long period of hard work, Colnect V2 is now up and running. It is a completely new version of the familiar Colnect. Its huge catalogs, from which any collector can easily manage his/her personal collection, currently include nearly 12,000 coins and over 120,000 collectible phone cards. As the catalog information is contributed by collectors, the catalog is expected to grow very quickly in the coming months.
Colnect V2 is available in 25 languages accommodating for the needs of collectors from all around the globe.
Go check out the site and register if you haven't so far. We're on the way to revolutionize the collectibles world.
Saturday, September 20, 2008
Performance: MySQL, APC, memcached.
Optimization is, however, not a trivial issue and requires expertise in different fields. There are so many different places where you can optimize that it's not always that easy to know what to focus on. Though this post will adhere to its title I'll still list here where optimization can occur in a website.
* Correct usage of HTTP headers to make client browsers request less information.
* Smaller responses (gZIP / more CSS - less HTML / use of Ajax to return instead of reloading complete pages).
* Optimization of your server machine(s) hardware AKA "I need more CPU, I need more memory and 'how much is another 1U?".
* Server software optimizations: Webserver (such as Apache) / Scripting engine (such as PHP) / DBMS (such as MySQL) / cache engines (such as memcached, APC) could and should be tweaked heavily. Failing to define an appropriate index in your DBMS or making some wrong choices on where and when the webserver saves user sessions, for example, could carry a heavy toll.
* Network optimizations: anyone said CDNs?
The fun part is that all these parts are well entangled.
I've read an interesting post about prefering MySQL cache over the popular memcached in some situations. Though it was pretty much one-sided (ignoring the overhead of a database connection), it rose some interesting points and is well worth reading.
An advantage towards the DBMS that I consider relevant is greater flexibility. For example: you allow outdated information to persist (such as statistics). Say you want it updated about every 5 minutes. If you cache it for 5 minutes it'll expire and then you may face a situation in which a few threads query the database again to get this information. If you use a Memory table for this information you can read it and, if expired, set some writing lock that'll cause other thread to keep reading the expired information until it's well updated.
Another interesting older post about performance showed some interesting benchmarks. The biggest problem of relying on others' benchmarks is there can always be one single parameter different on your system that would mean the results for you would be totally different. For example:
* A new version of a product has just changed everything about it.
* A configuration option made a product completely flunk its benchmark tests.
* Your queries may not be similar at all to what is tested (though you may think it is).
So these were my 2c about performance for now. The bottom line is simple: there's always a part of your system that's not properly optimized. The best is to check the painful spots and remedy them while maintaining an overall look of what your system has to provide.
Friday, September 12, 2008
Colnect V2 alpha site is up for the Prague Fair
At the moment it is NOT yet considered stable and is meant only for the taste of how Colnect would be. Hopefully, it'll be ready by the end of the month and the current Colnect will be replaced by the new improved one.
There are many new things in Colnect V2 but perhaps the most important ones for current Colnect members are the addition of versatile filters to the system which allow collectors to easily find the items they're looking for and match them with collections of other collectors.
Updates to follow...
Thursday, September 11, 2008
The "Language Icon" initiative
A solution?
An interesting project I've came across is the 'Language Icon'. They've decided to create an international icon to mean the word "language". Here it is: It's supposed to look like a tongue [UPDATE: it has radically changed since this post was made!] though personally I don't find it resembling a tongue. If it'll catch on, however, it could be of great use to websites / application around the world. Kudos for the idea! I've already added this icon to Colnect V2, about to be released to the public soon, where you can find it on the side menu on internal pages.Thursday, September 4, 2008
How traffic changed from PR0 to PR4
Comparing the last 2 weeks with the 2 weeks before the change show 25% more traffic from Google. But what's more interesting is that there's 68% more traffic from Live and 58% more from Yahoo. So the PageRank probably did make a difference but is Yahoo and Live taking their information from Google? Perhaps it was vice versa and I just never stumbled upon tools to test my ranking with these search engines due to the lesser amount of traffic they bring.
Doctrine v1.0 is finally out
Doctrine is a PHP ORM that is nicely integrated with Symfony. It allows defining your database schema easily with YAML files. The database and PHP classes can then be automatically generated to provide you will all the needed functionality of database interaction.
Although IMO some edges have not yet been met in Doctrine (most importantly the i18n support), I hope it'll be able to work properly on the new Colnect. Developing with an ORM is surely much easier to maintain than using raw SQL. I expect Doctrine to keep growing stronger and more stable in the near future as the ideas behind it are very useful and needed.
Monday, August 25, 2008
Adjusting CSS to RTL languages
HTML supports the dir tag to allow one to easily change from left-oriented design to right-oriented one. In CSS, however, it seems the matter has not been taken into serious consideration. When you have a CSS float, for example, you can choose if it floats left or right but there's no way for you to say something simple like left and left-fixed. IMHO, left should have changed to right on RTL languages while left-fixed would have always kept left. The same goes to specifying the 4 dimensions like in 'padding: 1px 2px 3px 4px;'. They should be switched unless the directive fixed is added.
But since CSS doesn't do that well, a developer from Google has created a python script called CSSJanus which tries to address many issues relevant for converting a CSS from a left-oriented one to a right-oriented one. It's code is available here.
Since Colnect is built using PHP, I've decided to only use a few ideas from the CSSJanus code and integrate them into the JS/CSS combinator already in use. The idea is quite simple, the application asks for a different CSS file when it's right-to-left (RTL) oriented by prefixing some directive to the CSS requested which lets the combinator understand it should add the conversion.
You can start with the combinator script code here.
These two lines at the top of the script will add RTL directive:
$bRTL = (substr($_GET['files'], 0, 4) == 'rtl_');
if ($bRTL) $_GET['files'] = substr($_GET['files'], 4);
Now the cache hash should be different so there's a slight modification here:
$hash = $lastmodified . '-' . md5($_GET['files'].($bRTL ? 'RTL' : ''));
And the last thing to do is to create the left-to-right conversion function and place it just after stripping the CSS comments. Add this:
if ($bRTL) $contents = CssSwitchLeftToRight($contents);
And here's my simple conversion function (that does NOT cover many cases covered by CSSJanus):
/**
* Switch left to right and vice versa for a few of the cases relevant for css
*
* @param string $str
* return string
*/
function CssSwitchLeftToRight($str) {
$arConversionSeq = array(
'/-left/' => 'TOK1',
'/-right/' => '-left',
'/TOK1/' => '-right',
'/float\s*:\s*left/i' => 'TOK2',
'/float\s*:\s*right/i' => 'float:left',
'/TOK2/' => 'float:right',
);
foreach ($arConversionSeq as $pattern => $replacement) {
$str = /*"doing{} $pattern => $replacement ".*/preg_replace($pattern, $replacement, $str);
}
return $str;
}
I have not posted the entire script here since it has site-specific modifications on my site. You're welcomed to comment here if further clarifications are needed.
Saturday, August 9, 2008
How many collectible phone cards are there?
When I took over Colnect (previously known as Islands Phonecards Database) we've had ~30,000 collectible phone cards in our database. Less than a month ago I've written that "Collectible phone cards catalog has passed 100,000 items" but as of today I'm happy to announce that Colnect's catalog has just passed the 110,000 mark.
It seems that not only is the database growing, but that its growth rate is on the rise. So when will it stop? Obviously it'll start slowing down when most of the collectible phone cards in the world will already be listed on Colnect. Just how many are there? As I know we're still missing some tens of thousands of Brazilian and Chinese cards, my assumption ranges somewhere between 200,000 and 1,000,000 different collectible phone cards. The variation is great due to the unexpected nature of variants. A card may be listed once but then an expert collectors note that there were small variations between the different prints and one card becomes 20 different variants, all with different collectible value.
So when will this race stop? Let's wait and see...
Monday, August 4, 2008
A new blog post about Colnect
Wednesday, July 30, 2008
PR4 or The Google Gods Smile at Colnect
So this is good news but some questions are left pending:
* What was the initial reason for PR0? What was my sin?
* What has now changed that Colnect deserves PageRank4?
and most importantly:
* Will PageRank4 bring extra search engine traffic? Let's wait and see.
Link and Search
Did you like reading it? Stay in the loop via RSS. Thanks :)