28 May 2015

Unified Search in Google Calendar and Google Drive


Back in 2012, Gmail enhanced the search feature by showing relevant emails, Google Calendar events, Google Drive files as you type your query. A similar feature is now available in Google Calendar and Google Drive.

For example, you can type a query in Google Calendar and find emails and Google Drive files, in addition to Google Calendar events. Click one of the results and it opens in a new tab.


Google Drive shows Google Calendar events and results from Gmail. If there are no Google Drive results, you'll see this message: "there are no recent records that match your search".


{ Thanks, Angelo Giuffrida. }

22 May 2015

Discontinued Service in Google's App Launcher


For some reason, Google's app launcher doesn't let you remove Google services. You can add Google products, change their order, move them to the "More" section, but you can't delete them.

Helpouts was discontinued last month, but it's still included in Google's navigation menu. If you've added the Helpouts shortcut to your navigation menu, you can still click it and find that "Helpouts is no longer available."


Fortunately, there's a Chrome extension that lets you add almost any Google service to the app launcher and also remove shortcuts.


From Google Webmaster Tools to Google Search Console


Google Webmaster Tools has a new name: it's now called Google Search Console. Why change the name? "It turns out that the traditional idea of the 'webmaster' reflects only some of you. We have all kinds of Webmaster Tools fans: hobbyists, small business owners, SEO experts, marketers, programmers, designers, app developers, and, of course, webmasters as well," explains Google.


Google Search Console will continue to offer the same features, including Google Search analytics, information about external and internal links, mobile usability issues, crawling and indexing issues, security and spam.

There are some other consoles for Google services: Google Play Developer Console for Android, Google Developers Console for projects that use Google APIs and Google Cloud, Google Admin Console for Google Apps.

{ Thanks, Mukil Elango. }

Google Tone


Google Tone is an experimental Chrome extension for sharing the URL of the current tab with other computers. It doesn't use Bluetooth, NFC or WiFi: it only sends audio tones. "Google Tone turns on your computer's microphone (while the extension is on) and uses your computer's speakers to exchange URLs with nearby computers connected to the Internet."

For some reason, Google requires to be logged in to a Google account and to be online. Your Google Profile name and picture are displayed next to the notification. I'm not sure why this feature isn't optional.


Google Research Blog has more information about this experiment. "Tone provides an easy-to-understand broadcast mechanism that behaves like the human voice — it doesn't pass through walls like radio or require pairing or addressing. The initial prototype used an efficient audio transmission scheme that sounded terrible, so we played it beyond the range of human hearing. However, because many laptop microphones and nearly all video conferencing systems are optimized for voice, it improved reliability considerably to also include a minimal DTMF-based audible codec. The combination is reliable for short distances in the majority of audio environments even at low volumes, and it even works over Hangouts."

The extension doesn't work all the time, so make sure to turn up your volume, turn on your computer's microphone and unplug your headphones. When it works, it's a cool way to share the current tab with all the computers around you, assuming that they use Chrome and this extension is installed.

Fast Is Slow in the New Google Maps


Sometimes even Google makes mistakes. The new version of the desktop Google Maps has an updated interface for layers like traffic, transit, bicycling and terrain. If you enable the traffic layer, Google shows a legend at the bottom of the page and claims that red = fast-moving cars and green = slow-moving cars. Obviously, the labels are reversed.


Here's the previous interface, which uses the proper labels:


This mistake was spotted by Ken Drori, a reader of this blog. Fortunately, it's quite easy to fix.

{ Thanks, Ken. }

21 May 2015

The Best Websites to Learn Coding Online


The Learn to Code movement has picked up momentum worldwide and that is actually a good thing as even basic programming skills can have a major impact. If you can teach yourself how to write code, you gain a competitive edge over your peers, you can think more algorithmically and thus can tackle problems more efficiently.

Learn Programming

Don’t just download the latest app, help redesign it. Don’t just play on your phone, program it. — Obama.

