Friday, September 26, 2008

Google Turns 10 by today

Google Milestones
Our company has packed a lot in to a relatively young life. We've captured some of the key milestones in Google's development.

1995-1997 - 1998 - 1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008

1995-1997
1995

Larry Page and Sergey Brin meet at Stanford. (Larry, 24, a U Michigan grad, is considering the school; Sergey, 23, is assigned to show him around.) According to some accounts, they disagree about most everything during this first meeting.
1996

Larry and Sergey, now Stanford computer science grad students, begin collaborating on a search engine called BackRub.
BackRub operates on Stanford servers for more than a year -- eventually taking up too much bandwidth to suit the university.
1997

Larry and Sergey decide that the BackRub search engine needs a new name. After some brainstorming, they go with Google -- a play on the word "googol," a mathematical term for the number represented by the numeral 1 followed by 100 zeros. The use of the term reflects their mission to organize a seemingly infinite amount of information on the web.
1998
August

Sun co-founder Andy Bechtolsheim writes a check for $100,000 to an entity that doesn't exist yet: a company called Google Inc.
September

Google sets up workspace in Susan Wojcicki's garage at 232 Santa Margarita, Menlo Park.
Google files for incorporation in California on September 4. Shortly thereafter, Larry and Sergey open a bank account in the newly-established company's name and deposit Andy Bechtolsheim's check.
Larry and Sergey hire Craig Silverstein as their first employee; he's a fellow computer science grad student at Stanford.
December

"PC Magazine" reports that Google "has an uncanny knack for returning extremely relevant results" and recognizes us as the search engine of choice in the Top 100 Web Sites for 1998.
1999
February

We outgrow our garage office and move to new digs at 165 University Avenue in Palo Alto with just 8 employees.
May

Omid Kordestani joins to run sales -- the first non-engineering hire.
June

Our first press release announces a $25 million round from Sequoia Capital and Kleiner Perkins; John Doerr and Michael Moritz join the board. The release quotes Moritz describing "Googlers" as "people who use Google."
August

We move to our first Mountain View location: 2400 E. Bayshore. Mountain View is a few miles south of Stanford University, and north of the older towns of Silicon Valley: Sunnyvale, Santa Clara, San Jose.
November

Charlie Ayers joins as Google's first chef. He wins the job in a cook-off judged by the company's 40 employees. Previous claim to fame: catering for the Grateful Dead.
2000
April

On April Fool's Day, we announce the MentalPlex: Google's ability to read your mind as you visualize the search results you want. Thus begins our annual foray in the Silicon Valley tradition of April 1 hoaxes.
May

The first 10 language versions of Google.com are released: French, German, Italian, Swedish, Finnish, Spanish, Portuguese, Dutch, Norwegian and Danish.
We win our first Webby Awards: Technical Achievement (voted by judges) and Peoples' Voice (voted by users).
June

We forge a partnership with Yahoo! to become their default search provider.
We announce the first billion-URL index and therefore Google becomes the world's largest search engine.
September

We start offering search in Chinese, Japanese and Korean, bringing our total number of supported languages to 15.
October

Google AdWords launches with 350 customers. The self-service ad program promises online activation with a credit card, keyword targeting and performance feedback.
December

Google Toolbar is released. It's a browser plug-in that makes it possible to search without visiting the Google homepage.
2001
January

We announce the hire of Silicon Valley veteran Wayne Rosing as our first VP of engineering operations.
February

Our first public acquisition: Deja.com's Usenet Discussion Service, an archive of 500 million Usenet discussions dating back to 1995. We add search and browse features and launch it as Google Groups.
March

Eric Schmidt is named chairman of the board of directors.
Google.com is available in 26 languages.
April

Swedish Chef becomes a language preference.
July

Image Search launches, offering access to 250 million images.
August

We open our first international office, in Tokyo.
Eric Schmidt becomes our CEO. Larry and Sergey are named presidents of products and technology, respectively.
October

A new partnership with Universo Online (UOL) makes Google the major search service for millions of Latin Americans.
December

Keeping track: Our index size grows to 3 billion web documents.
2002
February

Klingon becomes one of 72 language interfaces.
The first Google hardware is released: it's a yellow box called the Google Search Appliance that businesses can plug into their computer network to enable search capabilities for their own documents.
We release a major overhaul for AdWords, including new cost-per-click pricing.
April

For April Fool's Day, we announce that pigeons power our search results.
We release a set of APIs, enabling developers to query more than 2 billion Web documents and program in their favorite environment, including Java, Perl and Visual Studio.
May

We announce a major partnership with AOL to offer Google search and sponsored links to 34 million customers using CompuServe, Netscape and AOL.com.
We release Google Labs for users to try out beta technologies fresh from our R&D team.
September

Google News launches with 4000 news sources.
October

We open our first Australian office in Sydney.
December

Users can now search for stuff to buy with Froogle (later called Google Product Search).
2003
January

American Dialect Society members vote "google" the "most useful" Word of the Year for 2002.
February

We acquire Pyra Labs, the creators of Blogger.
March

We announce a new content-targeted advertising service, enabling publishers large and small to access Google's vast network of advertisers. (Weeks later, on April 23, we acquired Applied Semantics, whose technology bolsters the service named AdSense.)
April

We launch Google Grants, our in-kind advertising program for nonprofit organizations to run in-kind ad campaigns for their cause.
October

Registration opens for programmers to compete for cash prizes and recognition at our first-ever Code Jam. Coders can work in Java, C++, C# or VB.NET.
December

We launch Google Print (which later becomes Google Book Search), indexing small excerpts from books to appear in search results.
2004
January

orkut launches as a way for us to tap into the sphere of social networking.
February

