Current Archive: November 2008
As a developer in a large and fast growing environment you are always thinking about new ways to improve performance and code maintenance. To speed up and optimize both, you can try the following:
Whenever you want to execute JavaScript that isn’t wrapped by a class or a named function, think about using anonymous functions!
Example:
<script type="text/javascript">//<![CDATA[ var element = $("important-element"); // ... // Anonymous function (function() { var element = $("element-id"), foo = true; element.observe("click", function(event) { event.stop(); someFunction(element, foo); }); })(); console.log(element); // still the "important-element" //]]></script>
Well, this looks strange, doesn’t it?
But there are at least two really interesting points why you should decide to do this in the future:
- First, an anonymous function opens its own local scope. This means you cannot access the locally declared variable “element” or “foo” (example above) from outside of the function and this also means that you don’t have to be worried that your code overwrites variables which are declared in the global scope (i.e. “Prototype”, “Event” or the other “element” variable from above).
- The second thing is performance. Code which is executed in a small local scope will definitively perform faster than in the global scope.
Don’t believe it?
Then open your firebug console and execute these two examples:
Slow:
var time = new Date(); for (var i=0; i<25000; i++) { var foo, bar, test; } var duration = (new Date()-time); console.log("It took " + duration + " ms");
Up to 20 times faster (tested in FF 3 on Mac):
(function() { var time = new Date(); for (var i=0; i<25000; i++) { var foo, bar, test; } var duration = (new Date()-time); console.log("It took " + duration + " ms"); })();
Man, that’s what people call low investment, high return!
Late last night we heard the news:
the new XING iPhone application is here, available from the iPhone App Store! Early adopters and tech freaks that we are, we‘re very excited about this application. It’s completely integrated into the very attractive native iPhone user interface, and allows you to read and write messages, check directions, or call your contacts, wherever you are.
The range of use is exceptional: you can update your status message from the train (to let your network know you’re on your way to a conference), send your business partner a text message about the next meeting, or view the address of one of your contacts.
If the features alone haven’t yet convinced you, a glance at the security might: with OAuth authentication, you‘ll only enter your password directly into the XING website via Mobile Safari.
Thanks, Tammo, for the great work!
XING hosted the first Official Ambassador event in London last night, and it really was five stars. Held at the popular Cuckoo Club, the beverages were flowing, the canapés were delicious and most importantly the networking fever seemed to take hold of everyone. Packed to the rafters with several hundred guests – the event was filled with young, energetic, passionate people across an array of industry sectors. In true British style, those attending all formed an orderly queue outside that stretched right down the road.
All in all, it was also a real cosmopolitan mix that truly reflected the multiculturalism of the British capital and the XING platform. Everyone had a common link – they were all willing to share and introduce themselves to new people and business opportunities.
Additionally everyone was green – not green with envy, but dressed in green as part of the nights Christmas and XING theme. Our London Ambassador, Kathrin Kawaters, was largely responsible for the night’s pace, passion and perfect atmosphere. Well done Kathrin, and well done London for showing us how it’s done! We can’t wait until the next one!
After five exciting and successful years, I’ve decided to dedicate more of my time outside of my commitment to XING to new entrepreneurial challenges.
The company has long since grown from a startup to one of the leading players in social networking worldwide. We were successful from the beginning, despite the voices of the critics. In 2003, we kept going and listened to those who relied on us to help more effectively manage their professional lives, and who continue to do so after five years. Working together in recent years, we have created structures to maintain the scalable and profitable growth.
By appointing Stefan as my successor (he currently heads eBay Germany), I’ve found a very successful and extremely Internet-savvy manager to lead XING. Now I’m able to concentrate once again on that which matters to me as an entrepreneur: developing new ideas and giving them life by means of entrepreneurial spirit. In the future, I will continue to advise XING as a member of the Supervisory Board. I am also the largest shareholder in the company, and intend on remaining so.
I would like to give special thanks to our over 170 hardworking and experienced employees from over 26 countries, many of which have become friends of mine. I’d also like to thank all our members – all of whom have made XING into that which it is today. Without the commitment of all those involved, XING would never have become the European leader for business networking with over 6.5 million members in such a short period of time.
I am certain that XING will continue its rapid development with Stefan, and I’m already looking forward to seeing the moment in which the new features we’ve been developing in the past months are launched one by one on the platform.
Let’s start a new chapter in the history of XING together. You as members can write a piece of Internet history, along with XING, Stefan and his team.
OK—you’re looking for a job. That’s easy – you just go to Marketplace and search for the title of your desired position, plus any other keywords that are important. For me, that would be “copywriter”, “translator” and “Hamburg”.
But what if you’re not looking for a job—not really looking anyway—but are still curious to know what’s out there? Up until now, the “Jobs that match my profile” box has done what it claims to: shown me the jobs that match keywords in my profile.
Let’s say I’m looking for a change of pace: I’d like to find work as a journalist. There are several jobs on Marketplace which may interest me, but they don’t match keywords in my profile—yet. How can I find out about them without searching every time? Now with the new Marketplace rating system, members can assign star ratings to jobs, and improve the suggestions sent to the XING start page.
So for those who want to see improved job suggestions, the ratings system will be a real improvement. Everyone else will continue to see the automatic matches on the start page.
As you may already know, public companies enjoy a great deal of media attention, and are often the subject of rumors. This applies to XING as well. In the interest of informing shareholders, listed companies frequently disperse press releases or ad-hoc releases to share recent developments. We will continue to do this in the future as well.
We wish to inform our members that a report today circulated by dpa-afx contained major inaccuracies. There has never been a controversy within the company about the use of member information. Furthermore, as the founding spirit behind the leading European online network, Lars enjoys the absolute confidence of the Executive and Advisory Boards. Looking at the recent figures, we see that concurrent to its 5th year of successful operations, XING reported record returns in number of members, revenues and profits. We now have over 6.5 million members in over 190 countries around the world, with offices in Hamburg, Barcelona, Istanbul and Beijing.
In general, we at XING do not comment about rumors circulating in the media concerning changes to the composition of the Boards. For the record, dpa-afx has since corrected the earlier report.
Real-world observations are worth more than theoretical measurements. We´re more aware than ever that performance, speed, is very important to overall user experience. That is why we do more than benchmarking and pure performance research to guarantee great performance for peak traffic of 50,000 concurrent users. We want to take a holistic approach that incorporates all of the factors affecting a user’s experience, in a positive or negative way. Because of this, we recently deployed client-side performance measurements on our whole platform for end-to-end performance. So, if we swap a piece of hardware and see remarkable performance improvements, we will know. If we create JavaScript algorithms or page layouts that lead to poor user experiences, we will know. And we will be hot on the heels of fixing the problem.
But there’s more: Since we can accurately measure the full user experience speed, we can incrementally improve site performance by tweaking many small adjustable screws. These would be unrecognized by users separately, but as a whole, these changes really matter and help us to squeeze out some more milliseconds of the user-perceived performance.
So how does this magic work?
The short version: It’s all in the JavaScript. We measure everything. A timing point is set right at the beginning of the page. After the loading process has finished, the onload event is triggered and transfers the measured data to our logging server. This is achieved using an AJAX request, which means all the key/value pairs are included in the query string of the request. The server responds with an empty 204 OK. Currently, we measure every thousandth request, plus every request with a particularly long duration. But while we’re measuring the whole page performance, we don’t leave out some interesting spots along the way. For example, we want to know how long it takes until our users can interact with the page, so we measure it. Anything interesting on the client side, we measure it.
If you’re really into this issue, you may be wondering why we are not using Jiffy for user experience performance tracing. Well, the answer is simple: Jiffy adds more than 300 lines of code to be delivered to the client, while our own solution is kind of free. The downside of our approach is that it does not work across requests, so we start measuring when a new page loads. In contrast to this, Jiffy measures from the point of time when a user clicks a link in the previous request. We decided to roll our own solution nonetheless as we’ve worked hard to shrink the JavaScript load and we want to keep it this way. The benefits of Jiffy do not justify the extra load for us. The same goes for Steve Souders’ Episodes framework: If you want to make it work in all major browsers, as we do, you have to add another 13 kB of JavaScript to your library, and this is the gzip-compressed number already. Although we may take up the Episodes syntax to be compatible with third-party extensions as the standard evolves in the future.
You may be asking yourself why an external performance measurement provider does not deliver sufficient results. While those are great in many cases, they do not use a real browser to gain results. This is a downside, especially because of the increasing importance of JavaScript-performance. Furthermore, performance checks from external providers are artificial. You will never reach the rich diversity of operating systems, connection speeds and browsers that you are confronted with in real life. Think of someone traveling on a train trying to connect to XING with their Blackberry or iPhone! While you can more or less simulate these situations, we decided to go with the real thing and measure real usage performance.
It was that time again yesterday, for the fourth year running: World Usability Day, which took place in 43 countries around the world under the motto „Making life easy!”. 14 events were organised in Germany alone, including gatherings in Munich, Berlin and Hamburg.
Hamburg saw usability experts from the research and practical side of things meet up to find out and report on the latest developments – in a jam-packed day with 16 lectures and three workshops. The topics covered ranged from the re-design of a health website and designing user-friendly sites for newspapers through to touch-free interaction with hand gestures.
I also gave a speech along with Patrick from eparo about „Consolidating agile software development and user-centered design”. So what exactly was it all about? In contrast to traditional software development, “agile” means that planning is done in iterations and sprints rather than in project phases. A sprint can last 2-4 weeks, with feature sets being defined at the outset and then developed and tested.
Methodology involved in user-centered design, like usability tests for instance, have to be integrated into these sprints – which the XING User Experience team has taken as an ideal opportunity to further enhance its work methods used up until now. More than 150 people came to listen to the talk, which was followed by a round of discussion. Lots of colleagues in the online sector are confronted with similar situations in their daily work, which meant that most of the questions involved how best to meet user requirements within the scope of agile projects.
We’re certainly looking forward to World Usability Day 2009!
Sabine Brockmeier on 14.11.2008 at 12:19h CET
A new pan-European survey shows that the use of social networking tools as part of everyday working life has led to an increase in efficiency. The independent market report released by AT&T has surveyed more than 2,500 people in Great Britain, France, Germany, Belgium and The Netherlands if they use social networks at work and why.
65% of the employees surveyed say that their company has adopted social networking as part of their working culture. 74% of European employees think there are benefits to using social networks and online communities in the workplace: Increasing an individual’s knowledge and giving access to solutions to problems (both 38%), harnessing the collective knowledge of employees, customers and suppliers (36%) and stimulating team building and better internal collaboration (32%).
The kick-off event was indeed a great success! After some weeks of preparing for the official XING Ambassador event in Turkey, everything came together. The first guests arrived early at around 6 o’clock even though the event was only due to start at 6:30. As soon as most of the guests had arrived, our country manager Hakan Gönenli welcomed everyone and proudly introduced the Turkish Ambassadors. Our CEO Lars Hinrichs was also at the event, which was highly appreciated by all those attending.
The venue for the evening couldn’t have been better. While enjoying a great view from the roof terrace of the Sofa hotel in Istanbul, people got to experience a unique XING networking feeling. Business cards were exchanged, ideas were shared and friendships were made. Thanks to all our guests who joined us to kick off the beginning of the XING official networking events, it really was a great success!
Our Ambassadors will be organizing many networking events in all major cities in Turkey and we are looking forward to hearing about the ones that you are going to attend!
Despite the difficult economic times, XING AG has continuously expanded its growth in the course of the third quarter 2008 yet another record quarter. We’re an example of the opportunities present in every crisis: crisis accelerates change, and this is good.
In these uncertain times, our members rely even more on their professional contacts. If your company lays you off or does cost cutting, you start to see right away how valuable social networks can be. At XING, we concentrate on offering our members a wide range of opportunities and tools for expanding their professional network. In short, we help people increase value particularly in difficult economic periods. Professional networks are not a fad; they’re here to stay. And now is the time to make the most of your network.
Our business model is rather simple: Expanding numbers of members are resulting in higher revenues and contributions to earnings in all three service categories (B2C, B2C and Advertising). This demonstrates that XING is one of the winners of this development. At XING we can realy speak about profits and tax rates we have to pay. Much better feeling than just to speak about higher revenues.
Since the IPO in December 2006, our numbers of our members have risen every quarter, thus driving up our revenues and results. Apart from the growth in revenues, XING AG is one of the small number of listed companies which combine such rapid revenue growth with an above-average profitability (our last quarter was at 40%). In these terms, XING AG is one of the most profitable companies on the German markets.
The unique success and the continuing strong growth of XING are attributable particularly to highly motivated and experienced employees – actually the best team I have ever been privileged to work with. Their commitment is our most sustainably productive capital. And, since the beginning of the year, we have recruited a further 52 employees in order to enable us to continue to successfully implement the growth strategy which we have initiated. We are not laying people off, we haven’t stopped hiring, or even slowing down the recruitment processs. Indeed, the reverse is true: we have over 40 open positions at present. As an entrepreneur I strongly believe that these times are excellent opportunities, and XING is ready to tackle them.
The new employees will help develop new ideas and business models, and provide XING with strong support for the successful implementation of numerous new projects which provide our members with additional added value for business networking.
Monday mornings have a ring at XING. This is the favorite time for our users to visit XING. And so we watch the little number in the header of our site that show the number of concurrent users. Just recently we saw over 50.000 concurrent users surfing XING. Since we believe fast sites are more attractive, we do a lot to become faster. Phillip and myself are going to give a talk on this subject at the Spanish Ruby on Rails conference in Madrid this week. So do stop by…
I plan to touch on different lessons with our next blog entries. So here is just one of them: Spriting. Try it out. It’s an old technique from the days of C64 games. Basically what it does is solve a bandwidth problem between storage and client. A Sprite is a tapestry of the most used images on a website. The client loads it only once and then we snip parts of it into the view with some CSS magic. This reduces the number of HTTP-requests by up to 30 times. If you’re interested you may look at one of our sprites.
Other interesting topics I’d like to cover:
- performance measurements
- Operations monitoring, why measure…
- solid state disks
- why a SAN might not be the silver bullet
- optimizing browser caching
-…
Istanbul saw a lot of XING recently. Right after the successful marketing campaign, Lars visited our Turkey base for an extended PR Roadshow and two more big events for our business partners and friend. While Monday brought him together with Turkey’s most popular newspapers, IT and business media and TV stations, yesterday Lars hosted a seminar for journalists, bloggers and Istanbul’s internet business elite, entitled: “Sosyal Ag@Is Dünyasi” (social networks@business world).
More than 80 people came to listen to Lars’s speech on Web 2.0, the social networking market and future trends and to talk with him about future trends in online business. With Turkey’s lively internet market on the rise the seminar met great interest and gave us the chance to further build on the “digital bridge across the Bosporus” as we like to call XING. And we witnessed again the fantastic job that our country manager Hakan and his team are doing. Tuesday night, our Istanbul experience was crowned with the kick-off event for Turkish Ambassadors, moderators and members.
Having published over 600 postings in the past three years, we finally decided to give our Company Blog a fresh new layout and new features. It was also about time for us to add a multilingual feature to the blog, offering different language versions for our growing communities around the world.
This relaunch was a lot of fun for our team. A big thank you goes out to Sabine, Angela, and the rest of the team for the coordination and preparation (and for the occasional 12-hour day!). Thanks too to Joaquin for helping coordinate the multilingual version.
We hope you like the new blog, and are already excited about discussions to come, your feedback – and of course your trackbacks.
Happy reading!









XING´s official twitter account