New release: GWT-Chosen 2.1

GWT-Chosen is used by an increasing number of people through the GWT community and we’re proud to deliver this new release. Several enhancements had been made, but the two major ones are the addition of a new option that let you position the dropdown on top or below the text box and, to make sure that we continue to deliver to our users a product that can evolve quickly without regression problems, we added a lot of integration tests using Selenium.

Screen Shot 2015-05-04 at 2.43.29 PM

The full list of closed issues can be found here and an example of the new dropdownPosition option can be found under List of options in our documentation.

Have fun with this new release!

Open letter to our community

Hello friend,

This letter is going out to everyone in our network, but especially to you in our open source development community. Many of you have been involved with us since the very beginning, when Philippe and I were working on GWTP as part of puzzlebazar. As we became Arcbees and continued to develop tools and best practices for ourselves, we have continued to share and develop them with you. We are proud of what this community has accomplished, and we are grateful for everything we have learned from you in the process.

We are enjoying our business adventure so far, and wish to do even more in the future. Our open source initiatives have always been our top priority, but we do face a challenge faced by many other open source startups. We need to move from a service business to a product business and we want to dedicate a team to work on our open source projects, to improve our tools faster, offer commercial clients the best support experience and continue our involvement with our community.

Post_Arcbees_Survey_v1-04 (1)

This is why I want to reach out to ask for your help! We’ve put together a brief survey asking critical questions that we hope will help us improve our support offering. I also welcome you to contact me directly if you want to share feedback without feeling constrained by the survey. I’d be very happy to speak with anybody who has ideas they want to share with me!

Please fill out the survey and/or contact me directly.

Thank you for your help!

Post_Arcbees_Survey_v1-03 (1)

GAE-Studio is now open source!

Some of you may already have noticed or heard me saying that GAE-Studio was going to be open sourced and I think it is past overdue to officially announce it: GAE-Studio is now open source under Apache 2 and freely available! We promise to keep working on it, and to make that possible, we’re going to add GAE-Studio support to our open source support packages. You can find the source code under our Arcbees github organization as well as on maven central. We released an official, stable version 1.0 a couple of days ago that you can see in action on our demo website. You can also read our documentation to learn more about how to install GAE-Studio in your Google App Engine application.

gae_datastore_viewer

Some may wonder why we chose to open source what was going to be our first official product. We’ve first started this venture almost 3 years ago when Arcbees was still in its inception. We were using Google App Engine heavily, and the lack of a good datastore admin console was a big problem. At the time, Google App Engine didn’t have any hooks on which we could build one, so we hacked our way around and built something useful for our own work. One year later, after finding other users were feeling the same pain as we did using Google App Engine, we set out to improve GAE-Studio user experience. It was planned to be our very first product that wasn’t going to be open sourced.

Last summer, Google IO announced a new console for Google App Engine that removed much of the pain that GAE-Studio was designed to help with. Then some time later, Objectify-Insight came out, and our visualization engine would be in competition with it. Since we love and have been using Objectify for years, we didn’t want to become their commercial competitor.

Post_gaestudio_v2

Still, we were and are hopeful that GAE-Studio will be useful for our developers. For one thing, GAE-Studio is available to all environments using the Modules, although it was initially written for the Java runtime. This is because Google now provides hooks in the Google App Engine SDK for the things we had to hack our way around to in the past. The further advantage of GAE-Studio is that it can be used locally! While Google has improved the usability of their cloud console a lot, the usability of local development tools is still weak.
Several hundred users have expressed an interest in using GAE-Studio, and we are now ready to officially release it in their hands. We hope you will find GAE-Studio useful, and will help us support the remaining runtime.

Thanks for the support and words of encouragement, and thanks for sticking with us through this venture!

About GAE-Studio

GAE Studio helps you optimize applications hosted on Google App Engine.

GAE Studio also allows datastore exploration, modification, deletion, import and export. Think of it as your swiss army knife for developing GAE applications!

Using real-time analysis of datastore requests, GAE Studio quickly highlights inefficient queries and gathers metrics that will help developers improve application performance.

GWT.create 2015: Top 5 sessions

