Saturday, 28 April 2018

Spring Boot 2.0 Upgrade

A couple of years ago, we converted our web application to Spring Boot 1.0 It was quite a new area for us - there were a few late nights and occasions where we were stuck but overall we learned a lot about Spring Boot and this framework certainly added to our whole development and deployment process. Most recently I've stepped through the process of upgrading to Spring Boot 1.5 from 1.4 and this was pretty painless - the main change is losing Velocity as a standard library but Thymeleaf is the preferred switch. The past couple of weeks I've taken to upgrading further to Spring Boot 2.0. Now this is a much bigger switch with much more headaches! I really must take notes of all the steps but here's a start: springboot-starter-social twitter and facebook has been dropped For the time being, I've opted to comment out any references to this while I get the main app working! spring-boot-starter-tomcat spring-boot-starter-web Starter-web includes servlet containers such as Jetty, Tomcat and WebFlux? The embeddedservletcontainerfactory has been replaced. I've been having fun getting the container to work with customised context paths we need for static content. spring-boot-starter-jpa - spring-boot-starter-jdbc Hikari Connection Pool is now the default - apparently it's much better but since we've invested quite some time in setting up the Tomcat connection Pool properties, I've opted to initially keep with the Tomcat CP - not as easy as you'd think! To do so you need to exclude the Hikari CP from the starter-jpa. A few classes have been deprecated/replaced. The latest I am working on is the WebFlow upgrade to 2.5 from 2.4. application context and flow xml references must be updated! Something still not quite right as I am getting mapping[] empty errors on flow processes. An important step is to bring all TLD/path references up to date. I've gotten some strange errors which basically mean that somewhere has an old reference to a previous version.

Monday, 18 August 2014

C25k Graduate - Woo hoo!!!

Guys, I can't believe it Week 9 has been a rush. All 3 runs in Week 9 were set for 30 min runs with no breaks. Wk9R1 was hard. I don't know what happened but from the start until the end I just felt like quitting. There wasn't any stage where my breathing came together and I could relax and enjoy. Maybe it was the drop in temperature or Laura/Claire only giving 10 min warnings or a combination of the two! Wk9R2 was tremendous. The guys over on the HealthUnlocked C25K forum lifted my spirits and to be honest the run couldn't be worse or as bad as Wk9R1, could it?! Wk9R3: well, this is what it was all about, eh, and finally got there. Instead of waiting for the 9am Bedford Park Run as I initially planned, I started just after 8am. The run felt tremendous. My Garmin watch was helping where Laura/Claire was giving minimal notifications. When I hit 30 mins I decided to carry on and try and hit the 5k. Result: did it just under 40 mins. Elated! That was Saturday and 2 days later I feel good and ready to start a new programme. Active 5k to 10k looks like a go-er. B210K had some fairly bad reviews. 10k Pink looked like a starting programme for people who haven't done anything like C25K. Onwards and upwards. 9 weeks ago I could barely run for a minute, now 30+ is the standard!

Wednesday, 30 July 2014

Couch25K Week 7 Run 1

Man, if you thought Week 7 would be a return to small runs, think AGAIN! Run 1 is 25 mins no-break running with 5 mins either side, warm-up and warm down! A repeat of Week 6 Run 3. As it happened, I enjoyed it yesterday (Tuesday). It was hard work and unlike Wk6R3, I was aware of each of Claire's 5-minute warnings so that's what made it harder. I've learned to breathe independently of my stride. This is a huge improvement from Week 1 when I tried to match my breathing to my stride. Maybe it works for some but not me. Bedford Park is beautiful and as I was a little late starting at about 0620hrs, I saw a few more folk. There are the folk that say hello/acknowledge you and there are those that don't. This used to bother me before but not any more. Either I say hello first or they say hello ... if they respond to my greeting, all well and good ... if they don't then they were preoccupied or just loners. No skin of my nose. This running thing is so addictive and I want more data. I've had a look at the Polar Personal Trainer website but I feel a little short-changed on the data from my Polar FT7. And after all the shenanigans with Polar Support, I'm going to try out the Garmin Forerunner 410, recently discontinued GPS watch available at lovely prices, and have a look at what the Garmin website offers. Meantime roll on tomorrow morning and Run 2!

Sunday, 27 July 2014

Couch25K Week 6 Run 3