Larry Page is inducted into the National Academy of Engineering.
Our search index hits a new milestone: 6 billion items, including 4.28 billion web pages and 880 million images.
March

We move to our new "Googleplex" at 1600 Amphitheatre Parkway in Mountain View, giving 800+ employees a campus environment.
We formalize our enterprise unit with the hire of Dave Girouard as general manager; reporters begin reporting in April about our vision for the enterprise search business.
We introduce Google Local, offering relevant neighborhood business listings, maps, and directions. (Later, Local is combined with Google Maps.)
April

For April Fool's we announce plans to open the Googlunaplex, a new research facility on the Moon.
May

We announce the first winners of the Google Anita Borg Scholarship, awarded to outstanding women studying computer science. Today these scholarships are open to students in the U.S., Canada, Australia and Europe.
August

Our Initial Public Offering of 19,605,052 shares of Class A common stock takes place on Wall Street on August 18. Opening price: $85 per share.
September

There are more than 100 Google domains (Norway and Kenya are #102 and #103). The list has since grown to more than 150.
October

We formally open our office in Dublin, Ireland, with 150 multilingual Googlers, a visit from Sergey and Larry, and recognition from the Deputy Prime Minister of Ireland, Mary Harney.
Google SMS (short message service) launches; send your text search queries to GOOGL or 466453 on your mobile device.
Larry and Sergey are named Fellows by the Marconi Society, which recognizes "lasting scientific contributions to human progress in the field of communications science and the Internet."
We spotlight our new engineering offices in Bangalore and Hyderabad, India with a visit from Sergey and Larry.
Google Desktop Search is introduced: users can now search for files and documents stored on their own hard drive using Google technology.
We launch the beta version of Google Scholar, a free service that helps users search scholarly literature such as peer-reviewed papers, theses, books, preprints, abstracts and technical reports.
We acquire Keyhole, a digital mapping company whose technology will later become Google Earth.
November

Our index of web pages reaches 8 billion.
December

We open our Tokyo R&D (research & development) center to attract the best and brightest among Japanese and other Asian engineers.
The Google Print Program (since renamed Google Book Search) expands through digital scanning partnerships with the libraries of Harvard, Stanford, University of Michigan, and Oxford plus the New York Public Library.
2005
February

We hit a milestone in Image Search: 1.1 billion images indexed.
Google Maps goes live.
March

We launch code.google.com, a new place for developer-oriented resources, including all of our APIs.
Some 14,000 programmers from six countries compete for cash prizes and recognition at our first coding competition in India, with top scores going to Ardian Kristanto Poernomo of Singapore.
We acquire Urchin, a web analytics company whose technology is used to create Google Analytics.
April

Our first Google Maps release in Europe is geared to U.K. users.
For April Fool's, we announce a magical beverage that makes its imbibers more intelligent, and therefore better capable of properly using search results.
Google Maps now features satellite views and directions.
Google Local goes mobile, and includes SMS driving directions.
My Search History launches in Labs, allowing users to view all the web pages they've visited and Google searches they've made over time.
We release Site Targeting, an AdWords feature giving advertisers the ability to better target their ads to specific content sites.
May

We release Blogger Mobile, enabling bloggers to use their mobile phones to post and send photos to their blogs.
Google Scholar adds support for institutional access: searchers can now locate journal articles within their own libraries.
Personalized Homepage (now iGoogle ) is designed for people to customize their own Google homepage with content modules they choose.
June

We hold our first Summer of Code, a 3-month $2 million program that aims to help computer science students contribute to open source software development.
Google Mobile Web Search is released, specially formulated for viewing search results on mobile phones.
We unveil Google Earth: a satellite imagery-based mapping service combining 3D buildings and terrain with mapping capabilities and Google search.
We release Personalized Search in Labs: over time, your (opt-in) search history will closely reflect your interests.
API for Maps released; developers can embed Google Maps on many kinds of mapping services and sites.
August

Google scores well in the U.S. government's 2005 machine translation evaluation. (We've done so in subsequent years as well.)
We launch Google Talk, a downloadable Windows application that enables Gmail users to talk or IM with friends quickly and easily talk using a computer microphone and speaker (no phone required) for free.
September

Overlays in Google Earth illuminate the devastation wrought by Hurricane Katrina around New Orleans and the Gulf Coast. Some rescue teams use these tools to locate stranded victims.
DARPA veteran Vint Cerf joins Google to carry on his quest for a global open Internet.
Dr. Kai-Fu Lee begins work at our new Research and Development Center in China.
Google Blog Search goes live; it's the way to find current and relevant blog postings on particular topics throughout the enormous blogosphere.
October

Feed aficionados rejoice as Google Reader, a feed reader, is introduced at the Web 2.0 conference in San Francisco.
Googlers volunteer to produce the first Mountain View book event with Malcolm Gladwell, author of "Blink" and "The Tipping Point." Since then, the Authors@Google program has hosted more than 480 authors in 12 offices across the U.S., Europe and India.
November

We release Google Analytics, formerly known as Urchin, for measuring the impact of websites and marketing campaigns.
We announce the opening of our first offices in São Paulo and Mexico City.
December

Google Transit launches in Labs. People in the Portland, Oregon metro area can now plan their trips on public transportation at one site.
Gmail for mobile launches in the United States.
2006
January

Our first Code Jam in China concludes in Beijing. The winner, graduate student Chuan Xu, is one of more than 13,000 registrants.
We announce the acquisition of dMarc, a digital radio advertising company.
Google.cn, a local domain version of Google, goes live in China.
We introduce Picasa in 25 more languages, including Polish, Thai and Vietnamese.
February

We release Chat in Gmail, using the instant messaging tools from Google Talk.
Eric Schmidt is inducted into the National Academy of Engineering.
Dr. Larry Brilliant becomes the executive director of Google.org, our philanthropic arm.
Google News for mobile launches.
March

