Freitag, 16. August 2019

I'm on a mission

So, I haven't posted anything in a while because quite honestly - I wasn't sure anyone was reading this at all. But this all changed today...

My friends and I talked about another blog the other day - like a lot - and I got a bit jealous. So I tried to (not completely serious) lure my friends onto this blog to get more traffic ;-)
One of my friends - well I wouldn't really call him a friend, more like an acquaintance - made it pretty clear that hell would freeze over before he'd ever come to this site. This lead me to making it my mission for the rest of this year to get him to visit my blog.

My ideas so far to get to achieve this are:

  1. Social Engineering - I will try to get him through one of the channels (e.g. Whatsapp) through which we already communicate to click on a link to my blog (I have already tried with url shortening, but he is smarter than he looks)
  2. Phishing - Once I have his EMail-Address I will try sending him great offers that he can't refuse - all leading to this page (I know a certain Nigerian prince who wants to give away some of his money - maybe he is willing to help)
  3. XSS - this one will be a bit harder to pull of because a lot of the web sites that he visits on a regular basis already prevent XSS attacks - and I would probably have to purchase advertising space there which could cost me quite a bit (but hey, it is probably worth it)
  4. Seduction - I will produce so much great content here that he won't be able to resist anymore at one point. I am still collecting ideas on topics but I think one of the following should work:
    • Going Vegan - I could become a vegan and not only that - a raw fruit and vegetable vegan
    • Starting Cross Fit - I'm suspecting him having a secret crush on me which is why he teases me that much - starting to do Cross Fit and sharing my amazing body transformations is a honey pot he won't be able to resist
    • Explaining why flying is good for the environment - He is a frequent flyer (due to business reasons - or so he claims) and he might regret some of that due to the current climate change debate - if I can provide scientific "proof" that flying is actually good for the environment he might stumble upon this page by accident
    • Become a soccer expert - this one might actually be too easy to achieve but he is an enthusiastic soccer fan and if I invest 30-60 minute per week I should be able to provide thoughtful and helpful player analytics in a week or two. That is what he needs to win his fantasy soccer league for maybe the first time ever.
    • Something about nipples - the idea is really at a very early stage but this might actually be the trojan horse he let's into his city
So, the rough plan is defined - let's get to work!

Montag, 28. Januar 2019

Some Updates

It has been a while since my last post so I think it is time to give some updates:
  • TV - I did not get a TV during the Black Friday sale on the various shops because none had the TV I was after on offer. Luckily, the week after christmas a large tech store chain did some early shopping - insane rebates activity - and even though they did not have the exact model I wanted they had a reasonably close one for a good 250€ below the average price - so I had to get it. Consequently I grabbed my father in the early morning hours and we drove to the store - waited in line with like 50 other people (remember, this is december 27th at 8am) - we got in relatively quickly and got the TV. It is a Samsung QLED (THIS ONE). I paid in cash since we had been saving up to it in our piggy bank and I am really satisfied with it. Great picture quality, good sound for built in speakers and all relevant features that I wanted (it even gets support for apple's air play in spring - so everything is golden there.
  • Open Source Software governance - the scans of our software revealed some duplicate and outdated libraries - we updated what we could and got that out of the way - overall way less effort than anticipated.
  • Basketball practice - I got back in the saddle really slowly. The orthopedist recommended not to play basketball like every again. But I love this sport and I need to do some kind of workout that I don't need to force myself to. I got a nice lower back bandage (prescription) and that makes it bearable even though it limits my flexibility and puts quite a bit of weight on my hip muscles - so I tire much quicker than before my back problems. But that should all sort itself out with more practice. I also started running (well, "running" - my pace isn't close to what it used to be) again to bring the weight down and get more fit. You can follow the results here. The first run was good and helped a lot with the back. Lazy as I am it lead to me reducing the back workout routine (because of reasons) and then the second run was not nice and set me back a bit - back wise. I have taken up the exercise part again and am looking forward to doing some running in todays lunch break. This is all part of my new years resolution (more on those later).
  • In unrelated news - my oldest daughter turned 4 on Friday - what a party that was. We prepared for almost a week - she wanted an unicorn-themed party so we gave it our best:

    Decorated the house with unicorns, I even created some unicorn heads (made of plywood) - as part of the party entertainment the kids coloured those and I will finish them up with some varnish and glue sticks to them to create hobbyhorses. Here how they look in their raw form:

Donnerstag, 22. November 2018

Thanksgiving