On Saturday morning I was keen to get Run 3 done. This consisted of 25 mins non-stop running. My only target is to do the time and not concern myself with distance. I've got into the habit of running in Bedford Park. Nice environment and not as busy as the streets. Just after 6 am, the park is quiet bar the occasional visitor. Most noise comes from the squirrels who I discovered are accomplished scavengers. They scramble out of bins disturbed by my approach. My pace is slow and Claire's voice (Get Running Android app) is there to give me encouragement. The 1st 5 mins is reasonable. I concentrate on breathing naturally, in through the nose and out through the mouth. With all the warnings from my brother and brother-in-law about the risk of running at my age and weight (which was circa 248lbs at the start of the programme) I opt to mostly run on the grass at the side of the tar path. It's a little uneven and probably worse for me, in hindsight. Each 5 minute notification from Claire urges me on but this was a bit harder that Week 5 Run 3. From the start of that run I felt tremendous and after 5 mins I felt this was easy. Not so this time around, I don't feel as comfortable, it's hard work. I keep control of the breathing and keep to the pace. My worry is that there is no room to slow the pace if push come to shove, I am at the slowest pace I can go without stopping. Thankfully the 20 minute marker comes and I gain encouragement to keep going. I actually think about mindful meditation and if it's possible to meditate whilst running ... like walking meditation. I'm still contemplating that. Then the final minute comes ... 24 minutes done. I can actually increase my pace, not by much but enough to feel I am coming to the finish line. Yes, it's great to meet the target. I didn't feel as elated as on Week 5 Run 3, that 1st 20 mins complete was a major breakthrough... but I do feel good! 5 mins walking and then I do a bit of stretching. I need to spend some time learning what stretches I should do. I use the stretches from the Insanity programme, good old Sean T! I must start and finish that insane programme, one thing at a time, though! On Tuesday I'll start Week 7 Run 1. C'mon!

Saturday, 19 July 2014

Couch25K Week 5 Run 3

It really seemed unlikely but this morning I ran for 20 mins. Super slowly, yes, but this Couch25K programme really works!!!

I was pretty worried about Run 3 as I struggled with the 1st 8 mins in Run 2 and then just managed to complete the 2nd 8 mins.

Anyway, today, the first 5 mins was easy and I felt so good that I thought maybe I really can do these 20 mins.

At 10 mins, Claire says "You've reached halfway and can turn back" and there I was awaiting for the 10 mins notice and then next thing I know , Claire says, "You have run for a quarter of an hour" or words to that effect! After that I knew that I was going to do it. When I got that final 60 secs warning I picked up the pace (well, a little).

It is such an awesome feeling from struggling in Week 4 to this. I think the whole of Bedford Park must have heard me shout "YES!!!" when I completed the run.

I have never run for more than 5 mins before this programme. Bring it on. Next, please!

Elated.

Mark D

Thursday, 17 July 2014

Couch to 5K Week 5 Run 2

This couch potato has finally stepped up to do some exercise.

Now let's get this straight, right. I have NEVER run for any length of time beyond a 100m and that was school days which is a long, LONG time ago.

About 6 years ago I remember trying to jog with a small group of work colleagues. I don't think I lasted beyond 5-10 mins. Embarrassing but I put it down to just plain not enjoying running.

Anyway this Couch to 5K programme has got me hooked, so far so good.

I got my FitBit One going alongside my Polar FT7 heart rate monitor and using the android GetRunning app.

This had me starting in Week 1 with 8 x 1 min runs.

Week 4 finished with an introduction to a 5 minute run.

Week 5 is really exciting and very scary!

Run 1: 3 x 5 min runs ... which I managed to do!

Run 2: 2 x 8 min runs ... WOW!! Struggled with the 1st one as I over paced myself. 2nd one, slowly does it and made it. YAAAYYY!

Ok, it's the big one tomorrow.

Run 3: 1 x 20 mins ... er, sorry, what?! Ok, breathing and slow pace again. See how we go!

Report back later.

Saturday, 6 February 2010

Pentaho and Designing Reports

I've spent a few weeks playing with the Pentaho Report Designer 3.5 and 3.6M2.

The idea was to replace some existing Excel pivot table 'complex' reports with web-enabled simple versions.
The Report Designer is a pretty user friendly tool.
My one issue is the regular pauses while the tool polls the query.
Actually it is a quite frustrating issue as no-one else on the forums seemed to suffer from similar.

Upon further investigation, I can see that we need to give our users more power.
I started to look at Pentaho Metadata and then Pentaho Analysis Reports/Mondrian.

Over the past week I have spent playing with the Schema Editor, Mondrian and OLAP.
This is the good stuff. Where there is always initial reluctance to use something new, Pentaho Analysis Reports is probably much better than Excel Pivot tables and should easily pacify the converted user. After all they can still export their data to many forms including Excel.

Actually, I am really impressed by and excited with Pentaho Analysis Reporting, OLAP and this sort of report design. It is fantastic stuff and I can't wait to show some analysis reports to the users.

