Tag Archives: facebook

Why Google needs Facebook for Android to win

Why Google needs Facebook for Android to win

Back when Android’s Gingerbread version was still fresh, Facebook engineers started seeing a problem — a big one, one that stood to kill the app on Facebook users’ Android phones.

Facebook had too many method records, the technical bits that let a service communicate with the app on your phone — in excess of 3 million method records, in fact. And 3 million was, in that version of Android, the magic number, the limit at which each individual app was capped.

It was Facebook’s big, mobile, “Oh, shit” moment. Then, over the course of two days, said Facebook engineering lead Mike Shaver, “We went from DEFCON 1 — klaxons and sirens, people can no longer use Facebook on Android — to the ability to extend the platform.”

In a chat at Facebook’s headquarters today, Shaver (pictured above) told a small group of reporters about how Facebook mobile engineers were able to pop the hood on Android — and never has anyone been more grateful for the open-source nature of that operating system — and find out exactly what and where the issue was. They quickly created a patch, moved a pointer in Dalvik, the Android version of Java’s runtime, and created more space for an app to store method records.

“We were able to send the patch over to Google to get their opinion on it,” said Shaver. “The looked at it for a day or two, and they said it would work for now, if not for the future.”

The teams did a bit of testing and rolled the patch out, saving the day for Facebook on Android.

Android has come a long way from its scrappy, crashy, buggy, early-adopter roots. The platform’s design and experience are, from a user perspective, at least equal to (and by some subjective measurements, far superior to) the more established iOS experience.

But without the technical capability to support massive third-party applications with global audiences in the billions, Android will not stand. That’s why Google needs Facebook. The social company is a huge competitor to Google in many other ways, but when it comes to Android, Facebook is the only app that can put the proof in the pudding and stress-test a mobile operating system for a worldwide audience.

“We’re a very significant app to them, and they’re a very significant platform to us,” said Shaver.

When it comes to building Android out for larger apps with more market share, he said, “These tools don’t exist because no one else has hit these limits. … All the [other] tools were designed for smaller applications.”

But, he continued, “Someone else will hit this limit. … We have all the tools. We know how to be this company. Everybody about Facebook is thinking about mobile, and everybody at Facebook is thinking about Android.”

When it comes to optimizations like these — tiny tweaks to a mobile OS runtime — Shaver rightly pointed out that the end user will never be able to see or feel any of this stuff. All they will know is that download times, app responsiveness, and features all stay bloat-free and quick. “The key is with these workarounds and limitations, it has to be transparent to the user,” he said.

But don’t hold your breath for Facebook to become a major contributor to the operating system in the future.

“What we have right now is an Android operating system with hundreds of millions of users that can have a great social experience,” said Shaver. “That’s the part we’re focused on.” As far as future patches or contributions to the Android operating system, Shaver said, “We’ll get that stuff out as it’s appropriate. … If that’s the thing we want to do, we’ll do it.”

Since last year, Facebook has been training engineers across all the company to understand and work with mobile technologies, with the end goal of company-wide “mobile empathy.” Hundreds have been given mobile training since last year, Shaver said 2013 is about putting that empathy and understanding to work.

Currently, Facebook is on an accelerated release cycle for all its mobile applications. The company updates its Android app every month on the second or third Thursday of the month.

Source: http://venturebeat.com/2013/03/04/google-facebook-android/

Did you like this? Share it:

Facebook takes on mobile ads based on user locale

With mobile advertising becoming increasingly more important, Facebook appears to be amping it up. According to Bloomberg, the social network is developing a mobile ad product that uses real-time data based on users’ locations.

"Phones can be location-specific so you can start to imagine what the product evolution might look like over time, particularly for retailers," Facebook’s vice president of global marketing solutions Carolyn Everson told Bloomberg. "We’ve had offers being tested over the last couple of months."

When the company went public in May, people speculated that in order to keep share prices from falling, the social network had to figure out how to monetize its growing number of mobile users. The Securities and Exchange Commission also made it clear that the social network had to focus more on mobile. The company’s shares have fallen 17 percent since it went public.

According to Bloomberg, U.S. mobile ad spending is projected to grow 80 percent over 2011 and is said to reach $2.61 billion.

