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 :)
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.
Donations and T-Shirt
I strongly believe that the community that has formed on Colnect is a very strong one. The amount of support I'm offered now, as I'm working on the next version, is overwhelming. Since the next version will include stamps, many collectors have already contacted me and offered their help.
Tuesday, July 22, 2008
Following the Doctrine for Colnect Philately
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.
Doctrine is not yet a completely mature project and that becomes when using it for some time. However, it's going in the right direction and yesterday's announcement that "Doctrine gets its first employee" is an important step for an open source project.
So yes, using bleeding edge tools is a bet but being an entrepreneur is about believing, isn't it?
Tuesday, July 8, 2008
Collectible phone cards catalog has passed 100,000 items
A big thanks goes to all contributors who are helping in making Colnect the best resource for phone card information. Colnect is a huge community endeavor that helps in creating a catalog with user assistance. This wiki-style catalog is changing constantly and thus offers collectors the most up-to-date information.
Yesterday another smaller milestone has been passed: over 2,000 collectors are now members of Colnect.
Colnect philately is now under construction and will hopefully revolutionize the philately world as much as it has done in the fusilately world.
Wednesday, June 4, 2008
Pages load faster when using CSS instead of IMG tag
When using the HTML IMG tags with Internet Explorer (tested on IE7), the page is not displayed until the images have been downloaded. Loading images using CSS background-image ensures the page is displayed even before the image is loaded.
See Colnect's countries page which contains many flag images in it using this tip.
With FireFox the page is displayed but this modification will make CSS background images load later than normal IMG images.
How to do it?
Simply replace:
<img src="image.jpg"
width="100" height="100" />
with
<div style="height: 100px; width: 100px;
background: url(image.jpg) no-repeat center center;">
</div>
Monday, May 26, 2008
colnect's new clothes - slicker design
colnect's design had been too long neglected. It's not that I was unaware of the implications of a better looking website but I've delayed handling it since my skills as a graphic designer are not the ones I'm most proud of.
Since today, the site looks much better than before. Some CSS magic could do wonders on a website. There are still many enhancements to be done but they'll have to wait for the new version's launch.
An annoying issue that has to be dealt with over and over again is browser compatibility. It seems different browsers must interpret the standards differently. Personally, I suffice with testing every page on FireFox and IE. IMHO, FireFox is a much better browser and too many sites support only IE properly. The other browsers don't have such a big crowd yet and their crowd probably doesn't use them without resorting to either FireFox or IE occasionally.
Javascript can help with cool things (like these menus) but browser compatibility becomes an even harsher issue and it seems Javascript is a language that must always be tested per browser to ensure that whatever it is that you wrote actually works.
Wednesday, May 21, 2008
colnect.com - the new logo
The website still carries the old Islands Phonecards Database logo but this will soon become history. [UPDATE: it is gone]
And this last logo was a candidate but never made it to the finals :)
Friday, May 16, 2008
My visit to WSC ISRAEL 2008
My interest in visiting the world stamp championship exhibition might have been a bit different than that of most visitors. As stamps are the next collectible to be added to colnect, I wanted to get better feeling of the hobby and meet some people with whom some future business cooperation would be achieved.
My experience was enriching as stamps, unlike phone cards, have existed for ~170 years and so have more stories and are more established as collectibles. It's a complete world to discover.
Meeting representatives of a few postal authorities went very well. I tried to interest them about the benefits colnect could bring them. Most of the people I spoke with were excited about the ideas presented and so I hope that the enthusiasm would continue to real actions.
The attached pictures show boards containing some of the world's rarest stamps presented in the exhibition.
Tuesday, May 13, 2008
The other PR (Public Relations)
TheMarker, a popular Israeli newspaper concerning economics, have published an article (in Hebrew) about phone cards collectors and colnect.
The Islands Phonecards Database story now has a Russian version (originally posted in English).
colnect.com has also been mentioned in Telecartofilistas and Dia de Folga, Brazilian blogs in Portuguese.
Monday, May 12, 2008
PR0
Seems like the lovely WWW is made of a myriad of rules that dynamically change and are quite hard to obey, even if you're one of the good guys. Unlike the real world where you usually know what's good and what's bad, here you have to figure it out slowly, understanding that causality isn't as evident.
PR0 is considered a punishment but since Google work in mysterious ways (and keep their algorithms confidential), not even a prayer could work here. One has to search deep in his heart (and on the Internet) what it is that was wrongfully done.
So here's my guess
At the end of March, I've moved to a new hosting service and decided to also move to the new domain and so http://telecards.islands.co.il became http://telecards.colnect.com
Since colnect.com (the project which will soon accommodate many different types of collectibles) is still under development I've made redirects from http://colnect.com, http://colnect.org, http://colnect.info and http://colnect.net, as well as from the old http://telecards.islands.co.il
And so, it's possible that this is considered a domain Spam (when one has a few domain that link to each other to get better search engines ranking) although no bad intentions were involved nor any trickery.
But the site's still on top of the results
Strangely enough, although my website was seemingly punished, it's still on top on the results page when Googling for telecards.
There will be more posts on SEO, SERP, Google. Meanwhile you can check out these tools for measuring your website.
Monday, May 5, 2008
Google's AdSense for an international website
This is a technical post explaining how to use Google's AdSense on a multiple languages website.
The problem: having a dynamic website that is available in many languages is great but there has to be a way to let AdSense know which languages the user is currently using so relevant ads would appear in that user's language.
Solution: as I've researched the issue for colnect.com (available in 25 languages), it seems the only way to let AdSense know the page's language is by using different URIs for each language. There's currently no way to pass the language as a parameter to the JavaScript responsible for showing the ads.
The following pictures show the same page in different languages. Note that the AdSense ads match the language of the page.
On colnect.com, each link is now prefixed by two letters which signal which language is used. Thus:
http://telecards.colnect.com/fr/browse.php
Refers to a French-language (fr) page while:
http://telecards.colnect.com/es/browse.php
refers to a Spanish-language (es) page.
Calling the relevant PHP script and converting the language prefix to a parameter is easily done using Apache's mod_rewrite.
An important issue I had to address is what happens when one user sends a link or publishes a link. Let's say I know both Spanish and English and prefer to view colnect.com in Spanish. However, perhaps some of my contacts know Hebrew and English but not Spanish. Thus if I send a Spanish-language link to a Hebrew-speaking user, it would be a shame if the site would show up in Spanish and confuse the other person.
To address this issue the language information is saved in the session and the user is redirected to the appropriate link according to his session language. If no session information is found, the language referred to in the link is used. The language is also saved in the user's account so if one logs in using a page in any language, upon a successful log in the language is changed to the previously chosen one
Here's the example (the two letters note the language: es = Spanish, en = English):
If you're visiting the site for the first time, this link will show a Spanish page:
http://telecards.colnect.com/es/browsecoll.php?filter_country=y
Now, if you change the language to English (on the bottom of the side menu - there's a combo-box), you will be redirected to:
http://telecards.colnect.com/en/browsecoll.php?filter_country=y
So now, if you try a Spanish link such as:
http://telecards.colnect.com/es/browsecoll.php?filter_country=y&country=105
You'll automatically be redirected to:
http://telecards.colnect.com/en/browsecoll.php?filter_country=y&country=105
You can change into any of the 25 supported languages and you'll see the AdSense ads now appear in the correct language:| English | العربية | Български | 汉字 | Hrvatski | Česky | Nederlands | Suomi | Français | Deutsch | Ελληνικά | עברית | Magyar | Italiano | 우리말 | Polski | Português BR | Português PT | Română | Русский | Slovenščina | Español | Svenska | ภาษาไทย | Türkçe |
Hopefully this post gave a sufficient outline to a working solution.
Sunday, May 4, 2008
Collectible phone cards database passed 90,000 listed cards today
So the decision was made to let the collectors on the site help with what's most important for them on the site - information about their collectibles.
At the time, Islands Phonecards Database (later renamed colnect.com) had ~30,000 listed collectible phone cards. The amount of listed phone cards have been growing quite rapidly and as of today over 90,000 cards (from 172 countries) are listed! Collectors managing their personal collection on the site have ~2.5 million physical collectible phone cards!
Who deserves kudos for this achievement? Not me, I was just providing the technology that allowed the collectors to place the content they wanted. Many collectors have become contributors and editors and I'd like to thank them all.
Most importantly, Vadym Sulimenko has been coordinating the contributions and supporting collectors who wanted to help but needed guidance.
These are the collectors who have recieved 3 contribution stars on our site which mean they were working long and hard on making the site as good as it is: Brocky Godzilla harmesse Hugo2 iflvico mozistv nzexchange Paolo73 thorsten.
My inspiration for the catalog building process is taken from WikiPedia though I prefer to give editing rights slowly. Random visitors cannot update any information. Registered collectors can comment and upload photos on the site or contribute new card information which will be reviewed by more experienced contributors.
Internationalizing the site
colnect.com is available in 25 languages:
English | العربية | Български | 汉字 | Hrvatski | Česky | Nederlands | Suomi | Français | Deutsch | Ελληνικά | עברית | Magyar | Italiano | 우리말 | Polski | Português BR | Português PT | Română | Русский | Slovenščina | Español | Svenska | ภาษาไทย | Türkçe |
Personally, I can communicate well in only 3 languages, fake some conversation in a few more and use some phrases to amuse an audience in a party. That still doesn't amount to 25 languages with their different scripts.
How was this done? The answer is simple: when your users love your project and enjoy its services, the nicer ones are keen to help when asked nicely.
The technology behind translations is quite straight-forward although different approaches exist. The important thing is to provide the translators with an easy interface they can understand. Handing out a text file full of expressions needing translations is a bad call for two reasons: it's boring for the translators and the translations may be out of context.
On the side of this post you can see the way translators (collectors) on colnect.com - Islands Phonecards Database are helping out. As they use the site, small "translate" icons appear next to expressions that haven't been translated yet. Clicking one such icon pops out a window that allows submitting the translation. When translated, the "translate" icon is gone. It can later be restored to correct the translation - that's why you see so many of them in the picture attached.
There are most issues about creating a multi-lingual collectors website but I prefer to keep my posts short.
Saturday, May 3, 2008
The Islands Phonecards Database story
To learn a bit about colnect.com and its history you're welcomed to read this post made by a collector.
Statrup 2.0 competition
colnect.com is participating in a competition called “startup 2.0“.
The reason to go on this competition is to get some exposure but I’m wondering how votes would actually be cast when 141 companies (as of now) participate. Will any person actually review ALL THESE COMPANIES? I doubt it. My assumption is that lobbying is the name of the game and perhaps social networking would provide a useful tool. “Come along and vote for me” campaigns or “get me some 10,000 people from a third world country to vote for me” are most likely to get the companies to the final stage where the judges will have their say.
So, since my limited budget cannot afford 10,000 third-world country votes, I pledge thee “come along and vote for me” :)
colnect.com now blogs
The main reason for starting this blog is promoting my project - colnect.com
The main reason for you to possibly read it would be that perhaps my insights as an entrepreneur of a cool web2.0 project currently under development would be of some service.
I’ll try to keep it interesting.
Link and Search
Did you like reading it? Stay in the loop via RSS. Thanks :)