This blog is NOFOLLOW Free!

pdf-file-logo-iconBeen thinking on this for a long time, how would you index content of so many sites and figure out what part of the whole source is actually the one people are interested in? I’ve met this challenge few times already, once in the old dead Octora search engine (luckily it was an RSS search engine), and also for Pingoat, while experimenting a new feature two years ago.

Well, if this paper (PDF) approaching the problem thanks to substring amplification was available at that time, things would have been a bit easier. The study has been completed by Daisuke Ikeda, Yasuhiro Yamada, and Sachio Hirokawa and it has been titled Formulation of Template Discovery Problem and an Algorithm using Substring Amplification.

In simple words the paper explains how a template pattern can be discovered thanks to a linear time algorithm.

I’m mentioning this paper because I’m sure there may be others out there trying to figure out how to extract the content from a web page by removing those elements which are specific to page’s template. It also contains an example on how the algorithm can be applied to a set of pages sharing the same layout.

, , , , , , , , , ,
odesk
raclogo

Just been wondering lately if Odesk or RentACoder are still good places to find talented professionals and my conclusion is that none of are what RentACoder used to be four-five years ago. There is no enthusiasm about these sites from my side.

I’m still trying to figure out the reasons why this happens but obviously there’s a big shortage of affordable, talented developers where you can outsource programming.

I’ve been browsing some other new or already existing sites as well, and problem is the same however, I’ve found that recruiting developers through other medias produces better results.

So far I’ve been using mainly social networking sites to find talented people and this proved to be a big success.

If you’d ask me, I wouldn’t outsource via these sites anymore. In the future I hope that Loopthing will be a good source for talented people as well (thinking in progress here…), however my advice is to pay attention to the social networking sites: they do have talented people, and talented people are proud of their work and they’ll tag themselves using the right keywords so you’ll find them easier.

Let the social networks headhunting start now!

, , , , , , , , , ,

Ok, I admit: I’m a details freak and I consider this part a vital function of my work. Being careful about details is in my opinion the difference between wrong and right and success and failure. I’m expecting someone to prove me wrong since I’m tired of skipping through websites that don’t even deserve anyone’s attention, still they get it because they’re getting some publicity.

2971261352_fc5538ecc0
Pic credits: Delhi’s Telecommunication. Fully wired! by Brajeshwar

Sooner or later, if those detials aren’t solved, and there’s nobody to notice them missing, failure comes in. So, what makes details so important?

I’ve compiled a nice list of data, which you can easily browse, print, save, and have a look on it later, whenever you want to improve the way you do things.

Why do it?

  • to increase the quality of your work: Quality attracts quantity not the way around, if you want people around you to be happy about your work, show them you care. They’ll notice it in every margin and corner of your final product
  • it pays off faster: websites/web applications that are quality built, are getting a higher amount of visitors than the buggy ones. While developers are solving bugs in one app, the others are nicely thinking on what can be improved, or added. Makes the difference and users are happy.

Like any serious thing, you don’t need too many arguments to understand that you need it. This is one of those serious things. Let’s find out how to implement the attention to details.

How to do it?

  • where there’s a will, there’s a way: you need to be willing to increase the quality of your work, this by default will turn you into a machine focused on doing things right.
  • patience: experience and spotting problems is a skill that builds up in time with practice a proper QA oriented minset all the way there
  • focused POV: it requires that you should focus on the design of the feature, thinking from the perspective of the user, not of the developer (better to think how it would be easier for me to use this feature as a regular user, rather than a programmer)
  • there’s some more left: always ask yourself, is there anything else that I should consider before saying “I’m done with this for now”? If it is, write it down, work on it later. Have sessions where you prepare next release.
  • don’t stumble: do major things as planned, while small bits are written down for later or solved at the end of the day when energy is lower but easier things can be done

Look again on the list above, it’s very important, if you don’t understand ask me via email or by posting a comment, I want to make sure you get this right.

How to get started?

  1. Evaluate the situation: look at your current work, see what things are there and they don’t work, be honest about it, write it down
  2. Prioritize those things with two option: important (1), not so important (0)
  3. Start working on the important issues first, while keeping in mind what you have learned inside this blog post, write those new details down, move on and then go back to step 1) and repeat until you’re sure you have a decent product

The last step can spread over a period of a day, up to few months, depending on how big your project is. This is the only way to making sure you are the best in yoour area of activity. If things wouldn’t go like this, all those engineers from Google or Youtube will have no reason to be employed now.

You are not doing it right if:

  • you developed paranoic thinking: extreme care for details is not good either, and it will take you nowhere and it’s going to slow you down
  • you end up with one big, unmanageable TODO list

You are doing it right if

  • quality improves and you deliver a product that stands out
  • you can estimate project duration easier and you always have in mind the “details” but without loosing your focus
  • you always have a nice “todo” which you can use for your next release candidate and stakeholders love that

Got to read: http://highscalability.com/youtube-architecture Have a look at the “Lessons Learned”, I like the “Constant iteration on bottlenecks” solution, that shows the cyclic way of the three steps I represented above. Reading the whole article is actually not a very bad idea either.

, , , , , ,