"The holy grail of advertising is finding people when they are at their closest point to making a purchase," stock analyst Colin Sebestian, told Bloomberg. "Having some location-based element to advertising can be very powerful, and if you combine that with all the personal data Facebook has, the potential is enormous."

Facebook’s ads for both Web and mobile are currently labeled "featured" and are included in users’ news feeds or are "sponsored" stories on the right side of the Facebook home page. However, according to Bloomberg, Everson said that there has been "really significant interest" in mobile-only news-feed ads, which the social network started selling earlier this month.

Source:http://news.cnet.com/8301-1023_3-57455726-93/facebook-takes-on-mobile-ads-based-on-user-locale/?tag=mncol;9n

Did you like this? Share it:

Use Memcached for Java enterprise performance, Part 1: Architecture and setup

Developed by Danga Interactive to improve site performance on LiveJournal.com, Memcached’s distributed architecture today supports the exponential scalability of social web applications like Twitter, Facebook, and Wikipedia. In this two-part tutorial, Sunil Patil introduces Memcached’s distributed hashtable architecture and gets you started with using it to cache data for your own database-driven Java enterprise applications.

This tutorial introduces you to using Memcached to improve the performance of Java enterprise applications. The first half starts with an overview of traditional Java caching architectures as compared to Memcached’s architecture. We’ll also get Memcached installed on your machine and I’ll introduce you to the setup and commands for working with Memcached via Telnet. In the second half we’ll develop a "Hello Memcached" client program in Java, which we’ll use to look under the hood of a spymemcached client. You’ll also learn about using Memcached to reduce the load on your database server, and using it to cache dynamically generated page markup. Finally, we’ll consider some advanced options for configuring spymemcached clients.

Overview of Memcached and Java caching architectures

Java caching frameworks like EHCache and OSCache are essentially HashMap objects in your application code. Whenever you add a new object to the cache it will be stored in the memory of your application. This strategy works fine for storing small amounts of data, but it doesn’t work for caching more than few gigabytes (GB). The designers of the Memcached server took a distributed architectural approach, which allows for system scalability. As a result, you can use Memcached to cache a huge amount of data.

The architecture of Memcached consists of two pieces. First is a Memcached server that runs in its own process. If you want to scale your application, you can install and run the Memcached server on additional machines. Instances of the Memcached server are not aware of each other. The Memcached client, the second piece of the Memcached system, does know about each of the servers. The client is responsible for picking up the server for each cache entry and either storing or getting the cache entry — a process I’ll discuss in detail later in the article.

If you have some experience working on Java EE web applications chances are that you’ve previously used an open source Java caching framework such as EHCache or OSCache. You might also have used a commercial caching framework that shipped as part of your application server, such as DynaCache (which ships with IBM WebSphere Application Server) or JBoss Cache (which ships with JBoss AS). Before we get into the hands-on learning part of this tutorial, it’s important to understand how Memcached differs from these traditional Java caching frameworks.

Using a traditional Java cache

Using a traditional Java caching framework is quite easy, regardless of whether you choose an open source or commercial option. For an open source framework such as EHCache or OSCache, you would need to download the binaries and add necessary JAR files to the classpath of your application. You might also need to create a configuration file, which you would use to configure the size of the cache, disk offload, and so on. For a caching framework that came bundled with an application server you typically would not have to download any additional JARs because they would be bundled with the software.

Figure 1. Architecture of traditional Java caching (click to enlarge)

After adding support for the caching framework in your application, you could start using it by creating a CacheManager object and getting and setting cache entries in it. Under the hood, the caching framework would create the CacheManager objects in the same JVM where your application was running. Every time you added a cache entry, that object would also be added to some type of hashtable maintained by the caching framework.

If your application server were running on multiple nodes, then you might also want support for distributed caching. In a distributed cache system, when you add an object in cache on AppServer1, that object is also available on AppServer2 and AppServer3. Traditional Java caches use replication for distributed caching, meaning that when you add a cache entry on AppServer1 it is automatically replicated to the other app servers in your system. As a result, the entry will be available on all of your nodes.

Using Memcached

In order to use Memcached for caching you must first download and install the Memcached server for the platform of your choice. Once you’ve installed the Memcached server it will listen on either a TCP or UDP port for caching calls.

