There are many html forms on XING – when you sign up, when you write a message, or when you discuss in a group. We do most of our form validations on the server side. This allows us to apply complex validations, prevents code duplication, and apply security checks.
This works well – you define the requirements for the specific field (such as <input>) and Rails returns the page with an error message, also highlighting the corresponding field in red. Sounds good, but that’s actually where the problem is. Rails surrounds the field with a <div> that is styled via CSS. (more…)
Sebastian Röbke on 31.08.2009 at 13:42h CET
As you probably know, boolean values in software systems represent the states “true” or “false”. For some use cases in a software application, you may need a lot of them.
To give you a very simplified example, imagine a form where the user can check which languages he or she speaks:

Anyone logging in to the application section with Internet Explorer 6 (IE6) will now be asked to update their browser. Here are a few thoughts on this from me:

The logo from "IE6 must die!"
Oh, how we would love to shout: “IE6 must die!”. (Did you hear about the twitter movement? Or about this action from more than 70 websites?) Oh, how we would like to make our platform available in black and white to all Internet Explorer users (for the small proportion of the online world who remember the changeover from black and white TV to color…). But alas this is a helpless battle of the honorable Web Don Quixotes against the electronic windmills of the great multinationals of this world.
Why all this fluster you may ask? Here’s the reason: (more…)
It won’t surprise you that one of our key efforts is reducing the workload that the platform puts on your and our machines. The introduction of OpenSocial applications increased the challenge – the applications are hosted on different machines (with their own performance issues), and we integrated them via iFrames, on the front page, on the profile page and in what we call the canvas view.
So, at the moment, you might have several iFrames on your start page. An elegant solution, except for the heavy load they put on your browser – the extreme case, Internet Explorer, requires up to 8 Megabyte of RAM for each rendered iFrame. Furthermore, as the front and profile page often extends vertically way beyond the viewport. But still we have to render the content in iFrames you might not even see.
Wait. Do we have to do that? (more…)
Search is a big issue here at XING. Each day, we are processing numerous search queries, spread across events, jobs, company profiles and user search. For such a high search volume, you need rock solid technology that you can trust. For the last two and a half years, this technology has been Ferret.
Why we chose Ferret initally
Ferret was introduced when we needed a search service for XING Jobs, which was the first part of our application using the Ruby on Rails framework. At that time, Ferret was just right. As it is written in super fast C code, it became first choice when it comes to performance. But it is also partly written in Ruby, which allowed us to write the analyzer, query parser and tokenizer in our favorite language (oh the joy!). Ferret has served us very well until now. (more…)
Christopher Blum on 12.06.2009 at 11:39h CET
At our weekly frontend engineering meeting, I recently held a presentation about a common problem with the Internet Explorer that developers should put more attention on: memory leaks due to its two distinct garbage collectors. And: how to avoid them. So, have some <insert favourite food to be consumed while being attentive /> and don’t forget to imagine the other attendee’s chuckles now and then although there’s no Chuck Norris joke.
Ingo Chao on 29.04.2009 at 17:56h CET
by Ingo Chao and Christopher Blum
Our start page after logging in got faster. It takes significantly less time until the user can interact with the application. (more…)
As with most web 2.0 platforms, a large part of the platform interaction on XING is handled via JavaScript. In total, 25,000 lines of code render dynamic content on our platform. Dragging and dropping the boxes of your start page, editing settings in your profile, a live search selecting your contacts when you type a new message – AJAX is just about everywhere. (more…)
Changing an underlying layer of an IT infrastructure involves a similar level of risk to whipping away a lightly stained table cloth from underneath a set of beautiful porcelain china: The worst-case scenario is a heap of priceless family heirlooms on the floor; if things turn out right nobody will notice a thing – except perhaps that everything looks a little more spick and span.
Today, XING members have had several new proverbial table cloths laid for them: we’ve been busy cleaning up parts of the database of our event invitations, which we speed things up in this part of the site. (more…)
OpenSocial, Google’s API for social networks, has been around the web for quite a while now. Within the last months, the gadget-oriented framework ’socialized’ well and, knowing Google’s and the web’s social networks’ power, will continue do so. XING has been working on the integration of OpenSocial since 2007.
At the moment, we are just a few laps away from launching the platform, driving in 6th gear all the way. Working with this company, I witness how tremendously fast the wheel is turning. My colleague Karsten Rieke and I recently published an article that will be printed in the Informatik Spektrum, a German-speaking informatics periodical. Our article is one of the first comprehensive academic publications on the subject. (more…)




XING´s official twitter account