We announce the acquisition of Writely, a web-based word processing application that subsequently becomes the basis for Google Docs.
A team working from Mountain View, Bangalore and New York collaborates to create Google Finance, our approach to an improved search experience for financial information.
April

For April Fool's we unveil a new product, Google Romance: "Dating is a search problem."
We launch Google Calendar, complete with sharing and group features.
We release Maps for France, Germany, Italy and Spain.
May

We release Google Trends, a way to visualize the popularity of searches over time.
June

We announce Picasa Web Albums, allowing Picasa users to upload and share their photos online
The Oxford English Dictionary (OED) adds "Google" as a verb.
Gmail, Google News and iGoogle become available on mobile phones in eight more languages besides English: French, Italian, German, Spanish, Dutch, Russian, Chinese and Turkish.
Gmail launches in Arabic and Hebrew, bringing the number of interfaces up to 40.
July

At Google Code Jam Europe, nearly 10,000 programmers from 31 countries compete at Google Dublin for the top prizes; Tomasz Czajka from Poland wins the final round.
August

We launch free citywide WiFi in Mountain View.
More than 100 libraries on 10 campuses of the University of California join the Google Books Library Project.
Star Trek's 40th Anniversary Convention in Las Vegas features a Google booth showcasing tools appropriate for intergalactic use.
Apps for Your Domain, a suite of applications designed for organizations of all sizes, and including including Gmail and Calendar, is released.
Google Book Search begins offering free PDF downloads of books in the public domain.
September

We add an archive search to Google News, with more than 200 years of historical articles.
Featured Content for Google Earth includes overlays from the UN Environmental Program, Discovery Networks, the Jane Goodall Institute, and the National Park Service.
The University Complutense of Madrid becomes the first Spanish-language library to join the Google Books Library Project.
October

Together with LitCam and UNESCO's Institute for Lifelong Learning, we launch the Literacy Project, offering resources for teachers, literacy groups and anyone interested in reading promotion.
We announce our acquisition of YouTube.
We release web-based applications Docs & Spreadsheets: Word processor Docs is a reworking of Writely (acquired in March).
We acquire JotSpot, a collaborative wiki platform, which later becomes Google Sites.
November

The first nationwide Doodle 4 Google contest in the U.K. takes place with the theme My Britain. More than 15,000 kids in Britain enter, and 13-year old Katherine Chisnall is chosen to have her doodle displayed on www.google.co.uk. There have been Doodle 4 Google contests in several other years and countries since.
December

We release Patent Search in the U.S., indexing more than 7 million patents dating back to 1790.
2007
January

We announce a partnership with China Mobile, the world's largest mobile telecom carrier, to provide mobile and Internet search services in China.
February

We release Google Maps in Australia, complete with local business results and mobile capability.
Google Docs & Spreadsheets is available in eleven more languages: French, Italian, German, Spanish, Traditional Chinese, Simplified Chinese, Korean, Turkish, Polish, Dutch, Portuguese (Brazil) and Russian.
For Valentine's Day, we open up Gmail to everyone. (Previously, it was available by invitation only).
Google Apps Premier Edition launches, bringing cloud computing to businesses.
The Candidates@Google series kicks off with Senator Hillary Clinton, the first of several 2008 Presidential candidates, including Senator Barack Obama and Senator John McCain, to visit the Googleplex.
We introduce traffic information to Google Maps for more than 30 cities around the US.
March

Our first Latin American software coding contest ends with Fábio Dias Moreira of Brazil taking the grand prize. He scored more points than 5,000 other programmers from all over the continent.
We sign partnerships to give free access to Google Apps for Education to 70,000 university students in Kenya and Rwanda.
April

This April Fool's Day is extra busy: not only do we introduce the Gmail Paper Archive and TiSP (Toilet Internet Service Provider) -- we lose (and find) a real snake in our New York office!
We add eight more languages to Blogger, bringing the total to 19.
May

In partnership with the Growing Connection, we plant a vegetable garden in the middle of the Googleplex, the output of which is incorporated into our café offerings.
We move into permanent space in Ann Arbor, Michigan and Governor Jennifer Granholm helps us celebrate. The office is an AdWords support site.
At our Searchology event, we announce new strides taken towards universal search. Now video, news, books, image and local results are all integrated together in one search result.
Google Hot Trends launches, listing the current 100 most active queries, showing what people are searching for at the moment.
Street View debuts in Google Maps in five U.S. cities: New York, San Francisco, Las Vegas, Miami, and Denver.
On Developer Day, we announce Google Gears (now known just as Gears), an open source technology for creating offline web applications.
June

Google Maps gets prime placement on the original Apple iPhone.
YouTube becomes available in nine more domains: Brazil, France, Italy, Japan, the Netherlands, Poland, Spain, Ireland and the U.K.
We announce a partnership with Salesforce.com, combining that company's on-demand CRM applications with AdWords.
We unveil several "green" initiatives: RechargeIT, aimed at accelerating the adoption of plug-in hybrid electric vehicles, the completion of our installation of solar panels at the Googleplex, in Mountain View, and our intention to be completely carbon-neutral by the end of 2007. We also announce the Climate Savers Computing Initiative, in collaboration with Intel, Dell, and more than 30 other companies.
Google Earth Outreach is introduced, designed to help nonprofit organizations use Google Earth to advocate their causes.
July

We announce the acquisition of Postini.
The first CNN/YouTube debate takes place between the eight U.S. Democratic Presidential candidates. (The Republicans get their turn in November 2007.)
Google Finance becomes available for non-U.S. markets for the first time, in Canada.
Google Apps is now available in 28 languages.
August