Figure 2. Architecture of Memcached (click to enlarge)

Next, you’ll download a Java client for Memcached and add the client JARs to your application. After that, you can create a Memcached client object and start calling its method to get and set cache entries. When you add an object to the cache, the Memcached client will take that object, serialize it, and send a byte array to the Memcached server for storage. At that point, the cached object might be garbage collected from the JVM where your application is running.

When you need that cached object, you can call the Memcached client’s get() method. The client will take the get request, serialize it, and send it to the Memcached server. The Memcached server will use the request to look up the object from the cache. Once it has the object, it will return the byte array back to the Memcached client. The Memcached client object will then take the byte array and deserialize it to create the object and return it to your application.

Even if your application is running on more than one application server, all of them can point to the same Memcached server and use it for getting and setting cache entries. If you have more than one Memcached server, the servers won’t know about each other. Instead, you’ll configure your Memcached client so that it knows all the available Memcached servers. For example, if your application creates a Java object on AppServer1 and calls the set() method of Memcached, then the Memcached client will figure out which Memcached server that entry goes to. It will then start communicating with that Memcached server only. Likewise, when your code in AppServer2 or AppServer3 tries to get an entry, the Memcached client will first figure out which server that entry is stored on, and then communicate with that server only.

Memcached client logic

In its default configuration, the Memcached client uses very simple logic to select the server for a get or set operation. When you make a get() or set() call, the client takes the cache key and call its hashCode() method to get an integer such as 11. It then takes that number and divides it by number of available Memcached servers, say two. It then takes the value of the remainder, which is 1 in this case. The cache entry will go to Memcached server 1. This simple algorithm ensures that the Memcached client on each of your application servers always chooses the same server for a given cache key.

Installing Memcached

Memcached runs on Unix, Linux, Windows, and MacOSX. You can either download the Memcached source and compile it or you can download the binaries compiled by someone else and use them to install Memcached. Here I’ll walk through the process of downloading the binaries for the platform of your choice; see Resources if you prefer to compile from source.

The following installation instructions are for a Windows XP 32-bit machine. See Resources for installation instructions for other platforms such as Linux. Also note that the sample code for this article was developed on a Windows XP 32-bit machine, though it should work on any other platform.

  1. Jellycan code has a modified version of Memcached that is easy and efficient to work with. Start here by downloading the win32 binary ZIP file
  2. Expand Memcached-<versionnumber>-win32-bin.zip on your hard disk. Note that all it contains is memcached.exe. Execute this file to start the Memcached server.
  3. Now execute memcached.exe -d install to register memcached.exe as a service. You’ll be able use the Services console to start and stop the Memcached server.
CL start/stop

Try starting and stopping the Memcached server from command-line instead of from a services panel. Doing that will give you more flexibility to try out different command-line options and figure out the best possible configuration for your requirements.

When you execute the memcached.exe without any command-line options, by default the Memcached server will start up on port 11211 with 64 MB of memory. In some cases you might want to have more granular control of the configuration. For example, say port 11211 is used by some other process on your machine and you want the Memcached server to use port 12000; or if you were starting Memcached server in a QA or production environment you would want to give it more memory than the default 64 MB. In these cases you could use command-line options to customize the server’s behavior. Executing the memcache.exe -help command will yield a complete list of command-line options like the ones shown in Figure 3.

Figure 3. Command-line options for Memcached server (click to enlarge)


Connect with Memcached via Telnet

After the Memcached server is started it listens on the port you’ve assigned it to. The Memcached client connects to the server on either the TCP or UDP port, sends commands and receives responses, and eventually closes the connection. (See Resources for details of the protocol the client uses to communicate with the server.)

You can connect to your Memcached server in a variety of ways. If you’re using a Java client, as we’ll do in the second half of this tutorial, you’ll be able to access a simple API for storing and getting objects from the cache. Alternately, you could use a Telnet client to connect to the server directly. Knowing how to use the Telnet client to communicate with the Memcached server is important for debugging the Java client, so we’ll start there.

Telnet commands

