<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-8561868508709777690</id><updated>2010-01-29T09:14:36.719Z</updated><title type='text'>Coding coder code</title><subtitle type='html'>PHP developer Thales Jacobi. Some of my work and the web related topics that I'm interested at the moment. AJAX, with jQuery, high performance MySQL, XML and RDF/XML parsing and understanding, SEO and more Web stuff.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/index.php'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.thalesjacobi.com/atom.xml'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-4844673292478688297</id><published>2010-01-20T10:00:00.001Z</published><updated>2010-01-20T10:00:06.266Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Toolbar</title><content type='html'>&lt;p&gt;The Google Toolbar is a widget designed to put access to some of Google's most popular features right at your fingertips by adding a toolbar to your Internet browser. Available for Internet Explorer and Firefox, the Google Toolbar provides easy access to Google's search function, currently the most-used Internet application on the planet. The search filter is equipped with the same autocomplete function available on Google's web site. Access to Google's e-mail service GMail is also included, as is access to Google Bookmarks and their page translation service.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;One of the more controversial additions to the Toolbar is the Google Sidewiki, which is a way for viewers of a web site to leave comments about any page on the site that are viewable to other users of the Google Toolbar. This is controversial because this functionality is provided regardless of the intention of the web site owner. A web site owner has no way to moderate, regulate or prevent discussion of one of their pages on the Toolbar. Google does not allow web site owners to opt-out of the Sidewiki working on their web site.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Why use the Google Toolbar&lt;/h2&gt;&lt;p&gt;The Google toolbar is much like a carpenters tool belt, he uses it so that all of his useful tools are right there at his fingertips. This is also true of the Google toolbar. The Google toolbar installs right into your browser and makes your everyday computing tasks much easier and faster.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The search box helps by offering helpful searches as well as correcting spelling errors.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Bookmarking is easy and what’s even better is you can access your bookmarks from any computer, anywhere.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Translations: a unique feature of the toolbar that allows you translate any webpage into the language of your choice. Just click the translation button and chose what language you want the page displayed in. This is very nice for sharing your favorite pages with those who may not speak your language.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The Google toolbar is fully customizable to suit your needs and the best part is that it’s completely free. It can be hard to find such useful tools that are both free and easy to use. Google toolbar is just that. Download this small application and discover for yourself how much fun this toolbar can make your daily computing tasks.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-4844673292478688297?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/4844673292478688297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-toolbar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4844673292478688297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4844673292478688297'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-toolbar.html' title='Google Toolbar'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-9186576091092237312</id><published>2010-01-19T10:00:00.000Z</published><updated>2010-01-19T10:00:04.825Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Analytics</title><content type='html'>&lt;p&gt;Google Analytics without a doubt is one free tool no webmaster should be without. This free tool from Google lets you do so many different things to see how your website is performing. Once you sign up for Google Analytics most people never use it again and that is a big mistake. It is a suite of wonderful tracking tools that will help your website produce better results and save you money in the process. Let us look at some of the tools available from Google Analytics that you will want to use on a daily basis to get better results.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;No matter if, you have a blog or a website knowing where your traffic is coming from is important. If you are paying for traffic this valuable resource can save you money as well. You will be able to tell where everyone is coming from when they visit your website or blog. That will help you spend more wisely when buying traffic. The second invaluable tool you will love is seeing what keywords are working for you. By knowing, which keywords draw visitors you can apply marketing campaigns better as well.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Using Google Analytics To Help Your Website Or Blog Grow&lt;/h2&gt;&lt;p&gt;Google Analytics also lets you see what countries your traffic is coming from. Many people do not realize how important that is. You can target audiences more readily when you know where they happen to be coming from. Probably one of my favorite parts of Google Analytics is the new vs. returning visitors. Everyone loves new visitors to their website or blog and this free tool let's do exactly that. Without a doubt, Google Analytics is your one stop-tracking suite that is very free.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-9186576091092237312?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/9186576091092237312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-analytics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/9186576091092237312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/9186576091092237312'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-analytics.html' title='Google Analytics'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-3328746156449995263</id><published>2010-01-18T10:00:00.001Z</published><updated>2010-01-18T10:00:06.001Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Voice</title><content type='html'>&lt;p&gt;Google voice was bought by Google in 2007, while its availability and progression has been a work in progress.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Although nearing perfection, its availability is somewhat limited. Intended to provide a single phone number to be used as a main for call forwarding, Google voice is offering an easier phone system to the common subscriber who will have the availability to keep track of phone calls even if the phone line is not present. This will introduce call forwarding at its very easiest.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Benefits include being able to check voicemail and viewing calls on the web. Also, the ability to record phone calls by pressing a single numeric button is useful. Many cell phones limit voice recording or just don't give the option.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-3328746156449995263?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/3328746156449995263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-voice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/3328746156449995263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/3328746156449995263'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-voice.html' title='Google Voice'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-1087528068650428872</id><published>2010-01-15T10:00:00.000Z</published><updated>2010-01-15T10:00:04.464Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Scholar</title><content type='html'>&lt;p&gt;Google Scholar, a subset of the Google search index, premiered in 2004, offering scholarly literature across a multitude of disciplines and mediums. Despite its ambitious multi-disciplinary approach, medicine and social science are considered by far the most covered subjects, and although Google frequently offers full-text versions of these articles, some may be limited to abstracts, citation format, or require purchase for full view online.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Books that are not available in full-text online may be located in the public library by accessing the "find in a library" link in google Books. Google offers a refined "Advanced Search" option for Google Scholar, allowing the search of specific collections, authors, publications, and publication dates. In late 2009 Google announced that it would be including full-text legal opinions from state and federal courts, specifically searchable in the "Advanced Search" option.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-1087528068650428872?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/1087528068650428872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-scholar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1087528068650428872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1087528068650428872'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-scholar.html' title='Google Scholar'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-5480380702348472612</id><published>2010-01-14T15:38:00.000Z</published><updated>2010-01-14T15:38:55.910Z</updated><title type='text'>Official Google Blog: A new approach to China</title><content type='html'>&lt;a href="http://googleblog.blogspot.com/2010/01/new-approach-to-china.html"&gt;Official Google Blog: A new approach to China&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-5480380702348472612?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleblog.blogspot.com/2010/01/new-approach-to-china.html' title='Official Google Blog: A new approach to China'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/5480380702348472612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/official-google-blog-new-approach-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5480380702348472612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5480380702348472612'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/official-google-blog-new-approach-to.html' title='Official Google Blog: A new approach to China'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-5919997474041651398</id><published>2010-01-14T14:50:00.001Z</published><updated>2010-01-14T15:38:19.257Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>China x Google</title><content type='html'>&lt;strong&gt;Summary of what happened&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;2 Gmail accounts were invaded by hackers&lt;/li&gt;&lt;li&gt;Houndreds more were invaded by spyware and viruses placed in user's computers&lt;/li&gt;&lt;li&gt;Only human-rights activists were affected by this well organised attack&lt;/li&gt;&lt;li&gt;Many other companies were also damaged but their names haven't been made public yet&lt;/li&gt;&lt;li&gt;Because Google believe it migth have been sponsored by China's government, they made the subject hit the headlines so they can appeal for political and diplomacy to fix the problem&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="output_code"&gt;"We would advise people to deploy reputable anti-virus and anti-spyware programs on their computers, to install patches for their operating systems and to update their web browsers" - David Drummond&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;What the Chinese people say about this:&lt;/h2&gt;&lt;p&gt;&lt;i&gt;Chinese people on China's own Web site!&lt;/i&gt; - Some say Google leaving will open space on the Web for companies that respect the country's laws.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;This is an incredibly brave decision! This humiliated the Chinese government. &lt;/i&gt; - Interesting the oriental culture: Brave decision to leave? Cute, but unfortunate.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Which side are you?&lt;/h2&gt;&lt;p&gt;To me the answer is easy: Google is the right one. Not many of you lived in a country with censorship and dictatorship, it is bad! Here UK, if you think the government is wrong you vote for someone else for the next term. But for long time in Brazil that wasn't the case and people were being killed for questioning that. It is easy to take part on this legal battle because who wants to live being told to 'shut up' every time? And if the government was paying people to break your business apart and spoil your credibility? This 2010, not 1020!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Battle result&lt;/h3&gt;&lt;p&gt;China will win the battle within it's borders, but the enemies of the 'free world' aren't gonna rest until that country become at the world's reach. Good luck Google, I'm even more fan of this company.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;American issue&lt;/h2&gt;&lt;p&gt;Google is from the US, but was built by foreigners. British, Indians, Chinese and Brazilians are among them, it is 'ours'.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-5919997474041651398?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/5919997474041651398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/china-x-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5919997474041651398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5919997474041651398'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/china-x-google.html' title='China x Google'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-8646884672471208977</id><published>2010-01-14T10:00:00.000Z</published><updated>2010-01-14T10:00:00.949Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Squared</title><content type='html'>&lt;p&gt;Google Squared is a search tool that helps people quickly buildup a collection of facts from the web, for any specified topic you are looking for.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So what does this square thing exactly mean well it means that the facts you want placed into a table of items and attributes squared.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We will then customize these squares just to see if your interested in them or not.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You can see what the websites serves as sources for the information in your square.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You then at last can save your square and share with whom ever you would like.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lets do an example say you wanna find the United States Tallest Skyscraper and instead of scrolling through page after page type in the world United States Tallest SkyScraper and hit squared, and it takes it directly to it. So you see its very simple to use.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-8646884672471208977?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/8646884672471208977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-squared.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8646884672471208977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8646884672471208977'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-squared.html' title='Google Squared'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-5109214023632792867</id><published>2010-01-13T10:00:00.000Z</published><updated>2010-01-13T10:00:03.182Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google AdWords</title><content type='html'>&lt;p&gt;Google AdWords is encountered by most internet surfers following a typical Google search, and is indicated by the phrase "Sponsored Links." These links serve as a means of advertising and have provided the primary source of revenue for Google's search engine. Activated upon searching specific keywords, AdWords provides surfers with relevant links, paid for by that site's company to increase site traffic and, in some cases, sales.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For example, when a surfer searches the keyword "sneakers," a specific company's site such as Sketchers or Nike will be highlighted at the top of the page with a headline, description, and display URL. All AdWord sites are notated by the phrase "Sponsored Links." Additional sponsored links may appear in the right column. The client company may pay Google based upon the amount of times its link is clicked (referred to as cost-per-click or CPC), or for every one thousand times the link is displayed (referred to as cost-per-thousand impressions or CPM).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google provides other forms of paid advertisement through AdWords, such as image advertisements on sites within the Google Network, local business advertisements frequently found in Google Maps, and video advertisements on sites within the Google Network and Google Video. Most recently Google expanded its AdWords campaign to include mobile advertisements, activated when keywords are searched on a mobile device.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-5109214023632792867?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/5109214023632792867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-adwords.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5109214023632792867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/5109214023632792867'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-adwords.html' title='Google AdWords'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-2057777255378870329</id><published>2010-01-12T10:00:00.001Z</published><updated>2010-01-12T10:00:04.407Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Real Time Search</title><content type='html'>&lt;div style="float: right;width:300px;"&gt;&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-4416911556917889";google_ad_host = "pub-1556223355139109";/* Post body images */google_ad_slot = "4755077220";google_ad_width = 250;google_ad_height = 250;//--&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;In December Google announced many technologies and one of them was Google Real Time Search. It is a search engine compliant to the Real-time web, which means you are presented with results that have being recently published on the web, either on news websites, on Twitter or on Facebook's newsfeed.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A standard search and Real Time Search start out in the same manner, you type a string into the entry box; that goes to Google's server farm where cloud computing searches for answers from all the words you use, then it returns to you a list of answers on the world wide web. The order these are placed on the page is in order of their relative inclusion of all your search string. You would need to make a new inquiry to update the information.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This is available using the hardware Google has been developing. But they now have the capability of continuing to relevantly search the web, social networks and news services. It is then fed to you instantly. I saw their announcement film and within seconds they post new results. This is a WOW moment.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- Real-Time Collaboration (or Collaborative real-time editor)Real-Time SEOintegration of cloud computing--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-2057777255378870329?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/2057777255378870329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-real-time-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2057777255378870329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2057777255378870329'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-real-time-search.html' title='Google Real Time Search'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-1642910090577325346</id><published>2010-01-11T09:40:00.006Z</published><updated>2010-01-11T15:20:34.548Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Chrome (Browser)</title><content type='html'>&lt;h2&gt;4 things missing in Google's Browser: Chrome&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Searching strings on a page (Ctr+f) don't search text inside input and textarea fields. As a developer I need this.&lt;/li&gt;&lt;li&gt;View source opens a new tab, and not a new window like Firefox. I shut the browser 10 times each day I try to use it before I learn it.&lt;/li&gt;&lt;li&gt;If you have more than 1 tabs and you hit the browser's closing button by mistake, the window shuts down with no warning. Not cool.&lt;/li&gt;&lt;li&gt;I miss Firebug..&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="output_code"&gt;&lt;br /&gt;They still have a long way to go before I consider using it. But I won't give up, it will take over the other browsers I'm sure!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-chrome-logo.png" style="width:150px;" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="float: right;width:300px;"&gt;&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-4416911556917889";google_ad_host = "pub-1556223355139109";/* Post body images */google_ad_slot = "4755077220";google_ad_width = 250;google_ad_height = 250;//--&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Good things about Chrome browser:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Looks nice: There is more space on the screen since there are less toolbars floating around and the status bar at the bottom is hidden.&lt;/li&gt;&lt;li&gt;URL bar works for search as well; saves time.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.chromeplugins.org/" target="_blank"&gt;Clever new plugins&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;About The Browser&lt;/h2&gt;&lt;strong&gt;According to Google&lt;/strong&gt;&lt;br /&gt;&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;Google Chrome is a free web browser that is fast and easy to use, while keeping you safe on the Web. It is currently available for Windows (XP and Vista), Mac OS X, and Linux.&lt;br /&gt;&lt;/p&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The browser created by Google, known as Google Chrome, is available free for Microsoft Windows, Mac, and Linux. Google Chrome offers fast start times, tabbed browsing, a minimal interface, and can be personalized using themes. Although Google Chrome is still in the early stages of development, it is an excellent choice for those looking for a fast, responsive browser that gets out of your way and allows you to surf or work the way you want to.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google designed Google Chrome to be fast and unobtrusive, with running Google applications and other web applications in mind. Like many other modern browsers, Google Chrome has tabbed browsing so you can have multiple applications or surf several web sites at the same time in a single browser window. Running each application or website in its own “sandbox” is a unique feature of Google Chrome’s tabbed browsing. To put it simply, if one tab experiences a crash your other tabs will keep running. Protecting your tabs against possible malware attacks from other tabs is another advantage of each tab running in its own sandbox.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google Chrome launches almost instantly, you'll be surfing the Internet or running web applications in record time. Themes, especially those provided by artists, allow you customize your browser just the way you like it. With features like tabbed browsing and sandboxing, you can do more while confident that you won’t lose your important data to a crash or malware.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Google Chrome Description&lt;/h2&gt;&lt;p&gt;Google Chrome is perhaps one of the greatest internet innovations since Mozilla Firefox. Created by the Google corporation, Chrome is a very comprehensive web browser. It is well known for it's incredible speed as an over all browser. Even still, as it only comes with few features, it is still a very well designed, aesthetic-wise, program.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;At any rate, the program works well on various operating systems. That list of operating systems does also include the Linux OS.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now, there is a single feature that may need to either be over looked or it needs to be regarded as a major issue. The chrome program does not allow for certain real-time scripts that are usually included in I.M programs in your web browser. Knowing this, be advised that the new texting feature in the yahoo interface will not be available to you.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="output_code"&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.google.com/support/chrome/?hl=en"&gt;Chrome help (in English)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- source code of Chromium--&gt;&lt;br /&gt;&lt;?php /* ************************* */ } ?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-1642910090577325346?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/1642910090577325346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-browser-chrome.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1642910090577325346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1642910090577325346'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-browser-chrome.html' title='Google Chrome (Browser)'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-869602641785256376</id><published>2010-01-10T10:00:00.001Z</published><updated>2010-01-11T11:26:08.281Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>What's new with HTML5</title><content type='html'>&lt;div style="float: right;width:300px;"&gt;&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-4416911556917889";google_ad_host = "pub-1556223355139109";/* Post body images */google_ad_slot = "4755077220";google_ad_width = 250;google_ad_height = 250;//--&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;HTML5 is the next major version of HTML , the primary markup ("coding") language for the web. Some of the major new updates are to the APIs which include a new API for Immediate 2D Drawing, Timed Media Playback, Editing of Documents, Drag and Drop Functionality, Browser History Management and even Cross-document messaging.&lt;/p&gt;&lt;p&gt;HTML5 also includes several other differences including new types of form control such as dates and times, urls, email and search. New attributes which include ping, async and charset. Forms will also now support PUT and DELETE methods in addition to GET and POST. HTML5 provides rules for lexing and parsing. In addition to many completely new items, HTML5 has dropped some depreciated elements which include center, font, strike and frameset.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-869602641785256376?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/869602641785256376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/whats-new-with-html5.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/869602641785256376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/869602641785256376'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/whats-new-with-html5.html' title='What&apos;s new with HTML5'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-867099967003542396</id><published>2010-01-09T10:00:00.002Z</published><updated>2010-01-09T10:00:00.548Z</updated><title type='text'>Interesting Internet Facts</title><content type='html'>&lt;p&gt;The internet is indeed an ever-expanding vast computer network which links small computer networks worldwide. The whole globe takes advantage of the internet and there are certain facts about it which cannot be hidden. Of course, if you wanted to find and acknowledge interesting internet facts without encountering any difficulties, you would have to analyze the following valid details as follows;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Basically, the internet allows social networking to operate on the internet and exist as online businesses. Socializing by virtual means is possible because of the internet. Without the internet social networking websites like Facebook and MySpace wouldn't have expanded. Businesses have taken advantage of the internet and increased their revenues every year. Banks, health and financial companies are all using the internet to grow their businesses. This makes the internet a benign thing as it supports communication. Through the internet, many technological businesses are able to email their clients everyday.&lt;/li&gt;&lt;li&gt;The internet allows many people to gain knowledge. In fact, many people have been able to increase their knowledge through search engines like Yahoo Search, Bing and Google Search. By the help of Wikipedia, search engine users can find articles and information about blogging platforms like WordPress, Blogger and TypePad. Without the internet, school children and professors will spend hours in libraries browsing through science books for information about photosynthesis and the Big Bang theory. There is no doubt that the internet is very interesting as it allows people to enrich their knowledge by absolute virtual ways.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-867099967003542396?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/867099967003542396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/interesting-internet-facts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/867099967003542396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/867099967003542396'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/interesting-internet-facts.html' title='Interesting Internet Facts'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-3813708229167675804</id><published>2010-01-08T10:00:00.003Z</published><updated>2010-01-08T11:25:11.127Z</updated><title type='text'>Technology predictions 2010</title><content type='html'>&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;It is hard to talk about this without being too boring. But I will try to do it quickly.&lt;/p&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nPpZP2c3Epk&amp;hl=en_GB&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/nPpZP2c3Epk&amp;hl=en_GB&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;2010 came at a very pivotal time in history in many ways:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;With the looming arrival of the Nexus One ("Google Phone") and the pre-existing Droid phone with the Android OS, the competition with the iPhone is sure to reveal some interesting smart phones in 2010.&lt;/li&gt;&lt;li&gt;Apple also has been on a slight break from new releases, signaling the potential arrival of new products in the coming year, like the Apple iPad.&lt;/li&gt;&lt;li&gt;Also, on the headlines, not so long ago, was an article about the arrival of a 3-D television. While it does cost more than any HD television currently out on the market, if stations put up enough 3-D cable channels, this TV might just be a success. Just put on special glasses and you'll be watching TV in 3-D! Be on the lookout for more 3-D technology in the months to come.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;h2&gt;Information Technology predictions&lt;/h2&gt;&lt;p&gt;Even with the predict 3.2% growth for the IT industry, it looks like the market won't be very generous in 2010. Mainly because it is consurned to reuse and adaptation of equipments and systems already in place.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The mobile phone will receive more attention.&lt;/li&gt;&lt;li&gt;Cloud computing will become a more viable option for online businesses.&lt;/li&gt;&lt;li&gt;Green IT companies will be given more value then others.&lt;/li&gt;&lt;li&gt;New programming languages will hit the main stream: Clojure and Go.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Emerging Trends in IT&lt;/h2&gt;&lt;p&gt;With entertainment currently varying in miniscule ways, it is refreshing to see innovations in the 3-D coming to life in our everyday technology. Finally, it is a safe bet to say that the established social networks Facebook and Twitter will have very interesting innovations to come that will integrate more fully with our life, what with the omnipotence of smart phones.&lt;/p&gt;&lt;br /&gt;&lt;div class="output_code"&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://technobabble2dot0.wordpress.com/2009/12/03/technology-predictions-2010/"&gt;Ben Gray's Compilation of Analysts' Predictions&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;?php /* ************************* */ } ?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-3813708229167675804?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/3813708229167675804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/technology-predictions-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/3813708229167675804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/3813708229167675804'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/technology-predictions-2010.html' title='Technology predictions 2010'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-1251011122711139281</id><published>2010-01-07T08:00:00.082Z</published><updated>2010-01-08T11:24:29.649Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Street View</title><content type='html'>&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;h2&gt;Funny (and strange) Pictures&lt;/h2&gt;&lt;p&gt;My Top 5 Google Street View Pictures:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-street-view-funny-1.jpg" style="width:450px;" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-street-view-funny-2.jpg" style="width:450px;" /&gt;&lt;/p&gt;&lt;p&gt;Live: &lt;strong&gt;Google's car got speed ticket&lt;/strong&gt;&lt;br /&gt;&lt;iframe width="425" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?cbll=1.39357,103.834235&amp;amp;layer=c&amp;amp;cbp=13,201.58,,2,4.94&amp;amp;hl=pt-BR&amp;amp;ie=UTF8&amp;amp;panoid=WjD0FM_eqcT4kKb6AmSaZg&amp;amp;ll=1.393571,103.833504&amp;amp;spn=0,359.99544&amp;amp;z=17&amp;amp;source=embed&amp;amp;output=svembed"&gt;&lt;/iframe&gt;&lt;br /&gt;If this speed ticket picture isn't visible, &lt;a href="javascript:void(0);" onclick="$('#funny_pic_3').show();"&gt;see the print I've made from the screen&lt;/a&gt;.&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-street-view-funny-3.jpg" style="width:450px;" class="display-none" id="funny_pic_3" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Live: &lt;strong&gt;Where is Wally?&lt;/strong&gt;&lt;br /&gt;&lt;iframe width="425" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?cbll=51.463958,-0.215476&amp;amp;layer=c&amp;amp;cbp=13,103.64,,1,17.68&amp;amp;hl=en&amp;amp;gl=uk&amp;amp;ie=UTF8&amp;amp;panoid=aTUlkjN4ZDh_2sWaOxjDPg&amp;amp;ll=51.463958,-0.215476&amp;amp;spn=0,359.99397&amp;amp;z=17&amp;amp;source=embed&amp;amp;output=svembed"&gt;&lt;/iframe&gt;&lt;br /&gt;If picture isn't visible, &lt;a href="javascript:void(0);" onclick="$('#funny_pic_4').show();"&gt;see the print I've made from the screen&lt;/a&gt;.&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-street-view-funny-4.jpg" style="width:450px;" class="display-none" id="funny_pic_4" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Live: &lt;strong&gt;Bike accident&lt;/strong&gt;&lt;br /&gt;&lt;iframe width="425" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?cbll=51.461968,-2.590353&amp;amp;layer=c&amp;amp;cbp=13,72.8,,2,6.17&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;panoid=LeimkAM08wPTtu350dxHKQ&amp;amp;ll=51.461968,-2.590353&amp;amp;spn=0,359.99397&amp;amp;z=17&amp;amp;source=embed&amp;amp;output=svembed"&gt;&lt;/iframe&gt;&lt;br /&gt;If picture isn't visible, &lt;a href="javascript:void(0);" onclick="$('#funny_pic_5').show();"&gt;see the print I've made from the screen&lt;/a&gt;.&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/google-street-view-funny-5.jpg" style="width:450px;" class="display-none" id="funny_pic_5" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;News&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.thesun.co.uk/sol/homepage/news/article2350771.ece" target="_blank"&gt;Couple get divorced after wife saw her husband's car parked in front of another woman's house&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thesun.co.uk/sol/homepage/news/2348570/UFOs-spotted-in-East-End-on-Google-Street-View.html" target="_blank"&gt;Weird objects on the sky are confused with UFOs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;?php /* ************************* */ } ?&gt;&lt;br /&gt;&lt;h2&gt;Privacy Matters&lt;/h2&gt;&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;"Street View may be great if you are a tourist - or a burglar." - Says Pete Piction - Sun Online Editor&lt;/p&gt;&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;"If people have suffered damage and distress as a consequence of the photographs, the Data Protection Act give them the right to sue and Google knows that." - Struan Robertson - IT Lawyer&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Because the pictures are made on the streets, live, from real places and real people, some privacy problems may occur. Man comming out of night clubs, exteriors of army bases and police stations, vehicle number plates, 'night girls', etc. All that provoqued some objections in many countries.&lt;/p&gt;&lt;p&gt;However there is a service with each street view page that allows people to alert Google of such infringiments that can be analysed and discarted, or disfigured, by Google analysts.&lt;/p&gt;&lt;p&gt;Here in the UK, a village of Broughton in Buckinghamshire formed a human barrier to stop a Google car from photographing the village. (source: Wikipedia) Serious issue but I think it is a bit too much, mainly because these pictures have been taken in public places.&lt;/p&gt;&lt;br /&gt;&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;"Explore the world through images." - Matt Williams, Street View Operations Program Manager&lt;/p&gt;&lt;strong&gt;Demo: Try seeing the beatiful Kew gardens in London&lt;/strong&gt;&lt;br /&gt;&lt;iframe width="562" height="314" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=kew+gardens+london&amp;amp;sll=53.477792,-2.255495&amp;amp;sspn=0.005638,0.008175&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;layer=c&amp;amp;cbll=51.47983,-0.292375&amp;amp;panoid=aialyPX0AlmltI5IMKqhdw&amp;amp;cbp=13,174.41,,0,5&amp;amp;hq=Kew+Gardens&amp;amp;hnear=Kew+Gardens,+Hounslow,+UK&amp;amp;ll=51.479833,-0.292382&amp;amp;spn=0,359.99397&amp;amp;z=17&amp;amp;output=svembed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://maps.google.co.uk/help/maps/streetview/images/man_arrow-10.png" alt="Pegman" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Google is making history&lt;/h2&gt;&lt;p&gt;I have used Mapquest, Google maps and other map services out there, but their main problem is that you can't see the places you want from the pedestrian point of view, which is going to be our real perspective. You can know the directions though, the turn-by-turn way to go, but you don't know what it will look like once you get there. Surely you've had this problem too.&lt;/p&gt;&lt;p&gt;Mapquest easily pulls it up and tells you where to go. What Mapquest does NOT tell you is that this building you are trying to find is on a tiny road leading way back into a field, for example.&lt;/p&gt;&lt;p&gt;Google Street View allows you to see the views of where you're headed as if you were in a car looking right at it, as you're sure to do when you actually try to get there.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;See where you're going, where you are staying and how the streets looks like before you even go there.&lt;/p&gt;&lt;br /&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Countries List&lt;/h2&gt;&lt;h3&gt;Currently covered by the feature&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Taiwan&lt;/li&gt;&lt;li&gt;Singapore&lt;/li&gt;&lt;li&gt;Japan&lt;/li&gt;&lt;li&gt;United Kingdom&lt;/li&gt;&lt;li&gt;Switzerland&lt;/li&gt;&lt;li&gt;Spain&lt;/li&gt;&lt;li&gt;Portugal&lt;/li&gt;&lt;li&gt;Netherlands&lt;/li&gt;&lt;li&gt;Italy&lt;/li&gt;&lt;li&gt;France&lt;/li&gt;&lt;li&gt;Czech Republic&lt;/li&gt;&lt;li&gt;New Zealand&lt;/li&gt;&lt;li&gt;Australia&lt;/li&gt;&lt;li&gt;Mexico&lt;/li&gt;&lt;li&gt;Canada&lt;/li&gt;&lt;li&gt;United States&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Future countries to be covered by the feature&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;South Africa&lt;/li&gt;&lt;li&gt;Hong Kong&lt;/li&gt;&lt;li&gt;South Korea&lt;/li&gt;&lt;li&gt;Austria&lt;/li&gt;&lt;li&gt;Belgium&lt;/li&gt;&lt;li&gt;Denmark&lt;/li&gt;&lt;li&gt;Finland&lt;/li&gt;&lt;li&gt;Germany&lt;/li&gt;&lt;li&gt;Greece&lt;/li&gt;&lt;li&gt;Hungary&lt;/li&gt;&lt;li&gt;Ireland&lt;/li&gt;&lt;li&gt;Luxembourg&lt;/li&gt;&lt;li&gt;Norway&lt;/li&gt;&lt;li&gt;Poland&lt;/li&gt;&lt;li&gt;Romania&lt;/li&gt;&lt;li&gt;Sweden&lt;/li&gt;&lt;li&gt;Argentina&lt;/li&gt;&lt;li&gt;Brazil&lt;/li&gt;&lt;li&gt;Chile&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Business listings provided by ThomsonLocal.com&lt;/h2&gt;&lt;p&gt;Interesting to see that Google doesn't do everything alone. The advertisement visible in Google Street View is promoted by one of the most respectables Web directories: Thompson Local. They have a magazine of local businesses and since 2003 they have this online business directory that not even Google can beat. There is a free submition form and a paid service. Very good.&lt;/p&gt;&lt;br /&gt;&lt;div class="output_code"&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/support/bin/static.py?page=guide.cs&amp;guide=21670&amp;topic=21674&amp;answer=144358&amp;hl=en"&gt;Google Street View Support&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;?php /* ************************* */ } ?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-1251011122711139281?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/1251011122711139281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-street-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1251011122711139281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1251011122711139281'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-street-view.html' title='Google Street View'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-4057115508112311351</id><published>2010-01-06T09:27:00.014Z</published><updated>2010-01-07T14:49:39.744Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Android</title><content type='html'>&lt;p style="font-style: italic;padding: 10px 45px 10px 25px;"&gt;"Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language." - Android.com&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/nexus-one-logo.jpg" alt="Nexus One Logo" /&gt;&lt;br /&gt;&lt;object id="flashObj" width="486" height="412" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"&gt;&lt;param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/25338054001?isVid=1&amp;publisherID=1137977488" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="flashVars" value="videoId=60521310001&amp;playerID=25338054001&amp;domain=embed&amp;" /&gt;&lt;param name="base" value="http://admin.brightcove.com" /&gt;&lt;param name="seamlesstabbing" value="false" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="swLiveConnect" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://c.brightcove.com/services/viewer/federated_f9/25338054001?isVid=1&amp;publisherID=1137977488" bgcolor="#FFFFFF" flashVars="videoId=60521310001&amp;playerID=25338054001&amp;domain=embed&amp;" base="http://admin.brightcove.com" name="flashObj" width="486" height="412" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Android Plataform&lt;/h2&gt;&lt;strong&gt;What is it?&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Herein started the domination of the Google in cellphones and other mobile devices. While all other businesses in this industry developed their own OS that constricted the users actions in order to make more money, Android arose from the labs of Google to feature an OS that will bestow the user with incredible powers of customization beyond belief.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.thalesjacobi.com/2010/01/android.gif" alt="Andriod Logo" style="width: 80px;vertical-align:top;margin-right: 10px;" /&gt;Google revolutionizes everything and they have done it again with the Android OS. Android features the same usability and design aesthetics as the much crazed iPhone OS from Apple. Despite all the competitors that seemed to rise and fall in front of the iPhone, Android is the OS that holds the power to overcome the appeals of the iPhone. After all, Android was already quick enough to implement an iPhone App Store like Android Market. &lt;br /&gt;&lt;br /&gt;This was iPhone's greatest selling point, something that Android now has - perhaps in equally powerful terms in the near future. The Nexus One phone featuring the Android OS will soon show who comes out the victor and successor: iPhone or Nexus One with Google Android OS.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;How To Buy Google's Android-powered Nexus One Mobile Phone?&lt;/h3&gt;&lt;p&gt;Found for sale online only, it costs (06 Jan 2010) around £324 plus shipping to the UK - £18. Vodafone will offer it on a UK contract "within weeks".&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Developer Android Applications&lt;/h3&gt;&lt;p&gt;Developers can start developing Android applications using Google APIs and the Application Framework within &lt;a href="http://www.thalesjacobi.com/2010/01/android-sdk.html"&gt;Android SDK&lt;/a&gt; website and reference notes. If you know C/C++ and Java, you might want to take a look at the &lt;a href="http://developer.android.com/"&gt;developer Android&lt;/a&gt; website for further details.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Google Projects for Android&lt;/h2&gt;&lt;p&gt;&lt;ol class="projects-list"&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/android-portal/"&gt;Android-Portal&lt;/a&gt;&lt;br /&gt;Google Android for the PSP&lt;br /&gt;&lt;small&gt;Android applications are developed just for this portal currently in version 1.0. Interesting but not sure if people will actually use it.&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/watts/"&gt;Watts&lt;/a&gt;&lt;br /&gt;Plot historic battery levels for Android devices.&lt;br /&gt;&lt;small&gt;This project is analysing what applications and features consume more battery of the equipament with Andriod plataform. Very interesting!&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/android-sky/"&gt;Android-sky&lt;/a&gt;&lt;br /&gt;Forecast widget example for Android 1.5 (using AppWidget framework in the Android 1.5 SDK)&lt;br /&gt;&lt;small&gt;A bit more than just a weather forecasting application, it is an on-going project with a very geek apeal: they are testing new a framework on a practical development. Loved the idea!&lt;/small&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;?php /* ************************* */ } ?&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Google Cell Phone&lt;/h2&gt;&lt;p&gt;With the advent of the HTC Droid and the tech world buzzing about the new Nexus One phone, it would be good to know exactly what sets these devices apart from other smart phones.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Nexus One Features&lt;/h3&gt;&lt;strong&gt;Phone tour&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;embed id="sotester" width="930" height="467" base="." wmode="transparent" salign="tl" scale="noscale" quality="high" bgcolor="#ffffff" name="sotester" src="http://209.85.229.132/googlephone/tour/GoogleTour.swf" type="application/x-shockwave-flash" style="background-color:white;margin-left:-14px;" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The new Nexus One is a Google phone that is pencil thin, lightweight, and has a larger screen than the Droid. It also has the ability to display true 3-D graphics, which means its processing and rendering capabilities will allow for running more apps simultaneously, as well as the ability to run more powerful applications (such as spreadsheets and databases) and process Java-based applications more easily. The Nexus One also has a 5 megapixel camera, the ability to have an animated background, and an accurate touch-screen keyboard.&lt;/p&gt;&lt;br /&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;h3&gt;Nexus with Android&lt;/h3&gt;&lt;p&gt;The Droid is like having a portable computer. Between the very responsive touch screen, full web capabilities, the ability to integrate various e-mail addresses, instant message contact lists, and phone contact lists, it is like carrying your office with you wherever you go.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The various apps that can be downloaded and installed on the Droid, combined with its bluetooth capabilities, allow for cheap calls, copious amounts of information literally at your fingertips, and an intuitive user interface. I would recommend integrating Google voice (for transcriptions of incoming voice messages to any of your phone numbers which are then forwarded to you Google phone), Skype (if anything, because calls made from your Google phone to anyone on your contact list are free, domestically), Google Maps (because the built-in GPS is the most accurate I've seen in a mobile phone), eBuddy (to consolidate your instant message contacts into one list), and HandcentSMS (for easy management of text conversations) just for starters.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="output_code"&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.thalesjacobi.com/2010/01/Nexus-One-Specifications.pdf"&gt;&lt;img src="http://www.thalesjacobi.com/img/pdf.gif" style="vertical-align:middle;border:0px;" /&gt; Nexus One Full Technical Specification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://googlemobile.blogspot.com/2010/01/introducing-nexus-one.html#links"&gt;Official Google Mobile Blog: Introducing Nexus One&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/hosting/search?q=label%3aAndroid"&gt;Projects on Google Code&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;?php /* ************************* */ } ?&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-4057115508112311351?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/4057115508112311351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4057115508112311351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4057115508112311351'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2010/01/google-android.html' title='Google Android'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-8056107936348439557</id><published>2009-12-31T16:36:00.002Z</published><updated>2010-01-04T19:35:15.731Z</updated><title type='text'>Happy New 2010</title><content type='html'>&lt;h2&gt;Congratulations!&lt;/h2&gt;&lt;p&gt;If you are reading this post is because you made it! You are still alive and making history with your own hands.. a bit like me.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Be Happy!&lt;/h2&gt;&lt;p&gt;A few tips that everyone will agree (if you don't, comment on that :)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Listen to your heart&lt;/strong&gt;.&lt;br /&gt;If you are having problems following what others tell you to do (by others I mean either people or the little voices inside your head) try the silence. It will clear out your mind and thoughts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Give more value to the people around you&lt;/strong&gt;.&lt;br /&gt;If you received a Christmas card this year, make a note of the sender and remember to send them one next year. Will do you good!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Include the environment in your New Year's resolution&lt;/strong&gt;.&lt;br /&gt;Yes, our future depends on you! No, I'm not uncle Sam, but as a Brazilian, me, uncle Thales, says: 'The forest needs you! What can you do to help it?'&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Learn, or improve, to play an instrument&lt;/strong&gt;.&lt;br /&gt;It's very good to work and make money, but if you embed yourself in some practical culture you will be more pleasant to be with. Consequently more business you will be able to generate.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Come back to this blog frequently&lt;/strong&gt;.&lt;br /&gt;This is for my own good. Sorry, but if everyone came back here once in a while, I would be more happy. So click around and try to find something you like and come back for more, would ya..?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Thank you all for your support, visits, gifts, comments, etc. I'm so happy for being part of the Web community that I can't put into words. That is it. &lt;br /&gt;&lt;br /&gt;Thanks again and be merry!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-8056107936348439557?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/8056107936348439557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/happy-new-2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8056107936348439557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8056107936348439557'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/happy-new-2010.html' title='Happy New 2010'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-1084677801269403679</id><published>2009-12-14T11:27:00.018Z</published><updated>2010-01-04T18:39:04.859Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='link building'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='online marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='pagerank'/><title type='text'>Top article directories</title><content type='html'>&lt;p&gt;An &lt;a href="http://www.thalesjacobi.com/2009/12/what-are-article-submission-directories.html"&gt;article directory&lt;/a&gt; is a great way to promote your content. Used by web marketers to bust traffic and increase sales, free content sites, or free article directory, are widely used to spread on the internet the main content of a site. Some of these sites, however, don't offer a great deal for you and your business. Here is my top site list of submission article directories that helped me on my web marketing strategy so far. This top list is constantly updated.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;The best and the worst: top rated article directories&lt;/h2&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;a href="http://www.thalesjacobi.com/download&lt;?php echo str_replace(basename($_SERVER['REQUEST_URI']),'',$_SERVER['REQUEST_URI']); ?&gt;top-article-directories.csv-download" target="_blank"&gt;&lt;img src="http://www.thalesjacobi.com/img/file_types/csv.gif" class="php-vertical-align-middle borderless" /&gt; Download this Top 18 List of Article Directories (CSV format)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;?php } ?&gt;&lt;br /&gt;&lt;h3&gt;&lt;img src="http://www.thalesjacobi.com/img/icons/star.png" alt="Tier 1 List" class="php-vertical-align-middle" /&gt; Top article submission directories&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Best directories for SEO&lt;/strong&gt;. This first list is based on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Free article submission&lt;/li&gt;&lt;li&gt;Speed when posting an article&lt;/li&gt;&lt;li&gt;Speed of response and evaluation of the text&lt;/li&gt;&lt;li&gt;Speed that Google indexed my article - SEO friendly&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;ol class="green-links-seo"&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlesbase.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The best&lt;/li&gt;&lt;li&gt;Table tags disappear on live articles&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articleclick.com &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Really good&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlealley.com/ &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;a1articles.com/ &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;ideamarketers.com/ &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good to use but ugly&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;https://www.amazines.com &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple and straight forward. Accepts HTML (but don't have an online editor)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlewheel.com/ &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple and really good.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articler.com/ &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Good&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;article-treasure.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No registration needed&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h3&gt;&lt;img src="http://www.thalesjacobi.com/img/icons/accept.png" alt="Tier 2 List" class="php-vertical-align-middle" /&gt; Tier 2 list of seo article directories&lt;/h3&gt;&lt;p&gt;Didn't fancy these ones too much, but they work and I will carry on using it.&lt;/p&gt;&lt;br /&gt;&lt;ol class="green-links-seo"&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;smasharticles.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No registration&lt;/li&gt;&lt;li&gt;Article's editor is horrific, but site seams to work.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articledepot.co.uk&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple and straight forward&lt;/li&gt;&lt;li&gt;I saw a data-base error after submitting article, don't know if it worked.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;1888articles.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Very strict rules for creating an account, nothing useless though, like requiring my home address and things like that.&lt;/li&gt;&lt;li&gt;Too much asked for registering and for post new articles. A bit ridiculous.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlepros.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No registration&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;contentresearchnetwork.com/&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlebiz.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No registration required&lt;/li&gt;&lt;li&gt;To manage your articles, just place your email address and you will be able to see them. Cool!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlecircle.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't need to register&lt;/li&gt;&lt;li&gt;Error messages that pop up when submitting the article aren't very useful. You have to guess what to do.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlecity.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't need to register but also no HTML permitted.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articledashboard.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't have HTML editor but seems to be working fine.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;?php if($post_page){ /* ************************* */ ?&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;img src="http://www.thalesjacobi.com/img/icons/exclamation.png" alt="Bad experience of mine" class="php-vertical-align-middle" /&gt; !! NOT RECOMENDED !!&lt;/h3&gt;&lt;p&gt;Get a second opinion before using these guys ok? I didn't like it at all and now they are a mile away from my top article directories.&lt;/p&gt;&lt;br /&gt;&lt;ol class="green-links-seo"&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlerack.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Patectic how some small web companies don't want users with Gmail accounts, I think they are afraid of being flagged as spammers, as they might be&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlecat.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They ask too much just for such a simple article submission&lt;/li&gt;&lt;li&gt;Why do they need to know my physical address?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;http://e-articles.info/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Olny unique content allowed. Quite an easy way to get free content for themselves. Didn't like this practice.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlesender.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They ask too much&lt;/li&gt;&lt;li&gt;Why do they need to know my home private address?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;approvedarticles.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They ask too much&lt;/li&gt;&lt;li&gt;Why do they need to know my physical address?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;buzzle.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An articles directory that doesn't accept articles?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;freearticles.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An articles directory that doesn't accept articles?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;freesticky.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Not a normal article directory: you have to send an email and then wait for their contact and than ... don't know, I didn't go that far.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlesphere.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They ask too much&lt;/li&gt;&lt;li&gt;Why do they need to know my address?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;http://searchwarp.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They are asking too much&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlerich.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seems fine but why do they need my address and postal code? I know they will never use it..&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlesnatch.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seems fine but why do they need my address and postal code? I know they will never use it..&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;free-articles-zone.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They are not accepting new authors. What kind of articles directory is this?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlegeek.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They aren't accepting any articles for the moment and all they did to prevent this is hidding the submit button.&lt;/li&gt;&lt;li&gt;They should tell it to the authors before the fill in the form.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articlesfactory.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;At first looks very professional and easy to use. However if you don't have a picture exactly 150x150px it won't let you post anything.&lt;/li&gt;&lt;li&gt;For that reason I don't understand the point of the site. Do they want my articles or not?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;http://ezinearticles.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;10 articles allowed for free.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;isnare.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;HAVE TO PAY TO SUBMIT ARTICLES&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;articledirectoryzone.com/&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;goarticles.com&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;THEY DON'T ACCEPT GMAIL, YAHOO OR HOTMAIL, THAT TELLS ME THEY WILL SPAM ME&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;img src="http://www.thalesjacobi.com/img/icons/cancel.png" alt="Bad, bad guys" class="php-vertical-align-middle" /&gt; !! STAY AWAY FROM THEM !!&lt;/h3&gt;&lt;p&gt;The following article web sites provided the worst experience of all. Sending them my material was a lesson well learned. Now they will have to work hard to go in &lt;a href="http://www.thalesjacobi.com/2009/12/best-and-worst-article-directories.html"&gt;this 'Top Article Directories' list&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;ol class="green-links-seo"&gt;&lt;li&gt;&lt;span&gt;www.article99.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After the registration it was impossible to log in to their system with a message like: Members Section Closed.&lt;br /&gt;&lt;br /&gt;How come you can register but not log in??? It's a scan for sure.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;script type="text/javascript"&gt;document.write("http://www.");&lt;/script&gt;submityourarticle.com/&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If its not a spam website, is a scam... Don't trust them!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Outsource Article Marketing for SEO&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Article submissions should be used only for distributing informative content and boost the credibility of your website. Using this for self promotion isn't something Google likes! (Good reason to re-think your strategies isn't it?)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Also known as &lt;strong&gt;Bum Marketing&lt;/strong&gt; (because any 'bum' can do it), outsource article marketing is when you write content for your own site (press-release, article, post, essay...) and then submit it to article repositories around the World so Google, Yahoo and MSN can find them and register a quality back link and get credibility.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Best Practices&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;What you are after is &lt;strong&gt;seo friendly directories&lt;/strong&gt;. This means you must submit your articles to a website that is being indexed by search engines so you don't waste time with your SEO strategy.&lt;/li&gt;&lt;li&gt;Submit each article to about 10 directories to get a good exposure.&lt;/li&gt;&lt;li&gt;Give preference to &lt;strong&gt;topic directories&lt;/strong&gt;. This means that your article will be in conformity with the whole directory site and, therefore, become more relevant and important.&lt;/li&gt;&lt;li&gt;If you are using this SEO strategy to get back links, try to place these links in the body of the article and point them to important pages, or &lt;strong&gt;conversion pages&lt;/strong&gt;, and be careful to have unique content sent to each one of them (write one at a time and avoid Black Hat SEO techniques like &lt;a href="http://www.thalesjacobi.com/2009/12/what-is-article-spinning.html"&gt;article spinning&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Duplicate content&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Wait until Google indexes your article and then send it to directories.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Google has a patented a 'duplicate content algorithm' and it is interesting to see that promoting articles is considered 'partial copy', but the first page to be indexed is considered the original. Plus the PageRank (that many though had lost its purpose) is now used for disambiguation. (Read the next header for more details.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Article directories and PageRank&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Forget about PageRank.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;PageRank is a Google algorythm that used to show how important a web page was. &lt;u&gt;It is not used any more for ranking purposes&lt;/u&gt;, like Google said many times on it's webmaster blog, and now is being used as &lt;u&gt;disambiguation script&lt;/u&gt;. That means your blog post must have a greater PageRank than the articles directory website you are using.&lt;/p&gt;&lt;p&gt;Why? Because if you have two pages with the same content (your article is seen in your blog and in the directory web sites - duplication!) the one with stronger PageRank will be considered the most important one, or the original one. The others will be penalized for lack of authenticity. You can find more details about it reading the &lt;a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;u=/netahtml/PTO/search-adv.htm&amp;r=1&amp;p=1&amp;f=G&amp;l=50&amp;d=PTXT&amp;S1=7,627,613.PN.&amp;OS=pn/7,627,613&amp;RS=PN/7,627,613" target="_blank"&gt;US Patent 7,627,613 registered by Google on the 1st Dec 2009&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;SEO Articles (Search Engine Optimisation Articles)&lt;/h3&gt;&lt;p&gt;These directories are made specially for search engine and internet marketing related articles and they are usually expensive.&lt;/p&gt;&lt;p&gt;Following into this category are also:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SEM Articles (Search Engine Marketing Articles)&lt;/li&gt;&lt;li&gt;PPC Articles (Pay Per Click Articles)&lt;/li&gt;&lt;li&gt;Affiliate Marketing Articles&lt;/li&gt;&lt;li&gt;Email Marketing Articles&lt;/li&gt;&lt;li&gt;Article Marketing Articles&lt;/li&gt;&lt;li&gt;Brand Awareness Articles&lt;/li&gt;&lt;li&gt;Web Copywriting Articles&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Ezine articles for search engine optimization&lt;/h3&gt;&lt;p&gt;Ezine are newsletters send vie email or other off-line methods. By submitting your articles to ezines you are allowing them to publish it in a greater variety of medias (like emails as I said, RSS, printed, etc.) This usually means more visibility, but only the big ones will make a difference in terms of search rank and back links.&lt;/p&gt;&lt;br /&gt;&lt;div class="output_code"&gt;Disclaimer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;These article directories are all professional web sites and I express my own one-time experience with them. Things might have changed since the experiment, so I can't guarantee accuracy.&lt;/li&gt;&lt;li&gt;None of the URLs listed is clickable because this is not a link directory post.&lt;/li&gt;&lt;li&gt;This blog post isn't about how to write engaging and profitable content, is about where to go when you want to promote your written content.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;?php } ?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-1084677801269403679?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/1084677801269403679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/best-and-worst-article-directories.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1084677801269403679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1084677801269403679'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/best-and-worst-article-directories.html' title='Top article directories'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-1975301646093719660</id><published>2009-12-11T10:07:00.041Z</published><updated>2010-01-29T09:14:36.727Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistical analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Email Tracking Technique</title><content type='html'>&lt;h2&gt;The Web Bug Script&lt;/h2&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;// file name: track_bug.php&lt;br /&gt;&lt;br /&gt;ini_set("display_errors",0);&lt;br /&gt;&lt;br /&gt;// tracking code for electronic messages&lt;br /&gt;//   option 1: save into a DB &lt;br /&gt;$con=mysql_connect(HOST,USER,PASS);&lt;br /&gt;$dbsel=mysql_select_db(DBNAME,$con);&lt;br /&gt;$res=@mysql_query("INSERT INTO `emails_sent_table` (`message_id`,`message_opened`) VALUES ('{$_GET['message_id']}',NOW())",$con);&lt;br /&gt;//   option 2: save into a file&lt;br /&gt;//     this option is commented out because I like to use database tables&lt;br /&gt;//     this option is here if you prefer to use it&lt;br /&gt;//file_put_contents("message_open_records.txt",$_GET['message_id'].' @ '.date("Y-m-d H:i:s"), FILE_APPEND);&lt;br /&gt;&lt;br /&gt;// print picture - PHP image builder code script &lt;br /&gt;header("Content-type: image/gif");&lt;br /&gt;$image = imagecreatefromgif("/images/yourimage.gif");&lt;br /&gt;imagegif($image);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://www.thalesjacobi.com/download&lt;?php echo str_replace(basename($_SERVER['REQUEST_URI']),'',$_SERVER['REQUEST_URI']); ?&gt;email-tracking-technique.php-download" target="_blank"&gt;&lt;img src="http://www.thalesjacobi.com/img/page_white_php.png" class="php-vertical-align-middle borderless" /&gt; Download this PHP script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="color_red"&gt;Note:&lt;/span&gt; $_GET['message_id'] is the GET param you are going to use to identify each an every email you send. This can be a unique number/string (or unique identifier) (go to my previous post on &lt;a href='http://www.thalesjacobi.com/2009/12/fast-random-string-generation-technique.html'&gt;Fast random string generation technique&lt;/a&gt;) you can use to save in a database table and generate a report for, then, calculate your email campaing open rate.&lt;/p&gt;&lt;br /&gt;&lt;span class="color_red"&gt;Important:&lt;/span&gt; Clean up your parameters to avoind SQL injection, a famous type of hacking that might afect your your whole script and, sometimes, your whole system. Do &lt;i&gt;$_GET['email_id']=addslashes($_GET['email_id']);&lt;/i&gt; before the MySQL insert on line 10 of the "The Web Bug Script" code above.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Web Bug Trigger&lt;/h3&gt;&lt;p&gt;Now place the tracking trigger on the email body:&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Simple version&lt;/h4&gt;&lt;pre class="brush: php;"&gt;&amp;lt;img src='http://www.yourdomain.com/track_bug.php?message_id=%unique-identifier%' border='0'&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;ol&gt;&lt;li&gt;&lt;u&gt;Because there is the question mark&lt;/u&gt; in the URL above (&lt;i&gt;track_bug.php&lt;b&gt;?&lt;/b&gt;message_id&lt;/i&gt;) some servers might see that as a web bug (which it is, but we don't want them to know. Because you are an ethical web marketer you know you will use the statistical information you gather from this techinique wisely. So we can afford to hide our intentions and still be honest with ourselves and our clients and the web as a whole.)&lt;/li&gt;&lt;li&gt;The chalenge now is to use a different, more advanced, coding technique: &lt;strong&gt;Server configuration&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Advanced version: Using &lt;u&gt;.htaccess&lt;/u&gt; File&lt;/h4&gt;&lt;p&gt;Getting rid of the question mark used on the bug track trigger is simple (if you have access to the .htaccess file. Talk to your hosting company for more details!) &lt;br /&gt;Simply place the following code into your htaccess (with the necessary adaptations) and place this file in the root directory of you site.&lt;/p&gt;&lt;span class="color_red"&gt;Step 1&lt;/span&gt; &lt;strong&gt;&lt;i&gt;htaccess file example:&lt;/i&gt;&lt;/strong&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;Options +FollowSymlinks&lt;br /&gt;RewriteEngine On&lt;br /&gt;RewriteRule ^track_bug/(.*)$ http://www.yourdomain.com/track_bug.php?message_id=$1 [L]&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span class="color_red"&gt;Step 2&lt;/span&gt; &lt;strong&gt;&lt;i&gt;New bug trigger:&lt;/i&gt;&lt;/strong&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;img src='http://www.yourdomain.com/track_bug/%unique-identifier%' border='0'&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Now we don't have the question mark anymore and silly email servers won't "see" us as bad marketers. This won't help us all the time, but if helps us only once, that is good for business. So, good practice!&lt;/p&gt;&lt;p&gt;&lt;u&gt;Basic explanation&lt;/u&gt;: This Apache code will redirect the "New web bug trigger" given above to the full URL we had on the "Simple version" (further up on this page). This gives a different impression of our script and looks more professional also.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Done!&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;What will happen now is that you will have one row in the database for every time this message was opened. You can send yourself an email or SMS instead. You decide.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;The Web Bug Concept&lt;/h3&gt;&lt;p&gt;First of all: this isn't a 'hard-test'.&lt;/p&gt;&lt;p&gt;We generate a picture using a PHP script and &lt;u&gt;if the user's email program (or webmail) blocks images (default for Gmail and Yahoo!Mail), this email tracking technique won't work&lt;/u&gt;. However, my experience tells me it works really well considering this constraint.&lt;/p&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Email tracking pixels&lt;/h2&gt;&lt;p&gt;I recommend you to use a picture people can actually see for you email tracking script instead of a 1 pixel pictures like others might say. To do this, you substitute the tracking script above to:&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;// file name: track_bug.php&lt;br /&gt;header("content-type: image/gif");&lt;br /&gt;// transparent gif&lt;br /&gt;echo base64_decode("R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;img src="http://www.thalesjacobi.com/img/error.png" class="php-vertical-align-middle"&gt; &lt;u&gt;This is definitely going to be seen as spam!&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Some mail servers have software set up that disarms tracking pixels before clients ever get them, because, for some reason, this 1 pixel technique is considered invasive to privacy. I don't agree with that, but trying to make your email tracking script less obvious is a good idea, and more useful. This is what I call the 'ethical web bug'!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Email tracking software&lt;/h2&gt;&lt;p&gt;Lets dismistify: there is no such thing as 'email tracking software'.&lt;/p&gt;&lt;p&gt;It is a piece of code placed in each email message that will connect to another page on the internet with a matching piece of code that will interpret what the 'bug' in the email's body has to send through.&lt;/p&gt;&lt;p&gt;You can have a software that sends emails with a tracing script. You won't find a software to do just the tracking bit.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.thalesjacobi.com/img/error.png" class="php-vertical-align-middle"&gt; Other types of email tracking techniques like iFrames and Delivery Headers (Return Receipt / ConfirmRead) or even the still unknown Message Tracking Query Protocol (MTQP) - IETF RFC 3887 (Category: Standards Track). Some e-mail clients, like Yahoo and Gmail, disable pictures by default, but HTML e-mail are still available. Can be good to use more then one track techniques!&lt;/p&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Privacy Implications&lt;/h2&gt;&lt;p&gt;Be careful not to invade privacy with this tracking technique. There is no need to do anything other then count the open rate for email campaigns. Keep in mind, though, that this technique won't help you make money if the: you have to find a way to instigate the reader to click on links or buy somehting, just trace and tracking scripts won't help much. So be clever. Get the data you need to carry on a good, ethical, work.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Web Bug FAQ&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Can others know where I live based on a tracking script like this?&lt;/strong&gt;&lt;br /&gt;No! It is possible to get the IP address of the computer opening the email but if you use a web-based email service, nothing can be done to know where you are. There is no technique or script for that!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Blocking pictures in my emails protect my privacy?&lt;/strong&gt;&lt;br /&gt;If you consider that knowing if you opened an email or not is invading your privacy, then yes. I personally think that spam messages shouldn't know anything about me or my email behaviour, but if I requested an email, I want them to know I've opened it. Kind of a sign of respect for their effort. If I unsubscribe later, that means the emails weren't relevant to me. That is good for the business and for me. However blocking pictures doesn't garantee total privacy because there are other ways to track that.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Can attached pictures serve as tracking script as well?&lt;/strong&gt;&lt;br /&gt;Depends. 90% of the time the answer would be: No! Attached pictures are sent to you; tracking pictures (which is what this post teaches how to do) are links in the body of the message that prints out graphics and files from another part of the Internet. That is why the sender can know if you have openned it or not: because the picture is in his server, and you accessed it.&lt;br /&gt;But there are types of files (like MS Word, MS Excel and PDF) that accept the tracking script in them. Tough to do, but not impossible.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Can I tell if my email has been read by the recipient?&lt;/strong&gt;&lt;br /&gt;No! Even if the recipient email software displays your picture track, HTML or accepts Delivery-Confirmation headers you won't be able to tell if your message has been read. You can, probably, know if it has been opened, when, how many times and for how long, but if it was read or by whom, well, impossible.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;When does email become spam?&lt;/strong&gt;&lt;br /&gt;When it wasn't requested. Don't confuse this with 'dripping email' which are the messages sent to confirm a subscription (to reset a password or just a 'welcome' email).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="output_code"&gt;References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.spamtrackers.eu/wiki/index.php/Main_Page"&gt;Spam Trackers Discussion Wiki&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.spamcop.net/"&gt;Service for reporting spam&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thalesjacobi.com/2009/12/bulk-email-campaigns-with-real-time-tracking.html"&gt;Bulk email campaigns with real time tracking&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="output_code"&gt;Disclaimer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The email tracking technique teached in this PHP blog is ment to be used by &lt;a href="http://www.thalesjacobi.com/2009/12/email-marketers.html"&gt;marketers&lt;/a&gt;, not spammers. I am against unrequested messages but I don't think 'web bug', 'tracking' or 'tracings', are harmful to anyone's privacy. If they are legitimate (by serious companies/professionals) and used properly.&lt;/li&gt;&lt;li&gt;Any email tracking technique should only be used to register &lt;a href="http://www.thalesjacobi.com/2009/12/email-open-rate.html"&gt;email campaign open rate&lt;/a&gt;, measurement often needed by email marketers. Collection of IP addresses is a bad practice and is against most of the privacy-protection guidelines anywhere in the World.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--&lt;h2&gt;&lt;br /&gt;How to know if your marketing email has been opened using PHP?&lt;/h2&gt;&lt;br /&gt; --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-1975301646093719660?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/1975301646093719660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/email-tracking-technique.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1975301646093719660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/1975301646093719660'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/email-tracking-technique.html' title='Email Tracking Technique'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-4206816026246831125</id><published>2009-12-10T09:13:00.001Z</published><updated>2009-12-10T11:57:37.379Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Fast random string generation technique</title><content type='html'>&lt;h2&gt;The best way to creat a short hash string using PHP?&lt;/h2&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;$tmp_link=tempnam('/tmp','');&lt;br /&gt;$hash=basename($tmp_link);&lt;br /&gt;unlink($tmp_link);# important&lt;br /&gt;unset($tmp_link);&lt;br /&gt;&lt;br /&gt;echo $hash;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;OUTPUT&lt;/strong&gt; Possible strings:&lt;br /&gt;&lt;div class="output_code"&gt;0oXCTt&lt;br /&gt;&lt;u&gt;or&lt;/u&gt;&lt;br /&gt;gS5hn1&lt;br /&gt;&lt;u&gt;or&lt;/u&gt;&lt;br /&gt;LTHQD9&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You've got the idea!&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;When creating a unique code to autogenerate a password or to save in a database as identificador or even to create a file without the risk of name clash, &lt;strong&gt;tempnam()&lt;/strong&gt; native PHP function can do a superb job.&lt;/p&gt;&lt;p&gt;Yes it has to create an empty file in the /tmp directory, but this is so fast I guarantee you won't even notice. The only thing is: you have to remove the file afterwards. If you don't, you will end up with thousands of empty files just sitting there doing nothing.&lt;/p&gt;&lt;p&gt;Anyway, this is a fast technique, very reliable, and I use it all the time.&lt;/p&gt;&lt;br /&gt;&lt;a href="http://www.thalesjacobi.com/2009/12/Extra information about tempnam PHP function.pdf"&gt;&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/img/pdf.gif" style="vertical-align:middle;border:0px;" /&gt; Extra information about tempnam&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Possible tempnam() errors:&lt;/h2&gt;&lt;img src="http://www.thalesjacobi.com/img/error.png" border="0" width="16" height="16"&gt; &lt;strong&gt;open_basedir restriction in effect&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="output_code"&gt;Warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://www.thalesjacobi.com/img/tick.png" border="0" width="16" height="16"&gt; &lt;strong&gt;Possible solution&lt;/strong&gt;&lt;br /&gt;&lt;div class="output_code"&gt;Change PHP's configuration:&lt;br /&gt;&lt;ol&gt;  &lt;li&gt;Open the file php/session.php&lt;/li&gt;  &lt;li&gt;Find this code:&lt;br /&gt;&lt;pre class="brush: php;"&gt;     $temp_file = tempnam( md5(uniqid(rand(), TRUE)),'');&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;  &lt;li&gt;Change it to:&lt;br /&gt;&lt;pre class="brush: php;"&gt;     $temp_file = @tempnam( md5(uniqid(rand(), TRUE)), '' );&lt;br /&gt;&lt;/pre&gt;  &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;small style="font-size:80%;"&gt;Disclaimer: This given solution may or may not fix your problem. It depends on the situation and each case may have different approaches. There is no guarantee that this will work for you.&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-4206816026246831125?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/4206816026246831125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/fast-random-string-generation-technique.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4206816026246831125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/4206816026246831125'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/fast-random-string-generation-technique.html' title='Fast random string generation technique'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-2169724115593336948</id><published>2009-12-09T09:44:00.000Z</published><updated>2009-12-09T09:44:59.615Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Numbers Only Regex Replace</title><content type='html'>&lt;h2&gt;How to clean up a string striping off everything that is not a number?&lt;/h2&gt;&lt;p&gt;You need to use regular expression for that. PHP works brilliantly with regex and &lt;strong&gt;preg_replace()&lt;/strong&gt; is the method to use.&lt;/p&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$number_only=preg_replace("/[^0-9\.]/","",$variable);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-2169724115593336948?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/2169724115593336948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/numbers-only-regex-replace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2169724115593336948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2169724115593336948'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/numbers-only-regex-replace.html' title='Numbers Only Regex Replace'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-6442697795813331464</id><published>2009-12-08T09:16:00.002Z</published><updated>2009-12-08T09:19:58.032Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Parse CSV document</title><content type='html'>&lt;h2&gt;How to parse a CSV file correctly in PHP?&lt;/h2&gt;&lt;p&gt;&lt;i&gt;fgetcsv()&lt;/i&gt; interprets CSVs in many formats. With tabs separating values, with quotes around values, with commas, etc. &lt;br /&gt;See full filesystem function explanation at &lt;a href="http://www.php.net/fgetcsv"&gt;http://www.php.net/fgetcsv&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;$file_content = fopen('file_example.csv','r');&lt;br /&gt;&lt;br /&gt;echo "&amp;lt;table&gt;";&lt;br /&gt;while($csv_line = fgetcsv($file_content))&lt;br /&gt;     {&lt;br /&gt;    echo '&amp;lt;tr&gt;';&lt;br /&gt;    for ($i = 0, $j = count($csv_line); $i &lt; $j; $i++)&lt;br /&gt;       {&lt;br /&gt;       echo '&amp;lt;td&gt;'.htmlentities($csv_line[$i]).'&amp;lt;/td&gt;';&lt;br /&gt;       }&lt;br /&gt;    echo "&amp;lt;/tr&gt;";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;echo '&amp;lt;/table&gt;';&lt;br /&gt;fclose($file_content);&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-6442697795813331464?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/6442697795813331464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/parse-csv-document.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/6442697795813331464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/6442697795813331464'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/parse-csv-document.html' title='Parse CSV document'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-8901943671726714420</id><published>2009-12-07T09:40:00.000Z</published><updated>2009-12-07T09:40:19.581Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Force file download on the internet</title><content type='html'>&lt;h2&gt;How to force the browser NOT to open a file, but to download it to the user?&lt;/h2&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;/**&lt;br /&gt;* Function that forces a file to be downloaded by the browser&lt;br /&gt;* User authorization will be required but it is a great way to &lt;br /&gt;*   download HTML pages as well as any other type of file.&lt;br /&gt;* If you don't know the MIME type of the file, the previous blog post I&lt;br /&gt;*   created has a full fill to be used.&lt;br /&gt;* @author Thales Jacobi&lt;br /&gt;*/&lt;br /&gt;function force_download($file_name,$mimetype='',$attachment_data='')&lt;br /&gt;    {&lt;br /&gt;    if(ini_get('zlib.output_compression'))&lt;br /&gt;    ini_set('zlib.output_compression', 'Off');&lt;br /&gt;&lt;br /&gt;    // Make sure there's nothing else left on the cache waiting to be printed out&lt;br /&gt;    $ob_active = ob_get_length () !== false;&lt;br /&gt;    while($ob_active) &lt;br /&gt;        {&lt;br /&gt;        ob_end_clean();&lt;br /&gt;        $ob_active = ob_get_length () !== false;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    // Mimetype not set?&lt;br /&gt;    // A specific MIME could make a difference&lt;br /&gt;    if (empty($mimetype)){ $mimetype = 'application/octet-stream'; }&lt;br /&gt;&lt;br /&gt;    // Build temp file&lt;br /&gt;    $tmp=tempnam("/tmp","f");&lt;br /&gt;    $fp=fopen($tmp,"w");&lt;br /&gt;    fwrite($fp,$attachment_data);&lt;br /&gt;    fclose($fp);&lt;br /&gt;    // Get file size&lt;br /&gt;    $filesize=filesize($tmp);&lt;br /&gt;    &lt;br /&gt;    // Start sending headers&lt;br /&gt;    header("Pragma: public"); // required&lt;br /&gt;    header("Expires: 0");&lt;br /&gt;    header("Cache-Control: must-revalidate, post-check=0, pre-check=0",false);&lt;br /&gt;    header("Cache-Control: private",false); // required for certain browsers&lt;br /&gt;    header("Content-Transfer-Encoding: binary");&lt;br /&gt;    header("Content-Type: $mimetype");&lt;br /&gt;    header("Content-Length: $filesize");&lt;br /&gt;    header("Content-Disposition: attachment; filename='$file_name';" );&lt;br /&gt;    readfile($tmp);&lt;br /&gt;    exit;&lt;br /&gt;    }&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-8901943671726714420?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/8901943671726714420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/force-file-download-on-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8901943671726714420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/8901943671726714420'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/force-file-download-on-internet.html' title='Force file download on the internet'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-2009973577432146511</id><published>2009-12-04T09:38:00.003Z</published><updated>2009-12-11T16:41:06.754Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Mime Types, Complete List</title><content type='html'>&lt;h2&gt;Array with MIME types&lt;/h2&gt;&lt;p&gt;Very useful for when you want to force downloading files in a web page, send an attachment on an email message, store in a database, etc.&lt;/p&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;$mimetypes = array(&lt;br /&gt; 'ez'        =&gt; 'application/andrew-inset',&lt;br /&gt; 'hqx'       =&gt; 'application/mac-binhex40',&lt;br /&gt; 'cpt'       =&gt; 'application/mac-compactpro',&lt;br /&gt; 'doc'       =&gt; 'application/msword',&lt;br /&gt; 'docx'      =&gt; 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',&lt;br /&gt; 'bin'       =&gt; 'application/octet-stream',&lt;br /&gt; 'dms'       =&gt; 'application/octet-stream',&lt;br /&gt; 'lha'       =&gt; 'application/octet-stream',&lt;br /&gt; 'lzh'       =&gt; 'application/octet-stream',&lt;br /&gt; 'exe'       =&gt; 'application/octet-stream',&lt;br /&gt; 'class'     =&gt; 'application/octet-stream',&lt;br /&gt; 'so'        =&gt; 'application/octet-stream',&lt;br /&gt; 'dll'       =&gt; 'application/octet-stream',&lt;br /&gt; 'oda'       =&gt; 'application/oda',&lt;br /&gt; 'pdf'       =&gt; 'application/pdf',&lt;br /&gt; 'ai'        =&gt; 'application/postscript',&lt;br /&gt; 'eps'       =&gt; 'application/postscript',&lt;br /&gt; 'ps'        =&gt; 'application/postscript',&lt;br /&gt; 'smi'       =&gt; 'application/smil',&lt;br /&gt; 'smil'      =&gt; 'application/smil',&lt;br /&gt; 'mif'       =&gt; 'application/vnd.mif',&lt;br /&gt; 'xls'       =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xlsx'      =&gt; 'application/vnd.openxmlformats-officedocument.presentationml.presentation',&lt;br /&gt; 'ppt'       =&gt; 'application/vnd.ms-powerpoint',&lt;br /&gt; 'wbxml'     =&gt; 'application/vnd.wap.wbxml',&lt;br /&gt; 'wmlc'      =&gt; 'application/vnd.wap.wmlc',&lt;br /&gt; 'wmlsc'     =&gt; 'application/vnd.wap.wmlscriptc',&lt;br /&gt; 'bcpio'     =&gt; 'application/x-bcpio',&lt;br /&gt; 'vcd'       =&gt; 'application/x-cdlink',&lt;br /&gt; 'pgn'       =&gt; 'application/x-chess-pgn',&lt;br /&gt; 'cpio'      =&gt; 'application/x-cpio',&lt;br /&gt; 'csh'       =&gt; 'application/x-csh',&lt;br /&gt; 'dcr'       =&gt; 'application/x-director',&lt;br /&gt; 'dir'       =&gt; 'application/x-director',&lt;br /&gt; 'dxr'       =&gt; 'application/x-director',&lt;br /&gt; 'dvi'       =&gt; 'application/x-dvi',&lt;br /&gt; 'spl'       =&gt; 'application/x-futuresplash',&lt;br /&gt; 'gtar'      =&gt; 'application/x-gtar',&lt;br /&gt; 'hdf'       =&gt; 'application/x-hdf',&lt;br /&gt; 'js'        =&gt; 'application/x-javascript',&lt;br /&gt; 'skp'       =&gt; 'application/x-koan',&lt;br /&gt; 'skd'       =&gt; 'application/x-koan',&lt;br /&gt; 'skt'       =&gt; 'application/x-koan',&lt;br /&gt; 'skm'       =&gt; 'application/x-koan',&lt;br /&gt; 'latex'     =&gt; 'application/x-latex',&lt;br /&gt; 'nc'        =&gt; 'application/x-netcdf',&lt;br /&gt; 'cdf'       =&gt; 'application/x-netcdf',&lt;br /&gt; 'sh'        =&gt; 'application/x-sh',&lt;br /&gt; 'shar'      =&gt; 'application/x-shar',&lt;br /&gt; 'swf'       =&gt; 'application/x-shockwave-flash',&lt;br /&gt; 'sit'       =&gt; 'application/x-stuffit',&lt;br /&gt; 'sv4cpio'   =&gt; 'application/x-sv4cpio',&lt;br /&gt; 'sv4crc'    =&gt; 'application/x-sv4crc',&lt;br /&gt; 'tar'       =&gt; 'application/x-tar',&lt;br /&gt; 'tcl'       =&gt; 'application/x-tcl',&lt;br /&gt; 'tex'       =&gt; 'application/x-tex',&lt;br /&gt; 'texinfo'   =&gt; 'application/x-texinfo',&lt;br /&gt; 'texi'      =&gt; 'application/x-texinfo',&lt;br /&gt; 't'         =&gt; 'application/x-troff',&lt;br /&gt; 'tr'        =&gt; 'application/x-troff',&lt;br /&gt; 'roff'      =&gt; 'application/x-troff',&lt;br /&gt; 'man'       =&gt; 'application/x-troff-man',&lt;br /&gt; 'me'        =&gt; 'application/x-troff-me',&lt;br /&gt; 'ms'        =&gt; 'application/x-troff-ms',&lt;br /&gt; 'ustar'     =&gt; 'application/x-ustar',&lt;br /&gt; 'src'       =&gt; 'application/x-wais-source',&lt;br /&gt; 'html'      =&gt; 'text/html',&lt;br /&gt; 'htm'       =&gt; 'text/html',&lt;br /&gt; 'xhtml'     =&gt; 'application/xhtml+xml',&lt;br /&gt; 'xht'       =&gt; 'application/xhtml+xml',&lt;br /&gt; 'zip'       =&gt; 'application/zip',&lt;br /&gt; 'au'        =&gt; 'audio/basic',&lt;br /&gt; 'snd'       =&gt; 'audio/basic',&lt;br /&gt; 'mid'       =&gt; 'audio/midi',&lt;br /&gt; 'midi'      =&gt; 'audio/midi',&lt;br /&gt; 'kar'       =&gt; 'audio/midi',&lt;br /&gt; 'mpga'      =&gt; 'audio/mpeg',&lt;br /&gt; 'mp2'       =&gt; 'audio/mpeg',&lt;br /&gt; 'mp3'       =&gt; 'audio/mpeg',&lt;br /&gt; 'aif'       =&gt; 'audio/x-aiff',&lt;br /&gt; 'aiff'      =&gt; 'audio/x-aiff',&lt;br /&gt; 'aifc'      =&gt; 'audio/x-aiff',&lt;br /&gt; 'm3u'       =&gt; 'audio/x-mpegurl',&lt;br /&gt; 'ram'       =&gt; 'audio/x-pn-realaudio',&lt;br /&gt; 'rm'        =&gt; 'audio/x-pn-realaudio',&lt;br /&gt; 'rpm'       =&gt; 'audio/x-pn-realaudio-plugin',&lt;br /&gt; 'ra'        =&gt; 'audio/x-realaudio',&lt;br /&gt; 'wav'       =&gt; 'audio/x-wav',&lt;br /&gt; 'pdb'       =&gt; 'chemical/x-pdb',&lt;br /&gt; 'xyz'       =&gt; 'chemical/x-xyz',&lt;br /&gt; 'bmp'       =&gt; 'image/bmp',&lt;br /&gt; 'gif'       =&gt; 'image/gif',&lt;br /&gt; 'ief'       =&gt; 'image/ief',&lt;br /&gt; 'jpeg'      =&gt; 'image/jpeg',&lt;br /&gt; 'jpg'       =&gt; 'image/jpeg',&lt;br /&gt; 'jpe'       =&gt; 'image/jpeg',&lt;br /&gt; 'png'       =&gt; 'image/png',&lt;br /&gt; 'tiff'      =&gt; 'image/tiff',&lt;br /&gt; 'tif'       =&gt; 'image/tiff',&lt;br /&gt; 'djvu'      =&gt; 'image/vnd.djvu',&lt;br /&gt; 'djv'       =&gt; 'image/vnd.djvu',&lt;br /&gt; 'wbmp'      =&gt; 'image/vnd.wap.wbmp',&lt;br /&gt; 'ras'       =&gt; 'image/x-cmu-raster',&lt;br /&gt; 'pnm'       =&gt; 'image/x-portable-anymap',&lt;br /&gt; 'pbm'       =&gt; 'image/x-portable-bitmap',&lt;br /&gt; 'pgm'       =&gt; 'image/x-portable-graymap',&lt;br /&gt; 'ppm'       =&gt; 'image/x-portable-pixmap',&lt;br /&gt; 'rgb'       =&gt; 'image/x-rgb',&lt;br /&gt; 'xbm'       =&gt; 'image/x-xbitmap',&lt;br /&gt; 'xpm'       =&gt; 'image/x-xpixmap',&lt;br /&gt; 'xwd'       =&gt; 'image/x-xwindowdump',&lt;br /&gt; 'igs'       =&gt; 'model/iges',&lt;br /&gt; 'iges'      =&gt; 'model/iges',&lt;br /&gt; 'msh'       =&gt; 'model/mesh',&lt;br /&gt; 'mesh'      =&gt; 'model/mesh',&lt;br /&gt; 'silo'      =&gt; 'model/mesh',&lt;br /&gt; 'wrl'       =&gt; 'model/vrml',&lt;br /&gt; 'vrml'      =&gt; 'model/vrml',&lt;br /&gt; 'css'       =&gt; 'text/css',&lt;br /&gt; 'asc'       =&gt; 'text/plain',&lt;br /&gt; 'txt'       =&gt; 'text/plain',&lt;br /&gt; 'rtx'       =&gt; 'text/richtext',&lt;br /&gt; 'rtf'       =&gt; 'text/rtf',&lt;br /&gt; 'sgml'      =&gt; 'text/sgml',&lt;br /&gt; 'sgm'       =&gt; 'text/sgml',&lt;br /&gt; 'tsv'       =&gt; 'text/tab-separated-values',&lt;br /&gt; 'wml'       =&gt; 'text/vnd.wap.wml',&lt;br /&gt; 'wmls'      =&gt; 'text/vnd.wap.wmlscript',&lt;br /&gt; 'etx'       =&gt; 'text/x-setext',&lt;br /&gt; 'xsl'       =&gt; 'text/xml',&lt;br /&gt; 'xml'       =&gt; 'text/xml',&lt;br /&gt; 'mpeg'      =&gt; 'video/mpeg',&lt;br /&gt; 'mpg'       =&gt; 'video/mpeg',&lt;br /&gt; 'mpe'       =&gt; 'video/mpeg',&lt;br /&gt; 'qt'        =&gt; 'video/quicktime',&lt;br /&gt; 'mov'       =&gt; 'video/quicktime',&lt;br /&gt; 'mxu'       =&gt; 'video/vnd.mpegurl',&lt;br /&gt; 'avi'       =&gt; 'video/x-msvideo',&lt;br /&gt; 'movie'     =&gt; 'video/x-sgi-movie',&lt;br /&gt; 'ice'       =&gt; 'x-conference/x-cooltalk',&lt;br /&gt; 'ogx'      =&gt; 'application/ogg',&lt;br /&gt; 'ogv'      =&gt; 'video/ogg',&lt;br /&gt; 'oga'      =&gt; 'audio/ogg',&lt;br /&gt; 'ogg'      =&gt; 'audio/ogg',&lt;br /&gt; 'spx'      =&gt; 'audio/ogg',&lt;br /&gt; 'flac'      =&gt; 'audio/flac',&lt;br /&gt; 'anx'      =&gt; 'application/annodex',&lt;br /&gt; 'axa'      =&gt; 'audio/annodex',&lt;br /&gt; 'axv'      =&gt; 'video/annodex',&lt;br /&gt; 'xspf'      =&gt; 'application/xspf+xml',&lt;br /&gt; 'ico'       =&gt; 'image/vnd.microsoft.icon',&lt;br /&gt; 'wmv'       =&gt; 'video/x-ms-wmv',&lt;br /&gt; 'gzip'      =&gt; 'application/x-gzip',&lt;br /&gt; 'acx'      =&gt; 'application/internet-property-stream',&lt;br /&gt; 'asf'      =&gt; 'video/x-ms-asf',&lt;br /&gt; 'asr'      =&gt; 'video/x-ms-asf',&lt;br /&gt; 'asx'      =&gt; 'video/x-ms-asf',&lt;br /&gt; 'axs'      =&gt; 'application/olescript',&lt;br /&gt; 'bas'      =&gt; 'text/plain',&lt;br /&gt; 'cat'      =&gt; 'application/vnd.ms-pkiseccat',&lt;br /&gt; 'cer'      =&gt; 'application/x-x509-ca-cert',&lt;br /&gt; 'clp'      =&gt; 'application/x-msclip',&lt;br /&gt; 'cmx'      =&gt; 'image/x-cmx',&lt;br /&gt; 'cod'      =&gt; 'image/cis-cod',&lt;br /&gt; 'crd'      =&gt; 'application/x-mscardfile',&lt;br /&gt; 'crl'      =&gt; 'application/pkix-crl',&lt;br /&gt; 'crt'      =&gt; 'application/x-x509-ca-cert',&lt;br /&gt; 'der'      =&gt; 'application/x-x509-ca-cert',&lt;br /&gt; 'dot'      =&gt; 'application/msword',&lt;br /&gt; 'evy'      =&gt; 'application/envoy',&lt;br /&gt; 'fif'      =&gt; 'application/fractals',&lt;br /&gt; 'flr'      =&gt; 'x-world/x-vrml',&lt;br /&gt; 'gz'        =&gt; 'application/x-gzip',&lt;br /&gt; 'h'      =&gt; 'text/plain',&lt;br /&gt; 'hlp'      =&gt; 'application/winhlp',&lt;br /&gt; 'hta'      =&gt; 'application/hta',&lt;br /&gt; 'htc'      =&gt; 'text/x-component',&lt;br /&gt; 'htt'      =&gt; 'text/webviewhtml',&lt;br /&gt; 'iii'      =&gt; 'application/x-iphone',&lt;br /&gt; 'ins'      =&gt; 'application/x-internet-signup',&lt;br /&gt; 'isp'      =&gt; 'application/x-internet-signup',&lt;br /&gt; 'jfif'      =&gt; 'image/pipeg',&lt;br /&gt; 'lsf'      =&gt; 'video/x-la-asf',&lt;br /&gt; 'lsx'      =&gt; 'video/x-la-asf',&lt;br /&gt; 'm13'      =&gt; 'application/x-msmediaview',&lt;br /&gt; 'm14'      =&gt; 'application/x-msmediaview',&lt;br /&gt; 'mdb'      =&gt; 'application/x-msaccess',&lt;br /&gt; 'mht'      =&gt; 'message/rfc822',&lt;br /&gt; 'mhtml'     =&gt; 'message/rfc822',&lt;br /&gt; 'mny'      =&gt; 'application/x-msmoney',&lt;br /&gt; 'mpa'      =&gt; 'video/mpeg',&lt;br /&gt; 'mpp'      =&gt; 'application/vnd.ms-project',&lt;br /&gt; 'mpv2'      =&gt; 'video/mpeg',&lt;br /&gt; 'mvb'      =&gt; 'application/x-msmediaview',&lt;br /&gt; 'nws'      =&gt; 'message/rfc822',&lt;br /&gt; 'p10'      =&gt; 'application/pkcs10',&lt;br /&gt; 'p12'      =&gt; 'application/x-pkcs12',&lt;br /&gt; 'p7b'      =&gt; 'application/x-pkcs7-certificates',&lt;br /&gt; 'p7c'      =&gt; 'application/x-pkcs7-mime',&lt;br /&gt; 'p7m'      =&gt; 'application/x-pkcs7-mime',&lt;br /&gt; 'p7r'      =&gt; 'application/x-pkcs7-certreqresp',&lt;br /&gt; 'p7s'      =&gt; 'application/x-pkcs7-signature',&lt;br /&gt; 'pfx'      =&gt; 'application/x-pkcs12',&lt;br /&gt; 'pko'      =&gt; 'application/ynd.ms-pkipko',&lt;br /&gt; 'pma'      =&gt; 'application/x-perfmon',&lt;br /&gt; 'pmc'      =&gt; 'application/x-perfmon',&lt;br /&gt; 'pml'      =&gt; 'application/x-perfmon',&lt;br /&gt; 'pmr'      =&gt; 'application/x-perfmon',&lt;br /&gt; 'pmw'      =&gt; 'application/x-perfmon',&lt;br /&gt; 'pot'      =&gt; 'application/vnd.ms-powerpoint',&lt;br /&gt; 'pps'      =&gt; 'application/vnd.ms-powerpoint',&lt;br /&gt; 'prf'      =&gt; 'application/pics-rules',&lt;br /&gt; 'pub'      =&gt; 'application/x-mspublisher',&lt;br /&gt; 'rmi'      =&gt; 'audio/mid',&lt;br /&gt; 'scd'      =&gt; 'application/x-msschedule',&lt;br /&gt; 'sct'      =&gt; 'text/scriptlet',&lt;br /&gt; 'setpay'    =&gt; 'application/set-payment-initiation',&lt;br /&gt; 'setreg'    =&gt; 'application/set-registration-initiation',&lt;br /&gt; 'spc'      =&gt; 'application/x-pkcs7-certificates',&lt;br /&gt; 'sst'      =&gt; 'application/vnd.ms-pkicertstore',&lt;br /&gt; 'stl'      =&gt; 'application/vnd.ms-pkistl',&lt;br /&gt; 'stm'      =&gt; 'text/html',&lt;br /&gt; 'svg'      =&gt; 'image/svg+xml',&lt;br /&gt; 'tgz'      =&gt; 'application/x-compressed',&lt;br /&gt; 'trm'      =&gt; 'application/x-msterminal',&lt;br /&gt; 'uls'      =&gt; 'text/iuls',&lt;br /&gt; 'vcf'      =&gt; 'text/x-vcard',&lt;br /&gt; 'wcm'      =&gt; 'application/vnd.ms-works',&lt;br /&gt; 'wdb'      =&gt; 'application/vnd.ms-works',&lt;br /&gt; 'wks'      =&gt; 'application/vnd.ms-works',&lt;br /&gt; 'wmf'      =&gt; 'application/x-msmetafile',&lt;br /&gt; 'wps'      =&gt; 'application/vnd.ms-works',&lt;br /&gt; 'wri'      =&gt; 'application/x-mswrite',&lt;br /&gt; 'wrz'      =&gt; 'x-world/x-vrml',&lt;br /&gt; 'xaf'      =&gt; 'x-world/x-vrml',&lt;br /&gt; 'xla'      =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xlc'      =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xlm'      =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xlt'      =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xlw'      =&gt; 'application/vnd.ms-excel',&lt;br /&gt; 'xof'      =&gt; 'x-world/x-vrml',&lt;br /&gt; 'z'      =&gt; 'application/x-compress',&lt;br /&gt; 'php'      =&gt; 'application/x-httpd-php',&lt;br /&gt; 'php4'      =&gt; 'application/x-httpd-php4',&lt;br /&gt; 'php5'      =&gt; 'application/x-httpd-php5'&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-2009973577432146511?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/2009973577432146511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/mime-types-complete-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2009973577432146511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2009973577432146511'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/mime-types-complete-list.html' title='Mime Types, Complete List'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-7965376777173378116</id><published>2009-12-03T10:37:00.001Z</published><updated>2009-12-03T10:38:00.191Z</updated><title type='text'>PHP and 301 redirect</title><content type='html'>&lt;h2&gt;301 Moved Permanently&lt;/h2&gt;&lt;p&gt;&lt;b&gt;How to do it correctly with PHP?&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Set the obvious HTTP, but remember to place the page status as follow.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: php;"&gt;&amp;lt;?php&lt;br /&gt;header("HTTP/1.1 301 Moved Permanently");&lt;br /&gt;header("Status: 301 Moved Permanently");&lt;br /&gt;header ("Location: http://www.domain.com/location");&lt;br /&gt;exit;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-7965376777173378116?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/7965376777173378116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/php-and-301-redirect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/7965376777173378116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/7965376777173378116'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/php-and-301-redirect.html' title='PHP and 301 redirect'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8561868508709777690.post-2039909634656357310</id><published>2009-12-02T16:59:00.001Z</published><updated>2009-12-02T17:00:40.665Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='object-oriented'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Object-Oriented Government (analogy)</title><content type='html'>&lt;h2&gt;Object-Orientation and the structure of a “normal” Government&lt;/h2&gt;&lt;p&gt;Fabulous analogy created by Brandon Savage links the main OO concepts to the tasks, responsibilities and departments of a government. He believes programmers should learn with it and use these concepts. I think he is right in many things he said and that it makes a great blog post. Here is a short summary of what I think his article says and if you want more details, go see &lt;a href="http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/" target="_blank"&gt;Five (Good) Lessons The Government Teaches Us About Object-Oriented Programming&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;He lists 5 intersections between programming concepts (or principles) and Government's structure:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Abstraction&lt;/b&gt;&lt;br /&gt;By creating many objects to do a task that once was the job of only one, is called abstraction. This makes each object more simple and able to do only one thing. Government abstraction? Bureaucracy.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Encapsulation&lt;/b&gt;&lt;br /&gt;Protect and private functions, inside a class, 'encapsulates' its action. That means objects outside the  current instantiated one won't have access to it. Government encapsulation? Among other possible examples, front-line and back-line workers. One deals with the public and the other doesn't. (Good try Brandon, this analogy kind of worked :.)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;“Dumb Objects”&lt;/b&gt;&lt;br /&gt;Objects that are 'too smart' (love that) demand more time and effort to understand and alter them. Instead of having this complex chain of variables and objects, why not make these objects less clever? The idea here is to test the parameters that are being injected into it and use it. This prevents errors and makes the later debugging much easier. Government 'Dumb' Objects? Itself! Well, have you ever had to present the same document to different departments when all you want is to see a doctor, register a business or something like that? Well, the departments could have an integrated database, but like this they are easier to manage.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Decoupling (or de-normalization)&lt;/b&gt;&lt;br /&gt;A variation of the 'dumb' objects. It consists of the ability to move an object, or class, form one library to another, simplifying, once again, the management and debug. Governments like that and the less reliable a department is on a particular person the more flexible the system is. I personally think this happens because of lack of training budget. The same works for a developer..&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Many classes working on one single job&lt;/b&gt;&lt;br /&gt;Exactly like going to different departments and buildings to get one single task done, many systems have many objects, with different activities, working on the same action-flow. People complain about it when it concerns to governments, but what they don't realise is that what they are doing isn't one single task, it is many that looks like one. &lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8561868508709777690-2039909634656357310?l=www.thalesjacobi.com%2Findex.php' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/2039909634656357310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.thalesjacobi.com/2009/12/object-oriented-government-analogy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2039909634656357310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8561868508709777690/posts/default/2039909634656357310'/><link rel='alternate' type='text/html' href='http://www.thalesjacobi.com/2009/12/object-oriented-government-analogy.html' title='Object-Oriented Government (analogy)'/><author><name>Thales Jacobi</name><uri>http://www.blogger.com/profile/02652846319745201804</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03232742269778549729'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>