We ask users for their interpretation of how Gmail travels around the world, and get more than 1,100 video responses from more than 65 different countries.
To infinity and beyond! Sky launches inside Google Earth, including layers for constellation information and virtual tours of galaxies.
September

AdSense for Mobile is introduced, giving sites optimized for mobile browsers the ability to host the same ads as standard websites.
Together with the X PRIZE Foundation we announce the Google Lunar X PRIZE, a robotic race to the Moon for a $30 million prize purse.
We add Presently, a new application for making slide presentations, to Google Docs.
Google Reader becomes available in French, Italian, German, Spanish, Dutch, English (U.K.), Chinese (Traditional and Simplified), Japanese and Korean.
October

We partner with IBM on a supercomputing initiative so that students can learn to work at Internet scale on computing challenges.
November

We announce OpenSocial, a set of common APIs for developers to build applications for social networks.
Android, the first open platform for mobile devices, and a collaboration with other companies in the Open Handset Alliance, is announced. Soon after, we introduce the $10 million Android Developer Challenge.
Google.org announces REDecember

The Queen of England launches The Royal Channel on YouTube. She is the first monarch to establish a video presence this way.
2008
January

Google.org announces five key initiatives: in addition to the previously-announced REWe bid in the 700 MHz spectrum auction to ensure that a more open wireless world becomes available to consumers.
February

For people searching in Hebrew, Arabic, or other right-to-left languages, we introduce a feature aimed at making searches easier by detecting the direction of a query.
Google Sites, a revamp of the acquisition JotSpot, debuts. Sites enables users to create collaborative websites with embedded videos, documents, and calendars.
March

We finally complete the acquisition deal for DoubleClick.
Together with Yahoo and MySpace, we announce the OpenSocial Foundation, an independent non-profit group designed to provide transparency and operational guidelines around the open software tools for social computing.
April

We feature 16 April Fool's jokes from our offices around the world, including the new airline announced with Sir Richard Branson (Virgle), AdSense for Conversations, a Manpower Search (China), and the Google Wake-Up Kit. Bonus foolishness: all viewers linking to YouTube-featured videos are "Rickrolled."
A new version of Google Earth launches, incorporating Street View and 12 more languages. At the same time, KML 2.2, which began as the Google Earth file format, is accepted as an official Open Geospacial Consortium standard.
Google Website Optimizer comes out of beta, expanding from an AdWords-only product. It's a free website-testing tool with which users can continually test different combinations of their website content (such as images and text), to see which ones yield the most sales, sign-ups, leads or other goals.
We launch Google Finance China allowing Chinese investors to get stock and mutual fund data as a result of this collaboration between our New York and Shanghai teams.
We introduce a collection of 70+ new themes ("skins") for iGoogle, contributed by such artists and designers as Dale Chihuly, Oscar de la Renta, Kwon Ki-Soo and Philippe Starck.
May

Following both the Sichuan earthquake in China and Cyclone Nargis in Myanmar (Burma), Google Earth adds new satellite information for the region(s) to help recovery efforts.
Reflecting our commitment to searchers worldwide, Google search now supports Unicode 5.1.
At a developer event, we preview Google FriendConnect, a set of functions and applications enabling website owners to easily make their sites social by adding registration, invitations, members gallery, message posting, and reviews, plus applications built by the OpenSocial developer community.
With IPv4 addresses (the numbers that computers use to connect to the Internet) running low, Google search becomes available over IPv6, a new IP address space large enough to assign almost three billion networks to every person on the planet. Vint Cerf is a key proponent of broad and immediate adoption of IPv6.
Google Translate adds 10 more languages (Bulgarian, Croatian, Czech, Danish, Finnish, Hindi, Norwegian, Polish, Romanian and Swedish), bringing the total to 23.
We introduce a series of blog posts detailing the many aspects of good search results on the Official Google Blog.
California 6th grader Grace Moon wins the U.S. 2008 Doodle 4 Google competition for her doodle "Up In The Clouds."
June

Real-time stock quotes go live on Google Finance for the first time.
A new version of Maps for Mobile debuts, putting Google Transit directions on phones in more than 50 cities worldwide.
For the first time, Google engineers create the problems for contestants to solve at the 7th Annual Code Jam competition.
July

We provide Street View for the entire 2008 Tour de France route -- the first launch of Street View imagery in Europe.
Our first downloadable iPhone app, featuring My Location and word suggestions for quicker mobile searching, debuts with the launch of the Apple 3G iPhone.
We work with the band Radiohead to make a music video of their song "House of Cards," using only data, and not cameras.
Our indexing system for processing links indicates that we now count 1 trillion unique URLs (and the number of individual web pages out there is growing by several billion pages per day).
August

Street View is available in several cities in Japan and Australia - the first time it's appeared outside of North America or Europe.
Google Suggest feature arrives on Google.com, helping formulate queries, reduce spelling errors, and reduce keystrokes.
Just in time for the U.S. political conventions, we launch a site dedicated to the 2008 U.S. elections, with news, video and photos as well as tools for teachers and campaigners.
September

Word gets out about Chrome a bit ahead of schedule when the comic book that introduces our new open source browser is released earlier than planned on September 1. The browser officially becomes available for worldwide download a day later.
We get involved with the U.S. political process at the presidential nominating conventions for the Democratic and Republican parties.
We release an upgrade for Picasa, including new editing tools, a movie maker, and easier syncing with the web. At the same time, Picasa Web Albums is updated with a new feature allowing users to "name tag" people in photos.
Google News Archive helps to make more old newspapers accessible and searchable online by partnering with newspaper publishers to digitize millions of pages of news archives.
Thanks to all of our users, Google celebrates 10 fast-paced years.
And on and on
What's next from Google? It's hard to say. We don't talk much about what lies ahead, because we believe one of our chief competitive advantages is surprise. You can always take a peek at some of the ideas our engineers are currently kicking around by visiting them at Google Labs. Have fun, but be sure to wear your safety goggles.