First you’ll need to use the Telnet client of your choice to connect to the Memcached server. On a Windows XP machine, you can simply execute telnet localhost 11211 assuming the Memcached server is running on the same machine and listening on the default 11211 port. The following commands are essential for working with Memcached via Telnet:

  • set adds a new item to the cache. The call is: Set <keyName> <flags> <expiryTime> <bytes>. You can type the actual value that should be stored on the next line. If you dont want the cache entry to expire then enter 0 as the value.
  • get returns the value of the cache key. Use get <keyName> to get the value of the keyName.
  • add adds a new key only if it does not already exist. For instance: add <keyName> <flags> <expiryTime> <bytes>
  • replace will replace a value only if the key exists. For instance: replace <keyName> <flags> <expiryTime> <bytes>
  • delete deletes the cache entry for the key. You can use the call delete <keyName> to delete value of the keyName.

The screenshot in Figure 4 represents a sample interaction with the Memcached server via Telnet. As you can see, the Memcached server provides feedback to each command, such as STORED, NOT_STORED, and so on.

Figure 4. Sample telnet client interaction with Memcached server (click to enlarge)


Conclusion to Part 1

So far we’ve briefly discussed the differences between Memcached’s distributed architecture and more traditional Java cache systems. We’ve also set up a Memcached implementation in your development environment, and you’ve practiced connecting to Memcached via Telnet. In the next part of this tutorial we’ll use the Java client spymemcached to set up a distributed caching solution for a sample Java application. In the process, you’ll learn a lot more about Memcached and how it can improve the performance of your Java EE applications.

source:

http://www.javaworld.com/javaworld/jw-04-2012/120418-memcached-for-java-enterprise-performance.html?page=1

Did you like this? Share it:

How small investors can get in on Facebook IPO

         

NEW YORK (CNNMoney) — You might think that scoring a stake in Facebook’s initial public offering if you are an average investor is like trying to change your privacy controls on the social networking site — seemingly impossible.

But it turns out that Facebook is making an effort to have some of its hotly sought after shares accessible to all. In its updated IPO prospectus filed late Thursday, Facebook added E*Trade, the popular low-cost online trading firm, to the list of what is now 33 underwriters of its offering.

"The only reason Facebook would ever authorize E*Trade as an underwriter is because it wants broad retail distribution of its IPO," said Scott Sweet, senior managing partner at IPO Boutique, a research firm tracking new offerings.

That means that users of E*Trade’s online brokerage service will have an opportunity to buy shares of Facebook at the IPO price, which should be between $28 to $35 per share. E*Trade (ETFC) has 2.8 million brokerage accounts..

Shares of an IPO are primarily distributed to institutional investors, mutual funds and hedge funds who are the biggest clients of the major Wall Street banks that manage the sale of the shares. On average, these brokerages only allocate 15% of their initial offering to retail investors, said Sweet.

Zuckerberg courts investors in Facebook’s online road show

But Wall Street executives estimate that small investors could get a bigger piece when it comes to Facebook’s offering — between 20% and 25%, according to a report in the New York Times. Facebook declined to comment for this story.

While E*Trade would not specifically speak about its role as a co-manager in Facebook’s IPO, the company has participated in over 600 public offerings in the past, including MasterCard (MA, Fortune 500) and Google (GOOG, Fortune 500). The company explained its typical IPO process to CNNMoney.

Those who have a brokerage account with E*Trade can participate in a company’s IPO, in this case Facebook, through the firm’s IPO center. Users can place a so-called conditional offer by indicating how many shares of Facebook they would want to buy, and the maximum price per share they are willing to pay.

Once Facebook’s final price for its initial public offering is set, which is likely to be on May 17, E*Trade would than divvy up its portion of the IPO shares to the clients who said they were willing to pay at least that much. An E*Trade customer will need to have sufficient available funds in their accounts to support the offer.

The company also clarified that customers will need to a complete a user profile that aims to gauge whether those who are interested are suitable investors for IPOs by asking questions about annual income, investable assets, and investment goals. However, there are no publicly defined requirements.

Like E*Trade, other brokerage firms may also be able to offer their clients a piece of the action.

5 reasons to not ‘like’ Facebook’s IPO

Fidelity’s brokerage arm could secure access to shares of Facebook at its IPO price thanks to a relationship it has established with Deutsche Bank (DB), one of the underwriters of Facebook’s offering.