Following my last week post about my experience at GWT.create 2015, I would have chosen more than 5 sessions to talk about, but I had to cut this short if I wanted to keep my readers 😀 Here’s my top 5:

  1. New brand and documentation
  2. Singular
  3. JsInterop
  4. GSS
  5. Incremental compile in SDM

New Brand and new website

I didn’t list this one first simply because Arcbees’ own Manon Gruaz did the design, but more because the GWT brand looked a lot like an old guy in a disco – possibly cool inside but not really looking that cool to onlookers. The centrality of Java alone feels dated for some people. The logo was definitely dated and a due for a makeover, and the documentation was starting to look like a 1990’s style early website. A full reboot of the brand was needed, something fresh that would communicate how much we care about architecture, how we work together as a community and the simplicity we seek while nevertheless building large, maintainable enterprise web applications.

GWT2015_7

While there’s still work to do on the documentation itself, the new branding was designed to be extensible, and is ready to be used seamlessly across the GWT community. I invite you to take a look at the GWT Brand book to learn more about the GWT brand and logo.

GWT2015_11

Singular

This session by Daniel Kurka was one of my favorites at GWT.Create for several reasons. While simplifying the development process considerably using the same patterns as Angular, something even more powerful lurks behind the scenes. It lets you build true multiplatform applications (Android, iOS, web). Singular uses techniques developed for Inbox that let you compile java code to Objective-C thanks to J2ObjC and to javascript thanks to GWT. So that more than 80% of you code can be shared between the three platforms. To know more, I invite you to watch j2objc’s session by Tom Ball: J2ObjC: Sharing Java Code with iOS Applications.

Angular has performance problems when it comes to really large web applications. As you know, Angular scans the DOM for directives at runtime. Singular, thanks to GWT, does that at compile time, improving performance by a lot.

The project is still in its infancy, but what Daniel did already demonstrates that writing Java can be as simple as writing Javascript while preserving Type Safety. To know more, I invite you to watch Daniel Kurka’s session: Singular – Reimagining AngularJS in Java.

JsInterop

Writing wrappers has always been a pain in the ass and while using an external javascript library is possible, it is truly tedious; to the point where I have seen some business dropping GWT because they couldn’t easily use some of their favorite Javascript libraries. This won’t be a problem anymore. You can already turn on JsInterop in GWT 2.7 as an early release, but you’ll really get everything you need to start hacking around a Javascript library in GWT 2.8. In case you have any doubts, I invite you to take a look at Ray Cromwell’s session: Deep dive in JsInterop.

GSS

If you have a web development background and have done a bit of CSS, you know how painful it can be to work with CssResources; not because it was poorly designed, but mostly because some fundamental CSS3 features weren’t even available! To keep up the with the pace of this ever-changing world, GSS has been added to GWT. GSS brings full CSS3 support and several interesting features like mixins, conditionals, variables and more. It’s now easier to write and maintain the CSS files of your GWT application.

Thanks to Julien Dramaix, this is one of the few major outside contributions made to GWT since the steering committee was created, and we’re proud to have participated in this. To learn more about GSS, I invite you to take a look at Julien Dramaix’s session: CSS3 and GWT in perfect harmony.

Incremental compile in SDM

Last,but not least, incremental compilation now lets us seamlessly refresh our work in the browser in day to day development activities, and get the latest code from our IDE in less than 2 seconds. Before, it was a real pain to use SDM because it would do a full recompile of the whole application each time you needed to see a new change. Thanks to incremental compilation, that is not the case anymore.

IDE support in both Eclipse and IntelliJ is still in active development. We can already use our favorite debugger, but in some cases, it will not work. For now, we’re still stuck debugging in my Chrome console, and thanks to source map, we can see quickly where problems are. I’m still eager to go back to my IDE, put my breakpoints in and get my usual workflows in place, and I’m pretty sure that I will see that happen really soon! To learn more, I invite you to take a look at John Stalcup’s session: Incremental compilation.

Conclusion

In conclusion, GWT.Create was a blast this year! I had fun, met great developers, great businesses and I got to see all my remote friends that I only see once or twice a year. I know I speak for the rest of my team as well in saying that, and I’ll be eager to participate in GWT.Create next year. I’m already pledging that we will submit more sessions for the pleasure of the GWT community and our own open source community!

See ya next year!

GWT.create 2015: Return of experience

