TP-LINK TL-WPS510U review

Update (2009-12-29): I told the store that the unit I got is broken and they sent me a new one. After testing the new print server with 2 of my routers I must say that it has the same connectivity issues as the first unit. Nobody should consider to buy a TP-LINK TL-WPS510U because it is a broken piece of shit. I’ll try a different model from another manufacturer and will report about my experiences.

This post is more of a warning than a review.  I wrote “review” so Google can index this post as a “review” and people will be able to find it by searching for a review on this product.

I’ll keep this post updated but I don’t advise anyone to buy this print server until this issue have been resolved.

At: Wed, Sep 30, 2009 at 9:44 AM
From: me
Subject: TL-WPS510U: Serious connectivity issue

Dear Sir / Madam,

I use my TL-WPS510U in infrastructure mode with WPA2 and it has major
connectivity issues.

After about 2-3 hours of operation the print server disconnects from
the router and the only way to make it connect again is to unpower and
power it.  I’ve roughly measured the time that it takes for the print
server to disconnect as you can see below:

root@bloomy:~# while true; do date; wget -O /dev/null http://printy; sleep 2h; done
Sun Sep 27 17:39:00 CEST 2009
Connecting to printy (
wget: server returned error: HTTP/1.0 401 Unauthorized
Sun Sep 27 19:39:00 CEST 2009
Connecting to printy (
wget: server returned error: HTTP/1.0 401 Unauthorized
Sun Sep 27 21:39:00 CEST 2009
Connecting to printy (
wget: server returned error: HTTP/1.0 401 Unauthorized

root@bloomy:~# while true; do date; wget -O /dev/null http://printy; sleep 3h; done
Sun Sep 27 23:32:25 CEST 2009
Connecting to printy (
wget: server returned error: HTTP/1.0 401 Unauthorized
Mon Sep 28 02:32:25 CEST 2009
Connecting to printy (
wget: cannot connect to remote host ( No route to host
Mon Sep 28 05:32:28 CEST 2009
Connecting to printy (
wget: cannot connect to remote host ( No route to host

I’ve tried to sustain the connection by various methods.

First, I tried to ping the print server for a sustained period of time
but it didn’t help.

Then I tried to fetch its web interface periodically hoping that it’d
help. I’ve had some moderate success with this method as you can see
above, but it doesn’t help in the long run because the print server
disconnects after some hours anyways.

As I cannot see any firmware upgrades on your site I urge you to fix
this problem.  I’d like to stick with your print server if I can
upgrade to the fixed firmware rather than buying a wireless print
server from another manufacturer.

Thanks in advance for your reply.

At: Fri, Oct 2, 2009 at 8:39 AM
From: Ceclia Li @ TP-Link
To: me

Dear László Monda

Thank you very much for your email requesting information about our product.

Sorry for the late reply! Now I send the firmware of 510u to you. Please try to install it. Please pay attention to your hardware version of your printer server.

Thanks for your support of our TP-LINK.

Sorry for the inconvenience caused and hope for your understanding

Any further help please feel free to let me know.

To get technical support more quickly, please go to

Best Regards,
Cecilia Li

Attached file: TL-WPS510U.rar

At: Fri, Oct 2, 2009 at 9:44 PM
From: me
To: Cecilia Li @ TP-Link

Dear Cecilia,

I’m having a hard time upgrading the firmware.

There are two files within the rar file you sent me:
* V1/DWP1000T_1_54.bin
* V2 (WPS)/MPS48-TP-Link-6.04.48T-0015-124.bin

There is absolutely no information regarding which file should I use
but I assume that the latter is appropriate in my case because WPS
stands for Wireless Print Server and the version number resembles the
version number of the current firmware which is “6.01.43T 0054 LOADER
3.5 WEB 54.0001”.

First, I’ve tried to upgrade the firmware through the web interface.
After specifying the filename and clicking on the Firmware Upgrade
button, the Status > System page has been loaded. Unfortunately, the
firmware version was the same as before and the print server hasn’t
been rebooted because the uptime hasn’t been reset.

After that, I tried to upgrade the firmware through TFTP using the
following command in the Linux console:

laci@noisy:~/download/TL-WPS510U/V2 (WPS)$ atftp –trace –option
“mode octet” –put –local-file MPS48-TP-Link-6.04.48T-0015-124.bin
Trace mode on.
Option mode = octet
sent WRQ <>>
received ACK
sent DATA
tftp: error received from server
tftp: aborting

Please let me know how can I upgrade the firmware.

Thanks in advance!

At: Sat, Oct 3, 2009 at 10:01 AM
From: Cecilia Li @ TP-Link
To: me

Dear László Monda

Thank you very much for your email requesting information about our product.

First, access the setup page of 510U, then click mis->firmware upgrade, then you can see this page:

Obvious screenshot included

Click browse, then select the firmware, then click Firmware Upgrade.

Any further help please feel free to let me know.

To get technical support more quickly, please go to

Best Regards,
Cecilia Li

At: Sat, Oct 3, 2009 at 11:00 AM
From: me
To: Cecilia Li @ TP-Link

Dear Cecilia,

I’ve done exactly what you wrote, even before you wrote it. Let me quote from my previous email:

“First, I’ve tried to upgrade the firmware through the web interface.
After specifying the filename and clicking on the Firmware Upgrade
button, the Status > System page has been loaded. Unfortunately, the
firmware version was the same as before and the print server hasn’t
been rebooted because the uptime hasn’t been reset.”

Upgrading through TFTP didn’t work either as I mentioned in my previous email.

Now what should I do?

Thanks in advance!

At: Tue, Oct 13, 2009 at 10:03 PM
From: me
To: Cecilia Li @ TP-Link

Dear Cecilia,

10 days gone by since my last email.  Can anyone of you help me regarding this issue?


At: Tue, Oct 13, 2009 at 11:11 PM
From: Cecilia Li @ TP-Link
To: me

Dear László Monda

Thank you very much for your email requesting information about our product.

Sorry for my late reply!! If the firmware I sent to you is same to the old one, please do not upgrate it.

Please prefer to the attachment to check whether you have set TL-WPS510U to work in Infrastructure mode to connect to your existing wireless network correctly.

Then you’d better place the print server near your router(or computer) as closer as possible and make sure the wireless signal is stable, If the distance between the printer sever and your router(or computer), the printing may be stoped sometimes.

If the problem still exist, you should try to contact your reseller to test the product.

Sorry for the inconvenience casued and hope for your understanding

Any further help please feel free to let me know.
To get technical support more quickly, please go to

Best Regards,
Cecilia Li

At: Wed, Oct 14, 2009 at 12:03 AM
From: me
To: Cecilia Li @ TP-Link

Dear Cecilia,

There are some points that I’d like to highlight:

* The firmware you sent me is not the same one as the one that is installed on the print server by default.
* The firmware cannot be updated through the web interface nor through TFTP.
* The print server is not far away from the router so the connection should be stable.
* Even if the connection drops, the print server should reconnect immediately as it happens on reboot.

I find it highly unlikely that this problem is specific to my print server.  I think that it’s a widespread problem but most people probably not use the server with WPA2 in infrastructure mode or as soon as they realize that it’s broken they use it in ad-hoc mode.

In case you would like to send me novice user guides as earlier, please don’t because I’m a computing professional and the instructions in such guides are evident to me.

I appreciate your help but based on my experiences with your print server I’d rather replace it with a Linksys WPSM54G.

I wish you all the best.

Flash is loosing ground

Watching the word of DHTML it seems to me that Flash is becoming more and more obsoleted as alternative standards and their implementations begin to emerge.  I’ve seen some major projects in the near past that strengthened this belief in me.

  • Glimmer has the potential to replace Flash animations.
  • SoundManager 2 makes it easier to play sounds using JavaScript.
  • Processing.js is the JavaScript port of the Processing language.

Huge props to Péter for mentioning SoundManager 2.  It’s a really interesting component for us because we were on the same path regarding the Flash music player of Wondeer.  We strive to push the application logic of our player from the ActionScript side to the JavaScript side for better maintainability.  SoundManager 2 is exactly what we’re looking for so it’s really exciting for us to see this project.

Both of the above mentioned JavaScript components became possible because 1) the Canvas has matured, 2) JavaScript engines have matured and 3) CPUs got faster.

It’s exciting to imagine the possibilities when HTML5 will be supported by all major browsers and when JavaScript will be compiled everywhere.

Searching for the ultimate VPS provider

I change hosting providers quite frequently nowadays.  I moved to BlueHost about two months ago and now I’ve just moved to Linode.

BlueHost is absolutely the best shared hosting provider in my opinion but there are several things that I’ve missed, such as:

  • providing a Subversion repository through HTTP
  • doing resource-intensive shell operations without the fear of being kicked out
  • administering my server without going through zillions of CPanel pages

It’s not hard to realize that it’s not possible to do the above things on a shared hosting account.  A dedicated server would have been truly overkill for my needs so I opted for a VPS account.

There are two main kinds of VPSes: XEN and OpenVZ.  I wasn’t conscious about the major differences between them for a long time, but I am now.  You can do your research, but my conclusion is that XEN gives you much more freedom, because it’s a true paravirtualization technology, not an OS-level technology like OpenVZ.  XEN may have slightly more overhead, but it makes you able to use the OS of your choice, manipulate iptables, load your own kernel modules and such.  Using my preferred OS (Ubuntu) is certainly a major benefit for me as most OpenVZ providers offer you CentOS which I cannot stand personally.  OpenVZ may have the advantage of providing “burstable” RAM that is temporarily usable RAM that the others don’t use momentarily, but I don’t like the concept because it may be the cause of nondeterminisic errors upon memory overruns.

Linode has very good prices and they provide a very advanced custom-developed web interface which is ahead of their competitors.  You can install your OS image of choice in a matter of seconds and they also provide a unique feature: lish, the Linode Shell which runs at the hypervisor level and makes you able to log in to your VPS even when something terrible happens, like sshd gets killed.

I’m very satisfied with their service so far and can only recommend it for everyone.  I could have choosen Amazon EC2 as the ultimate VPS, but I see Linode as their smaller counterpart that is more appropriate in scenarios where less resources are sufficient.

You may also want to choose


as your VPS provider

Searching for the ultimate shared web hosting service

I’ve been using the services of MediaCenter as my web hosting provider for 3 years and I cannot say a bad word about them because they provide a decent service, but I’ve realized recently that I want more, specifically:

* SSH to do advanced system administration and secure file transfer
* Virtual Host configuration without the need to contact customer support
* Manipulating DNS records without the need to contact customer support and being able to use a name server other than theirs

The last few days were very demanding because I wanted to find the best shared hosting provider that fit the above needs.

The toplic of managed vs unmanaged hosting really hits home for me. Most users are not technically savvy so they prefer having a customer support to hold their hands, but it’s an entirely different situation for me who uses computers since the age of 6. I don’t wanna mail back and forth with anyone just to make something happen. As huge companies wanna satisfy the masses and clueless users constantly mess up their DNS records and contact the customer support, companies decide to disable manual DNS record manipulation and make the job of novices easier and mine harder. This is a common pattern to see, not only about DNS specifically, but about all services.

SSH is a serious filtering factor. There are very few providers who offer SSH because of the considerable security risk involved. There are about a dozen of them who seemed adequate. After further filtering them based on their hosting plans I could remove most of them who 1) offered very few addon domains, 2) who had all hosting plans longer than one month (all of them offer money back guarantee, but I don’t trust anyone for the first time) and 3) who had lots of very bad reviews on a lot of site.

Review sites is a mixed bag. I think that the whole peer review concept is useless without some kind of metrics, like a trust network, just as Advogato does or like the online auction sites do. Unfortunately none of the review sites have any metrics so how could I be sure that their reviews are honest are not made by some marketing people posting good or bad reviews? There’s no way to tell, but my method is to look for reviews that look pretty unique and google some parts of them. If I don’t find any duplicates that’s a good sign that it’s a genuine review. I think this method is pretty reliable because most people are too lazy to post their reviews on multiple sites. I don’t know whether I’m right, but I don’t have any better ways to tell which reviews are trustable.

One should be very careful when evaluting providers. Nothing is unlimited and nothing is free, no matters what they state on their front page. You have to read their ToS no matter what! You can easily find out that they don’t offer the money back guarantee – which they are so proud of on their front page – for shared hosting packages.

A2 Hosting seemed very promising and I was flirting with their hosting plans for a while so I tried them first. Everything seemed pretty fine until I realized how poor their foreign bandwith is. It’s about 30 kbyte/sec, not something that I expected. They use CentOS, and the jailed shell was rather limited, but I could find a Midnight Commander package and make it work. Unfortunately there was no subshell because they don’t offer devpts in a jailed environment. I left them because of their poor foreign bandwidth.

Ubiquity Hosting Solutions was my next try. They seemed to offer everything I needed based on their hosting plans. As I issued “who” from their command line I realized how few power user were present. A typical server of a big hosting provider has about 4 Xeon processors with 16G RAM and hundreads of user, but there were only about 2 or 3 users logged in through SSH. I could also detect a major security hole which allowed me to see the home directories of other users on the server. I could also see some public_html directores and the configuration files of various CMSes managed by other users. I could hack some sites, but I rather reported them the problem and they solved it within 24 hours. Unfortunately after realizing that they don’t allow me to use any other nameserver but theirs, I moved on. This goes back to the sad topic of managed vs unmanaged hosting.

Webintellects was my next try. I was their customer for about two hours while I could easily figure out that they provide a ridiculously limited shell environment without procfs and sysfs.

Bluehost was my last hope. I don’t think one can make up any company name that is more boring than theirs. I was more than surprised when I figured out that they provide the most powerful SSH of all times. I could build Midnight Commander from source, all the developer packages were present. One should be careful however because according to their ToS they can cancel the service if one overuses processing resources so I stopped make a several times and later continued. Bluehost provides devpts, so subshell works magically with the Midnight Commander. Their foreign bandwidth is also adequate so my journey of finding the ultimate shared hosting provider has succeeded.

After going through all the hassle one might ask me whether I am satisfied. Well, BlueHost provides everything one can ever ask from a web hosting provider, but there are limitations in such an environment. The one thing I’d like is to use SVN through HTTP, but I’m not allowed to use DAV with Apache on their servers. I think the next step is going to be a VPS. KickAss VPS has the best price and Business Services also seem promising, but I’m a little bit sceptical because they don’t provide dedicated resources, neither compute time, nor bandwith. I don’t wanna move to a VPS just to have SVN thorugh HTTP. Currently I use the services of SourceRepo for my SVN needs and I may move on to a VPS eventually.

You may also want to choose
Bluehost logo

Disclosure: I recieve compensation for this referral.

Update (2009-08-17): Now it is absolutely clear to me that Bluehost is ahead of the rest regarding shared hosting. Matt Heaton, the CEO of Bluehost have some incredible insights about performance issues in shared hosting environments and they’re working on the kernel level to solve these problems. Here are his relevant posts so far:

The guy have been done a massive amount thinking about these issues and he deserves success.

The three things that could be better in Python

2008-11-02 update: The legendary Joe Shaw made me realize (in the comments below) that there’s a (very unintuitive) ternary operator for Python from Python 2.5 which one can use as:

a if condition else b

Python is my favorite scripting language. I think it’s almost perfect and there are almost no things that could be improved in it. Almost…

  • There’s no ternary operator in Python which I’d find very useful, but the designers probably felt that it’s not clean enough. Fortunately one can make something in Python that resembles the ternary operator:
def T(condition, a, b):
    if condition:
        return a
        return b
  • True and False must be written with capital letters. I realize that True and False are objects in Python but it’s impractical to write them with capital letters. One can easily solve this problem:
true = True
false = False
  • Strings are not Unicode by default and one has to prefix them with the “u” letter to make Python interpret them as Unicode strings. Well, that’ll be solved in Python 3 if I remember correctly.

Programmer vs. Developer vs. Architect

I think it’s important to express ourselves clearly when speaking about various IT professions because they represent dramatically different skillsets and mental models. This post have born out of my frustration to hear clueless people misnaming various professionals and it can be an eye opener for some. The descriptions below are not standardized by any means. I personally use these namings in the way I do and don’t wanna enforce anyone to use them this way.

  • Programmer: I consider programming a pretty primitive transformational process. The related problems are rather easy to solve, like creating a simple Unix utility, think about cat or wc. Programmers are not necessarily clueless, but they often type before they think and many times dont’ have any ideas about how resource intensive their code is. Most newbies are happy when succeeding at solving a simple problem and don’t think about optimizing their code or cleaning it up. They think in terms of code. (I admire beautiful code, but it’s all they can see.)
  • Software Developer: I see developers as knowledgable people who have clear mental models in their head about the systems they’re working on. They usually know design patterns, can create well-designed class hierarchies, understand the algorithmical complexity behind their code and the framework they use and can develop solid applications. They think in terms of the structure, solidity and elegance of the solution.
  • {Software or System} Architect: I think of architecting as assembling complex components into a whole that works in an extremely realible and scalable manner. The various components are usually scattered across hosts which may form clusters in a network. It’s not really about implementing low-level algorithms, but rather knowing service interfaces and the high-level mechanics of the services themselves. By services I mean SOA components, and various server applications, like webservers, application servers, message queing systems and so on. Architects are very critical thinkers who mostly think in terms of services, architecture, interfaces and bottlenecks.

Great videos!

I’ve watched some great videos on Google Video in the last few days: site improvements

I’ve made loads of improvements to recently and I’m very excited about them!

  • Added a completely new, shiny main page which is composed of two paragraphs, one for English and one for Hungarian. It’s maybe a bit dense, but it’s certainly very informative.
  • Integrated my Google Reader shared items under the title “News” which you can see on the top navigation bar. I’ve previously blogged about the news I found interesting and I’m a bit reluctant to store my shared items in the cloud, but it’s extremely productive to comment and share the news with Google Reader. I hope I’ll be able to save my shared items in the future.
  • Installed a parallel WordPress for my new Hungarian blog which you can also find through the above mentioned navigation bar. It was quite a challenge as WordPress is not designed to host parallel blogs and I didn’t want to use WordPress MU, because it seemed to me that it lags behind WordPress. I’ve succeeded to solve the problem by setting up a symlink farm and reusing the wordpress and wp-includes directores and hacking the Beeblebrox theme file to include some language translations.