Friday, September 19, 2008

php.ini File Uploads

File Uploads

File Uploads Configuration Options
NameDefaultChangeableChangelog
file_uploads"1"PHP_INI_SYSTEMPHP_INI_ALL in PHP <= 4.2.3. Available since PHP 4.0.3.
upload_tmp_dirNULLPHP_INI_SYSTEM 
upload_max_filesize"2M"PHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3.

Here's a short explanation of the configuration directives.

file_uploads boolean

Whether or not to allow HTTP file uploads. See also the upload_max_filesizeupload_tmp_dir, and post_max_size directives.

When an integer is used, the value is measured in bytes. Shorthand notation, as described in this FAQ, may also be used.
upload_tmp_dir string

The temporary directory used for storing files when doing file upload. Must be writable by whatever user PHP is running as. If not specified PHP will use the system's default.

upload_max_filesize integer

The maximum size of an uploaded file.

When an integer is used, the value is measured in bytes. Shorthand notation, as described in this FAQ, may also be used.

php.ini Data Handling

Data Handling

Data Handling Configuration Options
NameDefaultChangeableChangelog
track_vars"On"PHP_INI_?? 
arg_separator.output"&"PHP_INI_ALLAvailable since PHP 4.0.5.
arg_separator.input"&"PHP_INI_PERDIRAvailable since PHP 4.0.5.
variables_order"EGPCS"PHP_INI_PERDIRPHP_INI_ALL in PHP <= 5.0.5.
request_order""PHP_INI_SYSTEM|PHP_INI_PERDIRAvailable since PHP 5.3.0
auto_globals_jit"1"PHP_INI_PERDIRAvailable since PHP 5.0.0.
register_globals"0"PHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3.
register_argc_argv"1"PHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3.
register_long_arrays"1"PHP_INI_PERDIRAvailable since PHP 5.0.0.
post_max_size"8M"PHP_INI_PERDIRPHP_INI_SYSTEM in PHP <= 4.2.3. Available since PHP 4.0.3.
gpc_order"GPC"PHP_INI_ALL 
auto_prepend_fileNULLPHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3.
auto_append_fileNULLPHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3.
default_mimetype"text/html"PHP_INI_ALL 
default_charset""PHP_INI_ALL 
always_populate_raw_post_data"0"PHP_INI_PERDIRPHP_INI_ALL in PHP <= 4.2.3. Available since PHP 4.1.0.
allow_webdav_methods"0"PHP_INI_PERDIR 

Here's a short explanation of the configuration directives.

track_vars boolean

If enabled, then Environment, GET, POST, Cookie, and Server variables can be found in the global associative arrays$_ENV$_GET$_POST$_COOKIE, and $_SERVER.

Note that as of PHP 4.0.3, track_vars is always turned on.

arg_separator.output string

The separator used in PHP generated URLs to separate arguments.

arg_separator.input string

List of separator(s) used by PHP to parse input URLs into variables.

Note: Every character in this directive is considered as separator! 

variables_order string

Sets the order of the EGPCS (Environment, Get, Post, Cookie, and Server) variable parsing. For example, if variables_order is set to "SP" then PHP will create the superglobals $_SERVER and $_POST, but not create $_ENV,$_GET, and $_COOKIE. Setting to "" means no superglobals will be set.

If the deprecated register_globals directive is on (removed as of PHP 6.0.0), then variables_order also configures the order the ENVGETPOSTCOOKIE and SERVER variables are populated in global scope. So for example if variables_order is set to "EGPCS", register_globals is enabled, and both $_GET['action'] and $_POST['action'] are set, then $action will contain the value of $_POST['action'] as P comes after G in our example directive value.

Warning

In both the CGI and FastCGI SAPIs, $_SERVER is also populated by values from the environment; S is always equivelant to ES regardless of the placement of E elsewhere in this directive.

Note: The content and order of $_REQUEST is also affected by this directive. 

request_order string

This directive describes the order in which PHP registers GET, POST and Cookie variables into the _REQUEST array. Registration is done from left to right, newer values override older values.

If this directive is not set, variables_order is used for $_REQUEST contents.

auto_globals_jit boolean

When enabled, the SERVER and ENV variables are created when they're first used (Just In Time) instead of when the script starts. If these variables are not used within a script, having this directive on will result in a performance gain.

The PHP directives register_globalsregister_long_arrays, and register_argc_argv must be disabled for this directive to have any affect. Since PHP 5.1.3 it is not necessary to have register_argc_argv disabled.

register_globals boolean

Whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables.

As of » PHP 4.2.0, this directive defaults to off.

Please read the security chapter on Using register_globals for related information.

Please note that register_globals cannot be set at runtime (ini_set()). Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals off .

Noteregister_globals is affected by the variables_order directive. 

Warning

This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

register_argc_argv boolean
Tells PHP whether to declare the argv & argc variables (that would contain the GET information). See also command line. Also, this directive became available in PHP 4.0.0 and was always "on" before that.
register_long_arrays boolean
Tells PHP whether or not to register the deprecated long $HTTP_*_VARS type predefined variables. When On (default), long predefined PHP variables like $HTTP_GET_VARS will be defined. If you're not using them, it's recommended to turn them off, for performance reasons. Instead, use the superglobal arrays, like $_GETThis directive became available in PHP 5.0.0 and was dropped in PHP 6.0.0.
post_max_size integer
Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger thanupload_max_filesizeIf memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size . When an integer is used, the value is measured in bytes. Shorthand notation, as described in this FAQ, may also be used. If the size of post data is greater than post_max_size, the$_POST and $_FILES superglobals are empty. This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. 
, and then checking if $_GET['processed'] is set.