As I look back, almost three weeks after GWT.create, I can’t keep myself from smiling. It was, for several reasons, the best time I’ve had with the GWT community since I joined. Traveling between Mountain View in the Computer History Museum and Munich, meeting hundreds of GWT enthusiasts and exchanging ideas with them about how to make GWT even better made me realize how incredible this community is and how lucky we are to be part of it. Learning from their technical knowledge and their deep personal and business involvement with this toolkit, I felt lucky I got the chance to connect with some of the best engineers in the world. If you’re reading these lines and you spoke with me, I’m glad to have met you 😀

GWT2015_10

GWT.create this year was Arcbees’ chance to shine! We jumped in as major partner. Julien had two sessions: Best development practice for GWT web application and CSS3 and GWT in perfect harmony, plus one workshop on how to contribute to GWT, while I delivered a keynote plus one session: How to improve your productivity using GWTP. We had major news to deliver at the keynote, having taken some of our free time to develop a new brand and a new website for GWT. This will have huge impact in the future of GWT as we try to make the brand more modern and sexy to support the design goals for upcoming developments in GWT. We spent a lot of time to give you the best experience we can and we welcome any constructive comments that might make it evenbetter in the future. One major improvement that was made to the website, even before the rebranding, was the introduction of ability to contribute documentation right from the website using markdown and GWT. We’ve preserved this functionality and hope the community will help us maintain the documentation.

GWT2015_2

When David Chandler got on stage to deliver the second keynote, I got a little bit nostalgic. He was the one that invited Philippe Beaudoin (cofounder of Arcbees) to speak about GWTP four years ago, in front of an overcrowded room at Google IO focused on how to build online business applications. He also made a statement about how everyone in the community cares deeply about abstraction and architecture, which are the two concepts that have inspired me and the rest of Arcbees for years to contribute open source libraries and frameworks to the community, to help them build better web applications. I was also amazed by the huge amount of raw talent that this community has to offer, and saw great web applications from businesses like Ruxit, Boomi and Magnolia. I could go on for a while, but needless to say that we’re starting to have great, beautiful and mature web applications built on GWT, and not just Google offspring like AdWords, Sheets and Inbox.GWT2015_9

During the first panel discussion, Ray Cromwell reminded the audience that GWT fuels the web applications that run the world. Stock exchanges, financial institutions, healthcare, airports, you name it. Whenever something needs to run on top of critical infrastructure, needs to be scalable and/or multi-platform, GWT is commonly seen. Javascript may have a lot of fresh cool toys to play with that GWT may not have (yet!), but would you invest everything you have on fresh cool toys? There’s a lot to learn from the Javascript community, but as decision makers, we need to choose robust solutions, not fashionable ones.

I got carried when I was writing this blog post and didn’t even started to write about my top 5 session/announcement, stay tuned early next week to know more about what was our top 5 sessions/announcement of the GWT.create 2015!

A Guaranteed Future for gQuery!

Arcbees is proud to officially support g(wt)-Query (gQuery), a jQuery-clone API written in Java for GWT. We hope this will helps gQuery grow even further, promoting clear direction and a strong future for this awesome product – one that we ourselves are using in all our projects.

We are firmly committed to keeping gQuery an Open Source product, available under the Apache 2.0. licence. The gQuery project continues to be led by the top three contributors to the codebase: Ray CromwellManuel Carrasco Moñino and Julien Dramaix.gQuerY-1

What does our official support of gQuery mean to you? First, gQuery will be part of ArcBees’ other Open Source product offerings, and gQuery support will be included in the support package offered by Arcbees for GWTP. Also, Arcbees is planning a complete re-write of the documentation. This new documentation will follow Arcbees new conventions and will be hosted on github.io.

There is more. This is just the tip of the iceberg! The Arcbees development ecosystem is evolving fast, and you can hear all about it at GWT.create this year!

gQuerY-2

Le futur de gQuery est assuré!

Arcbees peut se targuer d’être la 1ère entreprise à supporter officiellement g(wt)Query, une librairie similaire à jQuery, mais pour GWT. Fort de cet appui, nous espérons que le produit va continuer de croître en plus d’en assurer sa pérennité, surtout que nous en sommes nous-mêmes de fiers utilisateurs!