But Fidelity’s got a few more eligibility hurdles than E*Trade: IPOs are only available to clients who have a minimum of $500,000 in assets at Fidelity, and have made at least 36 trades during the last year.

Similarly, Charles Schwab (SCHW, Fortune 500) brokerage customers could also have a chance:

"We aren’t an underwriter, but we do periodically offer IPOs to our clients through arrangements we have with underwriters," said Alison Wertheim, a spokeswoman with Schwab. "It remains to be seen to what extent we’ll participate in the Facebook IPO."

Meanwhile, TD Ameritrade (AMTD) said it is "a selling group member," which means it is likely involved in selling or marketing Facebook IPO shares, but not as an underwriter.

Investors can also gain exposure to Facebook’s IPO by buying a stake in a number of funds that already own shares of the company.

T. Rowe Price (TROW) has a $408 million investment in Facebook, spread across 19 of its mutual funds, including the T. Rowe’s Media & Telecommunications Fund (PRMTX) (PRMTX), while Fidelity has positions in Facebook across more than 30 of its mutual funds, such as the Fidelity Contrafund (FCNTX).

GSV Capital (GSVC), which invests in "high growth" pre-IPO companies, holds 350,000 shares of Facebook. That represents nearly 15% of its total portfolio. The Firsthand Technology Value Fund (SVVC) boasts 600,000 shares of Facebook.

There is also the Global X Social Media Index (SOCL) exchange-traded fund, which includes social media stocks LinkedIn (LNKD), Zynga (ZNGA) and others as top holdings. It will add Facebook to its holdings five days after the company makes its stock market debut.

But of course, any investor needs to be careful of buying a fund just because it has a position in Facebook. 

Source:

http://money.cnn.com/2012/05/07/markets/facebook-ipo-investors/index.htm?iid=EL

Did you like this? Share it:

Chinese Programmer Won the Third in Facebook Hacker Cup

clip_image002

On 18 March, 2012 Facebook Hacker Cup was held at Facebook offices in Menlo Park in USA. It began at 10 a.m. and lasted for 3 hours. Competitors are top programmers from the world, each of whom were given three unrelated technical problems and were required to finish within three hours. The Competition Committee determined the results according to their speed and accuracy.

Russian programmer Roman Andreev solved a technical problem with 1 hour and 4 minutes and was the champion of this Facebook Hacker Cup. The silver medal winner is American programmer Tomek Czajka, who solved a technical problem with 1 hour and 5 minutes, just one minute behind Roman Andreev. And Lou Tiancheng from China won the third place, spending one hour and 44 minutes to solve a technical problem.

What’s pity, none of them solve the three problems within given time. Facebook plans to hold the Hacker Cup every spring.

Did you like this? Share it:

Entrepreneurs of USA Said Hacker is Expected to Drive the World toward Prosperity

The outbreak of the hacker culture in the world becomes one of the most exciting trends in the early 21st century. The hackers I am talking here do not mean people who threat computer network security, but those who use technology to create useful products.

For various reasons, the number of hackers will increase faster in the next decades. Thanks to their own technology, the hackers have a unique advantage in the process of starting a business. However, not all hackers could become entrepreneurs. They need more training resources and capital. If we can simplify the transition from a hacker to an entrepreneur, the whole world would release the huge potential innovation and become prosperous.

There have been many successful examples in these years, like Facebook, Skype Dropbox and so on.

Due to the vigorous development of cloud computing and open source technology, the cost of creating a network service is greatly reduced. Social media spreads services users like most fast and triggers a new creation to join the competition. With the growth of the global middle class, professionally trained engineers are also gradually increased. Only in China, there are 600,000 engineers graduating each year. Additionally, free educational resources such as Codeacademy and Kahan Academy can also help people to learn new technologies.

Although hackers can develop useful products, however, in many cases, they still need the help of youth mentors and venture capital to transform early design to huge success. The venture capital industry provides a great deal of capital, using the local acquaintances. Venture capital activities are mainly concentrated in northern California and only active in a few big cities across the world. However, there will be a large number of great potential hackers out of the venture capital center.

