When Changing a Codeunit Subtype
2015-5-15 8:01

Since a couple of years codeunits have a property called Subtype. Selecting a specific value for this property changes the behavior of the codeunit, one of them being an extra property added to functions, i.e. FunctionType (for Test Codeunits and Upgrade Codeunits) which defaults to a specific value depending on the Subtype value (see my post NAV 2015 Glance 4: New Functions are Local by Default?).

Now what happens when you change the Subtype of a codeunit? As FunctionType values depend on the codeunits Subtype C/SIDE cannot just leave the FunctionType as is. Let's try and see.

Scenario 1 - Changing a Test Codeunit to Normal

So we create a test codeunit with a test function:

And change the Subtype to Normal:

Now C/SIDE removes any test artifacts that do make sense in a normal codeunit:

Scenario 2 - Changing a Upgrade Codeunit to Normal

Let's do the same with a Upgrade codeunit:

I.e. change the Subtype to Normal:

Logically as the in previous case, C/SIDE removes any upgrade artifacts that do make sense in a normal codeunit:

This perfectly makes sense ... but for one fact: why aren't the functions set to local as is the default behavior in NAV 2015? I would prefer that as I wouldn't want any previous test or upgrade function being exposed outside of this codeunit by default.

What do you think?

BTW

Never observed this before, but this looks somehow awkward, doesn't it: Subtype v.s. FunctionType? Why is the first having a low cap t and the second upper cap T?

Hunting 'Mr. X' ... uhhh ... '0x1C'
2015-4-18 13:23

The other day I was assigned the job of installing a couple of NAV 2009 (web) servers, which included setting up delegations. Lucky me. Sad

I ran into an issue that kept me busy for almost 2 days which eventually ended in a, as so often, very simple fix. Huh?

Of course to prevent you and myself from having to do this 2 days endeavor I'll share my findings below. If you can't hold your nerves just jump to my Long Story Short.

But maybe even more I am writing this story as an homage to all my fellow NAV pros that have consciously and, all but one, unconsciously contributed to the solution. Every workday I am grateful to all of you that share your findings on fora like mibuso, dynamics user and Microsoft Dynamics NAV Community even if you pose them as questions.

So here we go with my Short Story Long.

Short Story Long - A Homage

Here I am, setting up NAV 2009 (web) servers and delegations. Typically a task that I do not perform on a regular base and which often is a nuisance due to these delegations. But every time again I happen to get it working with valuable help of one of my IT colleagues, and so I am guaranteeing I will be the chosen the next time. Cool

BTW: needless to say that this all about a 3-box setup as described here.

This time the main goal was to get a NAV web server running to enable an external party to access our Dynamics back-end. Although we use web services heavily, our main installation is being accessed still by means of classic clients. But in the not too far future we will start running RTC and therefor, having installed the new web service, I wanted, in one go, to get the application service tiers running on our test and acceptance environments.

Easy said then done as it appeared.

Here starts the hunt for 'Mr. X'. Or actually '0x1C', as we will see. Even though we will not be using buses, taxis or the London Underground, we will hunt him down like the detectives in the Scotland Yard board game. We lay out the board and distribute the tokens and other accessories and confront the ...

Initial Enigma

Where did 'Mr. X' go?

After having installed the right RTC and Service Tier builds, and configuring the service, starting up RTC threw the following error.

A first sign of live from Mr. X. Speaking Dutch, by the way.

ENU: The server net.tcp://<Server>:<ServicePort>/<ServerInstance>/Service is either unavailable or your connection has been lost. Do you want to attempt to reconnect?
[Note that I have replaced the server, port and instance names by generic terms.]

Clicking either Yes or No resulted in a follow-up message:

ENU: Lost connection with the server. The application is closed.

First thing ...

... to check was whether the service was still running or not: it appeared to be running.

No sign of Mr. X. Where did he go?

Luckily I always install a full demo version on any NAV environment, be it development, test, acceptance or production. On the default port (7046) the application service for the demo database is running, while on another port (for example 7066) I can access development, test, acceptance or production database. Would I be able to access it? In order to check that the ...

Second thing ...

... was to change the ClientUserSettings.config so that my RTC would be looking at the demo service tier (<Server>:7046/DynamicsNAV/Service) and run RTC.

Splash screen, as always slow, keeping me waiting ... and ... keeping me waiting ... and ... keeping me waiting ... and ...

Alive and kicking! Clear that delegations were not blurring things. Although I still had to check whether using a fully qualified DNS would also work OK.