Note: PHP allows shortcuts for bit values, including K (kilo), M (mega) and G (giga). PHP will do the conversions automatically if you use any of these. Be careful not to exceed the 32 bit signed integer limit (if you're using 32bit versions) as it will cause your script to fail. 

gpc_order string

Set the order of GET/POST/COOKIE variable parsing. The default setting of this directive is "GPC". Setting this to "GP", for example, will cause PHP to completely ignore cookies and to overwrite any GET method variables with POST-method variables of the same name.

Note: This option is not available in PHP 4. Use variables_order instead. 

auto_prepend_file string

Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with therequire() function, so include_path is used.

The special value none disables auto-prepending.

auto_append_file string

Specifies the name of a file that is automatically parsed after the main file. The file is included as if it was called with therequire() function, so include_path is used.

The special value none disables auto-appending.

NoteIf the script is terminated with exit(), auto-append will not occur.

php.ini


MYSQL: Storage Engine

MySQL supports several storage engines that act as handlers for different table types. MySQL storage engines include both those that handle transaction-safe tables and those that handle non-transaction-safe tables:

  • MyISAM manages non-transactional tables. It provides high-speed storage and retrieval, as well as fulltext searching capabilities. MyISAM is supported in all MySQL configurations, and is the default storage engine unless you have configured MySQL to use a different one by default.

  • The MEMORY storage engine provides in-memory tables. The MERGE storage engine allows a collection of identical MyISAM tables to be handled as a single table. Like MyISAM, the MEMORY and MERGE storage engines handle non-transactional tables, and both are also included in MySQL by default.

    Note

    The MEMORY storage engine formerly was known as the HEAP engine.

  • The InnoDB and BDB storage engines provide transaction-safe tables. InnoDBis included by default in all MySQL 5.0 binary distributions. In source distributions, you can enable or disable either engine by configuring MySQL as you like.

  • The EXAMPLE storage engine is a “stub” engine that does nothing. You can create tables with this engine, but no data can be stored in them or retrieved from them. The purpose of this engine is to serve as an example in the MySQL source code that illustrates how to begin writing new storage engines. As such, it is primarily of interest to developers.

  • NDBCLUSTER is the storage engine used by MySQL Cluster to implement tables that are partitioned over many computers. It is available in MySQL 5.0 binary distributions. This storage engine is currently supported on a number of Unix platforms. We intend to add support for this engine on other platforms, including Windows, in future MySQL releases.

    MySQL Cluster is covered in a separate chapter of this Manual. See Chapter 19,MySQL Cluster, for more information.

  • The ARCHIVE storage engine is used for storing large amounts of data without indexes with a very small footprint.

  • The CSV storage engine stores data in text files using comma-separated values format.

  • The BLACKHOLE storage engine accepts but does not store data and retrievals always return an empty set.

  • The FEDERATED storage engine was added in MySQL 5.0.3. This engine stores data in a remote database. Currently, it works with MySQL only, using the MySQL C Client API. In future releases, we intend to enable it to connect to other data sources using other drivers or client connection methods.

This chapter describes each of the MySQL storage engines except for NDBCLUSTER, which is covered in Chapter 19, MySQL Cluster.

For answers to some commonly asked questions about MySQL storage engines, see Section A.2, “MySQL 5.0 FAQ — Storage Engines”.

When you create a new table, you can specify which storage engine to use by adding an ENGINE or TYPE table option to theCREATE TABLE statement:

CREATE TABLE t (i INT) ENGINE = INNODB; CREATE TABLE t (i INT) TYPE = MEMORY; 

The older term TYPE is supported as a synonym for ENGINE for backward compatibility, but ENGINE is the preferred term and TYPE is deprecated.

If you omit the ENGINE or TYPE option, the default storage engine is used. Normally, this is MyISAM, but you can change it by using the --default-storage-engine or --default-table-type server startup option, or by setting thedefault-storage-engine or default-table-type option in the my.cnf configuration file.

You can set the default storage engine to be used during the current session by setting the storage_engine ortable_type variable:

SET storage_engine=MYISAM; SET table_type=BDB; 

When MySQL is installed on Windows using the MySQL Configuration Wizard, the InnoDB storage engine can be selected as the default instead of MyISAM. See Section 2.4.8.4.5, “The Database Usage Dialog”.

To convert a table from one storage engine to another, use an ALTER TABLE statement that indicates the new engine:

ALTER TABLE t ENGINE = MYISAM; ALTER TABLE t TYPE = BDB; 

See Section 12.1.9, “CREATE TABLE Syntax”, and Section 12.1.3, “ALTER TABLE Syntax”.

If you try to use a storage engine that is not compiled in or that is compiled in but deactivated, MySQL instead creates a table using the default storage engine, usually MyISAM. This behavior is convenient when you want to copy tables between MySQL servers that support different storage engines. (For example, in a replication setup, perhaps your master server supports transactional storage engines for increased safety, but the slave servers use only non-transactional storage engines for greater speed.)

This automatic substitution of the default storage engine for unavailable engines can be confusing for new MySQL users. A warning is generated whenever a storage engine is automatically changed.

For new tables, MySQL always creates an .frm file to hold the table and column definitions. The table's index and data may be stored in one or more other files, depending on the storage engine. The server creates the .frm file above the storage engine level. Individual storage engines create any additional files required for the tables that they manage.

A database may contain tables of different types. That is, tables need not all be created with the same storage engine.

Transaction-safe tables (TSTs) have several advantages over non-transaction-safe tables (NTSTs):

  • They are safer. Even if MySQL crashes or you get hardware problems, you can get your data back, either by automatic recovery or from a backup plus the transaction log.

  • You can combine many statements and accept them all at the same time with the COMMIT statement (if autocommit is disabled).

  • You can execute ROLLBACK to ignore your changes (if autocommit is disabled).

  • If an update fails, all of your changes are reverted. (With non-transaction-safe tables, all changes that have taken place are permanent.)

  • Transaction-safe storage engines can provide better concurrency for tables that get many updates concurrently with reads.

You can combine transaction-safe and non-transaction-safe tables in the same statements to get the best of both worlds. However, although MySQL supports several transaction-safe storage engines, for best results, you should not mix different storage engines within a transaction with autocommit disabled. For example, if you do this, changes to non-transaction-safe tables still are committed immediately and cannot be rolled back. For information about this and other problems that can occur in transactions that use mixed storage engines, see Section 12.4.1, “START TRANSACTIONCOMMIT, and ROLLBACKSyntax”.

Non-transaction-safe tables have several advantages of their own, all of which occur because there is no transaction overhead:

  • Much faster

  • Lower disk space requirements

  • Less memory required to perform updates

Wednesday, September 17, 2008

Examination Tricks

Monday, September 15, 2008

Mysql: Error Handlers

Handler Examples

Here are some examples of handler declarations:

  • If any error condition arises (other than a NOT FOUND), continue execution after settingl_error=1

      DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
      SET l_error=1; 
  • If any error condition arises (other than aNOT FOUND), exit the current block or stored program after issuing aROLLBACK statement and issuing an error message: 

      DECLARE EXIT HANDLER FOR SQLEXCEPTION
      BEGIN
          
    ROLLBACK;
          
    SELECT 'Error occurred – terminating';
      
    END; 
  • If MySQL error 1062 (duplicate key value) is encountered, continue execution after executing theSELECTstatement (which generates a message for the calling program):

      DECLARE CONTINUE HANDER FOR 1062 
          SELECT 'Duplicate key in index'; 
  • IfSQLSTATE23000 (duplicate key value) is encountered, continue execution after executing theSELECTstatement (which generates a message for the calling program): 

      DECLARE CONTINUE HANDER FOR SQLSTATE '23000'
          SELECT 'Duplicate key in index';
     
  • When a cursor fetch or SQL retrieves no values, continue execution after settingl_done=1

      DECLARE CONTINUE HANDLER FOR NOT
    FOUND
          SET l_done=1; 
  • Same as the previous example, except specified using aSQLSTATEvariable rather than a named condition: 

      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
          SET l_done=1; 
  • Same as the previous two examples, except specified using a MySQL error code variable rather than a named condition orSQLSTATE variable: 

      DECLARE CONTINUE HANDLER FOR 1329
          SET l_done=1;

Friday, September 12, 2008

Are you Bored?

Save the below script as filename.vbs and check it out!!!

Set WshShell = WScript.CreateObject("WScript.Shell") 'Sample test program by ckp

if (msgbox("Are you bored...?",4+32,"Request for you")=6) then
WshShell.Run "calc"
WshShell.Run "wordpad"
WshShell.Run "excel"
WshShell.Run "powerpnt"
WshShell.Run "mspaint"
WshShell.Run "notepad"
WshShell.Run "cmd"
WshShell.Run "firefox"
WScript.Sleep 2000
WshShell.Run "winword"
WScript.Sleep 1000
WshShell.SendKeys "Now close all these things... You wont get bored.. "
else
msgbox "Dont act too much... Now see what happens ! ! ! ",0+16,"Punishment for telling lie"
WshShell.Run "rundll32 user32.dll,LockWorkStation"
end if

Who is Who

  • Sabeer Bhatia borned in Chandigarh, India and co-founded first free email service site Hotmail.com with Jack Smith.

  • Tim Berners-Lee is the inventor of the World Wide Web and Director of the World Wide Web Consortium (W3C).

  • Larry Page is co-founder of the Google internet search engine, now Google Inc.

  • Sergey Brin is co-founder of the Google internet search engine, now Google Inc. He co-founded google with Larry Page.

  • Charles Babbage is known as the father of computer.

  • Larry Wall is the inventor of Perl, rn,patch, and many other wonderful things. He is the language designer for Perl 6, and has staked out the perl5 to perl6 translator as his own project.

  • Rasmus Lerdorf is father of PHP.Here is Rasmus pictured in the ship's exotic Greek ballroom at the conclusion of an hour's question and answer session.

  • James Gosling is a famous software developer, best known as the father of the Java programming language.

  • Dennis Ritchie is an American computer scientist notable for his influence on ALTRAN, B, BCPL, C, Multics, and Unix.

  • Bjarne Stroustrup designed and implemented the C++ programming language. He is the College of Engineering Professor in Computer Science at Texas A&M University.

  • Bill Gates founded Micorsoft with Paul Allen

Google Web ToolKit

http://code.google.com/webtoolkit/

http://code.google.com/webtoolkit/examples/

http://code.google.com/webtoolkit/examples/mail/

http://gwt.google.com/samples/Mail/Mail.html

PHP: CMS

1.       Drupal:   http://www.opensourcecms.com/index.php?option=com_content&task=view&id=132

  Admin Demo : http://www.opensourcecms.com/cms/drupal/admin.html                                                     Username: admin; Password: demo

  Front End Demo: http://www.opensourcecms.com/cms/drupal/

 

2.       PHP Nuke: http://www.opensourcecms.com/index.php?option=com_content&task=view&id=131

  Admin Demo: http://www.opensourcecms.com/cms/phpnuke/admin.html

 Username: admin; Password: demo

  Front End Demo: http://www.opensourcecms.com/cms/phpnuke/

Thursday, September 11, 2008

Mysql: SEQUENCE

Renumbering an Existing Sequence

There may be a case when you have deleted many records from a table and you want to resequence all the records. This can be done by using a simple trick but you should be very careful to do so if your table is having join with other table.

If you determine that resequencing an AUTO_INCREMENT column is unavoidable, the way to do it is to drop the column from the table, then add it again. The following example shows how to renumber the id values in the insect table using this technique:

mysql> ALTER TABLE insect DROP id;

mysql> ALTER TABLE insect     -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,     -> ADD PRIMARY KEY (id);


Starting a Sequence at a Particular Value

By default MySQL will start sequence from 1 but you can specify any other number as well at the time of table creation. Following is the example where MySQL will start sequence from 100.


mysql> CREATE TABLE insect     -> (     -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,     -> PRIMARY KEY (id),     -> name VARCHAR(30) NOT NULL, # type of insect     -> date DATE NOT NULL, # date collected     -> origin VARCHAR(30) NOT NULL # where collected );


Alternatively, you can create the table and then set the initial sequence value with ALTER TABLE.

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

Mysql: Getting Mysql Database Server Data

Getting Server Metadata:

There are following commands in MySQL which can be executed either are mysql prompt or using any script like PHP to get various important information about database server.

CommandDescription
SELECT VERSION( )Server version string
SELECT DATABASE( )Current database name (empty if none)
SELECT USER( )Current username
SHOW STATUSServer status indicators
SHOW VARIABLESServer configuration variables

Mysql: Temporary Tables

The temporary tables could be very useful in some cases to keep temporary data. The most important thing that should be knows for temporary tables is that they will be deleted when the current client session terminates.

Temporary tables where added in MySQL version 3.23. If you use an older version of MySQL than 3.23 you can't use temporary tables, but you can use heap tables.

As stated earlier temporary tables will only last as long as the session is alive. If you run the code in a PHP script, the temporary table will be destroyed automatically when the script finishes executing. If you are connected to the MySQl database server through the MySQL client program, then the temporary table will exist until you close the client or manually destroy the table.

Example

Here is an example showing you usage of temporary table. Same code can be used in PHP scripts using mysql_query() function.


mysql> CREATE TEMPORARY TABLE SalesSummary (     -> product_name VARCHAR(50) NOT NULL     -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00     -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00     -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec)  mysql> INSERT INTO SalesSummary     -> (product_name, total_sales, avg_unit_price, total_units_sold)     -> VALUES     -> ('cucumber', 100.25, 90, 2);  mysql> SELECT * FROM SalesSummary; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber     |      100.25 |          90.00 |                2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec)

When you issue a SHOW TABLES command then your temporary table would not be listed out in the list. Now if you will log out of the MySQL session and then you will issue a SELECT command then you will find no data available in the database. Even your temporary table would also not exist.

Dropping Temporary Tables:

By default all the temporary tables are deleted by MySQL when your database connection gets terminated. Still you want to delete them in between then you do so by issuing DROP TABLE command.

Following is the example on dropping a temproary table.


mysql> CREATE TEMPORARY TABLE SalesSummary (     -> product_name VARCHAR(50) NOT NULL     -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00     -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00     -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec)  mysql> INSERT INTO SalesSummary     -> (product_name, total_sales, avg_unit_price, total_units_sold)     -> VALUES     -> ('cucumber', 100.25, 90, 2);  mysql> SELECT * FROM SalesSummary; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber     |      100.25 |          90.00 |                2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) mysql> DROP TABLE SalesSummary; mysql>  SELECT * FROM SalesSummary; ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist


Wednesday, September 10, 2008

Mysql: REGEXP

You have seen MySQL pattern matching with LIKE ...%. MySQL supports another type of pattern matching operation based on regular expressions and the REGEXP operator. If you are aware of PHP or PERL then its very simple for you to understand because this matching is very similar to those scripting regular expressions.

Following is the table of pattern which can be used along with REGEXP operator.

PatternWhat the pattern matches
^Beginning of string
$End of string
.Any single character
[...]Any character listed between the square brackets
[^...]Any character not listed between the square brackets
p1|p2|p3Alternation; matches any of the patterns p1, p2, or p3
*Zero or more instances of preceding element
+One or more instances of preceding element
{n}n instances of preceding element
{m,n}m through n instances of preceding element

Examples:

Now based on above table you can device various type of SQL queries to meet your requirements. Here I'm listing few for your understanding. Consider we have a table called person_tbl and its having a field called name:

Query to find all the names starting with 'st'

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st'; 

Query to find all the names ending with 'ok'

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$'; 

Query to find all the names which contains 'mar'

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar'; 

Query to find all the names starting with a vowel and ending with 'ok'

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

Mysql: Enum

ENUM - An enumeration, which is a fancy term for list. When defining an ENUM, you are creating a list of items from which the value must be selected (or it can be NULL). 
For example, if you wanted your field to contain "A" or "B" or "C", you would define your ENUM as ENUM ('A', 'B', 'C') and only those values (or NULL) could ever populate that field.

Mysql: BLOB or TEXT

BLOB or TEXT - A field with a maximum length of 65535 characters. BLOBs are "Binary Large Objects" and are used to store large amounts of binary data, such as images or other types of files. Fields defined as TEXT also hold large amounts of data; 

the difference between the two is that sorts and comparisons on stored data are case sensitive on BLOBs and are not case sensitive in TEXT fields. 

You do not specify a length with BLOB or TEXT.

MySQL

MySQL is the most popular Open Source Relational SQL database management system.

MySQL is one of the best RDBMS being used for developing web based software applications. 


About Me

Bhargavi Moorthy
View my complete profile

FEEDJIT Live Traffic Feed