Profile

Cover photo
Michael Prentice
682 followers|1,885,926 views
AboutPostsCollectionsPhotosYouTube+1'sReviews

Stream

Michael Prentice

Shared publicly  - 
 
 
I have uploaded my slides from "Simple HTTP with Retrofit 2" from Droidcon NYC. The video will follow in a few weeks.

To coincide with the talk, I have also released Retrofit 2.0.0-beta1! While it's not done, it's very usable.

#AndroidDev
Retrofit has been simplifying HTTP calls for years and this new version is no different. In addition to fixing some long-standing annoyances, there are a handful of new features which make it more powerful than ever. This talk will focus on how the new APIs in Retrofit aid in making HTTP calls as simple as possible for your app. The integration with OkHttp and Okio APIs will be covered to ensure a full understanding of the HTTP stack. Common u...
10 comments on original post
1
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
In the last few years, there have been incredible success applying Recurrent Neural Networks (RNNs) to a variety of problems, such as speech recognition, language modeling, translation, image captioning and more. 

Essential to these successes is the use of a very special kind of recurrent neural network architecture called Long Short Term Memory (LSTM), which accounts for long-term dependencies and relationships in data in order to produce amazing results. 

But what are LTSMs, and how do they work? In a blog post, linked below, Google intern +Christopher Olah gives an overview of LSTMs, explaining why and how they work so well. 
Recurrent Neural Networks. Humans don't start their thinking from scratch every second. As you read this essay, you understand each word based on your understanding of previous words. You don't throw everything away and start thinking from scratch again. Your thoughts have persistence.
3 comments on original post
1
1
Shakiba Tahmoresi's profile photo
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
Preferences Support Library: Preference Fragments for API 7+, no matter the Activity
Pro-tip by +Ian Lake

Creating your preferences from XML files means less code and a consistent user experience across apps. However, this required that you use PreferenceActivity and even then you could only use PreferenceFragment on API 11+ devices. Well, no more: the Preferences Support v7 Library (http://goo.gl/BPE0M1) makes it possible to use any Activity class (such as an AppCompatActivity) with PreferenceFragmentCompat (http://goo.gl/kKXszC) and add preferences using the same preference XML files (http://goo.gl/wOcIxI), while adding support for elements such as SwitchPreference (previously only available on API 14+ devices) to all API 7+ devices.

A simple implementation would include a PreferenceFragmentCompat such as:
public class PreferencesFragment extends PreferenceFragmentCompat {
 @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    addPreferencesFromResource(R.xml.preferences);
  }
}

You’ll also need to set preferenceTheme in your theme:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
  <!-- Set colorPrimary, colorPrimaryDark, colorAccent, etc →
  <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>

Customizing the preferenceTheme allows for increased control over the styling and layouts used for each preference type without affecting other parts of your Activity.

Even better, PreferenceFragmentCompat uses RecyclerView for showing the list of preferences, allowing you to integrate scrolling techniques (http://goo.gl/119brU) with the help of the Android Design Support Library (http://goo.gl/8LN2Aj).

One thing you’ll note isn’t in here is preference headers and you’d be totally right. However, that doesn’t mean a single list of preferences need to span a 10” tablet screen. Instead, your Activity can implement OnPreferenceStartFragmentCallback (http://goo.gl/IZWZBP) to handle preferences with an app:fragment attribute or OnPreferenceStartScreenCallback (http://goo.gl/CFp5Cr) to handle PreferenceScreen preferences. This allows you to construct a ‘header’ style PreferenceFragmentCompat in one pane and use those callbacks to replace a second pane without working in two separate types of XML files.

So what about the preferences-v14 library? You’ll find it offers the same API as the preferences-v7 library, but built on framework Fragments and DialogFragments.

If you’re building apps for Android TV, you’ll find the preference-v17 library (http://goo.gl/i2A1zF) incredibly helpful - providing an optimized Leanback version of preferences via LeanbackPreferenceFragment (http://goo.gl/eLqNEv) built on top of these preference APIs.

#BuildBetterApps
32 comments on original post
1
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
Breathing Beijing’s air is the equivalent of smoking almost 40 cigarettes a day. Why China's "airpocalypse" is even worse than previously thought http://econ.st/1MRhSHH
28 comments on original post
2
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
More pics of the Huawei Nexus (in a case). This is the real deal, sorry to burst your bubbles tin hats. Don't believe half-assed conspiracy theories. 
42 comments on original post
1
Add a comment...
Have them in circles
682 people
Deb Vorndran's profile photo
GDG North America's profile photo
Amy Harris's profile photo
Mike DiGiovanni's profile photo
Daniel Solano Gómez's profile photo
Fumiko Kurano's profile photo
Journey Leon's profile photo
Evan Aaron's profile photo
Jeffrey Cooper's profile photo

Michael Prentice

Shared publicly  - 
 
 
In June, we announced (https://goo.gl/TF7dmD) that Chrome will begin pausing many Flash ads by default to improve performance for users. This change is scheduled to start rolling out on September 1, 2015. 

Most Flash ads uploaded to AdWords are automatically converted to HTML5. To ensure your ads continue to show on the Google Display Network, please follow these steps before September 1:

1) Identify any Flash ads in your account that aren’t eligible for automatic conversion: https://goo.gl/I4186A 
2) Convert these ads to HTML5: https://goo.gl/ZBq5DR
Bringing Better Performance to Rich Media on Chrome Video and interactive media bring consumers rich, engaging experiences on the web--but they can also… - AdWords - Google+
20 comments on original post
1
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
Building better apps with Runtime Permissions
Android 6.0 Marshmallow introduces runtime permissions, giving your app control over when and with what context you ask for dangerous permissions and making installing and updating your app even easier. With the help of our newly released permissions design guidelines, learn how runtime permissions work, the tools to integrate them into your app, and the best practices around building a great user experience. #BuildBetterApps

http://goo.gl/ZlfEf3
28 comments on original post
1
1
Chris Pick's profile photo
Add a comment...

Michael Prentice

Shared publicly  - 
 
 
Prefer static handler classes and Android protip from +Boris Farber

All right, let's say that we have the following (pretty common) scenario: a handler inside the Activity. As you know, the hander API, is a service to deliver messages to various threads:

public class MainActivity extends Activity {
   // ...
   Handler handler;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        handler = new Handler() {
           @Override
            public void handleMessage(Message msg) {

             }
        };
   // ...

That looks fine, however what if we have the following code:

handler.postDelayed(...)

This means that the handler object, including its message, will not be garbage collected. And because the handler is a non-static inner class, the enclosing activity will not be garbage collected as well (even though it might not used). This results in a huge leak!

How do you sort this out? We need to use a static inner class with a weak reference. If you recall, a weak reference is a reference that anyone can clean, as long as the weak reference is the only reference. Here is the code that explains how to use it:

private static class MyHandler extends Handler {
   private final WeakReference<MainActivity> mActivity;
   // ...
   public MyHandler(MainActivity activity) {
       mActivity = new WeakReference<MainActivity>(activity);
       // ...
   }

   @Override
   public void handleMessage(Message msg) {
   }
   // ...
}

Check out more tips like this at www.api-solutions.com and here on Android Design Patterns: http://goo.gl/XbUVOq
16 comments on original post
1
1
Eric Lin's profile photo
Add a comment...

Michael Prentice

Shared publicly  - 
1
Add a comment...

Michael Prentice

Shared publicly  - 
 
Learning a lot about SAR and InSAR remote sensing today thanks to +Airbus​. 
1
Add a comment...
Michael's Collections
People
Have them in circles
682 people
Deb Vorndran's profile photo
GDG North America's profile photo
Amy Harris's profile photo
Mike DiGiovanni's profile photo
Daniel Solano Gómez's profile photo
Fumiko Kurano's profile photo
Journey Leon's profile photo
Evan Aaron's profile photo
Jeffrey Cooper's profile photo
Links
Story
Tagline
Founder and Organizer, GDG Space Coast
Introduction
Senior Software Engineer and Architect with experience in many platforms and languages. Organizer for the Google Developers Group (GDG) community on the Space Coast of Florida, USA.
Work
Occupation
Senior Software Engineer
Skills
Android, Java, Angular, Bootstrap 3, Guava, Guice, JavaScript, REST, HTML5, CSS3, IntelliJ, Eclipse, GWT, App Engine, C#, C++
Apps with Google+ Sign-in
  • GDG
  • FitHub
  • Angry Birds Under Pigstruction
  • Hungry Shark Evolution
  • Star Wars™:KOTOR
  • Space Coast Reef Wallpapers
  • Beach Buggy Racing
  • BombSquad
Michael Prentice's +1's are the things they like, agree with, or want to recommend.
Angry Birds 2 - Aplicaciones de Android en Google Play
market.android.com

¡Vuelven los Angry Birds en la secuela del mayor juego para móviles de la historia! Angry Birds 2 da comienzo a una nueva era en el videojue

GDG Space Coast
plus.google.com

Building a community of tech experts on the Space Coast

Futuristic GUI Watch Face - Android Apps on Google Play
market.android.com

Futuristic GUI Watch Face for Android Wear!Features of Futuristic GUI Watch Face : - Circular animation in interactive mode - Choose design

Walgreens - Android Apps on Google Play
market.android.com

Refill prescriptions faster, get photo prints in about an hour, and know the deals before you shop.PHARMACY FEATURES • Refill by Scan - Refi

How to Process Terabytes - per Day (or: my account of Splunk .conf 2013)...
helgeklein.com

Processing several terabytes of data per day is not too uncommon and easily possible with Splunk – that is one of the many things I learned

Fly Delta - Android Apps on Google Play
market.android.com

DESCRIPTION: Introducing Fly Delta 3.0, the biggest update yet to Delta’s award winning Android app. With redesigned navigation, quick acces

GDG Space Coast
plus.google.com

Building a community of tech experts on the Space Coast

GDG Space Coast
plus.google.com

Building a community of tech experts on the Space Coast

Audible –Hörbücher von Audible – Android-Apps auf Google Play
market.android.com

Kopfkino an – Alltag aus: Herzlich willkommen bei Audible, dem führenden Anbieter von Hörbüchern zum Download. Damit Ihr Alltag überall zum

Google Fit – Android-Apps auf Google Play
market.android.com

Werden Sie aktiv und leben Sie gesünder und bewusster.Ganz einfach Ihre Aktivitäten verfolgen: • Einfach Ihr Smartphone mitnehmen und Zugrif

Google Photos – Android Apps on Google Play
market.android.com

Google Photos is the home for all of your photos and videos, searchable and organised by the people, places and things that matter. • VISUAL

Google Connectivity Services - Android Apps on Google Play
market.android.com

Google Connectivity Services helps Android handle network connections. Keep it updated to ensure your device has the latest networking capab

Clock – Android Apps on Google Play
market.android.com

Enjoy Google’s material design clock experience on your Android device. • Set alarms, add timers, and run a stopwatch • Add your favorite ci

Falling Skies - Movies &amp; TV on Google Play
market.android.com

The first episode of the latest season will be available for playback on June 29, 2015 FALLING SKIES opens in the aftermath of an alien att

Star Wars: Return of the Jedi - Movies &amp; TV on Google Play
market.android.com

For the first time ever on digital, experience the triumph of the Force in Star Wars: Episode VI - Return of the Jedi. In the epic conclusio

Star Wars: The Empire Strikes Back - Movies &amp; TV on Google Play
market.android.com

For the first time ever on digital, discover the conflict between good and evil in the electrifying Star Wars: Episode V - The Empire Strike

Star Wars: A New Hope - Movies &amp; TV on Google Play
market.android.com

For the first time ever on digital, Luke Skywalker begins a journey that will change the galaxy in Star Wars: Episode IV - A New Hope. Ninet

Public - in the last week
reviewed in the last week
We had a huge party for a conference and the service was exemplary! Both the wait staff and bar tenders were incredible! Pizza, lamb, eggplant, and desserts were very good. Bacon wrapped dates were amazing. Will return on every trip to Boulder.
Public - in the last week
reviewed in the last week
Public - in the last week
reviewed in the last week
Service is quite poor. I stood at the uncrowded bar for 5 minutes while two bartenders messed with receipts and counted money while serving no one. Later we had a large table with a group but the wait staff would only check on us every 30-45 minutes. They left food containers and empty glasses on the table for a couple hours which made things really cramped until we asked them to do something.
Public - a week ago
reviewed a week ago
502 reviews
Map
Map
Map
Public - in the last week
reviewed in the last week
Great experience at the bar. Excellent cheeses and local specials. Fantastic pesto. Lamb sausage slider was awesome.
Public - in the last week
reviewed in the last week