Entering the fully qualified DNS in the Select Server window and pressing TAB showed the available companies in the demo database. Clicking OK resulted in a perfectly normal start-up of my RTC.

Would I be able to do the same with the fully qualified DNS for our test database?

And get closer to my Mr. X?

Didn't halter too long and did the ...

Third thing ....

..., i.e. entering the fully qualified DNS for our test database and pressing TAB. Wow, connected to the service tier!

Mr. X, we feel somewhat close to you, but are we? And how to get closer now that I ran out of my first options. What were you actually saying?

Clicking however, threw the next error.

The server net.tcp://<Server>:<ServicePort>/<ServerInstance>/Service is either unavailable or your connection has been lost. Do you want to attempt to reconnect?

Help can be quite close ...

... if you can find it. Well, let's at least attempt to. Google is your Friend, isn't he? Straight around the corner.

Google, let's frame Mr. X.

Google: http://dynamicsuser.net/forums/p/39925/204742.aspx

What did you say? Trying to solve one riddle, getting another in turn? Huh?

Google: The server net.tcp://<Server>:<ServicePort>/<ServerInstance>/Service is either unavailable or your connection has been lost. Do you want to attempt to reconnect?

OK, makes more sense. Let's click on it. Aha, my dynamicsuser friend Manish found a solution to this error. Indeed my default RTC profile was set to PAG50175 (part of our customization), so I changed it to one of the standard pages: PAG9006. No luck. Still getting the same error. To be sure I even removed all the records in the User Personalization (TAB2000000073), but to no avail.

Google: RTC Error “The server <address> is currently not available”

Next hint, you mean?

Well, glad you lead me to my dear fellow MVP Arend-Jan Kaufmann. Always providing valuable, and often technically detailed information. But no, this is not the issue. I know by heart we have the same build running on all machines. OK, I check it once more ...

... maybe I accidentally run into Mr. X. Cool

Back again, Google, and no, found nothing valuable.

And surely no Mr. X.

Got some more riddles for me?

Error: '┴' invalid character

Nope, doesn't seem what I am looking for. No clear cut fix.

In hindsight it was more or less what I was looking for. I was actually sitting next to Mr. X!

It surely pointed out me to have a look at the Event Log; as with the next as with Google's next hint:

metadata error

As with the previous hint it was too much info in that error message. However this had some clear suggestions which at least I could give a try haven't succeeded so far. But before continuing my search I decided to ask Arend-Jan for help by sending him a mail with the event log file. If I wouldn't find a solution over time he might.

I recon meanwhile Mr. X was laughing in his sleeve making sure I could not hear it.

So based on Google's last hint decided to remove all records form the Object Metadata table and recompile all objects. I guess I was somewhat overreacting by removing all records. Just tired of searching and really getting closer to a solution. Starting RTC again I was welcomed by the next error of which I totally forgot to make a screen shot:

---------------------------
Object of type Table with id 2000000045 could not be found.
---------------------------

Mr. X has left the room!

Ouch, I am drifting away.

Half an hour later I found myself back on track, again getting some help from another of my fellow MVPs, Saurav Dhyani, on rebuilding the metadata. Don't know why, but this however lead to a Change Listener issue. After solving this and again compiling all objects ... I found myself having a deja vu: I was looking at the initial error again. Angry

This suggestion from again a fellow MVP, Natalie Karolak, also didn't help me out either unfortunately even though it might prove valuable in the future.

And then I received an answer form Arend-Jan actually not doing much more then focusing on the invalid character as already mentioned above.

Long Story Short

Arend-Jan Kauffmann out pointed that this was the crucial clue in the Event Log. He wrote:

Apparently the XML data, that is generated by the NAV server and sent to the RTC, contains a character that is not supported by the RTC. Probably some strange character in a caption or so. Or something else in the data.

Actually seeing our Mr. X almost straight in the eyes, but at the other site of the river Thames.

Within reach, but not ready to grab.

Mr. X, or, as mentioned before, Mr. 0x1C, being an invalid XML character, made the start-up sequence of the sequence of the RTC stop, resulting in this useless message:

The server net.tcp://<Server>:<ServicePort>/<ServerInstance>/Service is either unavailable or your connection has been lost. Do you want to attempt to reconnect?

Mr. 0x1C was clearly misleading us.

Fix

But still needing to find Mr. X.

How was I at long last able to grab him "by the collar"?

Using the Visual Studio Find in Files feature with the following regular expression [\x00-\x08\x0B\x0C\x0E-\x1F] being the illegal XML characters one object file popped up: MEN90.