Oh, Thanksgiving is here and I couldn't be more thankful:

  • There are no colleagues in our american offices today - so I can work in peace in the afternoon and don't have to sit through hours of meetings. So I can finally catch up on my priority list - I can wrap up some open source software review process that has been due a while ago and more... (let's see how this turns out 😏)
  • The wife has to work longer today so I will fetch the kids from the child care - we will have a party in the living room with stuffed animals and wooden vegetables (maybe some real ones, too - not animals, vegetables)
  • Tomorrow is also basketball practice day so I will be working out a bit again - I went to practice last week after having to sit out for 2 months due to lower back problems. I am now doing regular exercises to strengthen the torso (mainly the plank and arched back) and sit on a "special" pillow to have some stabilizing exercise while I work - this has helped a lot!
    This is the pillow - I have to take a break from sitting on it every hour or so because my nuts get numb...which is quite an interesting feeling - can not recommend it, though.
  • I am also looking forward to the big "Black Friday Sale" on amazon this year - I have saved up some money to finally buy a new TV - my eye is on a 55" QLED TV from Samsung - but only for a reasonable price - otherwise I wait some more.
Happy Holidays!

Mittwoch, 21. November 2018

Winter is here

For once the weather forecast was correct...winter has come

This is the view from our bathroom roof-light - into our neighbours garden - apparently they haven't picked all their apples yet 😆
But we were prepared - I've even changed the car's tires on the last weekend (yes, that is a thing in Germany: we have tires for summer and tires for winter - because we LOVE our cars).

Dienstag, 20. November 2018

Winter is ... maybe ... soonish ... coming

So, the very reliable
weather forecast has predicted some snow starting this afternoon. So, after the wife left with the kids I went into our orchard and did some winter-readiness-preparation:
  • Stored away the rain barrels - after having drained them - damn, could have used those 2.000 liters (in gallons: redsquirkmont gallons - I don't have the motivation to look it up) in the dry summer that we had. Well, it is what it is.
  • Packed away the water pump and pipes
  • Cleaned up some of the garden waste (aka brought it to the far end of the property with the wheelbarrow - out of sight, out of mind).
  • Picked the last apples of the season - just two small crates since I didn't really have time for more and didn't want to go grab the ladder - because I am a lazy bum
So, now we are almost done - still need to hang up the christmas lights outside (after this Sunday - which is kind of a tradition here in Germany) and need to install one last downspout to direct the water / melting snow off the patio.

So, we now have 5 crates of apples and 3 sacks of walnuts that we harvested stowed away in the garden shed for consumption over the winter. Can't wait to get outside in the spring and clip the trees for an even better season next year. 

My grandparents from whom we inherited the property including the orchard were smart enough to plant a variety of apple trees (and other fruit for that matter - pears, plums, cherries) so that we basically had apples this year from late August till almost late November. I will be trying to create an inventory of the trees and types of apples that we get to organise this all a bit better next year.

Can someone tell me why the next Avengers movie is still half a year away? I really want to know how it all ends...

Freitag, 16. November 2018

And hello again.

It has been a while since I wrote something here and wanted to give an update on all major things:

  • Weight is a topic not to be talked about - I went up to around 105kgs beginning of August and started doing "interval fasting" - so I only eat (or consume calories for that matter) between 8am and 4pm. So far my weight has dropped to around 96kg - still too much but a bit better. With a bit more workout it should go down some more (needless to say I never reached the 82kg that I targeted an eternity ago)
  • Basketball is also a bit of a sore point these past 2-3 months. My back has been in a really bad shape - hardly allowing me to walk fast - not to think about running and jumping. Went to see a doctor and he recommended not to play my most favorite sport any more. So, since my back has been much better this past week I am going to basketball practice tonight (because I love this sport and am a bit stupid) - updates to come on how this went.
  • Marriage went great - never looked back. Even got two little offspring as well by now - but this is about me! And nothing else (besides basketball and technology).
  • That brings me to the technology part: My love for JSF has died down quite a bit (as it has for most of the industry, I think). The new hype is Ansible and Docker (at least for me) - but I don't want to bore my 10s of readers with this now - more on this in a couple of days.
What else is there to say: Tomorrow is weekend which is great - this week felt a bit like two weeks with a lot of things going on work-wise and private-life-wise. I am a bit surprised that this blog still exists but I guess it is true: The internet never forgets.

Montag, 2. Januar 2012

Mission: Lose weight

Ok, so the new year has started and some warning signs have been recognized during the last 2 months in 2011...
  • Pants look as if they were painted on my legs
  • My belly jumps when I laugh (real Santa Clause style!) - especially embarassing after Basketball Practice in the locker room
  • Haven't seen my feet since 2008

Ok, the last one might be a bit exaggerated but the other 2 are valid nonetheless.

I've got two starting points weight-wise:

  1. Gym-Scale with clothes on around 10pm - 92.4kg
  2. Home-Scale completely naked (oh yeah!) around 7am - 89.4kg

So far I have identified 2 Milestones - 85 by beginning of February - 82 by End of June (gotta get in shape for the Babamixed Basketball Tournament) - both on my home-scale.

The plan is to work out as much as I can and my aging body still supports and try to consume fewer than 4,000 calories per day.

So far I stick to the plan:

I went to the Gym yesterday - 35 minutes of usual workout (bench pressing etc.) and then 35 minutes of running with my new pulse watch (~4.5 km).

Today I only ate: 2 rolls for breakfast, a salad for lunch and now a protein shake for brinner ;) - and Basketball practice is so on tonight.

