Profile

Cover photo
Thomas Broyer
Works at Atol Conseils & Développements
Lives in Dijon, France
1,496 followers|1,013,456 views
AboutPosts+1's

Stream

Thomas Broyer

Shared publicly  - 
 
The project that lead me to use GWT for the first time (main contender at the time was YUI) will soon be retired (or at least it feels like so; going (partly) read-only real soon).

As you can see from the image, most development was done in 2008 (between February and October), with one big new feature (in the form of a new GWT app actually) in late 2009 / early 2010; then there hasn't been much development, mostly to start tearing some features apart.

Seeing this project being (finally!) retired actually feels good, as it's been scheduled for retirement for more than 3 years now!

FWIW, the project still uses GWT 2.0.3, with Guice 2.0 and GIN 1.0 (added during the 2009 devs, soon after +Ray Ryan's presentation at I/O, building the new thing using MVP and our own places implementation), and X-UA-Compatible IE=EmulateIE7! (yep, you read if correctly)
I'm a bit ashamed of sharing these last details actually, as they're so contrary to how I see web development; but we're a consulting company (contractor?), not a vendor, so we don't always have a say on how projects are maintained…
7
Add a comment...

Thomas Broyer

Shared publicly  - 
 
"one important element is that one should always understand (at least at high-level) how the tools work. One should use these not because they don’t know how to make them, but rather, because they are not willing to rewrite them."
 
This morning on our blog : "Build Your Own Test Framework" by Olivier Lafleur http://buff.ly/21SbxjB #JUnit #Java #UnitTests
In this article, we will build our own test framework. Why? Because we can!
View original post
5
Add a comment...

Thomas Broyer

Shared publicly  - 
 
My wife did a cooking workshop for our daughter's birthday party, so I made toques (out of a paper napkin).
2
Add a comment...

Thomas Broyer

Shared publicly  - 
 
Maven is broken by design – Take 2: annotation processors

I wrote a post about the brand new annotationProcessorPaths property in maven-compiler-plugin 3.5 and how it can bring more harm than good in some cases; and more generally how this all boils down, once again unfortunately, to design flaws in Maven.
More than 2 years ago, I wrote about why Maven is broken by design, and while not everything was accurate I stand by most of what I wrote back then. This week, the Maven Compiler Plugin gained the ability to use javac 's -processorpath by declaring annotation processor dependencies in a special ...
9
Add a comment...

Thomas Broyer

Shared publicly  - 
 
No doubt, winter is here.
3
Antonio Petrelli's profile photoMel Ane's profile photo
2 comments
Mel Ane
 
cream bro !!!!
Add a comment...

Thomas Broyer

Shared publicly  - 
 
I somehow missed/forgotten about that but OMG this is HUGE!

Starting January 12, 2016 (that is, in exactly 1½ month), Microsoft will end support for all versions of Internet Explorer older than 11.

Of course that doesn't mean we, as web devs, can stop worrying about those older IE versions, but at least we can (probably) charge our clients extra money if they insist they want support to be "on par" with other browsers, and/or possibly even only want us to test in these older versions.
25
10
Eduardo Guardiola's profile photoThomas Broyer's profile photoRocco De Angelis's profile photo
4 comments
 
Yeah that's true! In general the way Microsoft is going looks much better in the last months. 
Add a comment...
Have him in circles
1,496 people
Harald Pehl's profile photo
Ray Cromwell's profile photo
Cristian Gidea's profile photo
Andreas Horst's profile photo
Rajeev Dayal's profile photo
Nafa Threesye's profile photo
Didier Girard's profile photo
Dr. K . Peer Mohamed's profile photo
Rajkumudu Rk's profile photo

Thomas Broyer

Shared publicly  - 
 
This week's stats:

$ git log −−author="Thomas Broyer" −−since=2016-05-09 −−pretty=tformat: −−shortstat −M −C | awk '{ files += $1; add += $4; subs += $6; loc += $4 - $6 } END { printf " %s files changed, %s insertions(+), %s deletions(−), delta: %s\n", files, add, subs, loc }' −
88 files changed, 171 insertions(+), 2165 deletions(−), delta: −1994

Feels good.

(well, this is in preparation to adding many more in the coming weeks unfortunately; migrating from an SSO to a local auth –which will be an SSO actually–, currently cutting everything specific to the first, will have to write the new thing next: sign up, sign in, tenant creation, etc.)

h/t: https://stackoverflow.com/a/7010890 for the basis of the script.
Note: I had to replace dashes with U+2212 to prevent G+ from formatting as strikethrough, so you unfortunately can't copy-paste.
4
Thomas Broyer's profile photo
 
FWIW, last 10 days look like:
112 files changed, 2413 insertions(+), 398 deletions(-), delta: 2015
which means that over the 2.5 weeks:
200 files changed, 2584 insertions(+), 2563 deletions(-), delta: 21
…and I've only added back authentication (through OpenID Connect), without even password recovery, and without sign up and the like.
Add a comment...

Thomas Broyer

Share hints and howtos  - 
 
FYI, I just updated my gwt-maven-archetypes switching from GIN (which is unmaintained, and will BTW require a JDK 8 in GWT 2.8) to Dagger‡ (2.1). I thus renamed the archetype from guice-rf-activities to to dagger-guice-rf-activities.

For those interested in migrating their projects from GIN to Dagger‡, here's the change for reference:
https://github.com/tbroyer/gwt-maven-archetypes/commit/667955ca5243f480a2cc106c324d12c0ed6a783b
This is actually pretty straightforward and mechanical.

I later made a small change to make the Activity+View+ViewImpl triad more self-contained: https://github.com/tbroyer/gwt-maven-archetypes/commit/54ad48ae378c0ca393ebe06d760f453a2a6b7611
An alternative would be to just remove the interface, and just mock the class in your tests (if any).
If you want to be able to switch the view implementation at runtime though (with permutations for different form-factors for example), then just don't make that last move and keep your bindings in your Dagger module.

Edit: Dagger 2.1 has been released, archetype updated.
23
2
Alexander Tarasov's profile photoThomas Broyer's profile photo
8 comments
 
+Alexander Tarasov Hey, nobody forces you to migrate ;-)
That said, for a new project (which is what Maven archetypes are about) I would start with GIN; and I know some people have contemplated migrating to Dagger 2 (for example, when sharing code with Android, where Roboguice is apparently too heavyweight), hence this post. But if GIN works for you, indeed, I'd defer the migration.
Add a comment...

