Google Reader

Android 4.3 spotted again in logs, to be released at Google I/O on May 15th?

android4-3

Web visits from devices running Android 4.3  - an as yet unannounced version – have been showing up at various Android-related sites, including 9to5google.com - suggesting a possible launch at the Google I/O developer’s conference on May 15-17.

The Mountain View location (Google’s HQ) and Android Authority logs revealing that most of the devices running 4.3 were Nexus devices do tend to suggest the profiles are genuine …

Naturally, user agent profiles can always be faked, but why would anyone go through all that trouble just to try to fool a few tech websites and their readers.

Similarly, we have spotted Android 4.2.2 and Android 4.2 builds in our server logs ahead of their respective launches, so it would make sense to see traces of Google’s next Android versions appear with just a few weeks to go until Google I/O kicks off.

Google’s next major Android release, 5.0, is rumored to be called Key Lime Pie – the latest in Google’s dessert-based names. Although it has been suggested this might be launched at Google I/O, the server logs tend to suggest otherwise.

Infographic: Kinvey

Infographic: Kinvey


Google API infrastructure outage yesterday

Author PhotoBy Louis Ryan, Software Engineer

We know that developers around the world depend on our APIs for their apps, sites and businesses every day. Unfortunately, we experienced an outage of the Google API serving infrastructure yesterday, April 30. This outage impacted most Google APIs, resulting in requests failing with a 500 error code. Additionally, users may have experienced missing features or capabilities from some Google services that rely on these APIs.

At 6:26 pm Pacific Time, we pushed a config change that inadvertently caused a widespread outage of our API infrastructure.  Our normal rollback procedure failed, delaying the rollback until 7:22 pm, at which time APIs started to recover. The outage was completely resolved by 8:00 pm.

We are making several changes to help ensure this issue won’t happen again. We’ve identified some key improvements to our release and rollback process that we are implementing immediately. Reliability is a top priority at Google, and we are continuously making improvements to our systems. We apologize to everyone who was affected.


Louis Ryan is an engineer on the API platforms team in Mountain View. Louis is passionate about making APIs faster, more consistent, and reliable.

Posted by Scott Knaster, Editor

NEW GAME: Angry Birds Friends for FREE on mobile – play with friends!

Angry Birds Friends is all new for iOS and Android – and it’s FREE! Play with friends on mobile or Facebook and compete in weekly tournaments to see who’s king of the sling.

Angry Birds Friends arrives on iOS and Android mobile devices – and it’s FREE! Play the game you know and love with friends and compete in weekly tournaments starting on Monday May 6th. Download it today to get some practice in before it all begins. And be sure to invite your Facebook friends to take part in all the fun!

Every Monday a different tournament gets under way, with all-new challenges for you and your friends. Use power-ups such as the King Sling, Super Seeds and Birdquake or call in the Wingman to give you that winning edge on a new level. And when it’s game time, play for that gold crown and then brag to your friends about your glorious victories. Plus you can celebrate your wins on Facebook and even share fun gifts.

So start warming up right away before the tournament begins. It will give you a much better chance of winning all the glory!

Get Angry Birds Friends for free

Cordova/PhoneGap and the new Apple App Store Requirements

Beginning May 1st 2013, apps submitted to the Apple App Store…

1. must be built for iOS devices with Retina display and iPhone apps must also support the 4-inch display on iPhone 5

2. will no longer accept new apps or app updates that access UDIDs

Cordova/PhoneGap fulfills requirement (1) since version 2.5.0 and fulfills requirement (2) since version 1.7.0.

But what if my Cordova/PhoneGap app, which I am unwilling to upgrade, needs to be updated and submitted to the App Store?

You will have to manually update and patch your code. It’s not going to be an easy task, and I should warn you that upgrading will be easier. The main changes are to handle the iPhone 5 sized splashscreen, and the code to handle that is only in Cordova/PhoneGap 2.5.0. You can include the iPhone 5 sized asset and this will trigger the app to be the right size, but because of our splashscreen support it needs to match iOS showing the splashscreen after that splashscreen disappears. See our SplashScreen API for more details.

To be doubly sure – select your project icon in the Project Navigator in Xcode, then select the Summary tab. Select your project target then review the App Icons and Launch Images sections – you’ll see if you are missing anything or whether the assets are not the right sizes (denoted by the yellow triangle icon with an exclamation point in it).


New TightVNC version 2.7.1 is released April 26, 2013

A new version of TightVNC is now available in our Download section. It includes a single application screen mode, performance optimization for Windows 8, increased server security settings, and a whole heap of bug fixes. Read more or check the full list of changes.

-- Delivered by Feed43 service

Infographic – Everything you need to know about domains

NameCheap put together this  infographic that you may want to include in your marketing pieces to educate buyers about domain names.

Courtesy of Namecheap

Namecheap-Infograph

Separate favicons for the Frontend and Backend

AskApache.com

Here's a nifty little idea I had that has some merit. Separate favicons for separate areas of a site. Basically, I can't live without Firefox or Chrome and the way they use multiple tabs.

Separate favicons for the Frontend and Backend

I usually have several tabs open for a single site. Some tabs are in the backend, usually meaning WordPress administration area, and others are in the frontend, meaning the homepage or viewing a post. I'm constantly going back and forth between tabs, often to edit a post, and then switch to the preview of the post. Now, with 50 tabs open at one time, which isn't very unusual for me, it can become difficult to quickly spot which tab is which. Solution? Create 2 favicons. One for the frontend, and a different one for the backend! This makes it soooo much easier to quickly switch to the correct tab, and even though it's a fairly small trick/tip compared to most of the articles on this site, it's helpful enough that I wanted to put it out there for all you wonderful readers.

Separate favicons using WordPress

So there are many ways to do this, but probably the best is to just add a simple little function to your themes functions.php file.

Just add this to your functions.php file. Then you will need to create a favicon in your root folder where your wp-config.php file lives, and an admin-favicon.ico in your active themes folder where your style.css file lives.

View syntax-highlighted source.

<?php

function askapache_separate_favicons() {
    
    
// default for frontend
    
$favicon_uri WP_SITEURL '/favicon.ico';
    
    
// if in backend change to the admin-favicon.ico file located in the active theme directory where style.css is
    
if ( is_admin() ) $favicon_uri preg_replace'|https?://[^/]+|i'''get_stylesheet_directory_uri() ) . '/admin-favicon.ico';

    
// output the xhtml
    
echo '<link rel="shortcut icon" href="' $favicon_uri '" type="image/x-icon" />';
    
}
add_action'wp_head''askapache_separate_favicons' );
add_action'admin_head''askapache_separate_favicons' );

?>

Raw Code

<?php
 
function askapache_separate_favicons() {
  
  // default for frontend
  $favicon_uri = WP_SITEURL . '/favicon.ico';
  
  // if in backend change to the admin-favicon.ico file located in the active theme directory where style.css is
  if ( is_admin() ) $favicon_uri = preg_replace( '|https?://[^/]+|i', '', get_stylesheet_directory_uri() ) . '/admin-favicon.ico';
 
  // output the xhtml
  echo '<link rel="shortcut icon" href="' . $favicon_uri . '" type="image/x-icon" />';
  
}
add_action( 'wp_head', 'askapache_separate_favicons' );
add_action( 'admin_head', 'askapache_separate_favicons' );
 
?>

Separate favicons for the Frontend and Backend… originally appeared on AskApache.com

The post Separate favicons for the Frontend and Backend appeared first on AskApache.

Backing up Gmail messages with offlineimap

A while back I realised I had a ton of email archived on Gmail which I would be sad to lose if I lost access to my Google account or couldn’t access the internet for some reason. I also wanted a backup in case I decided to migrate away from Gmail to use another service.

The approach I took was to use offlineimap to download the contents of my mail using Gmail’s IMAP support. I set it up to download a few days of email at a time so I wouldn’t encounter any bandwidth limiting from Google or risk getting my account temporarily suspended for aggressive use.

I chose to use ‘Maildir’ format for the downloaded mail so I could use notmuch locally to read and search.

The matter of dealing with Gmail folders is a bit tricky. These are exposed as IMAP folders and if you’re not careful you can end up downloading emails multiple times for each folder. I didn’t really want the folder structure. I just wanted all emails and I’d use the tagging mechanism of notmuch to add tags after the fact.

The secret to ignoring folders is to create a folderfilter entry in the .offlineimaprc file. This is a lambda function that given a folder name should return true if it’s a folder you want to be downloaded by offlineimap. I use:

folderfilter = lambda foldername: foldername in ['[Gmail]/All Mail', '[Gmail]/Sent Mail']

This downloads “All Mail” and “Sent Mail”. This way I get everything in my Gmail without the folder structure.

I chose to add a nametrans entry so that the downloaded folders in the Maildir have more relevant names. nametrans is a lambda function that, given a folder name, returns the name that should be used locally for that folder. Here I translate “All Mail” to “all” and “Sent Mail” to “sent”:

nametrans = lambda foldername: 
              re.sub('^\[Gmail\]/All Mail$', 'all', 
              re.sub('^\[Gmail\]/Sent Mail$', 'sent',foldername))

To connect to Gmail the following entries are used in the remote repository section:

type = Gmail
remotehost = imap.gmail.com
realdelete=no
maxconnections=1
ssl = yes
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
remoteport = 993
remoteuser = ...
remotepass = ...

My local repository section is:

type = Maildir
localfolders = ~/.Mail

To prevent having to run offlineimap for a long time on the initial sync I did it over a series of days. I used the maxage setting in the Account section. When set mail older than this number of days is not synced. So I’d set it for 100 days, do a sync. Then I’d increase it by a 100 the next day and do another sync. Over a series of days/weeks I have all my email. Once completely synced I removed the entry from the .offlineimaprc file. I’m not sure what the best value is and maybe it doesn’t matter but this worked for me.

My .offlineimaprc then looks like:

[general]
accounts = gmail
ui = TTY.TTYUI

[Account gmail]
localrepository = gmailLocal
remoterepository = gmailRemote
maxage = 1000

[Repository gmailLocal]
type = Maildir
localfolders = ~/.Mail

[Repository gmailRemote]
type = Gmail
remotehost = imap.gmail.com
realdelete=no
maxconnections=1
ssl = yes
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
remoteport = 993
remoteuser = ...
remotepass = ...
nametrans = ...show above...
folderfilter = ...show above...

I used notmuch to process and search the Maildir locally. By setting synchronize_flags=true in my .notmuch-config file I could read the offline email in notmuch, incrementally sync with offlineimap, and the ‘read’, ‘replied’, etc flags are synchronized between them.

To tag with notmuch I run a script after syncing with .offlineimap that tags based on certain criteria. Something like:

offlineimap
notmuch new
notmuch tag +sent -- folder:sent and not tag:sent 
notmuch tag +bugzilla -inbox -- tag:inbox and from:bugzilla-daemon@mozilla.org
notmuch tag +ats -inbox -- tag:inbox and to:ats-lang-users
...etc...

Original iPhone will soon reach ‘obsolete’ status in Apple Retail Stores

iphoneAccording to internal Apple documentation, the original iPhone, which first debuted in 2007, will soon enter “obsolete” status, with a few exceptions. The official switch will happen on June 11, 2013, when the iPhone, along with several other Macs and Xserve models will officially be classified as vintage and obsolete products by Apple. Thanks, G! 

Apple’s support site defines vintage products as:

 …those that were discontinued more than five and less than seven years ago. Apple has discontinued hardware service for vintage products with the following exception:

-Products purchased in the state of California, United States, as required by statute.

-Owners of vintage Macintosh products may obtain service and parts from Apple service providers within the state of California, United States.

-Owners of vintage iPod products in the state of California may obtain service from Apple Retail Stores or by contacting AppleCare at 1-800-APL-CARE.

An obsolete product, on the other hand, is one that was discontinued more than seven years ago, and will not be supported under any circumstance. It’s worth noting that over 18 months ago, AT&T stopped activating the original iPhone, without any roundabout solution.

While the original iPhone will be now considered obsolete in the U.S. at walk-in Apple stores and around the world, the “vintage” status will still apply with AppleCare  and Authorized Service Providers, meaning it is possible to have the device serviced if you call directly.

Keep in mind, we’re talking about the first-generation iPhone, with its EDGE (2G) connectivity and 128 MB of RAM. Meanwhile, you can buy a blazing fast iPhone 5 with LTE (4G) for as low as $99 in some cases.

 


PayPal, Payment Method in Google Play?

There are multiple payment options in Google Play, from credit and debit cards to carrier billing and gift cards, but PayPal isn't one of them. Google Wallet competes with PayPal and this could be one of the reasons why you can't use PayPal in Google Play.

Despite this, some Google Wallet JavaScript files that are used in Google Play include many references to PayPal. For example, PayPal is placed next to Maestro, Automated Clearing House (ACH), proxy cards and carriers like Sprint, Softbank and Vodafone. Google's code also mentions PayPal UUIDs, which are used by the PayPal Merchant API, and there's a function named "onRedirectToPayPalPopup". There's also an error message: "PAYPAL_INSTRUMENT_ERROR" next to messages like "GIFT_CARD_ALREADY_REDEEMED" and "INVALID_CREDIT_CARD".