Saturday, 5 December 2009

Pentaho Reporting - Reporting heaven

A few years ago we checked out Pentaho version 2 and it was looking a pretty cool product - actually suite of products.
As things happen the real demand for a change in reporting attitude has only happened more recently. And here I am implementing Pentaho BI Server 3.5.
The more I look at this, the more I like it, if at all possible!

Pentaho has made the switch from default JBoss installation to default Tomcat.
I can understand why as Tomcat is much easier to set up basically due to less complexity.
As an out and out JBoss follower I had the fun of getting the manual installation working. Now the problem with the opensource community flavour is that you have to hunt for the documentation. No doubt the Enterprise flavour comes with it all indexed clearly in one place!

I have turned to two books to assist.

Pentaho Solutions - Roland Bouman/Jos van Dongen - Great book for an overall in-depth guide to using the Pentaho suite! Excellent installation guide. However now that I want to focus on the Reporting I find I need even more detail hence the next book I have on order:

Pentaho Reporting 3.5 for Java Developers - this one should arrive at my door tomorrow but from the glossary this will provide the detailed guide I need for using the Reporting tools. Can't wait for it to arrive.

I've also invested in the Pentaho Community Dashboard Framework (CDF) tutorial and that is looking good.
Only just started the tutorial but the CDF has much promise!

Anyway, our users are getting excited by what they see on the BI server. I better get converting some of those horrible extremely heavy Excel pivot tables!

Tuesday, 29 September 2009

JBoss PermGen errors

After trimming back the grails project to its bare bones and STILL getting the permgen error and doing a few tweaks to the JBoss 4.0.4 version JVM 1.6.0_06b,. I tried the suggestion here:

http://delta-1.blogspot.com/2008/02/javalangoutofmemoryerror-permgen-space.html

This seems to have fixed it although it's only been 5 hours or so! I'll give it a couple of days but the error was happening easily with 15mins of a server restart so it's looking a bit good.

This did not happen for the same deployment to test version of JBoss 4.2.3 but one needs to mimic the live environment exactly so one cannot be sure if the same fix needs to be applied in a live environment for JBoss 4.2.3.

Hope this helps someone, anyway.

Monday, 28 September 2009

Grails - The Essential Tool

Over the past year or so I've been following the Grails programme with just a little dabble to see what it's all about.
Just recently I had the need to produce a small data maintenance app to hook up with OpenCMS. Having been more of a back-end programmer recently I decided it was time to put Grails to use or, rather, avoid a java struts process!

Trust me, Grails is a REAL breath of fresh air ... create the domain class, generate the controller and try out the scaffolding.
Hibernate is applied immediately!

After creating a few domains and building a small webapp, it was time to evaluate the generated views.
Ok, this is fine for a smart user/techie but a real user needs both user-friendliness and validation. After a bit of research, GSP tags provide the usability and static constraints adds the validation. Nice and easy!

Testing is a doddle ... grails run-app brings up the jetty server and testing is immediate. Change the code and test immediately, no need to restart the server!

Next was to apply Spring Security ... a couple of hours later the app is running with decent login controls applied.

Within a couple of days, I had an app I could put into production!

A little research again and two plugins look to be immediately useful - the export plugin and the filter pane plugin.
The export plugin exports the data list to so many data formats - csv, excel, pdf, odi, etc, etc!
The filter pane plugin generates a filter pane to apply filter selection on the list data.
Separately they are beautiful and simple to apply but a little more work was required to get them to work together but that just might be me!

My main nightmare was running into PermGen errors on deployment of the webapp to JBoss 4.0.4. Now this app ran pretty excellently before the introduction of the plugins, mind you! Suddenly, soon after interaction with the grails webapp, the dreaded PermGen error appeared in JBoss.
And I have to kill JBoss to restart it ... the clean stop doesn't work after PermGen!

Anyway, I have to deal with those issues, after all, it is Grails 1.2-M2 I am dealing with. I also wanted to put it on Jboss 5.1.0GA but there are issues with Spring 3.0.4M
When it comes to stuff like this I do try to be on the leading edge which, as we can see, is a bit dangerous.

Now I have been a big fan of the Hibernate framework and then I heard about the Spring Framework which included the option to use Hibernate!
Now the apple in the pie is that Grails includes all this good stuff. In actual fact, when you check it out Grails includes a lot of good stuff.
Absolute-ly fan-tastic!!!

I have been living and breathing Grails these past couple of weeks and it's great.
I promised myself that this is the year to step up on production and this is most certainly one of the tools to have in my armoury!

