Christmas 2020. Not that different really.

Invariably, Christmas ends every year and the topic of conversation turns to that annual question:

So how was your Christmas?

Answer:

Grand. Quiet as usual.

So really, every Christmas is usually quiet. Especially when you have a young family. So really, this blog post is no different to a post that would be recorded any other year. We cooked and cleaned, the hcildren played with their toys, we called to family and although we stood outside, we still got to do what matters. Show them that they were considered during Christmas.

I don’t usually record a blog post over Christmas. But I wasn’t happy with the mono audio captured on Christmas eve. I was very frustrated to find that the microphone switched back to using mono after the first recording. I certainly didn’t configure that. I shouldn’t need to check the settings before every recording but I think i’ll need to get into that routine.

The night before Christmas – 2020

Here goes. The next in the series of podcasts about the night before Christmas in this Ó Héiligh household. The stars of the show as usual are Méabh who is 7 this year and Rían who is 5. I am continually proud of Méabh. Her ambition to constantly improve herself is just stunning. But it must be said that this year Rían has blown my expectations out of the water. His speech, confidence, caring nature and sense of what he thinks is funny have all developed way faster than I anticipated. I was going to narate over the audio but I decided against it. I have listened back to previous years and I came to the decision that this is about the children. It’s about their energy on the night before Christmas. I will relish the time when they are adults when I can show them all of the memories that we made as a family during this great time of year.

I would like to take a moment to wish you all a very happy Christmas. May 2021 bring everything you would like for you and your family.

Microsoft Dynamics basics – Day 2.

I was saying during my blog post yesterday that I am finding the training on Dynamics fundamentals to be very interesting. Today we were only scheduled to look at the field agent’s functionality and data exports and exports.  But we flew through those parts of the course, so I got to spend some time investigating some of the pros and cons of model-based apps verses canvas apps. Firstly, both kind of apps are very data driven.  They also support this notion of (low code). That means you can get up and running with quite a decent app without writing a single line of code.  But if there is something you want to do like refreshing the form when a button is clicked for example, you have the option of using JavaScript.  The interesting thing I took from the comparison of model driven verses canvas was the fact that both are using strongly typed datasets. Okay. The model is exposed directly to the model-based app even at run time but even in a canvas app, it is still using the data model of the solution that it is built on so that for example, if you create a canvas app based on a table, the fields are presented by default.  So too are default actions like select, insert, update and delete.  It reminds me of creating a strongly typed model using entity framework.  If you want, you can have it create default actions that you can use in your controllers.  Sure, there is no customization in these methods, they just select everything for example instead of a subset of the rows in that table, but it is still really nice that this is done by default. It also makes understanding some of this a little easier as they share concepts across technologies.

Oh, one thing that we covered yesterday but that I completely forgot about is the same connection strings that allow you to connect Power BI to Dynamics could also be used for connecting SQL Server Management studio.  But wait.  Before you go poking around your live Dynamics database, be aware that this locks the tables when you are connected! Yeah. I am glad that we covered that.  This is probably something I would have done just to go poking around.  However, I also learned today that canvas apps can use connections to different solutions.  So, you could even create an app on one tenancy and connect that to a Dynamics solution in another tenancy. That is quite nice.   However, it is not possible to do this in a model driven app. That little nugget blows one of my earlier ideas out the window.

Another interesting thing I learned today Is solutions can be exported and imported.  Solutions contain the Common Data model, the views, graphs, dashboards and everything else excluding the data that makes up a Dynamics installation.  The CDS Common data Service is still something I am not sure of.  According to the documentation this is stored in the solution. But that just does not make logical sense to me.    Sorry. I am going off point.  What I am trying to say is this is fantastic for a few reasons.  Firstly, it makes migrating changes along the dev to release pipeline easy.  Your version your solutions and just export / import them from dev to test staging to production.  What is even better is you can tie in Git hub to regularly back up your solutions.  Again, that contains your CDM, CDS, views, dashboards, graphs, site aps and everything else (excluding the data) in your Dynamics instance.  When you export the solution, it arrives on your computer as a repository of XML files. So, you could even run comparisons on these files.