It thus eventually turned out that Mr. 0x1C had been unconsciously and unintended placed in the Name property of one of the MenuSuite items the week before. Waiting to get out and get me busy for 2 days trying to trace him down ... by talking plainly nonsense.

A big thanx to all my fellow NAV pros that have consciously and unconsciously contributed to the solution. Of course one special thanx to Arend-Jan.

Hope you can profit form my findings as already one of you did.

Note

Oh, one note to be made before I go: the most time consuming part of this endeavor was having to restart the RTC over and over again. Well actually not just restarting but needing to revert the ClientUserSettings.config ... Can't this be made somewhat simpler, MS?

Cancelled or Canceled, that's the question
2015-4-16 19:42

I don't know. Maybe it's just me. Every once in a while, when writing, I get lost in spelling out right the word(s) I am writing. My mind somehow blocks and doesn't do what it normally does automatically. Just like this week, when I needed to translate some captions. More precisely a number of options that were only provided in NLD. So I had to translate them to ENU. It happened with one of the options, namely Geannuleerd.

Geannuleerd is the NLD word for Cancel... Wait ... [Halter] ... Geannuleerd is the NLD word for Canceled ...  Or is it Cancelled? I never had thought about, i.e. I never had haltered over, this one before. While writing this right now I actually wonder why I haltered, but I clearly did. If I would have been doing this task now I would have written Canceled straight away.

The funny thing is that, instead of using Google translate, which I do by default and would surely give me the ENU translation, I took a total different approach. I used NAV to help me out. True, this wasn't the first time, but it revealed something totally new to me. No, not really earthshaking, but nevertheless a funny insight.

As you might know by now I am a big TFS user, so I always have (a copy of) the NAV code I am working on/with stored on my laptop in text files. So I took the approach of searching through these text files by means of the search box in the explorer, assuming that this search would tell me which of the two would be right. Cancelled or Canceled.

Well, have a look.

Huh?

Cancelled or Canceled, that's the question!

Even NAV won't tell me. OK, statistically it would be canceled (110 occurrences) and not cancelled (45 occurrences). So that's what I used right then, not spending more time on it thinking somewhat vague that this might have to do with ENU against ENG.

Now elaborating somewhat more on it here I found Google suggesting me canceled which then probably is ENU. Searching the Internet I also ran into this, which doesn't put a clear cut between the two, but surely eases my mind. But  ...

... find myself still wondering why NAV utilizes not just one of them.

by Luc van Vugt | with no comments
Filed under: , ,
Welcome to the Dynamics blog-o-sphere! #12
2015-4-3 4:46

While performing a C/SIDE development training - like I am doing right now at Housing in Ljubljana, Slovenia - I am always searching the internet for articles. To provide my students with articles that complement the standard resources and training material. But often, and not in the least, as an answer to the never drying out source of questions students seem to draw from.

Doing so, I often run into the same resources: the still improving help of NAV, NAV Team blog, mibuso, dynamicsuser, fellow MVP blogs, etc. But every now and then I am taken by surprise, like this early morning. Browsing around regarding dimensions, I stumbled over this post: NAV Dimensions - The Theory by Gemma Warren. She made me smile. Thanx, Gemma.

Until this morning, you were totally unknown to me even though your blog has been around somewhat over a year already. Maybe because I am primarily a technical guy and you a functional ... girl. Only God knows, I guess. Nevertheless, it's surely worthwhile reading.

So: Welcome to the Dynamics blog-o-sphere!

But before I stop ...

  • Haven't written a post since October ... Did your source dry out?
  • I am not claiming I am the most creative guy, but your blog header and theme ... aren't for sure (sorry to say so)
Poisson d'Avril - The Sequel, part #5
2015-4-2 7:31

At the danger that it will become a normal thing Microsoft has awarded me for the 5th time in a row the MVP Award for my community work in the year passed. And with me 984 exemplary community leaders around the world, among them my dear Dynamics NAV MVP fellows Mark Brummel and Eric Wauters.

But indeed it isn't "a normal thing" and like every year I am thankful for being in this position and still being able to be in this position. Not in the least due to all those that ... support me (thanx, Saskia et al.), ... I work with, ... ask me to help them out, ... I luckily run into and learn from, have fun with, etc.

So again: a big, no a VERY BIG, hand to all of you.

Let's clean up NAV #8 - More Options, Beyond "Torn Page Detection"
2015-3-14 10:03