Thomas Broyer

Share hints and howtos  - 
 
People regularly ask about SEO of their GWT app/site, this should be helpful.
 
An update (March 2016) on the current state & recommendations for JavaScript sites / Progressive Web Apps [1] in Google Search. We occasionally see questions about what JS-based sites can do and still be visible in search, so here's a brief summary for today's state:

# Don't cloak to Googlebot. Use "feature detection" & "progressive enhancement" [2] techniques to make your content available to all users. Avoid redirecting to an "unsupported browser" page. Consider using a polyfill or other safe fallback where needed. The features Googlebot currently doesn't support include Service Workers, the Fetch API, Promises, and requestAnimationFrame.

# Use rel=canonical [3] when serving content from multiple URLs is required.

# Avoid the AJAX-Crawling scheme on new sites. Consider migrating old sites that use this scheme soon. Remember to remove "meta fragment" tags when migrating. Don't use a "meta fragment" tag if the "escaped fragment" URL doesn't serve fully rendered content. [4]

# Avoid using "#" in URLs (outside of "#!"). Googlebot rarely indexes URLs with "#" in them. Use "normal" URLs with path/filename/query-parameters instead, consider using the History API for navigation.

# Use Search Console's Fetch and Render tool [5] to test how Googlebot sees your pages. Note that this tool doesn't support "#!" or "#" URLs.

# Ensure that all required resources (including JavaScript files / frameworks, server responses, 3rd-party APIs, etc) aren't blocked by robots.txt. The Fetch and Render tool will list blocked resources discovered. If resources are uncontrollably blocked by robots.txt (e.g., 3rd-party APIs) or otherwise temporarily unavailable, ensure that your client-side code fails gracefully.

# Limit the number of embedded resources, in particular the number of JavaScript files and server responses required to render your page. A high number of required URLs can result in timeouts & rendering without these resources being available (e.g., some JavaScript files might not be loaded). Use reasonable HTTP caching directives.

# Google supports the use of JavaScript to provide titles, description & robots meta tags, structured data, and other meta-data. When using AMP, the AMP HTML page must be static as required by the spec, but the associated web page can be built using JS/PWA techniques. Remember to use a sitemap file with correct "lastmod" dates for signaling changes on your website.

# Finally, keep in mind that other search engines and web services accessing your content might not support JavaScript at all, or might support a different subset.

Looking at this list, none of these recommendations are completely new & limited to today -- and they'll continue to be valid for foreseeable future. Working with modern JavaScript frameworks for search can be a bit intimidating at first, but they open up some really neat possibilities to make fast & awesome sites!

I hope this was useful! Let me know if I missed anything, or if you need clarifications for any part.

Links:
[1] PWA: https://developers.google.com/web/progressive-web-apps
[2] Progressive enhancement: https://en.wikipedia.org/wiki/Progressive_enhancement
[3] rel=canonical: https://support.google.com/webmasters/answer/139066
[4] AJAX Crawling scheme: https://developers.google.com/webmasters/ajax-crawling/docs/specification
[5] https://support.google.com/webmasters/answer/6066468
26 comments on original post
4
Add a comment...

Thomas Broyer

Shared publicly  - 
 