There’s no reason why shouldn’t know the basics of coding. You can automate tasks, you can program your Excel sheets, improve workflows, you can extract data from websites and accomplish so much more with code. You may not be in the business of writing software programs but knowing the basics of coding will help you communicate more effectively with developers.

Gone are the days when you had to enroll in expensive computer training classes as now exist a plethora of web-based courses that will help you learn programming at your own pace in the comfort of your web browser.

The Best Sites to Learn Programming

If you are ready to take the plunge, here are some of the best websites that offer courses in a variety of programming languages for free. I have also added a list of companion ebooks that will give you a more in-depth understanding of the language and they don’t cost anything either.

Online Courses & Screencasts Programming Books (Free)
JavaScript Code Academy, Learn Street, Code Combat, Code Avengers Eloquent JavaScript, JavaScript Guide, Speaking JS, JS The Right Way, Oh My JS, Canvassing
HTML & CSS Code Academy, Don’t Fear The Internet, Tutsplus, Learn Layout, A to Z CSS, Dash, Web Accessibility, The Hello World, Khan Academy, HTML5 from Scratch Mozilla, Dive into HTML5, 20 Things I Learned, HTML Dog, HTML & CSS, HTML5 for Designers, DOM Enlightenment, HTML Canvas
jQuery Code Academy, Tutsplus, Code School jQuery Fundamentals, Learn jQuery
Python Code Academy, Google, Learn Street, Python Tutor, IHeartPY Python for You and Me,  Dive into Python, Learn Python the Hard Way, Think Python, Python for Fun, Tango with Django, Django
Ruby & Ruby on Rails Code Academy, TryRubyCode Learn, Railscasts, Rubymonk, Learn Street Why’s (Poignant) Guide to Ruby, Learn Ruby the Hard Way, Learn to Program, Learn Rails by Example
PHP Code Academy PHP Programming, Practical PHP
Google Apps Script Getting Started, Office Hours, Google Scripts Examples, Learning Apps Script
WordPress Treehouse, WordPress TV
Linux & Shell Scripting Stanford.edu, Explain Shell Conquer the Command Line
Node.js Nodetuts, Node School The Node Beginner Book, Mixu’s Node book, Node Up and Running, Mastering Node.js
Angular JS Code School, Egg Head, Learn Angular Angular JS Tutorial, Thinking Angular, Angular Tutorial, Getting Started (Adobe)
Related: Learn Touch Typing & Code Faster
Git (version control) Code School, Git Immersion, GitHub Training, Udacity Pro Git, Learn Git, Gists in Github
Objective-C (iOS & Mac) Code School, Stanford, iTunesU
Chrome Dev Tools Code School, Dev Tools Secret, Chrome Dev Tools Tutorial, Udacity, Building Browser Apps
Go Language Golang.org, GopherCasts Programming in Go, Go by Example, Learning Go, Building Web Apps with Go, Learning Go
Java Learn Java, Coding Bat, Java Udemy, Learneroo Programming in Java, Thinking in Java, O’Reilly Learning Java, Think Java, Java & CS, Java for Python Devs
Android App Development Udacity (Google Developers), Coursera, The New Boston, Google University, App Development Essentials, Code Learn, App Inventor (Visual)
D3 (data visualization) Data Visualization for the Web, Dashing D3, D3 Tips & Tricks
Related: Master VIM – The Favorite Text Editor of Programmers
SQL (Databases) SQL Zoo, SQL @Stanford, Essential SQL, SQL for Nerds, Intro to SQL, SQL Bolt, PHP & MySQL
Everything Else Udacity, edX.org, Coursera, Udemy$, Lynda$, Pluralsight$, Treehouse$, Open Consortium, One Month Rails$

Teaching Kids to Code

If there are kids in the family, you should download either Tynker (Android/iOS) or the Hopscotch app for iPad and they can learn the basics of programming through games and puzzles.