Participating in a really worthwhile two days SQL Performance training by Jörg Stryk this week, I heard him pointing out some other "useless" database properties. Beyond Torn Page Detection. Consequently I couldn't do else, but grab Jörg and welcome him to our growing Clean Team! Geeked

   

Therefor a big welcome to another fellow MVP.

More Options

You might recall when fellow MVP Alain Krikilion joined the team suggesting to clean out the Torn Page Detection toggle on Options tab of the database properties of NAV. Didn't ask him, but he might have found it clean enough. Jörg clearly doesn't, read below.

Single User

Well, this will set the database into a single user mode. This is only possible, if no other connection is established, except for this single NAV Development client. As long as the NST service etc. is running you cannot enable this setting; you’ll be blocked until you receive a timeout.

I’d rather set this in Management Studio (Database Properties) as here you could also tell to “close all existing connections”, hence SQL Server will disconnect anything else automatically.

ANSI NULL default

This setting tells, if NULL values are allowed in tables/fields. This is pure nonsense, as NAV is not capable to deal with any NULL values (it will break down with an error) and automatically makes sure, that all fields have NOT NULL values. Hence, this is a setting which NAV does not need and cannot use.

SQL Developers who have to create tables in that database, but “outside” the NAV application, know how to deal with that if really needed.

Recursive Triggers

Well, the last time NAV used SQL triggers (this setting does NOT refer to NAV triggers!) was in version 5.0 (prior to SP1). And even in those old days, the triggers could not be - and have not been - recursive (means: SQL trigger executes another SQL trigger). Nowadays there are no more SQL triggers in NAV, thus this setting has zero relevance.

SQL Developers who have to create SQL triggers in that database, but “outside” the NAV application, know how to deal with that if really needed.

Auto Shrink

Let’s be frank: a NAV database is a data-cemetery. All goes in, nothing gets out. A NAV database is actually doomed to grow forever, as there are just few options (if at all) to reduce the amount of data. Hence, a NAV database needs to be configured to have a decent size, receiving all the data. While doing this a correctly set Auto Growth value is feasible. So the NAV db will grow and grow and grow … what’s the point of automatically shrinking it? That would mean: the database is idle and Auto Shrink will shrink the file. Then users start working and Auto Growth will expand it. Then shrink again. Then expand. And so on.

This  is maybe a weird disk-benchmark, but actually degrading performance by causing super-fragmentation of the file. And due to the way how Auto Shrink internally works, it will also cause super-fragmentation on indexes.

IF - for whatever reason – the whole database needs to be shrunk, THEN this is an administrative task to be done once in Management Studio.

Sometimes we need to reduce the size of the Transaction Log file (e.g. after migrations etc.) but then it is the DBCC SHRINKFILE command (again: Management Studio), not shrinking the whole database.

Recovery Model

Hence, the only setting on that Options tab which makes slightly sense is the Recovery Model. But this also could be handled in Management Studio. 

Hence ...

So to keep it simple, maybe it’s the best way to completely get rid of the Options tab.

Let's Stryke these options out, Vedbeak!

How-to: Add "Set Up Cues" to Activities
2015-3-6 16:39

So I had been upgrading a module from NAV 2013 to 2015. Selecting the module's Role Center as default and running the Windows client made me wonder what I was missing. And then I saw the void.

Shouldn't there be an action to enable me to setup cues?

What had I missed?

So I learned, looking at standard Activities pages that this needs to be added as an action:

 

by Luc van Vugt | with no comments
Filed under: , ,
Let's clean up NAV #7 - Unused Pages
2015-2-20 19:10

A welcome to Dynamics NAV veteran Marcel Duizendstraal, who joins the Clean Team! Geeked

  

It seems there are many unnecessary pages still left in NAV2015, stemming from the good old transformation time.

  • 7172 Sales Lines Subform
  • 7173 Shipment Lines Subform
  • 7174 Invoice Lines Subform
  • 7175 Credit Memo Lines Subform
  • 7176 Return Rcpt Lines Subform
  • 7182 Purchase Lines Subform
  • 7183 Receipt Lines Subform
  • 7184 Return Shipment Lines Subform
  • 7185 Purch. Invoice Lines Subform
  • 7186 Purch. Cr. Memo Lines Subform
  • 7187 Purch. Order Archived Subform
  • 7188 Sales Order Archived Subform

'Vedbaek, go ahead. Clean it out!'

Welcome to the Dynamics blog-o-sphere! #11
2015-1-31 7:34