There is a great way of kicking the tires on this.  I wish every service were as open.  Go to https://trials.dynamics.com  and sign up for each dynamics component you want to test.

It is very clear as I go through this system more and more each day that it is interconnectivity with Power platform is now at the core of dynamics.  Now with the unification of the UI to match that of Power Platform, it is becoming hard to see where one ends and the other begins.  Of course, with any UI migration, it has not done and dusted over night, but I think I said this last night.  It seems that I am coming to the Dynamics world at a really good time.

Microsoft Dynamics basics.

I attended a training course provided by New Horizons today on Microsoft Dynamics Fundamentals. I have been looking forward to this. Dynamics is something I have been supporting from an integration and technology perspective for years, but I have not really had any day-to-day exposure to it on the end-user side.

I was a little worried at first when I was the only person on the course, but it has turned out well. I am only a day into a two-day course, but we have already covered most of the content and a lot more that was not quite scheduled to be covered. The main revelation though is the core data schema that Dynamics uses.

First: Microsoft are moving to a new way of describing the data in Dynamics. Instead of entities, there are tables. There are also now rows and columns instead of records and fields. This makes the entire thing much easier for me to understand because it aligns it with standard database terminology.

There is also this thing called the Common Data Model. This is a crucial part in the puzzle.  It describes the data schema used in Dynamics.  It is not just Dynamics that uses this either. SAP does as well from what I understand.  But even better, the CDM Common Data Model is documented on Git hub.

There is also more Microsoft specific documentation on the CDM here.

There is also the Common Data Service. This sits on top of the Common Data Model.  I am not going to try to paraphrase the document that is written out there by people who are much more knowledgeable on this than I am.

The reason I am writing this blog post is to say that now that I have a better understanding of this core part of Dynamics, I am more confident with other parts like field security mapping, form security, views etc.

I might have come to this at a good time actually.  So much of Dynamics is now moving to Power Platform. Making a UI using Power Apps is very straight forward.  Although, I need more time to explore this. I am still stuck connecting the right entities in my site map.  Looks like I have some exploration to do over Christmas.

I am looking forward to tomorrow. The instructor on this course is very happy to move along at a much faster pace than normal and he has been able to answer most of the questions I have thrown at him.  Tomorrow we are going to look at data imports and exports. But I am hoping to send a few more questions his direction relating to custom workflows in Power Apps.  We looked at that very briefly today, but I would really like to learn more before I go off and get stuck into this independently.

Saturday night Server updates – Covid-19 passtimes.

I genuinely think that being a system administrator or as I’m known now a senior system engineer isn’t a 9 to 5 job. Well, it never has been for me anyway. I remember as a young child, I couldn’t understand why my aunts and uncles had absolutely no interest in talking to me about their work when I met up with them on the odd ocasion during Christmas, family weddings or other celebrations. To me, talking about what they were working on was interesting! I wanted to know about what they did, the rewards, the challenges, what they needed to learn to get them into those positions and what I should do next. One part of my family are highly technical. They are in great jobs in companies that are recognised in areas of security, micro processors and networks. The other side of my family are involved in more hands on occupations. Funny, I have much more in common with the members of the family who are more hands on because they seem to take more pride in what they do. They also have no problems talking about their successes, their failures or jumping in at a moments notice to give a hand. Both sides of my family have always jumped in to lend a hand when they were needed so please don’t get me wrong. In fact, I got my start in computers by talking to one of my uncles during countless times where I completely messed things up with my first PC in the early 90’s.

But the point is, even on Christmas morning, when everyone gathered in my grand mothers house across the road from where I live now, I would be buzzing with anticipation of what new things I could hear about the technologies they were working on that year. Without fail, I would leave disappointed that they just weren’t interested in talking about work. I couldn’t and still can’t understand how they devoted countless hours to an occupation that they wouldn’t have an interest in talking about.

