Archives for the Technology category

24 Web site performance tips

Yahoo! Developer Network blog had an entry by Stoyan Stefanov and presentation from PHP Quebec conference. A few points to take away, in case you don’t feel like going through 76-slide presentation:

  1. A drop of 100ms in page rendering time leads to 10% in sales on Amazon. A drop of 500 ms leads to 20% less traffic to Google.
  2. Make fewer HTTP requests - combine CSS and JS files into single downloads. Minify both JS and CSS.
  3. Combine images into CSS sprites.
  4. Bring static content closer to the users. That usually means CDNs like Akamai or Limelight, but sometimes a co-location facility or data center in a foreign country is the only option.
  5. Static content should have Expires: headers way into the future, so that they’re never re-requested.
  6. Dynamic content should have Cache Control: header.
  7. Offer content gzip’ed.
  8. Stoyan claims nothing will be rendered in the browser till the last piece of CSS has been served, and therefore it’s critical to send CSS as early in the process as possible. I happen to have a document with CSS declared at the very end, and disagree with this statement - at least the content seems to render OK without CSS, and then self-corrects when CSS finally loads.
  9. Move the scripts all the way to the bottom to avoid the download block - Stoyan’s example shows placing the javascript includes right before </body> and </html>, although it’s possible to place them even further down (well, you’d break XHTML purity, I suppose, if you declare your documents to be XHTML).
  10. Avoid CSS expressions.
  11. Consider placing the minified CSS and JS files on separate servers to fight browser’s default pipelining settings - not everybody has FasterFox or tweaked pipeline settings.
  12. For super-popular pages consider inlining JS for fewer HTTP requests.
  13. Even though placing content on external servers with different domains will help you with HTTP pipelining, don’t go crazy with various domains - they all require DNS lookups.
  14. Every 301 redirect is a wasted HTTP request.
  15. For busy backend servers consider PHP’s flush().
  16. Use GET over POST any time you have a choice.
  17. Analyze your cookies - large number of them could substantially increase the number of TCP packets.
  18. For faster JavaScript and DOM parsing, reduce the number of DOM elements.
  19. document.getElementByTagName(’*').length will give you the number of total elements. Look at those abusive <div>s.
  20. Any missing JS file is a significant performance penalty - the browser will browse the 404 page you generate, trying to see if it has valid <script>s.
  21. Optimize your PNGs - check out pngcrush, pngoptimizer
  22. Optimize JPEGs - jpegtran
  23. Make sure you have favicon.ico - generating those 404s will be expensive, plus once you have it, it’s cache-able.
  24. Toolkits for measuring page loads: AOL PageTest, FiddlerTool HTTP debugging proxy, IBM Page Detailer instrumentation tool, YSlow, and Firebug are suggested in the presentation. My personal addition to the list is Charles that has been recommended by a colleague.

And here’s the whole presentation, although it’s not possible to follow links from Slideshare slides.

SlideShare

Emotiv publishes neuro SDK

Emotiv brain headsetSlashdot had a story on brain control headsets coming out soon from Emotiv. The company seems to have done a fair bit of research in linking various neural activity to explicit emotions. They’re targeting gaming market, and hoping to introduce game that analyze your emotions as well as kinetic signals that the brain is sending towards the other body organs. What’s also cool is they’re launching an SDK:

Additionally, Emotiv has announced the commercial availability of its full SDK. The SDK has been upgraded significantly since it was first announced in March 2007 at last years GDC. The commercially available version of the kit now includes:

  • 2 beta-version neuroheadsets
  • Software toolkit that exposes the APIs
  • Full access to detection libraries
  • Suite of development tools for effective creation and integration of applications with content

The Emotiv EPOC is the worlds first consumer neuroheadset. It detects and processes human conscious thoughts and expressions and non-conscious emotions. By integrating the Emotiv EPOC into their games or other applications, developers can dramatically enhance interactivity, gameplay and player enjoyment by, for example, enabling characters to respond to a players smile, laugh or frown; by adjusting the game dynamically in response to player emotions such as frustration or excitement; and enabling players to manipulate objects in a game or even make them disappear using the power of their thoughts.

Headset itself will cost $299 once released into commercial production, the SDK details are available here.

Bionic arm nears completion

The bionic arm project, sponsored by DARPA and executed by Deka Research and Development Corp. run by Dean Kamen (inventor of Segway, among other things), is nearing completion and might undergo clinical trials if DARPA sees the project fit, IEEE Spectrum says: “The arm has motor control fine enough for test subjects to pluck chocolate-covered coffee beans one by one, pick up a power drill, unlock a door, and shake a hand. Six preconfigured grip settings make this possible, with names like chuck grip, key grip, and power grip. The different grips are shortcuts for the main operations humans perform daily.”

Planning for failure

Most of the e-commerce sites upon errors generate some cryptic self-exonerating error messages such as “Oops, something unexpected happened, come back soon” or “Error C333. Please describe in detail what you were doing, and what you were wearing, and send it over to our technical team for further investigation”. Not Pottery Barn, which seems to plan ahead for failures. Whether it’s shrewd planning, or an ordering system that consistently screws up, Pottery Barn has a separate notification system in place for the cases when you tried to buy something off their site, and failed at checkout.

Pottery Barn

How openness is a motto at Renaissance Technologies

Bloomberg has a long article on Renaissance Technologies LLC and its founder Jim Simons, in which the point out an interesting value inside the multi-billion dollar hedge fund with a few hundred employees:

From Simons on down, the company encourages openness, whether it’s about market signals that show where a security might be headed or about technology or trading. Frey says he doesn’t recall Simons ever raising his voice at an employee. Simons says new hires are encouraged to troll computer files detailing Renaissance’s past strategies, successful or not. “If Simons’s door was open, you could walk in,” Weinberger says. That would go for everyone from secretaries on up.

What’s also interesting from that description of the company, is there doesn’t seem to be the “corporate way”, or “invented here” syndrome - everyone who just joined the company is invited to question the established beliefs and practices. The fund, nevertheless, is very secretive to the outsiders, but remains hugely profitable, and beats the market even in highly bearish environments.

Web 2.0 event at Plug and Play Tech Center

Ramu Yalamanchi of Hi5I went to my first Plug and Play Tech Center Web 2.0 event (a handful to say) tonight. Sunnyvale’s Plug and Play Tech Center is a project by Amidzad Partners, and if you don’t know who they are, but always wondered how downtown Palo Alto manages to have so many rug stores, New York Times had the answer a few months back. The center’s Web 2.0 event is monthly, and features a handful of startup presentations, and a keynote speech. The keynote tonight was from Ramu Yalamanchi, founder and CEO of Hi5. Ramu is a serial entrepreneur and shared his common-sense advice on starting and running a business. He seemed to favor the business models that did not require raising tons of money right away, and starting his newest venture in 2004 taught him to concentrate on profitability right from the start.

As far as the presenting startups, the topic for the night was widgets and applications, embeddable in social networks. TripWiser presented their social traveling Facebook application Going Places, that allows you to specify places you’ve been to, places you want to go, and see what your friends are up to as far as travel activities. Minekey presented their Facebook application iThink, and announced a promotional $300 giveaway in order to drive up usage of their app. iThink allows the user to agree or disagree with controversial statements (”Women are better drivers then men”, “Angelina Jolie is over-rated”), providing a clearer picture of who your friends are, and what they think.

The College Freeway presentsThe College Freeway allows its users to log in using their Facebook IDs, but is a destination site. A few people in the audience seemed to think that this required a special deal with Facebook, but allowing Facebook logins on third-party sites has been in the API long before the Facebook Platform was released. The College Freeway allows students to upload class notes for their college, and considers itself a service to the universities and professors, just like OpenCourseWare is. Pollection is another company that presented a Facebook application that’s already pretty successful - Polls.

Two event startups - imThere and MadeIt. First one focuses on mobile event interaction, the other one is all about creating easy full-blown Web sites for specific events, where people can add photos, videos, audio, etc. for an event and meet new people via events they attend.

Two companies helping application/widget developers to reach markets - gigya offering interfaces for embedding practically any JavaScript/Flash widget on a social networking or startpage site, and Social URL aggregating social networking profiles into one place, and providing some services on top of aggregation.

InnerCircle.cc solves the problem of e-mailing some content or photos over and over to the same people. It allows you to set up a special e-mail address on their server, and then forwards each message to that address to a number of recipients. iPling pitched itself as the first iPhone-only company. It allows users to set up their current mood and express their thoughts anonymously, and then charges for anonymous SMS. So theoretically if you’re at a party and looking for a date, you can set your status to “Seeking date”, and someone else could send you an anonymous SMS expressing their interest.

Overall, interesting businesses and interesting business models. It’s worth noting that even nowadays, at the heyday of Internet advertising market,  many startups are thinking about alternative monetization methods, such as subscriptions and add-on services.

Better graph algorithims

There are a few interesting postings I came across lately on graph parsing optimizations.

Google’s Mark Chu-Carroll discusses parsing strongly-connected digraphs on ScienceBlogs. His approach includes breaking up a complex digraph into an array of strongly-connected subgraphs and then throwing the power of parallelization at the problem. Each machine is responsible for processing its own subgraph, and when it’s done, it reports back, making this algorithm a special case of MapReduce. Such algorithms are useful for microforecasting, i.e. predicting weather pattern at very precise locations, or, if you choose, figuring out giant link farms established by large blog networks all inter-connecting to their sister blogs in an attempts to drive PageRank.

Caltech’s Yuri Lifshits discusses similarity-based searches. Similarity searches are employed by visual shopping engines, such as Like.com, recommendation engines and their varieties like personalized news recommendation engines, ad targeting engines, and algorithms that do any kind of fuzzy matching (job site matching your resume with potential employers, dating site, etc.) There’s also a paper attached to that presentation for heavier reading.

5 22″ LCD monitors reviewed

22 inch monitors reviewedThere’s a huge price difference between 22″ LCD monitors and 24″ LCD monitors, so Information Week reviews 5 of the more affordable 22″ monitors - Dell E228WFP, NEC MultiSync LCD225WXM, Planar PX2210MW, Samsung SyncMaster 2232GW, and Viewsonic VG2230wm. There’s a chart comparing features of each, and it’s obvious that the price varies depending on the level of the contrast ratio that you want, and at $269 Dell’s 22″ model delivers approximately the best bang for the buck.

At work and at home I have identical Dell 24″ monitors, but I think a switch back to 22″ would not be that big of the deal - most of the time a sidebar from Google Desktop or Trillian is taking spare two or three inches anyway. At Facebook 30″ monitors recently became a standard issue, and I had an offer to have mine replaced, but, alas, it looks like my Thinkpad T34 does not support the awesome resolution that a 30-incher offers. Plus, even now most of my applications never run maximized, and I usually stick to 1000-pixelish width anyway, so the productivity gains for me would be questionable.

ADrive offers 50 gigs of free storage

ADriveADrive.com is now offering 50 GB of free storage to free accounts. They have a desktop client as well.

Charging for whois access

Looks like Gadi Evron, security researcher from Israel CERT, a well-known botnet expert, and frequent presenter at DefCon, is quite pissed at GNR, the company behind .name top-level domain. Not sure what the story is, since their whois seems to work fine for me (that is, there’s no data available for most of the searches), but according to Wired, GNR is now charging $2 for 24-hour access to its whois database:

That’s $2 too much for security researcher Gadi Evron, one of the leading authorities on zombie computer networks. “What they have done is made sure the .name TLD is free haven for bad guys to lurk on,” Evron said. “If I need to report 1,000 domains, I’m not going pay $2,000.”

Not sure how it’s different from private registration of .com and .net domains, offered by many registrars. They won’t divulge the data either, unless subpoenaed, and theoretically a phishing site could just hide behind a more generic TLD with private registration.