Planning to bring my running gear to work tomorrow...

Freitag, 28. Mai 2010

Blogging about ICEfaces

One of my favorite software development frameworks - ICEsoft's ICEfaces started a blogging contest (one of the prices is an iPad - nice since my fiancee probably won't approve the budget for a gadget like this).

What I really like about ICEfaces (in comparison to trinidad, what we've used before):
  • Nice looking components (probably not the most important one from a development point of view, but hey, that's what sells the products and thus pays my salary :-))
  • Active and Helpful forum (http://www.icefaces.org/JForum/search/filters.page). This cannot be valued too high - in my opinion. I'd say roughly 70% of my questions could be answered by searching in the forum and checking the answers people with similar problems had - the other useful source is the public ICEfaces JIRA
  • Consistent attribute naming
    Trust me, this is really a big improvement comparing it with something like trinidad. When the attributes all are named consistently it is very easy to exchange components (replace a dataTable with an panelPositioned or a panelSeries for example, switching between inputText and outputText etc.)
  • Awesome features that come out-of-the-box
    - Push Server
    - Drag and Drop
    - and all the other nice things that can be seen in the component showcase
So, you can expect quite some posts about it and of course also my unfiltered opinion.

I'd like to kick it off with my first impressions after having looked at the (fairly new) composite component suite (http://composite-component-showcase.icefaces.org/icefaces-composite-comps-showcase/showcase.iface):
We just recently got access to it (licensewise) and this will really save us some time in future development. The new tables, dual lists and layout components look especially helpful for our current project. I'm really looking forward to using them as soon as possible.
In the past we've implemented something like filterable column headers on our own - we've got a working blueprint for this now, but it requires quite some knowledge about the surrounding program logic to get it successfully integrated in a complex screen.
Dual list won't save too much time (given, that you can also use two single lists and some backing bean data storing and controller methods) - but I'm always a big fan of writing fewer code.
The layout components will definetely play a big role concerning the sexy-factor of our application - and it is always nice to have a better looking UI for low costs ;-)

So, that's it for now - more will come quite soon.

Injuries, Injuries, Injuries

Ok, that's it! Third week - third injury. I'm officially getting old...

Two weeks ago I sprained my right ankle - not too badly (it was worse some years back) - but still bad enough (thanks to my great Nike LeBron III Sneakers that I bought in New York last summer - the lacing is already broken which caused this)....

Last week I dislocated my right pinkie - looked really disgusting. Coach came over and moved it back into place - he also told me to see a doctor the next day - which I didn't.

Two days ago I managed to sprain my hardly healed right ankle AGAIN. OUCH! That hurt - but it is getting better and I'm looking forward to next monday's practice.

So currently I'm playing with a slightly unstable ankle and a right pinkie that I'm "buddy taping" (http://www.utahmountainbiking.com/firstaid/finger.htm#Dislocation) - my shooting percentage is down quite a bit since I started doing this :-)

When something else happens in next week's practice I'm gonna sit out a couple of weeks and focus on healing until the wedding. Damn - suit fitting day is in 2 weeks and I still have to lose 5 pounds (preferably fat).

Montag, 17. Mai 2010

Bought our wedding rings

That's it - we're officially getting serious about this marriage-thing.

- after having booked location, dj, priest, church, catering, photographers, accommodation, florist and wedding cake
- after having sent out save-the-date cards and the invitations
- after having prepared our online wish-list (www.wunsch-galerie.de -> I strongly recommend this site - it's free and it is linked to the most popular online stores)
- after having bought suit (for me) and dress (for my fiancé) - together with shoes, belt and misc. accessoires for her
- after having finalized the detailed planning and decoration
- after having participated in 3.5 dancing classes

...we finally made it to the jeweler and ordered our rings (will hopefully be ready in 2 weeks).
They are made of white gold and my soon-to-be-wife's ring has a couple of diamonds in it - mine is just rhodanized and mat (everything else looked kinda gay...). Costs are at around 1,300 euros for both - which is surprisingly within our estimates.

I think actually getting married is the easier part of the whole operation... (or is this just what I'm hoping?)

Donnerstag, 6. Mai 2010

Practice No. 4

So, we just had our fourth practice yesterday and things are starting to click:

Our level of fitness and stamina has improved consistently - you want evidence?
Some of the guys on our team have been on vacation the past two weeks. During yesterdays practice it was quite obvious who made the fastbreak drill for the first time - those were the guys panting heavily after 5 minutes. The rest of us were just fine and could complete the practice without collapsing ;-)

After having worked on fastbreak plays and 6 different options for our early offense we don't seem so confused anymore while on the court. We press the tempo on every possession and everybody knows his spot(s).

One personal downside for me were some more bruises on my forearms - I am playing in the post against the big guys (since I'm not shooting the ball too well) and they make me earn every inch.

Looking forward to monday's practice...

Mittwoch, 5. Mai 2010

New Coach for our Team

Well, recently we got a new coach for our basketball team after having finished 5th in our league last season (some really stupid losses included).

So, new season, new coach.

Our target is to advance 3 leagues within the next 5 years (which means to finish 1st or 2nd every second season in the new league).
Some could say that this goal is quite ambitious - I thought the same before our first practice two weeks ago. Then we had the hardest workout in my basketball life so far - I was impressed.
I was even more impressed to find out on the next practice that it could get harder - and again harder in the next practice. After having run for 2 hours at nearly full speed I skipped my usual post-practice shootaround and headed straight to the showers - to make it there as log as I could still walk upright.

So, today is our fourth practice session and the tryout period for the team is nearly over - 30% of the players have already left and our team seems way fitter than through all of the last season.

The future looks promising...

Dienstag, 4. Mai 2010

Java Server Faces and added complexity

Having worked lately on an extremely generic component for one of our JSF (ICEfaces) based products I must really say: You have to jump through a lot of hoops because some useful functionality is missing in JSF. This list is not meant to be complete. It's just what came into my mind today:
  • No parameters for method bindings
  • Insufficient enum support
  • Constructors for Pojos
  • Dynamic method/value bindings using the Expression Language
No parameters for method bindings
I really think this is the worst one - anyone who ever tried to call an action with a parameter came across this issue and used one of the workarounds to actually get it done:
  1. Create an additional parameter object and work with f:setPropertyActionListener (only works for actions and not for parametrized getters)
  2. Use the Map-Hack: Create a Bean that implements the map interface and put all your fancy business logic in the get method - you can call the get method with one parameter (usually the key for the entry you want to access). I must admit I have used this once or twice and it gets the job done - needless to say that it's bad design and I've even read a couple of times that it has some pitfalls (that I haven't encountered so far).
  3. Create a map property on your backing bean: I actually think this is the only valid approach (ok, the parameter object is fine for actions as well) if you need to access data in a parameterized way. Your parameters become the key(s) for the map property and the object you're needing is the value. This has the only downside that you have to initialize the whole content of the backing bean's map when the data is displayed to the user - whether it is really needed or not because you can't control the calling of the getter from the backing bean.
Insufficient enum support
So maybe I'm wrong on this one but I couldn't find a simple way to use enum instances in JSF pages. I couldn't create instances of an enum "on-the-fly" to access certain data or provide it as a parameter. Here are two ways to handle that:
  • Completely abstract from enums in your pages and use String data fields instead (You would then have to transform the String objects into Enum constants on demand)
  • Use a utility bean in that populates Map members on startup with all the elements of your enum. You can then easily get the enum instances by using the members fo this bean with ['enumInstanceName'] to actually get the objects you want right from the start
Constructors for POJOs
Say you want to provide not just a simple parameter/value to your backing bean but already an object (to limit the number of properties for your backing bean) - I didn't find a way to initialize an object from a JSF page and fill some properties. There is some sort of workaround with providing a dummy managed bean for this - the JSF framework takes care of initializing it when you access it for the first time - but it was really a drag. I tried to use this with a request scoped bean - but it kept the value during partial page submits (because for JSF a request ends only when you leave the page - it spans over different partial page submits). So I needed to cleanup the request scoped bean after having retrieved the data. I didn't really find a solution for this and sticked to using multiple properties in my backing bean.

Dynamic method/value bindings using the Expression Language
What I mean by this is: Let's say you have a bean 'A' with the String properties 'a' and 'b'. It is now not possible to use one input text component and link it to either one of them depending on a boolean value (e.g.: #{not empty bean.c ? bean.a : bean.b}). The only way to achieve this is to duplicate the text component and use the rendered flag or create a dynamic value expression in your backing bean and set it on the component programmatically.