There’s also Scratch, an MIT project that allows kids to program their own stories and games visually. Scratch is available as a web app or you can download it on your Mac/Windows/Linux computer for offline use. Microsoft TouchDevelop, Blockly and Alice are some other web apps that will introduce the concepts of computer progamming to your children.

On a related note, the following chart from Google Trends shows the relative search popularity of various programming languages over the last 5 years. JavaScript clearly has maintained the lead.

programming language


The story, The Best Websites to Learn Coding Online, was originally published at Digital Inspiration by Amit Agarwal on 20/05/2015 under Code, Internet.

20 May 2015

Tweets in Google Search: the End of the Google+ Era


Google announced that it will start to display tweets in Google Search for mobile. "When you're searching on the Google app or any browser on your phone or tablet, you can find real-time content from Twitter right in the search results," informs Google.

There are two Twitter-related cards. One of them shows popular tweets related to your query and it's only displayed for news-related searches.


The second card enhances Twitter results with recent tweets. For example, when you search for [nasa twitter], Google displays the most recent tweets, including those that were posted a few seconds ago.


Basically, Google has access to Twitter's Firehose API once again, 4 years after Google Real-Time Search was discontinued and Google+ was launched.

Twitter's blog says that "the desktop web version is coming shortly, and we have plans to bring this feature to more countries in the coming months." Right now, this feature only works in the US. "By deeply integrating Twitter’s real-time content into Google search, we hope you find it easier than ever to explore your interests across both Twitter and Google."

It's the end of the Google+ era. Even if Google+ will continue to exist in one way or another, Google will stop promoting it aggressively and will probably use it as a backend service. Bloomberg reports that Google "is set to reveal an online picture sharing and storage service that will no longer be part of the Google+ social network" and "will let users post images to Facebook and Twitter".

More Related News in Google's Mobile App


I'm not sure if this is a new feature, but Google's search app for Android shows a list of recent articles from a news site below some search results. The list uses big thumbnails and you can swipe right to find more articles.


For examples, searches for [sports], [weather], [obama] trigger the visual list of recent articles.


Google shows related news articles.


This feature also works for news-related YouTube videos.



18 May 2015

Make International Phone Calls from your Mobile even without the Internet


How do you make international calls from your mobile phone? Mobile carriers often charge exorbitant rates for international phone calls but you can Internet based services like Skype or Google Hangouts and call any landline or cell phone number in the world for a low per minute fee.

All you need is a mobile phone connected to a Wi-Fi hotspot and some credit balance in your account for making the phone call. You can use these VoIP apps when travelling overseas as well and make significant savings for both domestic and international calls.

Now consider a scenario where you have a mobile phone but there’s no Wi-Fi around and the 3G/4G services are either slow or unavailable. Would you still be able to place calls through any of these apps? The answer is obviously in the negative but there’s at least one app that has figured out a unique solution to this common problem.

The app, known as Ringo, lets you make international calls from your mobile phone but “without” requiring the Internet. It does so by cleverly converting your request to dial an international number into a local number.

Let’s say you are trying to call someone in Singapore from India. When you make a call through Ringo, the app will internally dial a local number in India. At the other end in Singapore, it will again make a local call to the desired number and will connect these two calls using their own infrastructure. This process is transparent to the end users though it make few seconds extra to initiate the call.

International Call Rates – Comparison

Here’s a chart comparing the voice calling rates (in cents per minute) for all the popular voice calling apps. Ringo not only allows you make international phone calls without 3G or WiFi but it is cost-effective too.

Skype Viber Ringo
Callback
Ringo
Wifi
Google
Hangouts
USA 2.3 1.9 1.2 0.2 Free
India 1.5 2.2 1.9 0.9 1.0
UK 2.3 5.9 1.4 0.4 3.0
Russia 2.3 7.9 12.5 11.6 12
Brazil 3 19 3.6 2.6 6.0
China 2 1.3 1.6 0.6 1.0
Singapore 2.3 1.9 1.4 0.4 2.0

 

In my testing, I found the voice quality good and the app automatically figures out all the international numbers in your phonebook.  Also when open a contact inside Ringo, it will show their current local time and this little detail does help save a trip to Google.