Let me say this, if you are a java developer looking to do front-end development and you need a RAD tool e.g. your struts production isn't exactly lightning fast, then you REALLY SHOULD TAKE A LOOK AT GRAILS!!!

Some research was provided from Mannings' Grails In Action book, a subscription to GroovyMag.org and of course the well documented grails.org site.

Friday, 8 May 2009

Spring Contract First Web Services

I have no doubt in my mind that the Spring Framework is the bomb! (Something pretty special). When I was required to build a new web service I have to say that I add a bit of pain in going the "contract first" route.
Contract first means building the web service by designing the contract first i.e. the interface with the client or user ... the WSDL.
From thence, all processes are hidden from the client and more importantly most changes will remain hidden from the user i.e. the contract remains intact.

I have built a few clients and it's amazing (read 'crap') how many times I have had to update the client code after a small tweak from the suppliers of the web services.
They must be using contract last ... where the code is finally used to generate the contract and exposure to the code is not controlled or encapsulated enough.
Great for developer turn-around but costs are soon recognised in the long run.

SO invest time in contract first, it's time well worth spent!

Sunday, 8 March 2009

Data Integration ... the way ahead

A while back I spent quite some time building a java process to process multiple data feeds and add the data into a separate database.

Well, the recent weeks have been spent using a highly commendable open source tool called Pentaho Data Integration formerly Kettle.
http://kettle.pentaho.org/

This sort of rapid development tool is similar to Microsoft SSIS.
The installation comes with a wide range of sample examples of Jobs/Transitions/Mappings so that you can start to investigate what's involved and how it works.

They also have very good documentation and an extensive wiki.
http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+(aka+Kettle)+Documentation

I have to say the developers on this project are so keen to assist (Matt Casters, thanks!) People do tend to worry about the support and backup one can get from open source - well, I had a few queries as a newbie to the tool and the response on the forum to my questions have been prompt and extremely helpful.

If you want to extract and share data in different formats this is a brilliant tool and their sister projects Pentaho BI Suite and Pentaho Reporting look most interesting.

I am hooked and see this sort of development being a valued tool to add in the armoury.

Monday, 15 December 2008

Interviewing for Candidates

Back in the past, an interview process was a simple one for a techie.
They tested your basic knowledge of the given language/discipline and then, if you were a fit, they looked at your suitability.
And this would usually work out fine.

What does the interviewer do nowadays ... especially when you see the long list of requirements they append to the job sepcification?

I find that the written test that usually some interviewers who haven't got an expert on tap are a waste of time.
Surely there is no other way than to ask a few questions about recent projects with a general basic test to ensure that the interviewee is not messing one around.

After 20+ years in the business, a written test is somewhat tedious and where does one begin subject-wise?
There's a lot of knowledge that is picked up temporarily and filed/discarded after use ... the brain can only store so much. Surely it's about one's capacity to come up with a solution rather than the ability to recall all aspects of programming syntax and other answers.

Nowadays, it must be more useful to discuss the frameworks one employs and higher level design processes rather than just low level syntax.
What do you like about Spring? When would you use Hibernate? Any thoughts on the employment of Groovy? Design Pattterns, discuss ...
Is this person moving with the times? Or are we just happy to get a one-track technologist?

Thursday, 11 December 2008

Life Changing Moment in Development - Spring 2

The most notable so far was the day I actually started reading Spring in Action (SIA2) ... early in December 2007.
I'd picked up this book a few times before and even dabbled in version 1 of Spring but in finally buying that hardcopy I made the commitment. What a book! I absolutely loved reading and using SIA2. All the chapters were useful, making my application development easier & better & safer and thus made my life better.
This battered book has trudged on most of my commute to work and social events ever since, such that I even considered getting another copy for the workplace only.

Groovy in Action is getting in on the action now and while I hope that Grails in Action Early Access e-book will eventually achieve nearly the same score as SIA2.

2009 will be a year for quick reliable software delivery, I have no doubt!

Wednesday, 10 December 2008

RAD with Grails

Over the past few years I have forsaken my Java Struts front-end development and become more of a back-end developer.
This has been good but most recently I found a need to put a face to my works ... initially for 3rd party testing and even documentation!
Groovy is new to my toolbox and so natural progression was to investigate Grails.
This little baby is growing on me swiftly as there is none of the growing pains I had with Struts 1 way back when.
It seems that things just get easier to do, auto generation of code from domain/controller classes is sweet! I earlier investigated Rails back when it was new and making waves but learning a new language on contract time is a no no!
Even now as a permie, you must produce ... hence my little time invested in Groovy and Grails have already started to reap rewards.
Next year with good time management I expect to see very quick application turn-around and with a pretty face for the users ... Grails!