Profile

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

Stream

Thomas Broyer

Shared publicly  - 
 
Yesterday's eclipse as seen from Dijon, France (apparently, not sure about it). One shot every 8 minutes.

Credit: James Rignault
Source: https://www.facebook.com/photo.php?fbid=713462998774252&set=a.261773230609900.61535.100003316742428&type=1&theater
18
Add a comment...

Thomas Broyer

Shared publicly  - 
 
Most build tools misuse javac

Some research and findings on how Maven, Gradle and Buck misuse javac, mostly due to some misunderstanding about how it works I believe.

Feedback about other build tools (Pants?) would be very much appreciated.
← Home. Most build tools misuse javac. 01 March 2015. Over the past couple years, I've been looking more closely to the build tools I use and trying to imaging what the ultimate build tool would look like. Doing that, I regularly stumble on mistakes in one tool that seem to be copied over most ...
6
1
Ray Cromwell's profile photoThomas Broyer's profile photoMarkus Kohler's profile photoBrian Slesinsky's profile photo
22 comments
 
The problem comes down to whether downstream dependencies should run the code generator or not. If they do, the generator has to be portable code that's runnable on all platforms, and all downstream dependencies pay the cost of running a slow upstream generator.

Alternatively, you can have each package owner run the generator and check in the files before doing a release, as with Go's generate support and source_gen. But that has its own problems: it's unlikely that downstream code will be regenerated any time soon after an upstream generator fixes a bug.
Add a comment...

Thomas Broyer

Announcements  - 
 
I just updated my gwt-maven-archetypes to use my net.ltgt.gwt.maven:gwt-maven-plugin instead of org.codehaus.mojo:gwt-maven-plugin.

git log --stat on one of the archetypes says:

6 files changed, 47 insertions(+), 135 deletions(-)

and more importantly:

 • devmode is easier to use (no need to ever run mvn install)
 • POMs have (almost) no hacks in them (just configuration of Tomcat and Jetty to make them load the .nocache.js from SDM)

Note however that I removed the ability to run the server with the compiled (prod mode) client. I'll add it back if there's demand.

You can see the exact changes at https://github.com/tbroyer/gwt-maven-archetypes/commit/b3ef2b90f3435323c9aef0a0ba93677a98b0e5b9, to help you migrate existing projects.
11
2
Markus Strenn's profile photoThomas Broyer's profile photoTino D.'s profile photoSAMBATH KUMAR LOGAKRISHNAN's profile photo
4 comments
 
+Ümit Seren Yes, dependencies have to include the META-INF/gwt/mainModule file. It's automatically generated with the gwt-lib packaging, but it's not limited to it (it's just a text resource after all). The idea is that we can discuss that feature, and other tools (gwt-gradle-plugin?) could start generating this file too so it could become a "standard". Consider it "experimental" for now though.

Re. moving your gwt.xml file to src/main/module.gwt.xml, it's not required. It gives you a few benefits though: generating the <inherits> from dependencies, and generating the rename-to="".
Add a comment...
 
I just released net.ltgt.gwt.maven:gwt-maven-plugin:1.-beta-1 to Maven Central

https://github.com/tbroyer/gwt-maven-plugin

If you used the alpha versions, configuration (and internals) has change a lot: only a few arguments are exposed directly as properties, others have to be passed as generic compilerArguments.

Another breaking change is that the plugin no longer links to a specific GWT version, which means that you now have to add an explicit dependency to gwt-dev. The plugin is automatically tested against the last two stable versions of GWT as well as the latest snapshot for the next version.

Also new and noteworthy in this version: preliminary support for dev mode, through a gwt:codeserver goal that launches com.google.gwt.dev.codeserver.CodeServer. Contrary to the CodeHaus Mojo plugin, I built this with multi-module projects in mind. Note that, following the above rule, you'll also have to add an explicitly dependency to gwt-codeserver to your module.

Still no documentation (sorry), look at the integration tests and use mvn gwt:help and mvn gwt:help -Ddetail -Dgoal=<goal> to learn about the configuration properties.

I'll now work on updating my archetypes to use that new plugin.
gwt-maven-plugin - Starting fresh on building GWT projects with Maven
12
1
Brandon Donnelson's profile photoÜmit Seren's profile photoThomas Broyer's profile photo
4 comments
 
+Thomas Broyer So far everything works really well. I only have troubles passing generic compilerArguments to the GWT compiler. 

If add this to the gwt-plugin configuration section: 
<compilerArgs>
    <param>
       -gen /tmp/generated_files
     </param>
 </compilerArgs>

I get a maven error: 
[DEBUG]   (f) compilerArgs = [-gen /tmp/generated_files]
...
[WARNING] Unknown argument: -gen /tmp/generated_files

Somehow only on/off flags work but as soon as I add a value (i.e. -gen FOLDER, -optimize NUMBER) it doesn't work. 
Add a comment...
 
Seven 7-year-olds at home for an hour now (and still an hour and a half going) and now a storm as I need to go the grocery store buy orange juice. Already half-exhausted! #BirthdayParty
4
Add a comment...
 
Cold (though not too cold: -1°C) but dry, sunny, no wind: ideal winter weather.
3
Bademus l.'s profile photo
 
imho, ideal winter is smth like +23, sunny, light breeze :)
Add a comment...
Have him in circles
1,397 people
Lionel Vigneron's profile photo
Stephane Gallès's profile photo
Bradley Sacks's profile photo
John Hewison's profile photo
Giuseppe CDI's profile photo
ahmad marmoush's profile photo
theresa berwick's profile photo
Satyendra Nath Samaddar's profile photo
Nikolay Kolev's profile photo