It’s for this reason that I sat here tonight updating servers. I have been watching a series on Netflix called Suits this week. I never sit down and just listen to something on the television but I have had a lot of time on my hands this week so I’ve been using it to try to actively remove myself from stress and over thinking about things. But tonight I sat down and while listening with one ear, I decided to check on a few sites that I follow. I noticed that there was a patch released that I was waiting on that fixed a few bugs in some software that I use regularly. This got me thinking so I logged into the server it is running on. I’ve spoken here before about getting lost down the rabit hole and this time is no different. I noticed that there was a new security update and several parts of it directly related to another server that I had been thinking about this week. So I decided to go ahead and apply that update. While waiting on the updates to apply, I decided that a bit of code that takes logs from the 2FA provider that I’m using could be more efficient. This is something I thought of while walking the dog one of the days during the week. The address field comes back as a complex object. But by converting it to a string earlier in the process, I can save bandwidth and make it faster for the UI components to display it. So as one of my uncles would say, I decided to “Trick around with that a bit”. I’m very happy with the results. I caught up on another few episodes of suits, a few servers have patches applied and I’ve made a function more efficient. To me, that’s the recipe for a great Saturday night in. I don’t really see this as weird. I see it as a natural extension of enjoying what you do. when you are lucky enough to enjoy your occupation, the lines between it and everything else naturally become less defined or pronounced. I’m not in a position to play much music at the moment. Technology and music are my two major passions in life second only to my family. When this crap of Covid-19 is all done and over with, I will promise that technology will take a major back seat for a while. But for the moment, it’s keeping me quite happy. There’s no where else I can go. I’m keeping my distance from people so that I can visit relations without concern of passing something on to them so if that means I log in from time to time and get a little bit of work done even during the Christmas holidays, I am absolutely fine with that.

Chair walks. – Part two.

Way more of you than I expected got back to me with chair walks. The post I wrote back in September. This part two was actually shot in October but I was way too lazy…………Busy to get to posting it until now. Thanks to all of you who left comments tweets and Emails when I posted the last post. This motivates me to do more of the same and makes this blogging thing worth doing twenty years on. Imagine that!!! This was started in 2000 when I was still in college as a simple project as part of a module and it’s still going.

Blog problems fixed. Without a complete rebuild

It has definitly been a successful day.

Hard to believe that I’m already at day 3 of my annual leave for Christmas. It has still been quite busy. Although my DCU responsibilities have taken a back seat, it seems that there are plenty of people still waiting for me to do something. Of course there’s also my own stuff that I’ve neglected for quite a while so today I spent time updating more of my own servers and of course, fixing this site.

You should notice now that the blog looks a lot better. Posts are shown in full on the main blog page, Dominique requested that at the start of the year and I promised I would get to it. Also, there’s more colours to distinguish between blog content, meta details and the post title. I finally updated the spacing slightly to make it easier to read. My sisters always reminded me to leave a small margin at the left. But over 20 years on from designing my first website, I still forget to do it.

Turns out that the problem with Divi was file system permissions related. Something changed with this latest version of php7 and the permissions that worked perfectly fine up to now needed to be changed. However, I don’t mind. The site is actually running quite a bit faster with this latest version of PHP.

Let me know what you think. But, please. Stop writing me Emails. 🙂 Leave a comment! 🙂

WordPress problems

I have had problems with this website today. Most of them are actually server related but are now fixed. PHP has been updated, the cache has been properly configured and permissions are properly configured with a policy of leased priveledged. But I’m still having trouble with WordPress. Mainly because this site is kind of old and it has been updated a lot with new functionality over the years.

I hate to say it, but I think it’s time to start from 0. I’m going to replicate the content to a new site and reconfigure everything from the ground up.

I have the time at the moment so I might give this some consideration tomorrow after I bring the dog for a walk.

Let the holiday begin

Ah it’s funny.  it’s the end of my first official day of annual leave for Christmas.  I had time to take off so I decided to extend my Christmas holidays by a little.

Staying true to form though, the first part of my time off was spent putting this video together for a local group called the Loving Life Choir.  Here are two of the members singing silent night.  With social distancing etc, this is about the most we could do for the choir right now.

(12) Silent Night – Loving Life Choir – YouTube

I did everything for this video. I recorded it, edited it, I defined the shots that I roughly wanted to get.  Emma, my wife captured the videos then I edited the clips and added the previously edited audio.  It’s not perfect by any stretch. But I’m neither a videographer, editor, audio engineer or professional musician for that matter.  But For my current skills in these areas, I think it’s okay.

