Hack India: Hyderabad — It’s a Wrap!

Hack India: Hyderabad — It’s a Wrap!

The energy at the 6th edition of Yahoo! Hack in India was electrifying as we counted down to the close of hacking at Yahoo! Hack Hyderabad, 2013. Over…

Internal Hackday Produces Record-Breaking 300 Hacks

Internal Hackday Produces Record-Breaking 300 Hacks

Yahoo! has been hosting internal Hackdays since 2005, and the traditio…

Demand is High for Yahoo! Hack India: Hyderabad

Demand is High for Yahoo! Hack India: Hyderabad

Photo credit to Reid Burke Since 2007, YDN has been hosting amazing Ha…

  • YSlow Release on YDN

    Yahoo! has released YSlow, their web performance tool, on YDN under an open source license. Steve Souders, Yahoo!'s Chief Performance Yahoo!, made the announcement during his session at OSCon.

    YSlow measures web page performance based on the best practices evangelized by Yahoo!'s Exceptional Performance team. Since many of these best practices focus on the frontend, YSlow is integrated with Joe Hewitt's Firebug, the web development tool of choice for frontend developers.

    YSlow has three main views: Performance, Stats, and Components. Performance view scores the page against each performance rule, generates an overall YSlow grade for the page, and lists specific recommendations for making the page faster. Stats view summarizes the total page weight, cookie size, and HTTP request count. Components view lists each component (image, stylesheet, script, Flash object, etc.) in the page along with HTTP information relevant to page load times. It also contains several tools including JSLint.

    Read More »from YSlow Release on YDN
  • Greetings from Mashup Camp 4

    The fourth iteration of Mashup Camp and Mashup University went off without a hitch last week, Monday through Thursday at the Computer History Museum, in Mountain View, CA.

    Best Mashup Winners:

    First prize: Chime TV, by Taylor McKnight and Chirag Mehta. Really sweet all-Flash video aggregator, featuring video from all over the web. (Here's Mashup Camp founder David Berlind, bouncing off ZDNet, YouTube, and Chime.TV, about how mash-ups work.) This was Mr. McKnight's second first-prize win; his first was two years ago, for Podbop.

    Second prize: The Telephone Game, by John Herren. Responding to suggestions from the demo audience during two rounds of Speed Geeking, John built an application that took one input term, ran it through a bunch (six or seven, by the end of the second session) different search engines, and showed the results as it went along.

    Third prize: ClubStumbler, by Nate Ritter and Chris Radcliffe. The designated driver's best friend, ClubStumbler helps you plot the best

    Read More »from Greetings from Mashup Camp 4
  • Entity tags (ETags) are a mechanism that web servers and browsers use to determine whether the component in the browser's cache matches the one on the origin server. (An "entity" is another word for what I've been calling a "component": images, scripts, stylesheets, etc.) ETags were added to provide a mechanism for validating entities that is more flexible than the last-modified date. An ETag is a string that uniquely identifies a specific version of a component. The only format constraints are that the string be quoted. The origin server specifies the component's ETag using the ETag response header.

    HTTP/1.1 200 OK
    Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT
    ETag: "10c24bc-4ab-457e1c1f"
    Content-Length: 12195

    Later, if the browser has to validate a component, it uses the If-None-Match header to pass the ETag back to the origin server. If the ETags match, a 304 status code is returned reducing the response by 12195 bytes for this example.

    GET /i/yahoo.gif HTTP/1.1
    Read More »from High Performance Web Sites: Rule 13 – Configure ETags
  • It hurts performance to include the same JavaScript file twice in one page. This isn’t as unusual as you might think. A review of the ten top U.S. web sites shows that two of them contain a duplicated script. Two main factors increase the odds of a script being duplicated in a single web page: team size and number of scripts. When it does happen, duplicate scripts hurt performance by creating unnecessary HTTP requests and wasted JavaScript execution.

    Unnecessary HTTP requests happen in Internet Explorer, but not in Firefox. In Internet Explorer, if an external script is included twice and is not cacheable, it generates two HTTP requests during page loading. Even if the script is cacheable, extra HTTP requests occur when the user reloads the page.

    In addition to generating wasteful HTTP requests, time is wasted evaluating the script multiple times. This redundant JavaScript execution happens in both Firefox and Internet Explorer, regardless of whether the script is cacheable.

    One way to

    Read More »from High Performance Web Sites: Rule 12 – Remove Duplicate Scripts
  • Redirects are accomplished using the 301 and 302 status codes. Here’s an example of the HTTP headers in a 301 response.

    HTTP/1.1 301 Moved Permanently
    Location: http://example.com/newuri
    Content-Type: text/html

    The browser automatically takes the user to the URL specified in the Location field. All the information necessary for a redirect is in the headers. The body of the response is typically empty. Despite their names, neither a 301 nor a 302 response is cached in practice unless additional headers, such as Expires or Cache-Control, indicate it should be. The meta refresh tag and JavaScript are other ways to direct users to a different URL, but if you must do a redirect, the preferred technique is to use the standard 3xx HTTP status codes, primarily to ensure the back button works correctly.

    The main thing to remember is that redirects slow down the user experience. Inserting a redirect between the user and the HTML document delays everything in the page since nothing in the page

    Read More »from High Performance Web Sites: Rule 11 – Avoid Redirects
  • Minification is the practice of removing unnecessary characters from code to reduce its size thereby improving load times. When code is minified all comments are removed, as well as unneeded white space characters (space, newline, and tab). In the case of JavaScript, this improves response time performance because the size of the downloaded file is reduced. Two popular tools for minifying JavaScript code are JSMin and YUI Compressor.

    Obfuscation is an alternative optimization that can be applied to source code. Like minification, it removes comments and white space, but it also munges the code. As part of munging, function and variable names are converted into smaller strings making the code more compact as well as harder to read. This is typically done to make it more difficult to reverse engineer the code. But munging can help performance because it reduces the code size beyond what is achieved by minification. The tool-of-choice is less clear in the area of JavaScript obfuscation.

    Read More »from High Performance Web Sites: Rule 10 – Minify JavaScript
  • The Domain Name System (DNS) maps hostnames to IP addresses, just as phonebooks map people's names to their phone numbers. When you type www.yahoo.com into your browser, a DNS resolver contacted by the browser returns that server’s IP address. DNS has a cost. It typically takes 20-120 milliseconds for DNS to lookup the IP address for a given hostname. The browser can’t download anything from this hostname until the DNS lookup is completed.

    DNS lookups are cached for better performance. This caching can occur on a special caching server, maintained by the user's ISP or local area network, but there is also caching that occurs on the individual user's computer. The DNS information remains in the operating system's DNS cache (the "DNS Client service" on Microsoft Windows). Most browsers have their own caches, separate from the operating system's cache. As long as the browser keeps a DNS record in its own cache, it doesn't bother the operating system with a request for the record.


    Read More »from High Performance Web Sites: Rule 9 – Reduce DNS Lookups
  • At our recent London Hack Day, Nick Bilton and Michael Young of the New York Times Research & Development Lab walked away with the top award ("Best Overall Hack") for their mobile/desktop synchronization and toggling solution: Shifd.

    In the second part of this interview, we followed up with these two to talk a bit more about their solution, how they conceived and executed it, what's next for Shifd, and more.

    Q: Shifd was one of the few specifically Mobile-focused applications we saw at this Hack Day. What design considerations did you make based on your past usage of mobile devices?

    Mobile devices in general have terrible user interface and even worse browser specifications, and because of both of these problems, people really don't understand how to create or design content for these devices. It's apparent that mobile devices are really important in our life as you can see from the hoopla that arrived with the iPhone. We really aimed to make the design and User Interface simple,

    Read More »from Interview with Shifd Creators: Nick Bilton and Michael Young, Pt. II
  • Many of these performance rules deal with how external components are managed. However, before these considerations arise you should ask a more basic question: Should JavaScript and CSS be contained in external files, or inlined in the page itself?

    Using external files in the real world generally produces faster pages because the JavaScript and CSS files are cached by the browser. JavaScript and CSS that are inlined in HTML documents get downloaded every time the HTML document is requested. This reduces the number of HTTP requests that are needed, but increases the size of the HTML document. On the other hand, if the JavaScript and CSS are in external files cached by the browser, the size of the HTML document is reduced without increasing the number of HTTP requests.

    The key factor, then, is the frequency with which external JavaScript and CSS components are cached relative to the number of HTML documents requested. This factor, although difficult to quantify, can be gauged using

    Read More »from High Performance Web Sites: Rule 8 – Make JavaScript and CSS External
  • At our recent London Hack Day, Nick Bilton and Michael Young of the New York Times Research & Development Lab walked away with the top award ("Best Overall Hack") for their mobile/desktop synchronization and toggling solution: Shifd.

    In the first part of this interview, we followed up with these two to talk a bit more about their backgrounds, what's next from the Times R&D Lab, what lured them to Hack Day and more.

    Q: Can you give us a little background info on yourselves?

    Nick Bilton: I'm an Art Director, User Interface Designer, Technologist, Writer, Video Journalist, Photographer, Nick-of-all-trades... Master of some. I've also got a bit of a problem with gadgets, and have been known to wait outside in the cold at 6 a.m. to acquire new releases of certain products. I've worked in numerous different industries within the contexts of design and technology. Currently my time is shared between The New York Times newspaper where I'm involved in special editorial projects and the visual

    Read More »from Interview with Shifd Creators: Nick Bilton and Michael Young, Pt. I


(1,656 Stories)