In fact, the Internet is aimed at solve such problems. For example, you may use online dating pattern to match hackers with venture capitalists and youth mentors. It is not easy to develop this solution. It not only needs to find the best hackers, but also needs to provide financial and training support for further financing. Y Combinator, Techstars and other incubators, and Founder Institute and other education institutions have stood in the forefront of the times to help the hackers transform to entrepreneurs.

The process has been clear, however, much work needs to do, especially when a large number of talented hackers emerge but the development of incubator is still lagging behind. Of course, this does not mean either that all cities should set up an incubator or that venture capitalists of Silicon Valley should spend most of their time on travel around the world.

Anyhow, Governments should fully recognize that the degree of difficulty of the hacker business will largely determine the future economic development. Each country should value a hacker as a precious resource.

Did you like this? Share it:

Amazon is No. 1. Who’s next in cloud computing?

Amazon Web Services is, by all accounts, the largest cloud service provider by far, although good luck finding third-party numbers to verify that. Amazon, like most of the big cloud providers, doesn’t disclose much about current or planned data centers.

New research from Accenture analyst Huan Liu estimates that Amazon’s Elastic Compute Cloud (EC2) runs on a whopping 450,000 servers. Amazon does not break out AWS revenue, but some say it could already be a billion dollar business.

So, stipulating AWS as No. 1, here are seven cloud rivals that could give it a run for its money over the next few years.

1: Rackspace: While Rackspace encompasses managed services and pure hosting businesses, it’s also a major cloud provider with actual, paying customers.  Measuring by revenue and VMs, Rackspace currently has a lock on the No. 2 slot by a wide margin, said Gartner analyst Lydia Leong. As one data point, Rackspace public cloud revenue rose to $189 million in fiscal year 2011, up from $100M the previous year. Going forward, that business should only grow as Rackspace brings more OpenStack implementations online.

2: Google: If you’re talking number of physical servers, Google could already be the biggest cloud player. As for paying customers? That’s harder to discern. Google is one of the few companies that can (and does) invest in the pure computing firepower to contend with AWS. If you count all that Google Apps and Gmail storage, then Google’s obviously a huge player. The Google App Engine platform-as-a-service is still around but isn’t a factor for business developers.

3: Microsoft: Two-year-old Windows Azure has big capacity, but actual traction is unclear — but it is clear Microsoft is going for the gusto. Microsoft just launched an Azure-focused startup accelerator in Israel to help boost demand. Next week, it is expected to announce timing for the first of its ERP products — actually the first of any of its major products — to run on Azure. And, going forward, Microsoft Azure’s embrace of Hadoop could attract more of the next-generation big-data workloads that the cloud vendors compete for.

4: IBM: IBM SmartCloud is coming up fast on AWS and Rackspace even now, according to one cloud storage expert. That news surprised me but probably shouldn’t have, given IBM’s size and resources. And face it: IBM knows data centers. Like Microsoft, it is bringing Hadoop into its cloud with its InfoSphere BigInsights service.

5: Hewlett-Packard: HP’s been all over the map on cloud plans, promising an Azure-based implementation a few years ago that has gone nowhere and more recently standing up an OpenStack-based public cloud. Zorawar “Biri” Singh, SVP for HP cloud services, told the New York Times last week that HP’s cloud will add features and capabilities beyond what AWS provides.  HP has also said it wants to challenge AWS for the hearts and minds of cloud developers. HP has had its share of woes lately, but it’s still a tech power, and provided the cloud is a priority with new management, it would be hard to rule out.

6: VMware: VMware’s vCloud already runs a ton of clouds for third-party providers, and the company’s Cloud Foundry platform-as-a-service is gaining traction. All of that plus the Mozy cloud storage service, which VMware manages for parent EMC, means that the company — which dominates server virtualization inside the firewall — is gaining a pretty impressive toehold in the cloud beyond as well.

7: Facebook: Don’t laugh. It’s a wildcard, but Facebook is putting serious sweat into data centers. And it’s applying lessons learned to the Open Compute Project, which aims to apply open source development to hardware design. With more than 800 million users, Facebook knows a thing or two about cloud infrastructure. True, Facebook doesn’t offer cloud services now, but then again, Amazon used to just sell books. Facebook could evolve into many things. GigaOM’s Derrick Harris has already suggested that Facebook could be your next software vendor.