Watching CSI: Cyber and I can't help but think about Medium, Dawson and Ally McBeal; particularly Ally McBeal.
3
Add a comment...

Thomas Broyer

Announcements  - 
 
Just released version 1.0-rc-5 of net.ltgt.gwt.maven:gwt-maven-plugin

 • gwt:compile no longer include compile source roots in the classpath (they've been copied through gwt:import-sources and resources:resources anyway)
 • gwt:devmode and gwt:codeserver's projects and modules discovery (when no value has been specified) has been relaxed so it works better for standalone apps
 • gwt:test's devMode has been removed, as its default value will be switched in GWT 2.8 and it'll be deprecated
23
6
Thomas Broyer's profile photoBrandon Donnelson's profile photoDavid Nouls's profile photo
17 comments
 
I need an offline installation my dev environment is not allowed to connect to the internet. I will clone the repo and build the p2 update site on my computer at home.
Add a comment...
 
 
Wanted: open-source OCSP daemon! Requirements, courtesy of +Ryan Sleevi: http://bit.ly/1LM7uKY - any volunteers? :-)

p.s. for bonus points, written in Go for portability.
7 comments on original post
2
Add a comment...
People
Have him in circles
1,496 people
Harald Pehl's profile photo
Ray Cromwell's profile photo
Cristian Gidea's profile photo
Andreas Horst's profile photo
Rajeev Dayal's profile photo
Nafa Threesye's profile photo
Didier Girard's profile photo
Dr. K . Peer Mohamed's profile photo
Rajkumudu Rk's profile photo
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Dijon, France
Links
Contributor to
Work
Occupation
Software Architect
Employment
  • Atol Conseils & Développements
    Software Architect, present
Basic Information
Gender
Male
Relationship
Married
Apps with Google+ Sign-in
  • Angry Birds Stella POP!
  • Angry Birds Go!
  • Angry Birds Friends
  • Angry Birds Under Pigstruction
Thomas Broyer's +1's are the things they like, agree with, or want to recommend.
Les enfants en colère après la publication de caricatures jugées injurie...
www.legorafi.fr

OSLO – La nouvelle n'a pas tardé à faire réagir. À peine publiées par un journal iranien, les caricatures se moquant ouvertement du Père Noë

LEGO® Star Wars™ Yoda II
market.android.com

Choose your side and join the battle in LEGO® Star Wars™ The New Yoda Chronicles! Collect the Holocrons to defeat your enemy and take contro

Google Play services
market.android.com

Google Play services is used to update Google apps and apps from Google Play. This component provides core functionality like authentication

Inbox by Gmail
market.android.com

Inbox by Gmail requires an invite. Email inbox@google.com to request one. Your email inbox should help you live and work better, but instead

Testing on the Toilet: Writing Descriptive Test Names
googletesting.blogspot.com

by Andrew Trenk, This article was adapted from a Google Testing on the Toilet (TotT) episode. You can download a printer-friendly version of

One man willingly gave Google his data. See what happened next. - O'Reil...
radar.oreilly.com

Despite some misgivings about the company’s product course and service permanence (I was an early and fanatical user of Google Wave), my rel

Bolinfest Changeblog: Hacking on Atom Part I: CoffeeScript
blog.bolinfest.com

Atom is written in CoffeeScript rather than raw JavaScript. As you can imagine, this is contentious with “pure” JavaScript developers. I had

Testing on the Toilet: Effective Testing
googletesting.blogspot.com

by Rich Martin, Zurich This article was adapted from a Google Testing on the Toilet (TotT) episode. You can download a printer-friendly vers

The truth is out: money is just an IOU, and the banks are rolling in it
www.theguardian.com

The Bank of England's dose of honesty throws the theoretical basis for austerity out the window

Chromium Blog: Blink’s First Birthday
blog.chromium.org

Last April we introduced Blink as the new rendering engine for Chromium. Since then, the project has grown to include over 200 active contri

22 Responses To Buzzfeed's 22 Creationist Messages
www.ibtimes.com

Buzzfeed published 22 questions and statements from Creationists; here's some responses from a science reporter.

The Craftsman - Google Groups
groups.google.com

The Craftsman, Caio Fernando Bertoldi Paes de Andrade, 2/3/14 8:25 AM. Cleancoders,. I was searching for material on the internet last week

Troy Hunt: For your convenience, please disable security warnings
www.troyhunt.com

Let's just start here: This is an annoying feature of Internet Explorer, and is not indicative of any security. Allow me to provide a techni

Lenovo to acquire Motorola Mobility
googleblog.blogspot.com

We've just signed an agreement to sell Motorola to Lenovo for $2.91 billion. As this is an important move for Android users everywhere, I wa

Ne dîtes pas à ma mère que je suis développeur
business.lesechos.fr

Un sondage réalisé sur les métiers les plus enviés a été relayé, il y a quelques mois, dans un article d'un grand...