Thomas Broyer

Shared publicly  - 
 
Maven is making really good progress with the latest version!

Compare the 1½ year-old http://blog.ltgt.net/maven-is-broken-by-design/ with:

• “core extensions will be the path to proper consumer POM support (build time vs dependency resolution time)” — http://takari.io/2015/03/19/core-extensions.html
• “Maven has always had a loosely defined notion of a multi-module project, but we are starting to move toward a more cohesive definition” — http://takari.io/2015/03/20/mmp.html
• you can now pass execution IDs on the command line when invoking goals directly, to select the appropriate configuration — https://jira.codehaus.org/browse/MNG-5768

Don't get me wrong though, I still think Maven is broken by design and unfixable (at least not without breaking backwards-compatibility; maybe the only thing that really cannot be fixed will be the linear lifecycle, but that's still one of Maven's biggest design mistake that really makes many things hard or nearly impossible, or at best totally unoptimized)
← Home →. Maven is broken by design. 26 September 2013. The other day, someone asked about the status of the GWT Mavenization, saying he loves Maven and would like to help. I replied that “I used to really like it” but wasn't “so sure nowadays.” It obviously was followed by “I know it could ...
5
1
Yeh Zheng Tan's profile photoDr. Lofi Dewanto's profile photo
 
Would love to see your initial view on Google Bazel 
Add a comment...

Thomas Broyer

Shared publicly  - 
 
 
The problem with settings (in software):
1] Once you add a setting you're supporting it forever
2] Unintended consequences: settings impact other settings
3] Settings excuse you from making informed product decisions 
4] Settings allow complexity/opinions to creep in
3 comments on original post
5
2
Philippe Lhoste's profile photoPoittevin “PiroXXI” Raphael's profile photoJonathan Strootman's profile photo
 
At work, we have a huge Java code base (with a Swing interface), which grew organically over the years.
It has tons of settings in the form of properties read from several .properties files (with cascading: shipped, on site, per user, etc.).
When we replace an implementation with another, we provide a setting to fall back on the original implementation, in case a catastrophic bug happens in production... Of course, these settings and old implementation remain there for years!
When we change a behavior, we provide a setting to allow users disliking this change to go back to the previous one...
Etc., ad nauseam...
The worst part is that at least half of the settings are not even documented (on even in internal docs) and can be discovered only when reading the code (and of course, they are sprinkled all over the whole code base!).
Later, we introduced a more central location for these settings and they became auto-documented... :-)

In recent products, we try and avoid to add (too much) settings. :-D
Add a comment...
 
For those wondering why we settled on Gerrit rather than GitHub when migrating to Git from Subversion.
I'd add side-by-side diffs (split diffs) which have only been introduced last September.

https://talks.golang.org/2015/state-of-go.slide#7
5
2
Lex Spoon's profile photoDarlene Wallach's profile photo
Add a comment...
 
 
I just released net.ltgt.gwt.maven:gwt-maven-plugin:1.-beta-1 to Maven Central

https://github.com/tbroyer/gwt-maven-plugin

If you used the alpha versions, configuration (and internals) has change a lot: only a few arguments are exposed directly as properties, others have to be passed as generic compilerArguments.

Another breaking change is that the plugin no longer links to a specific GWT version, which means that you now have to add an explicit dependency to gwt-dev. The plugin is automatically tested against the last two stable versions of GWT as well as the latest snapshot for the next version.

Also new and noteworthy in this version: preliminary support for dev mode, through a gwt:codeserver goal that launches com.google.gwt.dev.codeserver.CodeServer. Contrary to the CodeHaus Mojo plugin, I built this with multi-module projects in mind. Note that, following the above rule, you'll also have to add an explicitly dependency to gwt-codeserver to your module.

Still no documentation (sorry), look at the integration tests and use mvn gwt:help and mvn gwt:help -Ddetail -Dgoal=<goal> to learn about the configuration properties.

I'll now work on updating my archetypes to use that new plugin.
gwt-maven-plugin - Starting fresh on building GWT projects with Maven
4 comments on original post
9
Add a comment...

Thomas Broyer

Shared publicly  - 
 
That song from Abba is so powerful already, but that woman has such a powerful voice too!

Many of you probably can't see the video (geographical restrictions) but sharing anyway…
 ·  Translate
Ketlyn a consacré sa vie aux autres, et notamment à ses enfants. Aujourd’hui sur la scène des Auditions à l’aveugle de The Voice, elle veut réaliser un rêve d’enfant. C’est avec une voix puissante qu’elle reprend « The Winner Takes it All » du célèbre goupe ABBA. Une voix qui fait chavirer le cœur de Florent Pagny et offre à Ketlyn une place méritée dans l’aventure. Extrait de l’émission de The Voice du 7 février 2015
1
Add a comment...

Thomas Broyer

Shared publicly  - 
 
Woot! #MotoG
5
Matic Petek's profile photoAlexander Polunochev's profile photo
2 comments
 
Not here yet in Canada for Wind Mobile customers. Depends on carrier, I believe.This is what happened to MotoX owners recently: http://www.androidpolice.com/2015/01/22/moto-x-2014-lollipop-update-wind-mobile-causing-boot-loops-rendering-phones-basically-unusable/
Add a comment...
People
Have him in circles
1,397 people
Lionel Vigneron's profile photo
Stephane Gallès's profile photo
Bradley Sacks's profile photo
John Hewison's profile photo
Giuseppe CDI's profile photo
ahmad marmoush's profile photo
theresa berwick's profile photo
Satyendra Nath Samaddar's profile photo
Nikolay Kolev'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
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...