CompGeek (Arjan van de Logt) has been around in the Dynamics world for quite some time. So like many of us he's got enough "powder to fire a gun". But as modest as he is never wanted, needed, could, ... Luckily he "finally" found a good reason to start writing: "... write about subjects I had to figure out but also about subjects I bump into and which I think might be interesting to other people."

Reading the posts, ComGeek has been writing sofar, I know I will turn to them in some near future as these typically contain info on tasks I have to do infrequently and thus will not recall all details.

Go and read and judge for yourself.

Keep it rolling CompGeek!

Page Wizard Should Populate FastTab Captions to Enable Translation
2015-1-10 13:54

Building numerous of pages I ran into this issue already ages ago. Because of that I had registered the issue on msconnect asking Microsoft to fix this.

Already on August 26, 2011 (!) Microsoft - by means of Stuart Glasson - answered that it had been fixed in NAV 7.

But NAV 2013 was released, and we know NAV 2013 R2 en NAV 2015 also were, but still the issue is there. o I have created a new entry for it and go there and give your vote.

Let's clean up NAV #6 - Remove Redundant COMMIT
2015-1-10 13:31

Browsing through msconnect I stumbled across one of my entries: Remove COMMIT from a number of Codeunits. A perfect member of my Cleanup series. Small, but as we started to "clean up" let's pick up this one too.

If you agree go there and give your vote.

by Luc van Vugt | with no comments
Filed under: , ,
Comment and Uncomment Selection – v2.0
2015-1-4 13:09

Last year was the year of (the release of) NAV 2015. A major new release bringing NAV another step forward. As before it was presented at a number of events of which I did attend a significant number. Directions US, Dutch Dynamics Community, Directions EMEA and NAV TechDays. And apart from the major part of the content they all had one striking thing in common.

Now picture yourself sitting in those rooms at these events, where various speakers are delivering their well prepared presentation. Envision what they are presenting and how the audience is reacting to that. Enthusiasm? Disappointment? Annoyance? Amazement? Or as diverse that all these emotions show up at the same time ... I recon Microsoft was quite happy with the positive (I even think enthusiastic) reception that they got for the tablet client. Surely given the effort they have put in it and the goal they want to achieve. And maybe some more other new features.

Thinking however of this one, I guess this was unexpected and ... inexpensive. If the sound level of the applause would have been measured, it by far would be number 1. And it was exactly the same on all 4 conferences. Whether Dmitry Chadayev showed it in between all the more sophisticated technical feature during the key note sessions in San Diego; or Arend-Jan Kauffmann demoed it at the Dutch Dynamic Community event in Nuland; Stuart Glasson mentioning it shortly during a O365 integration session in Poznan; or, who was it, did the same in Antwerp. In all cases the Comment and Uncomment Selection feature did rouse the audience. It surely made me laugh.

But to be honest, it also made me somewhat disappointed. As IMHO it is not complete. Surely it's great that we can (un)comment a block of code in one action and not having to use the curly brackets to do this efficiently. But I hardly uncomment blocks of code temporarily. However I do it frequently when replacing/removing existing code by new code, like in this small example:

But the Comment and Uncomment Selection feature does not support this as comment slashes are always added at the start of a line, i.e. on the first position, and not related to the indentation of the lines being commented.

So I suggest to have v2.0 for the Comment and Uncomment Selection feature by means of a setting on the Options:

Comment and Uncomment Selection – 2.0 will allow you to comment code as is now possible in NAV 2015, i.e. Comment Selection=Normal. Or (new) it will allow you to comment code in such a way that the slashes are put a the most left indentation position of the selected lines, i.e. Comment Selection=Indented.

If you agree please go to my msconnect entry and vote for it.

Comments are evil?
2015-1-4 9:23

Did you read Soren's last post? You should as it contains a worthwhile standpoint regarding commenting code. And it's down right clear that Soren abhors commenting code. Even that much that he doesn't allow me putting a comment to his post!

So here I am ending up on my own blog with a comment on comments that are considered evil. Smile

... SQUARE(Evil) ... Cool

Here I go ...

Dear Soren,

I cannot but support your standpoint. Indeed we should all write clear code that needs no comments. It makes it much easier to create, understand and maintain. The funny thing is that we - NAV developers as a group - keep on generating unreadable code; for ages already. And not only those "out in the field", also at Microsoft. Just have a look a codeunit 80. Even printing the darn OnRun code gives you a fifty pager that will keep you busy for a good number of hours to unravel. Facing that fact we could recon ourselves happy with the comment lines provided here, even if they are "evil".

