Wednesday, 21 December 2016
Saturday, 17 October 2015
GWT 3.0 migration
A quick list to try and help me keep track of information about the move to GWT 3.0. Corrections/ideas are welcome.
- JSNI - GONE - replace the JsInterop.
- Widgets - GONE - somebody could port?
- GWT.create - GONE - use annotation based code generation etc.
- RequestFactory - ? depends on GWT.create
- Editor framework - ? depends on GWT.create
- UiBinder - ? depends on GWT.create and Widgets?
- GWT RPC - ?
- Permutations - GONE - use system properties (early enough for compiler/linker to cut out code)
- Standard Dev Mode - GONE - debug in "translated"/transpiled JavaScript.
- SafeHtml - ?
- JUnit (Java) - GONE?
- JUnit (transpiled) - ?
- Activities/Places - ?
Third party code:
- GIN - https://github.com/google/dagger/pull/119 ? - Depends on GWT.create
Monday, 25 August 2014
RedQueryBuilder 0.7.0 released
http://redquerybuilder.appspot.com/ version 0.7.0 is released today with support for Number data type, fixes for IE11 and a few bug fixes.
Bit of a boring release while we are working on a big feature to support more flexible error reporting and custom serialisation.
Bit of a boring release while we are working on a big feature to support more flexible error reporting and custom serialisation.
Thursday, 27 March 2014
Maven versions and feature branches
It doesn't seem that maven really supports feature branches. The version should be number.number.number-qualifier. If you want to use SNAPSHOT then the qualifier has to be exactly that.
All our artifacts are for a single webapp so we don't need to share articfacts. Given that the simplest thing seems to be to just use the version of the branch that the feature branch is tracking. e.g. if tracking master, and master is 1.2.3-SNAPSHOT, then that would be the version of the feature branch. Apart from SNAPSHOT working correctly it means that merging is less hassle.
If sharing artifacts within an organisation then something more elaborate like https://github.com/gary-rowe/MultiBitMerchant/wiki/Branching-Strategy might be needed.
All our artifacts are for a single webapp so we don't need to share articfacts. Given that the simplest thing seems to be to just use the version of the branch that the feature branch is tracking. e.g. if tracking master, and master is 1.2.3-SNAPSHOT, then that would be the version of the feature branch. Apart from SNAPSHOT working correctly it means that merging is less hassle.
If sharing artifacts within an organisation then something more elaborate like https://github.com/gary-rowe/MultiBitMerchant/wiki/Branching-Strategy might be needed.
Pipeline for web app development projects
One way that seems to work is to have a pipeline constructed as:
- Requirements team go out to the customer/organisation to try and get decisions on what problems actually need to be solved and any fixed requirements/specification.
- Once the requirements are firmed up the QA and developer join. The QA to understand the nature of the problem and record how to test if the problem is solved. The developer to understand the problem and start thinking about possible solutions.
- QA/Dev can raise questions to requirements team to clarify specification (if required).
- Once QA/Dev understood the requirements, QA then will write final acceptance criteria (to test if the problem is solved)
- The problem can only enter a sprint when the QA and developer agree that it is ready to start.
- Within the sprint the developer and QA negotiate an acceptable solution. The customer must be kept informed of changes.
At all stages any agreements with the customer must be record in the bug database.
Sunday, 1 December 2013
monit
Saw lots of posts about horrible little shell scripts or full blown enterprise solutions but: http://mmonit.com/monit/ seems to work nicely for one or two boxes.
Thursday, 25 July 2013
The good from latest agile project
- Sprint retrospectives are great in time boxing ongoing discussions and a good time to stop and think (as the name suggests).
- Good to limit fiddling with the process to once per sprint.
Some warnings:
- Users/customer will sit happily in sprint review meetings nodding BUT come the release they will really start thinking. The review meeting is no replacement for user testing. Really need to make the users use the app.
Tuesday, 23 July 2013
GWT RequestFactory network retry project
I've just been allowed to make a module from my day job FOSS.
https://github.com/salk31/gwt-rf-queue
With any luck it will get picked up by the community.
https://github.com/salk31/gwt-rf-queue
With any luck it will get picked up by the community.
Tuesday, 9 July 2013
Big bang replacement of existing business system
- Don't.
- Almost certainly underestimated the complexity of the system you want to replace.
- The users have learnt to live with the existing system.
- The existing system includes endless Excel and Access things the users have knocked up and love.
- The existing system will improve while you work on the shiny new replacement.
- Building a new system from the ground up is exhausting.
- Near impossible to manage user and management expectations of the new shiny system.
Thursday, 30 May 2013
SCRUM/Agile
Great article here:
http://agile.dzone.com/articles/7-agile-best-practices-you
I've not enjoyed doing SCRUM on a greenfield project with a large set of fixed minimum requirements... Seems very unsuitable.
One great thing from SCRUM has been the sprint reviews where we decide things to try. Geeks are particularly bad at worrying to much.
http://agile.dzone.com/articles/7-agile-best-practices-you
I've not enjoyed doing SCRUM on a greenfield project with a large set of fixed minimum requirements... Seems very unsuitable.
One great thing from SCRUM has been the sprint reviews where we decide things to try. Geeks are particularly bad at worrying to much.
Saturday, 23 February 2013
RedRobot 0.2.13 released
http://code.google.com/p/redrobot/ 0.2.13 just released. Upgraded to use WebDriver 2.30.0 and an experimental listener API.
Friday, 6 July 2012
Developer stereotypes
Young hacker - quickly and accurately writes huge swathes of code that works but nobody else can understand or fiddle with. Unit tests etc are an annoyance that just slow them down.
Puzzler - sees writing code as a series of puzzles to solve. How you solve them and what happens after that is not important. Once you have finished the "crossword" just move on.
Old hacker - slow and inaccurate but knows a lot of paths to ignore and needs unit tests to support the weight of their own code. Tendency to be grumpy as they have discussed X too many times already.
By the book - if it is not in a book then it is _wrong_! Don't bother trying to debate anything with them as only the book can explain it properly. Have you read the book!?
Tidy - doesn't really care what the code does or how it behaves but has a compulsion to re-write everything in a tidy way. Big danger is that they will happily spend months re-writing something just so it follows how they think it should be done.
Fiddle till it works - has no real clue what is going on but if they mess with something long enough it will eventually do roughly what is needed. Not worth trying to get them to tidy it up. It took them days to get it working and they are not prepared to mess with it again.
Puzzler - sees writing code as a series of puzzles to solve. How you solve them and what happens after that is not important. Once you have finished the "crossword" just move on.
Old hacker - slow and inaccurate but knows a lot of paths to ignore and needs unit tests to support the weight of their own code. Tendency to be grumpy as they have discussed X too many times already.
By the book - if it is not in a book then it is _wrong_! Don't bother trying to debate anything with them as only the book can explain it properly. Have you read the book!?
Tidy - doesn't really care what the code does or how it behaves but has a compulsion to re-write everything in a tidy way. Big danger is that they will happily spend months re-writing something just so it follows how they think it should be done.
Fiddle till it works - has no real clue what is going on but if they mess with something long enough it will eventually do roughly what is needed. Not worth trying to get them to tidy it up. It took them days to get it working and they are not prepared to mess with it again.
Wednesday, 29 February 2012
Demo of our SQL Query Builder widget
http://redquerybuilder.appspot.com/
Pure JavaScript and easy to connect to jQuery, GWT etc
Just feed it meta data and off it goes.
Thursday, 28 April 2011
Brutally simple deployment has advantages
"one of the main reasons why operations stop and restart processes in applying a managed change – to be sure the process can indeed be restarted"
Friday, 11 March 2011
Eclipse CTRL+SHIFT+t
On a class name will show you which "file" that class is coming from. Thanks to Virender!
Thursday, 27 January 2011
Common management diseases
Noticed these three recently:
- Incapacitated by worrying about long distant problems - this sort of manager when asked a question will fail to solve the simple problem we have now because of pondering how it would be solved if we were 100 times bigger than we are now. So when asked who should have the final word on certain issues the manager responds with a lecture on the problems of organisations like IBM and Google managing architectural decisions... There are only ten of us!?
- Bored by their real job - this manager will neglect the work they are meant to be getting on with and put huge amounts of energy into a daily series of fads.
- Blinded by glitter - a manager that doesn't real know what is going on is totally blinded by the buzzword compliant and the "bored by their real job" people. The plain speaking guy that is not constantly coming up with wiz bang projects is of no interest and the manager can't spot who is actually doing useful work.
Yep. I'm bitter.
Wednesday, 15 December 2010
Advantage to meta data not hanging off RDBMS meta data
Is still denormalisation but one big advantage of not just augmenting the database meta data is that you can describe types without needing actual database tables. It is still re-inventing the wheel but it is hard to sell having lots of tables in the database even though the database is very able to cope. Tooling may struggle opening 1000s of tables in the UI.
e.g. You want to describe a model and user interface but never want to collect the data in a table. So you want the model definition but no need for the actual table (if not using the meta data).
I think I'd still vote for using real tables but would need to test that all parts of the database and tooling can cope.
Monday, 12 July 2010
Project management notes to self
- Panic early. Reduce features and complexity early, you can always add them later. Better than having to drop them at the last minute.
- Clear roles and responsibilities - obvious but doesn't always happen. Who do I have to ask to get X approved...
- Before you say no to an idea make sure you have an alternative to propose -
- Don't fiddle with time estimates just because they are inconvenient.
- Don't isolate yourself from critical voices.
Tuesday, 8 June 2010
Google Web Toolkit Blog: Look ma, no plugin!
Still not sure if a hoax.
Many months on I'm still not sure if GWT Quake is real. Looks like too much of a pig to get running to find out for real.Already my pointy haired boss has got the wrong end of the stick and thinks GWT is all about making a website look pretty.
Many months on I'm still not sure if GWT Quake is real. Looks like too much of a pig to get running to find out for real.Already my pointy haired boss has got the wrong end of the stick and thinks GWT is all about making a website look pretty.
Thursday, 17 December 2009
Composition for happy ORM?
None of the polymorphic mapping strategies for ORM seem to work very well.
- Table per class hierarchy - Is too evil to mention.
- Table per class - Very similar to composition?
- Table per concrete class - Makes queries and FKs painful.
Composition seems to map nicely to relational databases. Also in the real world composition can model the world nicely.
Subscribe to:
Posts (Atom)