I am among the first users of ingress in France, the concept feels
good, but for the times being, there is not enough people playing to
make it really interesting.
In my hometown (Tours,France) I think we are under ten people
running the game for now, so I am the first who captured the portals
in the center of the city. The game is addictive even though there
is almost nobody, I can't wait to see more people playing.
There is not much portals for now, but you can
submit your own portals. I think I will use the camera of my brand new Nexus 4 to do this.
It is not a secret that the
SRMvision platform is
developped using the
Apache Wicket framework.
As our application became bigger and so our team, it's getting
harder to find the correct Wicket class beneath the view of the page
we get in our browsers.
To help the team in this process, I made a simple Chrome extension
and a IntelliJ IDEA plugin allowing to send class names to the IDE
from the web browser (at the cost of a very simple class in your
project, disabled in deployment mode).
Getting your project ready
In the chrome-wicket-idea-example
github repository, you have a very simple example of what needs to
be done to enable navigation between your browser and your project
opened in your IDE. Have a look at the
WicketApplication
class (specifically in the the
init()
method) and at the
DebugComponentBeforeRenderListener
class (it is where the 'simple' magic happen). The good thing is you
only need to use this class in your project (confirmed working with
Wicket 1.4, 1.5, and 6), and to mimic the initializer logic to get
started.
Please notice that you can specify which classes you want to track
in your markup (by restricting on package names) at the listener's
instanciation.
To test the sample project, you can run the embedded jetty server by
running :
mvn jetty:run
Wicket Open In IDEA
IDEA part
The IntelliJ plugin listens for classnames to open on a http socket
(10462, overridable in plugin settings).
You can get the IDEA plugin in its
github repository, to install it, you have to select "Install plugin from disk" from
the "Plugins" category in your IDE settings.
Chrome part
The Chrome extension is really simple, like my TrelloScrum fork, it
is not (yet) available on the Chrome Web Store, thus, you have to
download the release here
and drag and drop it on your
chrome://extensions page.
If you want, you can tweak its settings, via the "Options" page :
IDE Host : if you change the setup of the plugin in your IDE (or
run your IDE on another machine than your browser), you might need
to change the host and port to reflect this.
Context menu presence host : if you want the context menu icon to
appear only on sites where it should, you can narrow the domains
here.
To use it, you only have to right click on an item in your
"enhanced" web application and select "Wicket debug this".
From there you'll get a modal window listing the matching classes
names (sorted by parent order, the first is the closer to the
element you pointed to, the next one is the parent class and so on).
If there is not any opened modal when you try to use it, it means
the extension did not detect any classname in the markup.
Each classname, when clicked, is sent to your IDE which will in turn
opens the class matching the classname so you can edit it. The lower
part of the modal window will inform you about the status of your
last action :
If the plugin is not enabled, or the IDE not running : it will
display an error message
If all went like expected : it will display a confirmation message
I hope it will help other teams using this great framework, or it
will give ideas to user of others frameworks.
There is a lot of buzz around
Scala these days. The
language is now known to divide a lot of programmers (specially ones
with a Java background). To chose the side I'm on, I read the
excellent book from Martin Odersky, Lex Spoon and Bill Veners :
Programming in Scala. The book is really well written, it explains a lot of great
things about the language, but reading without exercising is not
really efficient (of course you can try the examples yourself, but
as I read it in bed, it is not that easy to do).
In the meantime, I found that Martin Odersky, via coursera, gives a
free course "Functional Programming Principles in Scala". I am actually attending it, and, I have to say I enjoy learning
this language. I am starting to think differently when coding, I
found myself really more critic regarding the side effects of my
methods for example.
If you're curious about Scala or about functional programming
paradigm, you should attend this course and do the assignments, it
takes time but really worth it.
At SRMvision, we use agile
methods since day one, mainly Scrum, which we rearranged to fit our
needs and goals at times. We've always looked for the perfect
computerized alternative to good old stickies.
TrelloScrum Chrome Extension
When it came out, it was clear to me that
Trello could be the cornerstone
of our internal workflow, we started from the very good
TrelloScrum plugin available on the Chrome Web Store
to count story points. This plugin is really useful in planning
sprints, it allows the Scrum master to track story points scheduled
in order to fill every single day in the sprint.
Forking the extension
After a few sprints, we realized we needed more than what was
included in the plugin. The main thing needed was tracking consumed
story points to get a really rapid and efficient feedback on our
sprint (real-time burndown values). Thanks to the guys behind the
plugin (Q42) and to Github, I was
able to fork the project and add these features :
if you note points in square brackets : [3] they are considered as
consumed points (contributed back to the plugin available in the
Chrome Web Store)
on card detail, hitting the "Done" button flags the whole card
points consumed and moves the card to the bottom of the list, then
the card view is closed so you can focus on something else (only
available in my fork)
plugged to the Trello client API, less flickering when updating
cards
With this plugin, you'll get two counters on the top of each list
and on a top of the board : consumed points in light blue and
scheduled poins in blue. The scheduled and consumed terms are the
one we use at SRMvision, but
you can use it the way you like to manage your sprints.
Using the extension
If you want to use my fork of the extension, you'll need to get it
in my
Github account. As it is not available in the store, you'll need to drag and drop
the downloaded file on the
chrome://extensions page.
Next, you'll need to authenticate the plugin to your Trello account,
to do so, there is a little circle on top of your profile picture
which is on the top right corner of Trello.
You can use the plugin without allowing it to authenticate, if you
do so, you won't be able to flag cards as Done using the button and
thus, cards won't be moved to the bottom. To authenticate, you need
to click the circle, it will popup the authenticate dialog, just
follow the steps in this popup (and close it manually when you see a
blank page - limitation of the extension).
Once authenticated, you should see a green circle and a "Done"
button on cards details.
If you have feature requests or bugs, don't hesitate to use the
Github issue tracker.