Source: http://gigaom.com/cloud/amazon-is-no-1-whos-next-in-cloud-computing/

Did you like this? Share it:

What kind of automated testing does Facebook do?

We do several kinds of testing. Some specifics:

  • For our PHP code, we have a suite of a few thousand test classes using the PHPUnit framework. They range in complexity from simple true unit tests to large-scale integration tests that hit our production backend services. The PHPUnit tests are run both by developers as part of their workflow and continuously by an automated test runner on dedicated hardware. Our developer tools automatically use code coverage data to run tests that cover the outstanding edits in a developer sandbox, and a report of test results is automatically included in our code review tool when a patch is submitted for review.
  • For browser-based testing of our Web code, we use the Watir framework. We have Watir tests covering a range of the site’s functionality, particularly focused on privacy—there are tons of "user X posts item Y and it should/shouldn’t be visible to user Z" tests at the browser level. (Those privacy rules are, of course, also tested at a lower level, but the privacy implementation being rock-solid is a critical priority and warrants redundant test coverage.)
  • In addition to the fully automated Watir tests, we have semi-automated tests that use Watir so humans can avoid the drudgery of filling out form fields and pressing buttons to get through UI flows, but can still examine what’s going on and validate that things look reasonable.
  • We’re starting to use JSSpec for unit-testing JavaScript code, though that’s still in its early stages at this point.
  • For backend services, we use a variety of test frameworks depending on the specifics of the services. Projects that we release as open source use open-source frameworks like Boost’s test classes or JUnit. Projects that will never be released to the outside world can use those, or can use an internally-developed C++ test framework that integrates tightly with our build system. A few projects use project-specific test harnesses. Most of the backend services are tied into a continuous integration / build system that constantly runs the test suites against the latest source code and reports the results into the results database and the notification system.
  • HipHop has a similar continuous-integration system with the added twist that it not only runs its own unit tests, but also runs all the PHPUnit tests. These results are compared with the results from the same PHP code base run under the plain PHP interpreter to detect any differences in behavior.

Our test infrastructure records results in a database and sends out email notifications on failure with developer-tunable sensitivity (e.g., you can choose to not get a notification unless a test fails continuously for some amount of time, or to be notified the instant a single failure happens.) The user interface for our test result browser is integrated with our bug/task tracking system, making it really easy to associate test failures with open tasks.

Source: http://www.quora.com/What-kind-of-automated-testing-does-Facebook-do

Did you like this? Share it:

Software Testing Book Giveaway

We’ve reached 10000 Facebook fans!! I’m so excited about reaching the 10,000 Facebook fans milestone and thankful to all of you because you are the ones that helped us to be here.

To celebrate this achievement I’m giving away a software testing book and one best book of the year (see details below). This giveaway will be open for a week starting from today 20th Nov 2011.

1) QuickTest Professional Unplugged: 2nd Edition

2) Steve Jobs: The Exclusive Biography

Simple one rule to be the lucky winners!
Just add SoftwareTestingHelp.com to your Google+ circle. Similar to Facebook fan page now Google has rolled out Google+ pages and I have created brand new Google+ page for SoftwareTestingHelp where you will quickly get latest software testing updates and resources to download.

Source: http://www.softwaretestinghelp.com/software-testing-book-giveaway/

Did you like this? Share it:

Make Skype calls to all your Facebook friends

04-4

Skype Ltd. has extended its partnership with Facebook Inc. by further integrating its Internet video calling service into the social network.

Skype is releasing updates that embed its software more directly into Facebook, allowing video chats across both networks.

Considering that Facebook has more than 800 million members and Skype has 170 million, the combination creates quite a global network.

"We’ve been on a mission to connect a billion users and with this, we take a big step closer to that," said Jonathan Rosenberg, Skype’s chief technology strategist.

The two companies teamed up in July to bring free video chatting to Facebook, a move that came on the heels of Google’s introduction of rival social network Google+, which included a group video feature called Hangouts.

Skype’s update is the next step of that integration and allows Skype members to initiate a Facebook-to-Facebook call within Skype, Rosenberg said. But there is still no group calling feature available.

Source: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2011/11/17/BUOG1M0MRC.DTL

Did you like this? Share it: