Sunday, January 31, 2016

DGF510SBP-D Dyna Glo 5 Burner Review

My old grill had the last two of its burners finally fail yesterday so I went out today and picked up the Dyna Glow DGF510SBP-D 5 Burner as a replacement.

I got the whole thing assembled in a little over an hour and didn't have anyone to help me out.  I was also watching all my kids at the time so you can probably get it put together in less time.

Why I chose the DGF510SBP-D from Dyna Glo?


I was looking for an economical grill but I am also picky in the features and like the grill to last.  I got my last grill which I used all the time for $160 and it made it ten years.  I bought the DGF510SBP-D grill at Home Depot today for $199.  I think this one will make it 5 or more years too.

Here are a few of the main reasons I decided to go with this grill.

  • There is an igniter for each of the five burners.  The igniter tends to be one of the first things to stop working and having a handful of igniters instead of one makes it easy to know this common failure is unlikely why I will need to replace this grill.

  • The number of burners and the BTUs that they put out was a step above anything else I was looking at in the price range I was interested in under $300.  It delivered.  A few minutes after kicking all five burners on to high, my new Dyna Glo is glowing hot at over 700 degrees!

  • The size of the grilling surface is great.  While it wasn't the absolute largest in terms of size that I found, it was very competitive.  I cooked my first meal on it tonight and used 3 burners for a hot side with plenty of room over the 2 burners I left off for indirect cooking.

  • The drip pan.  The entire pan is easy to remove.  My last grill was impossible to remove the area where all the drippings go.  Not the little cup that collects drippings so you can add some to your sauce....the whole thing.  My old grill ended up failing because the drippings built up and caught fire eventually wearing out the burner.  It was just too difficult to clean it so I ended up only cleaning it two times in ten years on my old grill.  The drip pan on this guy just slides right out.  I've got no excuse not to clean it every season.


Issues


Pre-purchase one of my hesitancies was that I had never heard of the company.  But then on a call with Home Depot they told me Brinkman had gone out of business so I decided this meant less to me than making sure the features were right.

The only issue I encountered was similar to a video I had seen while researching the grill. My side burner wouldn't ignite right out of the box. I ended up just bending the ignition piece a little bit closer to where the gas comes out and it started working.


So Far So Good


After bringing home the grill, unwrapping the box, assembling, and getting great results on the first meal, I would definitely recommend this grill to anyone looking to squeeze the most out of their dollar.  There are definitely better grills out there, but I think you'll have trouble finding one better in this price range.

Friday, January 8, 2016

Android ISO8601: How to Convert a Date to call APIs

I have needed to get a date in java converted to ISO8601 on android for awhile and struggled through a few different issues on my way to a working solution.

Since it's an app that I'm asking people to download, I don't like to increase the download size by even a few MBs. So even though Joda Time is great, I need a different way. In researching, I had to piecemeal a solution from various blogs and stackoverflow posts.

If you've ever been wondering,
- Does android have a standard way to convert to iso8601 format?
- Why isn't it easier to get a UTC date that follows iso8601 so I can just call the APIs?
Then hopefully I can save you some time.

Android ISO8601: UTC SimpleDateFormat


The following is a straightforward way to get a UTC ISO8601 string of a date object without using any external libraries.

SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ");
TimeZone tz = TimeZone.getTimeZone("UTC");
ISO8601DATETIMEFORMAT.setTimeZone(tz);
String isoDate = ISO8601DATETIMEFORMAT.format( dtobject);

Android ISO8601: APIs Don't like Arabic Chars


But wait, sometimes this still sends over Arabic characters like:
\u0662\u0660\u0661\u0666-\u0660\u0662-\u0662\u0665T\u0660\u0664:\u0665\u0661Z 

We don't want that.  The solution turns out to be fairly simple.  Make sure that the SimpleDateFormat is always converting using the English language locale.

SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ",Locale.ENGLISH);

**Credit goes to this StackOverflow Comment Suggesting Locale.English

Android ISO8601: A Convenience Class


To wrap it all up, here's a convenience method.  It can be dropped in without adding any major overhead to your app in terms of size or performance.

public class AndroidISO8601Util{


static SimpleDateFormat ISO8601DATETIMEFORMAT = new SimpleDateFormat("yyyy/MM/dd 'T'HH:mmZ",Local.ENGLISH);

//Note: this method is not thread safe because SimpleDateFormat is not thread safe
public static String getISO8601forAPI( Date dt){
TimeZone tz = TimeZone.getTimeZone("UTC");
ISO8601DATETIMEFORMAT.setTimeZone(tz);
return ISO8601DATETIMEFORMAT.format( dtobject);
}
}

Sunday, January 3, 2016

Export Unsigned APK with Android Studio

For years I developed with eclipse and used the Android Tools option to Export Unsigned APKs.

[caption id="attachment_284" align="alignleft" width="300"]Eclipse Android Tools had an easy option to Export an Unsigned APK Eclipse Android Tools had an easy option to Export an Unsigned APK[/caption]

I could then take the unsigned .apk file and upload it to Amazon's developer console.

This was one of the last items I was still using eclipse for after over a year of Android Studio development.  I finally spent some time figuring out how to make the same thing happen without needing eclipse any longer.  I found many of the questions and answers on stackoverflow to be confusing and inaccurate.  For example, many seem to think that using the debug apk is the same as using the unsigned release apk...which is not accurate.

This is the comment that ended up helping me get it right:  http://stackoverflow.com/a/32202274/966122

Here's How to Export Unsigned APK in Android Studio


1. Edit the gradle build file for the project to specify an unsigned release signing.

buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
}


releaseUnsigned.initWith(buildTypes.release)
releaseUnsigned {
signingConfig null
}

}

2. Generate Signed Apk using the releaseUnsigned Build Type.  This is on the 3rd or 4th screen in the flow of version 1.4 of Android Studio.

[caption id="attachment_286" align="alignleft" width="300"]Release unsigned apk in android studio Release unsigned apk in android studio[/caption]

Enjoy the Unsigned APK


Once the build finishes, there will be an unsigned apk in the location you specified. You can then upload that apk to an emulator or to Amazon to start the process of letting amazon sign the app.