On the technical side of things, I decided to upgrade my wireless network controller at home in the small hours of Sunday morning.  I couldn’t sleep and it was something that I had been putting off.  I’m running Ubiquity kit here in the house and it’s been a bit about a year since I updated the controller.  Unfortunately this latest version has quite a few changes that break my config.  I have, or rather I had, different networks and SSID’s attached to different access points.  This allows me to have different firewall rules for my cameras, my smart lights and the standard wireless network.  Also my smart lights are very particular about what channels of the 2GHZ band they want to work on so by having a specific SSID that they connect to makes it much easier to troubleshoot when something goes wrong.  I have some work to do now to replicate the old config on the new version of the Unifi controller software.  I’m looking forward to it though.  Now that I’ve figured out why all my smart lights have suddenly stopped working.  Perhaps I’ll document this to make it easier for others to find the solution.

Innovation verses service excellence.

I was at a meeting outside work about two years ago.  This local interest group were making the point that they should get what they want because when you combined this number with this other number, The answer was bigger than any other answer in the country. What they were saying was absolutely correct and no one in the room could disagree with them. Technically, what they were saying was correct but in reality, those numbers were not permitted to be added as for the sake of this story, they were in two different datasets.  I left that meeting wishing that I had this skill. To make an argument by shaping language and facts into irrefutable shapes  that were actually quite logical even if they didn’t actually comply with rules of law or common sense.

There’s another example of this kind of conversation shaping that is actually a lot easier to explain.  I was on a sales call a week ago. It was going reasonably okay up until the Q&A at the end.  It was then that I noticed that even when a feature that was request wasn’t supported by this system, the sales person started every answer with a posative yes and also finished his answer with a yes or a posative statement.  Here’s an example: Question: Can your application support backing up specific databases. Answer: Yes!!! MSSQL is a brilliant database management system. I love that we can set the recovery model to simple and not full so that simple means circular logging so where an application such as ours doesn’t actually tell SQL that we have made a backup, the SQL transaction logs won’t grow to fill the database server volume. So yeah. That’s a great feature. I love that question!  Clearly he’s saying that he can’t support that functionality, but his answer is much more posative. Even when his answer is no, it’s still yes.

So now I get to the reason for this topic, I had a conversation yesterday where someone told me that there was a discussion necessary where the policy decision of Innovation verses service excellence needed to be made.  Did they want to be quick to innovate or did they want to provide the best possible service, up time and reliability to their end users.  Well, of course, when this question is posed, anyone in their right mind is going to say that service excellence is the most important quality.  By shaping the question in this way, the answer is already established.  But it’s a perfectly reasonable question. Innovation and service excellence aren’t mutually exclusive aspirations. It requires planning, proper resourcing, good people, a clear strategy and methods of measuring and rewarding success. Sometimes, it also requires a bit of good luck as well. Why? Because things will break. Companies that embrace devops culture seem to be attaining a build fast, break fast and fix fast philosophy. This approach makes so much sense to me.  Build repeatable scalable and fault tollerant services based on even more repeatable, scalable and fault tollerant infrastructure. Everything should be a template. If something isn’t automated it should be pushed out the door as quickly as possible.  Anything that’s absolutely business critical that can’t be automated should have a very poor SLA to encourage who ever is buying the next latest and greatest solution to think more about how it fits into this modern ecosystem. I’ve dealt with a company recently that operates this way. I was really impressed by the speed that they operated at.  Unfortunately, the person who had this conversation with me is highly intelligent. The other people he will be talking to are no slouches either. But I worry that he’s one of those brilliant people who shapes questions and statements that are perfectly logical and in the moment, anyone would be hard pressed to disagree.

To not call out my own bias here would be unfair. I am driven by innovation. It’s what gets me up in the morning and keeps me here well into the night. I am willing to acknowledge that the idea of service excellence may not hold equal weight.  However, the mantra of the first company I worked with is still with me today.  Exceed Customer Expectations. I worked with a company that instilled the principal of customer satisfaction with every encounter. So I understand it’s value. I also come from a family of small business owners so I know that the customer is the person that keeps the lights on.