Essentiellement, gQuery va demeurer le même produit Open Source offert sous licence Apache 2.0. que vous avez toujours connu et son développement va continuer d’être mené par ses top contributeurs, soit messieurs Manuel Carrasco Moñino, Ray Cromwell et Julien Dramaix.

Vous l’avez peut-être déjà constaté, mais les sources ont été transférées sous Arcbees (github) et d’importants changements se pointent à l’horizon puisque la ré-écriture complète de la documentation est en cours et que gQuery s’ajoute à la gamme de produits Open Source déjà offerte par Arcbees, faisant en sorte qu’il sera désormais couvert par le forfait de support pour GWTP.

Plusieurs autres modifications sont à venir et vous pourrez en apprendre bien davantage sur le sujet et sur Arcbees lors du prochain GWT.create et lors du dévoilement de notre nouvelle image qui approche à grands pas!

gQuerY-4

GWTP 1.3 release

Two weeks ago we released GWTP 1.3. This release was a little bit stealthy and you have me to blame for that, I didn’t prepare an announcement! I hope you can forgive my oversight 😀

Here’s the complete list of changes:

GWTP

  • Improved Javadoc site
  • #14 : ActionException & ServiceException now implement IsSerializable
  • #282 : LazyActionHandlerValidatorRegistryImpl is now threadsafe
  • #467 : Allow REST and RPC dispatchers to be used at the same time
  • #517 : Updated to GWT 2.6.1 and updated DTDs (Thanks rdwallis)

MVP

  • Improved form-factor detection (Thanks rdwallis)
  • #184 : DefaultModule now has the Builder pattern
  • #284 : Add toString() to PlaceRequest
  • #346 : Map more than one name token to presenter
  • #489 : Added .without() to PlaceRequest.Builder to remove parameter from PlaceRequest
  • #492 : PlaceRequest.Builder(PlaceRequest request) now creates a deep copy
  • #499 : Decode embedded paramaters of RouteTokenFormatter (Thanks rdwallis)

RPC

  • #484 : Deprecated HttpSessionSecurityCookieFilter (Thanks bradcupit )

REST Dispatcher

  • Updated gwt-jackson to 0.6.1
  • #468 : Generate REST services based on the presence of @Path. Deprecate RestService interface
  • #498 : De/Serializing null/empty should result to null

Thanks to all contributors! We’re already working hard on GWTP 1.4 and should be out earlier than our usual release cycle. Stay tuned!

Great contributions to our open source projects

Here’s something you may not know about Arcbees; every single line of code that we can open source to our developer community, is open sourced. It is one of our core values. We believe that sharing our work and ideas openly with others can and will inspire great developers to contribute back to our own growing ecosystem of tools.

In the past few week, the number of great programmers collaborating with us in the open source community has been rising, and we want to say thanks to two in particular.

One is Richard Wallis who has contributed most of the work done to construct our Universal Analytics project, and who has also contributed to our GWTP project. He is now a trusted contributor and has been granted write privileges over GWTP and Universal Analytics.

Congratulation Richard!

Equally appreciated is Jonathan Kuleff who went from making a great suggestion for improving our Bitbucket Teamcity plugin to doing the implementation himself in one jump.

Thanks Jonathan!

Both of you contributed really great quality code, and we really appreciate that. We learn from your work, and we hope you learn from ours. That’s what we love about open. The sharing we do around specific projects has ripple effects. We share programming tactics and practices with everyone we collaborate with, and this ultimately helps all developers improve their craftsmanship to create better, stronger, quality code.

Our mission includes the promotion of this kind of code-quality education worldwide, which explains why we subject you new contributions to such rigorous code review. We don’t want to slow you down, but we do want to make sure that future contributors can easily read the codebase we are all putting together. We want the codebase to be useful and fun to program, and also to teach people how to produce quality code. We are thrilled to work with so many open source developers who want to help us do that.

There’s a lot of contributors to our open source projects, we try to thank them in every single release announcement we do around any of our open source projects. We welcome anyone to contribute in any way they can.

Software engineering is a young craft. It is only about 50 years old, unlike mechanical engineering and civil engineering, which have been with us for millennia. Our field is still in its infancy, but it’s growing fast, and this is in large part due to open source. Let’s keep flying forward by sharing code and collaborating on projects. Knowledge is a public good, all of us can have it without ever depleting it.