Is Ringo a replacement for Skype or Google Hangouts? Well, yes and no. With Ringo, you do not need the Internet to make phone calls but you still need a local number. In the case of Skype, you do not need a local number but you have to be connected to the Internet. Also, Ringo is mobile only while Skype lets you call telephone numbers from Mac and Windows PCs as well.

Ringo is available for Android, iPhone and Windows Phone.


The story, Make International Phone Calls from your Mobile even without the Internet, was originally published at Digital Inspiration by Amit Agarwal on 18/05/2015 under Skype, Internet.

17 May 2015

Material Design Update for Google Product Forums


Google Product Forums have a new interface that uses Material Design. "Our new design is focused on making it easier for you to find the answers you need and ask questions across all Google Product Forums," informs Google.


The new interface has removed display density settings and topic list options. Unfortunately, the new interface for topic lists uses a lot more space, so you'll see fewer topics in the same space. Here's a screenshot that compares the old UI with the new one: 12 topics vs 3 topics using the same window size. The compact view is no longer available and Google now shows the entire title of the topic, followed by a snippet from the first post and some information about the author, the number of posts and views.


To star a topic from the list view, you need to select it and use the Actions menu (or you can use the 's' keyboard shortcut). Now you can select multiple posts and star them or mark them as read.


Topic pages use more white space, bigger thumbnails and have some new buttons that let you jump forward or backward a few posts and go to the top or bottom of the page.



Many features from the old interface have been removed. I couldn't find a way to switch to the tree view or paginated view, to collapse or expand all the posts. You can only vote up a post, the downvote feature has been removed.

Google uses a funny message which lets you know that you can go back to the old interface: "Welcome to the new version of Google Product Forums! You can switch to the old design if you'd like (but really why?)."

{ Thanks, Mukil Elango. }

16 May 2015

Add Related Posts to WordPress with Jetpack but without the Extra Baggage


It is recommended that you include Related Posts on your blog pages as they help decrease the bounce rate of your site and are good from the SEO perspective. That’s because when you publish a new article, the old content, that was previously hiding in the archives, shows up in the list of related posts and thus gets fresh exposure to both human visitors and search engines.

Matt Cutts, in 2010 when Google search results were a collection of 10 blue links, recommended using related posts and the advice is still relevant today in the age on Penguins and Pandas.

YARPP, short for Yet Another Related Posts Plugin, is the most popular plugin in the WordPress repository for display related articles but it does put lot of strain on your WordPress database server. All the related posts calculations are done using complex SQL queries on your WordPress database and that can affect your website’s performance.

Jetpack, the official WordPress plugins from the makers of WordPress, now includes Related Posts functionality and it is a better alternative to YARPP for one simple reason – Jetpack runs the algorithms to compute related posts in the cloud and thus put no additional load on your server. Through the WordPress plugin, your website makes an API call to Jetpack which in turn returns a list of posts related to the current post.

WordPress Related Posts

Jetpack Related Posts for WordPress

I’ve obviously replaced YARPP with Jetpack for displaying related posts on labnol.org but there’s something I was not too happy about Jetpack. It adds a number of JavaScript and CSS files to the website’s header for rendering the related posts. This in turn increases the weight of the page but, fortunately, there’s a way around that.

<?php

/* Jetpack Related Posts */

/* This is required to remove the CSS and JS enqueued in the header */
function jetpackme_no_related_posts( $options ) {
    if ( is_single() ) {
        $options['enabled'] = false;
    }
    return $options;
}

add_filter( 'jetpack_relatedposts_filter_options', 'jetpackme_no_related_posts' );