So as you validly say "we should try to do better". I would have left out "try". We should do better. Simply because we will profit from it and, even more down-to-earth, because we all are paid for it. And as we both know, it's not that hard. And we are even helped with it. By the Design Patterns project. By the PRS clan. By Design Pattern videos. By Mark Brummel's posts, like this one on Natural Language Programming (which by the way also declares comments as evil).

And it's good to know that these are not voices shouting in the wilderness as people are picking this up. Standard NAV code is improving. A vast number of people are watching the videos and attending related presentations. Etc.

As said, I cannot but support your standpoint ... in principle.

Yes, I want my code to by minimal and clear. It should not do things that is not asked for. It should not have any artifacts that are redundant, unneeded, etc. And yes, a source management system like Team Foundation Server (TFS) indeed supports me (and you) in this. But ...

... I also want to do my work as efficient and effective as possible. And that's why we use comments, i.e. code markers, to our code when modifying existing code objects. Like most of us do, I know. Comparable to what we did for local features in standard NAV

This allows me, looking at the C/AL code,

... to have a quick insight in what changes have been implemented over time. True, TFS will also help me to get this insight, but not in one glance. So I need to do extra actions to get to the same point of understanding.

..., as a developer, to straight forward pinpoint the faulty code change that underlies the error when I am debugging.

..., as a tester, to determine the scope of my white-box testing. What part of the code do I need to take into account in my (new) tests.

..., as a (feature) code integrator, to perform cherry pick mergesFor this we even assured that each added field or page control will have a reference to the related TFS work item in the Description property.

I hear you thinking: "Luc, you can do better."

Maybe you're right and I am to old to change our practice. Or maybe I am just afraid of change, not daring enough. However, using these practices - our best practices, I dare to say - our work has been profiting from it, and still does.

Your fellow in TFS arms, Luc van Vugt

As Soren states he has "... heard all the arguments ..., but it doesn't change my view that COMMENTS ARE EVIL", making my exercise without any chance to change his mind, of course. Geeked

Nevertheless I just wanted to give my two cents on this even if that leaves me somewhat evil. Devil

All the Best for 2015 ...
2015-1-4 8:52

... to you all. As promising clear as the sky over our home this morning.

But what ever will happen, ...

Life's what you make it

Feliz Año Nuevo, Gelukkig Nieuwjaar, Happy New Year, Bonne Année, Godt NytårGlückliches neues Jahr, ... to all of you! And Laimīgu Jauno Gadu (for Modiris)Sretna Nova Godina (for Vjeko).

by Luc van Vugt | with no comments
Filed under:
Christmas Eve: A Joyful and Merry Xmas 2014
2014-12-24 16:08

It's fun reading old posts like last year's on Christmas Eve. Could just copy it here and let it be. However life would be utmost boring if everything would be exactly the same, but I know it would also be unbearable if everything would be totally different.

So I cherish Chrismas Eve, get the tree set and once again prepare our Kerststol. Patiently waiting for the dough to rise, meanwhile cutting wood that will heat up our oven, allowing us this evening to bake pizza's and the Stol. Allowing me to have a somewhat slower pace, still recovering from the fever I was fallen victim to last week. Long time since I had been ill. Apart from a chainsaw cut, hockey bruises and hitting a sideboard corner. Sad

A slower pace bringing about a mood of retrospect. Looking back on a fruitful year that brought me to new places. Enjoying that typically British humor with Mike, John, Sarah, Paul, Andy, Luke, Adam and Funghai during a couple of courses in Lane End, UK. Having a somewhat more quiet but still very intense week with Marko, Tadej, Dejan, Alan, Rado and Rok learning me about Slovenia, a place I had never been before. Really worthwhile.

Talking to and with many more people at Directions, San Diego, US, and Directions EMEA, Poznan, Poland. Including a whole bunch of ex-colleagues (Swabian or Microsoft) that I hadn't seen and spoken to for almost 2,5 years. And of course running into various of my MVP fellows which is worthwhile every time again.

Thanx to all of you that I was crossing 'roads' with last year. As simple or complex as it can be, it makes life what it is: worth living.

Merry Christmas ...

by Luc van Vugt | 1 comment(s)
Filed under:
More Posts Next page »

Recent Posts

Search

Email Notifications

This Blog

Favorite BLOGS

MS BLOGS

Team Foundation Server BLOGS

NAV & TFS BLOGS

Syndication

Archives