We look forward to future learnings with you all. See you on our project sites!

GAE-Studio reaches V 1.0 and now supports all App Engine programming languages!

It’s a big day for GAE Studio. Version 1.0 has finally arrived! The software is ready for use by a much larger segment of the GAE development community. It is now possible to use it with every language that App Engine supports!

To get started, you only have to read our documentation. Now, let’s dive in and see what’s new in version 1.0 of GAE Studio.

Screen Shot 2014-07-22 at 11.17.16 AM

For all you GAE developers who create applications in languages other than Java, GAE-Studio now supports Python, Go and PHP. This is a big step forwards for our product. Supporting all available runtimes has always been one of our objectives, and we know it is a capability many people were waiting for. To make multi-language support possible, you can now use GAE-Studio as a module. Using GAE-Studio locally will be a challenge, but we’re working hard to make it easy to use GAE-Studio. Using it locally with Java is already possible if you build an EAR. We’re working hard to make this process as seamless as possible in every runtime.

The login/oauth system was a hassle for first-time users. Since we want to put this software in as many hands as possible, authentication and license validation has been removed. You still need to login with your developer account to use GAE-Studio as a module. This change comes at a cost, in order to keep developing GAE Studio, we need to sustain an income, so we have moved some features to the paid tier. Once we’re ready to re-introduce them, you’ll be able to purchase a license to activate those features. We’ll talk about them in detail in a future newsletter, but just as a snapshot here’s a list: profiling datastore requests, applying batch operations on large datasets and evaluating GAE usage cost.

We also installed GAE-Studio on a really simple sandbox application, which will allow you to try it and quickly see if that’s what you need. There’s a Submit form if you want to help us fix any problems you find, or to send suggestions to improve the product. You’ll need to request access to the sandbox by sending an email to: gaestudio@arcbees.com.

Also, GAE-Studio will now let you execute GQL requests to filter data. It is a powerful tool for extracting only the data you need for a given development task.

Screen Shot 2014-07-22 at 11.29.13 AM

We’ve added visual cues based on beta tester feedback, and we think this really improves the UX. We ourselves use GAE-Studio every day for our projects, so we really understand and appreciate the value of these UX improvements.

After adding JSON import/export in our last release, we now feature the ability to export to CSV, which can be useful if you want to use analytical tools like Excel to examine your data.

Screen Shot 2014-07-22 at 11.29.55 AM

Last but not least, you can now select multiple entities and delete them, or mass-edit the values in fields that selected entities share.

Screen Shot 2014-07-22 at 11.31.01 AM

Please continue offering us feedback via our issue tracker, or drop us an email ! This was a big release, but more and better things are yet to come. We are really looking forward to our upcoming releases and want to incorporate your feedback in the process. Thanks for all your help so far. You are all awesome and please join our community on Google+ to follow progress as well as exchange ideas with other developers.

To conclude this newsletter, we should not forget that building software is a collaborative enterprise and we have many contributors to thank. You should pay attention to those names, because these people are awesome and have mad skills! We are deeply grateful for their work. Thanks so much!

Contributors (since the first commit in 2011)

Alexandre Breton
Brandon Donnelson
Christian Goudreau
Christopher Viel
Gael-Jurin Nkouyee
Jason Lemay
Javier Fernandez-Ivern
Jean-Christophe Larivière
Joël Trottier-Hébert
Julien Dramaix
Manon Gruaz
Maxime Mériouma-Caron
Mrabti Idriss
Olivier Lafleur
Simon-Pierre Gingras
Vincent Roseberry

GWT-Stripe

The busy bees at ArcBees take every single opportunity we get to release new open source tools for the larger community of developers. During our recent efforts to enable people to buy GWTP support packages, we had to choose an online payments provider. The choice was easy. We’ve built various web services for clients using Stripe to process payments, because of its great, developer-friendly JS API. We figure you might want to do the same, and so we have an announcement to make.

Today, we’re releasing an alpha version of a GWT Stripe API that you can use in your projects! Stripe is also featuring it in the official list of third-party Stripe libraries.

We hope that this new open source library will prove helpful. Please feel free to participate in its development, and to put in feature requests. We always appreciate your insights and input.

Happy hacking!