/* Create shortcode for displaying related posts anywhere in the post */
function labnol_related_shortcode( $atts ) {

    $related_posts = "";

    if ( class_exists( 'Jetpack_RelatedPosts' ) && method_exists( 'Jetpack_RelatedPosts', 'init_raw' ) ) {

        $related = Jetpack_RelatedPosts::init_raw()
            ->set_query_name( 'jetpackme-shortcode' )
            ->get_for_post_id(
                get_the_ID(),
                array( 'size' => 5 ) // How many related posts?
            );

        if ( $related ) {

            foreach ( $related as $result ) {
                $related_post = get_post( $result[ 'id' ] );
                $url = get_permalink($related_post->ID);
                $title = $related_post->post_title;
                $related_posts .= "<li><a href='" . $url . "'>$title</a></li>";
            }
            $related_posts = '<ol>' . $related_posts . '</ol>';
        }

    }

    return $related_posts;
}

/* Create a new shortcode for Jetpack related posts */
add_shortcode( 'labnol_related', 'labnol_related_shortcode' );

/* Do not load the one-big Jetpack concatenated CSS file */
add_filter('jetpack_implode_frontend_css', '__return_false');

/* Dequeue the default styles and jQuery for Jetpack module */
function add_labnol_scripts() {
    if (!is_admin()) {
        wp_dequeue_script('jetpack-related_posts');
        wp_dequeue_style('jetpack-related_posts');
    }
}

add_action("wp_enqueue_scripts", "add_labnol_scripts", 20);

?>

You can use the Related Posts module of Jetpack but without adding extra baggage to your website. Assuming that the Jetpack plugin is already installed on your website, activate the Related Posts module and then paste this code inside the functions.php file of your WordPress theme.

What we have done so far is dequeued all the extra CSS and JS files that are normally added to the site by Jetpack and we’ve also created a WordPress shortcode that will let us include the Related Post module anywhere on the page (and not limit us to the end or start of an article).

You can also set the number of related posts to display in line #27.

Next open the file where you wish to display related posts, most likely the single.php or loop.php file in the WordPress theme folder, and add this line.

<?php echo do_shortcode( '[labnol_related]' ); ?>

You should also check this page on the Jetpack website for more technical details on how to customize the related posts module of Jetpack.

One more thing. If you have only recently enabled Related Posts for Jetpack, the related posts may not show up on your website because it may take some time for Jetpack servers to index your site.


The story, Add Related Posts to WordPress with Jetpack but without the Extra Baggage, was originally published at Digital Inspiration by Amit Agarwal on 16/05/2015 under WordPress, Internet.

How to Monetize Google Maps on your Website with AdSense Ads


You have been using Google AdSense ads to monetize the content of your website but did you know that you can also use the same AdSense program to also monetize any Google Maps that are embedded on your web pages. You can embed a Google Map and AdSense ads will be automatically served inside the map that will either be contextually relevant to the content of the page or targeted based on the location of the visitors.

The Google Maps block embedded below contains a rectangular AdSense ad unit placed near the top-center area of the map. Where Am I is another example of a website that embeds Google Maps with ads.

AdSense Ads for Embedded Google Maps

Google Maps offers you an easy option to embed maps onto your website but the default embed code does not allow monetization. You’ll have build the map on your own using the Google Maps API to enable advertising and this isn’t difficult either. Let me show you in few easy step.

To get started, go to the Google AdSense website and create a new ad unit. You can choose the default color scheme for the ad unit (white background) and pick responsive for the size. The latter doesn’t matter though as the ad unit will automatically fit inside the container map.

Next, copy-paste the following Google Maps embed code anywhere in your web template.

<div id="google-maps" style="width:500px; height:500px;"></div>

<script src="http://ift.tt/1Fk2WNC;
 </script>
<script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
 </script>

<script>

  function showGoogleMaps() {

    var mapOptions = {
      center: new google.maps.LatLng(38.8977, -77.036),
      zoom: 5
    };

    var map = new google.maps.Map(
      document.getElementById('google-maps'), mapOptions);

    var ad = '<ins class="adsbygoogle" \
              style="display:inline-block;width:300px;height:100px" \
              data-ad-client="ca-pub-xxxx" \
              data-ad-slot="yyyy"></ins>';

    var adNode = document.createElement('div');
    adNode.innerHTML = ad;

    map.controls[google.maps.ControlPosition.TOP_CENTER].push(adNode);

    google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
      (adsbygoogle = window.adsbygoogle || []).push({});
    });

  }

  google.maps.event.addDomListener(window, 'load', showGoogleMaps);

