Profile cover photo
Profile photo
Louis St-Amour
La vie est belle
La vie est belle

Louis's posts

Running L "preview" bits with final SDK updates on Nexus 5, paired with newly purchased 4.4W API 20 LG G Watch. Running Tockle 1.0.2 as it hasn't shipped me the beta bits yet. First had trouble getting Tasker to work with Tockle, but uninstalling Tockle then installing it again did the trick as Tasked needed permissions that only ship with its app, so you have to install in the right order.

But the bug is... Tasks only work when the screen is on or very recently on. After that, there's no reaction on the phone until I unlock the screen again. Is anyone else seeing this or anything similar? When available, I'll try updating to the beta...

Post has attachment
Needed to clean up my hard disk. So I ran the following search ;-)

Post has attachment
Wow. I never thought I'd see this -- but Apple actually credits the jailbreakers in the security release notes. Not only that, they credit at least one YouTube video uploader for an activation bug... 

Some fun ones in there too: "Deleting an image from the asset library did not delete cached versions of the image. This issue was addressed through improved cache management."

Another: "Safari may have autofilled user names and passwords
into a subframe from a different domain than the main frame. This
issue was addressed through improved origin tracking."

Or: "A person with physical access to the device may be able to
disable Find My iPhone without entering an iCloud password"

Wait, you can launch FaceTime audio calls from Safari? :@ "Safari did not consult the user before launching facetime-audio:// URLs. This issue was addressed with the addition of a confirmation prompt."

Oh and Apple also credited someone for exploiting a bug in mp4 encoding and posting it as a video link:

As an aside ... Having just seen that one guy in Finland made roughly $55k from bug bounties for Chrome, I wonder if I could make a side job out of security research. Might learn quite a bit too. :)

Hey, +Android Developers -- here's a free UX improvement: if I'm typing something in portrait on my Nexus 5 and I rotate my device to reach the return key, don't go landscape, move the return key and pause a few seconds during the rotation.

Or if you have to, fine, but here's a #ProTip:

Portrait-Landscape-Portrait-Landscape-Portrait in under 5 seconds while the keyboard is out ... would be a good time to take a bug report.

I can't tell you how many times I've shaken my phone in anger after that frustrates me. You can bet a bigger iPhone won't have this issue.

In fact, though I only know this as a developer who pays close attention to their videos, Apple waits until you tap the screen before they perform certain rotations -- that's how I learned if a device doesn't rotate, tapping the screen wakes it up. By now if they're smart, they've added "a quick shake," too.

Contrary to current code, rotating the screen is (a) context dependent and (b) not always necessary. At the very least, pop up a bar that says undo rotate or lock screen.


Just discovered that what one posts for fun can turn into an expose on the security risks in 10.9.1 and iOS 7.0.4 ...

Late last night I posted to the comments section of the startup news site Hacker News that the code Apple uses is open source and so the bug should be easy to spot:

I get a reply with the function, proving that the Internet works. And then an SSL expert at Google writes a blog post: and The Guardian covers it and my Hacker News thread:

Kind of cool to see what impact there is in simply saying what the smart attackers already knew: the code is open source. As the problem was stated baldly in the security notice for the patch, I'm hoping open source will lead to responsible (private) disclosure of other bugs, once the code for 10.9.2 is published.

Post has shared content
I needed this in November, but better late than never! :D (I was in fact using a snapshot of 0.7.0 but it wasn't as complete yet.)
We have just released version 0.7.0 of the Android Gradle plugin!

System Requirements
Gradle 1.9
Android Studio 0.4

New: Additional Source Folders

If you have flavors, you can now have a variant specific source folders, for instance:


Note the camel-case naming, with lower case for first letter.

Their components (res, manifest, etc...) have higher priority than components from build type or flavors.

If your project has more than one dimension of flavors, there is also a source folder for each flavor combination (same as above without the build type). For instance:


Note that this is for all combinations of all dimensions. Its priority is higher than single-flavor source sets, but lower than build-types.

This is only for application projects, not library projects.

Lint improvements

Revamped lint integration. Lint is now run as part of the check task, and will analyze all variants and then merge the results and create a report which lists which variants each error applies to (unless an error applies to all variants). You can also run lint on a specific variant, e.g. lintDebug or lintFreeRelease.
Lint will no longer report errors in AAR libraries. This version of the plugin also picks up some new lint checks.
A new DSL allows configuration of lint from build.gradle. This is read and used in Studio.
See 'basic' sample.

Build Config improvements

DSL Changes: buildConfigLine is replaced by buildConfigField:

buildConfigField "boolean", "MY_FLAG", "true"

You can override fields defined in default config in flavors or build types.
See 'basic' sample.

Build Config also now automatically contain more constants for PACKAGE_NAME, VERSION_CODE, VERSION_NAME, BUILD_TYPE, FLAVOR as well as FLAVOR_<group> if there are several flavor dimensions.

Renderscript improvements

Support mode is now enabled. This will allow using Renderscript on older devices.
See 'rsSupportMode' sample.

Packaging Options

DefaultConfig and flavors can be configured to package a subset of resource configurations.
All values from the default config and flavors get combined and passed to the -c option in aapt.

See 'basic' sample.

Proguard improvements

Switch to ProGuard 4.10
Added ability to test proguarded (obfuscated) apps.

Misc fixes and improvements

Jar files are now pre-dexed for faster dexing.
Incremental dexing is currently disabled, as we have uncovered some issues.

New test-related DSL properties on defaultConfig and flavors:
testHandlingProfiling: boolean, fills in the handleProfiling attribute on the instrumentation node in the manifest.
testFunctionalTest: boolean, fills in the functionalTest attribute on the instrumentation node in the manifest.

Fixed issue with parentActivityName when handling different package name in the manifest merger.
Allow files inside folder META-INF/ from jars to be packaged in the APK.

Plugin API Changes

1. New API to handle custom generated source folders.

Adding a source folder for the model (for IDE support):
variant.addJavaSourceFoldersToModel(sourceFolder1, sourceFolders2,...)

Automatically adding dependency on the task, setting up the JavaCompile task inputs and propagating folder to the model:
variant.registerJavaGeneratingTask(task, sourceFolder1, sourceFolders2,...)

See 'genFolderApi' sample

2. New API to add extra artifacts on variants. This will let you register Java or (later) Android artifacts, for instance for alternative test artifacts (e.g. robolectric)
See 'artifactApi' sample for the API (sample is not meant to be used directly, it's for testing and to demonstrate the API).

3. The DeviceProvider test API has been updated to properly support CPU architecture filtering. 3rd Party plugin using this API will have to be updated.

Post has attachment
The amazing part is while downloading a gigabyte from Quebec I managed to sustain 34-37.3 MB/s according to Chrome, so it wasn't all speed boost this time. :)

Post has attachment
In an ironic twist, the only computer in my house capable of 4K output isn't a PC or Mac. Instead it's my new $299 Acer c720p. Since I'm in Canada, it was $480 with various shipping and import fees. Not bad for well under an iPad Air, eh? Look at the number of pixels in that screenshot! #Chromebook #4K #Seiki

Post has attachment
No hidden message, I just liked the strip. :)

Post has attachment
Inspired by an internet outage (shakes fist at 2013 Airport Extreme for its odd behavior), I made the following image in response to a +Ookla Speedtest  Yes, nothing's ever good enough. :) In this case, #StartCommunications     #internet   over +Rogers Communications cable lines... Can't wait for that 250mbps to be allowed for TPIAs, Rogers. Or twice that. #ISP   #Toronto   #Canada  
Wait while more posts are being loaded