</script>

You can replace the height and width of the Google Maps in line #1 to fit your website layout while the latitude and longitude of the place needs to be replaced in line #11. Finally, xxxx and yyyy in the embed code should be replaced with your AdSense Publisher ID and the Ad Slot ID respectively. You can find these values in the embed code generated by AdSense.

If you are ready to fiddle with the JavaScript, you can even more option to customize the embedded map.

Google Maps with AdSense Ads

For instance, you can easily change the position of the AdSense ad unit inside Google Maps from TOP_CENTER (line #28) to BOTTOM_CENTER or something else.

Similarly, you can change the default view of the embedded map from Roadmap to Satellite or Hybrid. The various controls inside the Google map – like the street view Pegman, the zoom slider, the pan control – can be easily hidden or moved to a different position by setting the corresponding properties inside the mapOptions object.

Also see: Embed Google Maps Street View

<script>

  var mapOptions = {

    // Center the map on this address
    center: new google.maps.LatLng(38.8977, -77.036),

    // Set the initial zoom level
    zoom: 14,

    // Hide the slider to control the zoom levels
    zoomControl: false,

    // Hide the controls to pan the map
    panControl: false,

    // Display the street view peg but in a different position
    streetViewControl: true,
    streetViewControlOptions: {
      position: google.maps.ControlPosition.BOTTOM_CENTER
    },

    // Allow visit to switch to Satellite view and back
    mapTypeControl: true,

    // Set the default type of the map to Roadmap 
    mapTypeId: google.maps.MapTypeId.ROADMAP

  };

</script>

The story, How to Monetize Google Maps on your Website with AdSense Ads, was originally published at Digital Inspiration by Amit Agarwal on 16/05/2015 under Google AdSense, Google Maps, Internet.

15 May 2015

Google Play Music for Desktop Has a New Interface


Google Play Music's web app switched to Material Design and has a new interface that closely resembles the mobile UI. The left sidebar is now a hamburger-style menu, photos are bigger, there's more white space and everything looks like a mobile app stretched out to fit a much bigger screen.




"We're moving towards making the web feel more like an app and less like a series of web pages strung together by links," said Google UX designer Bryan Rea. "The new header, the slick transition as you scroll, the collapsible nav, new animations, these all feel like things you expect in an app not on the web."

YouTube Discontinues Collections


YouTube had a feature that allowed you to group subscriptions and create collections. This feature will soon be removed: "on 5/20/15, we'll discontinue Collections, as we'll focus on other efforts to make your subscriptions more enjoyable."


"A collection is a group of subscriptions you can create to help you organize and view content from the channels you're subscribed to. Collections can be created by themes (like 'basketball' or 'music')," explains YouTube.



Collections could be created, deleted and edited from the subscription manager. In many ways, YouTube collections were just like folders in a feed reader.

If you want to use a feed reader to manage your YouTube subscriptions, you can export them to OPML and import the file in your favorite feed reader. Open the subscriptions manager, scroll down to the bottom of the page and click "Export subscriptions". Another options is to use this link.

YouTube Switches to Roboto


After a few months of experiments, YouTube changed its font from Arial to Roboto. In addition to Android, many other Google apps and services use Roboto, a typeface designed in-house at Google by Christian Robertson.

Here are some screenshots from Firefox for Windows:



Browsers like Firefox and Chrome show a lot of information about fonts: you can select some text, right-click, pick "inspect element", switch to the Fonts or Computed tab and find the fonts that are used.


9to5Google.com says that "the font comes in several weights, but the one Google has gone with is slightly lighter than what users may be used to compared to the Arial font. This will surely lead to some complaints about it being harder to read".