<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>2015-08 on Funky Si's Blog (Dev)</title><link>https://blog-dev.funkysi1701.com/2015/08/</link><description>Recent content in 2015-08 on Funky Si's Blog (Dev)</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><managingEditor>funkysi1701@gmail.com (Simon Foster)</managingEditor><webMaster>funkysi1701@gmail.com (Simon Foster)</webMaster><lastBuildDate>Mon, 17 Aug 2015 20:00:45 +0000</lastBuildDate><atom:link href="https://blog-dev.funkysi1701.com/2015/08/index.xml" rel="self" type="application/rss+xml"/><item><title>Due Dates</title><link>https://blog-dev.funkysi1701.com/posts/2015/due-dates/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Mon, 17 Aug 2015 20:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2015/due-dates/</guid><category term="DueDate">DueDate</category><category term="Baby">Baby</category><category term="Estimate">Estimate</category><media:content medium="image" type="image/jpeg" url="https://blog-dev.funkysi1701.com/images/2015/08/928f90bcd221f78a30f18541a5ca2e7f.jpg"/><description>&lt;p&gt;
&lt;img class="img-fluid" alt="Expectant parents awaiting a baby&amp;rsquo;s due date" src="https://blog-dev.funkysi1701.com/images/2015/08/928f90bcd221f78a30f18541a5ca2e7f.jpg" loading="lazy"
width="404" height="337"
/&gt;
As I write this I have less than 2 days until the due date for the birth of my first child.&lt;/p&gt;
&lt;p&gt;Its a very exciting time, but it is also infuriating waiting for it to arrive. Even in the 21st century science can not predict with any accuracy when a baby is going to arrive and we just have to wait for mother nature to do its thing.&lt;/p&gt;
&lt;p&gt;I feel like I am stuck in limbo at the moment I have lots of work to do, lots of development changes to do on the databases, but I also know that at a moments notice I need to drop what I am doing and try and be a father.&lt;/p&gt;
&lt;p&gt;Due dates for babies is based on average pregnancies lasting 40 weeks, but there is no such thing as an average pregnancy. But to keep this blog post on topic I somehow need to compare due dates for pregnancy with software development.&lt;/p&gt;
&lt;p&gt;In software development we often get asked for estimates on when a particular development task will be finished. Estimates in software development are very difficult to make accurate as there are so many variables that you do not know the answer to until you start getting stuck into doing the work. One technique is to try and split the work down into small steps and estimate how long each small step will take and then add them all together. But even this technique still has a large margin of error.&lt;/p&gt;
&lt;p&gt;What would it be like if when management asked we gave an estimate similar to what pregnant women receive? Instead of a deadline when all work has to be finished by, you have a date when there is a 50% chance of the work being finished.&lt;/p&gt;
&lt;p&gt;I think management would have a difficult time dealing with this amount of uncertainty, I certainly am waiting for this baby to arrive.&lt;/p&gt;</description></item><item><title>How complex are my stored procs?</title><link>https://blog-dev.funkysi1701.com/posts/2015/how-complex-are-my-stored-procedures/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 13 Aug 2015 20:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2015/how-complex-are-my-stored-procedures/</guid><category term="Complexity">Complexity</category><category term="SQL">SQL</category><media:content medium="image" type="image/jpeg" url="https://blog-dev.funkysi1701.com/images/2015/08/complexity.jpg"/><description>&lt;p&gt;Recently me and my development team have been looking at performance and how to improve it.&lt;/p&gt;
&lt;p&gt;One area of improvement we have identified is with our stored procedures, which we plan to rewrite. But how do we identify which are the easiest to rewrite and which are the hardest?&lt;/p&gt;
&lt;p&gt;My first thought was maybe to count the number of times each keyword is used and rank them somehow. eg each JOIN gets 5, OUTER APPLY gets 20, each term in WHERE gets 1, and then combine that with the length of the query and how many parameters.&lt;/p&gt;
&lt;p&gt;However doing a bit of googling I came across the following &lt;a href="https://aalamrangi.wordpress.com/2012/12/24/calculate-tsql-stored-procedure-complexity" target="_blank" rel="noopener noreferrer"&gt;blog&lt;/a&gt;
and &lt;code&gt;https://gallery.technet.microsoft.com/Calculate-TSQL-Stored-831b683a&lt;/code&gt;. This script analyses the stored procedures in terms of number of lines of code, number of parameters and number of dependencies.&lt;/p&gt;
&lt;p&gt;The complexity is divided into SIMPLE, MEDIUM and COMPLEX.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;WHEN NumberOfLines * NumberOfDependencies * NumberOfParameters &amp;lt; 5000 THEN ‘Simple’
WHEN NumberOfLines * NumberOfDependencies * NumberOfParameters &amp;lt; 10000 THEN ‘Medium’
ELSE ‘Complex’
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;
&lt;img class="img-fluid" alt="SQL stored procedure complexity report screenshot" src="https://blog-dev.funkysi1701.com/images/2015/08/reportscreenshot1.png" loading="lazy"
width="674" height="235"
/&gt;
&lt;/p&gt;
&lt;p&gt;This gives a fairly good estimate of which stored procedures are the most complex and which would probably take the longest time to rewrite.&lt;/p&gt;</description></item><item><title>ICYMI What does it mean?</title><link>https://blog-dev.funkysi1701.com/posts/2015/icymi-what-does-it-mean/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Mon, 10 Aug 2015 20:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2015/icymi-what-does-it-mean/</guid><category term="ICYMI">ICYMI</category><category term="Learning">Learning</category><media:content medium="image" type="image/jpeg" url="https://blog-dev.funkysi1701.com/images/2015/08/in-case-you-missed-it-small.jpg"/><description>&lt;p&gt;For a while now I have seen ICYMI splattered around the internet. I had no idea what it meant so just ignored it but I have finally had enough and I googled for a definition and I now know what it means.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ICYMI – In Case You Missed It
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;
&lt;img class="img-fluid" alt="ICYMI acronym explained as In Case You Missed It" src="https://blog-dev.funkysi1701.com/images/2015/08/in-case-you-missed-it-small.jpg" loading="lazy"
width="400" height="400"
/&gt;
ICYMI is often used on social media sites to indicate articles that you might have missed.&lt;/p&gt;
&lt;p&gt;Software Development is littered with acronyms and technical terms that I don’t always know the meaning of.&lt;/p&gt;
&lt;p&gt;When reading it is easy to ignore them and try and understand the rest of the article. However there are loads of resources out there that can explain technical terms in a wide variety of different ways.&lt;/p&gt;
&lt;p&gt;I have tried to explain a few different terms and concepts on this &lt;a href="https://www.funkysi1701.com/" target="_blank" rel="noopener noreferrer"&gt;blog&lt;/a&gt;
. In the process of writing them I often do a bit of research and read a variety of different definitions, some confuse the heck out of me, while others make me go ahh that makes sense now.&lt;/p&gt;
&lt;p&gt;When reading to learn, don’t be afraid to dig deeper and understand it all, don’t read the same terms again and again not understanding them like I did with ICYMI.&lt;/p&gt;</description></item><item><title>Common git commands</title><link>https://blog-dev.funkysi1701.com/posts/2015/common-git-commands/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 06 Aug 2015 20:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2015/common-git-commands/</guid><category term="Git">Git</category><category term="SourceControl">SourceControl</category><description>&lt;p&gt;I use git as my source control system. Here are some of the most common git commands in no particular order.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check Out a git Repository &lt;strong&gt;git clone /path/to/repository&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Add files to commit &lt;strong&gt;git add &lt;filename&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Commit files to &lt;strong&gt;git git commit -m “Commit message”&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Push changes to server &lt;strong&gt;git push origin master&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Show status &lt;strong&gt;git status&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Create new branch &lt;strong&gt;git checkout -b &lt;branchname&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Switch to a branch &lt;strong&gt;git checkout &lt;branchname&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Get remote changes &lt;strong&gt;git pull&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Merge a different branch into the current one &lt;strong&gt;git merge &lt;branchname&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;View merge conflicts &lt;strong&gt;git diff&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Temporarily stash uncommitted changes &lt;strong&gt;git stash&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Undo a commit &lt;strong&gt;git reset –hard &lt;commit&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Show details about a commit &lt;strong&gt;git show &lt;commit&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Show version history of current branch &lt;strong&gt;git log&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Gets all remote branches &lt;strong&gt;git fetch origin&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of the time I use the &lt;a href="https://sourceforge.net/projects/gitextensions/" target="_blank" rel="noopener noreferrer"&gt;git extensions&lt;/a&gt;
tools to do my git work, but there are times when only the command line will do.&lt;/p&gt;</description></item><item><title>Volunteering for a Technical Team</title><link>https://blog-dev.funkysi1701.com/posts/2015/volunteering-for-a-technical-team/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Mon, 03 Aug 2015 20:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2015/volunteering-for-a-technical-team/</guid><category term="EasyWorship">EasyWorship</category><category term="Church">Church</category><category term="Volunteers">Volunteers</category><category term="Projection">Projection</category><media:content medium="image" type="image/jpeg" url="https://blog-dev.funkysi1701.com/images/20150802_113719.jpg"/><description>&lt;p&gt;
&lt;img class="img-fluid" alt="Church worship projection desk with screens and equipment" src="https://blog-dev.funkysi1701.com/images/20150802_113719.jpg" loading="lazy"
width="5312" height="2988"
/&gt;
For the past few years I have volunteered on the technical team at my local church &lt;a href="https://www.belfrey.org/" target="_blank" rel="noopener noreferrer"&gt;St Michael le Belfrey&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;For the church to function well it requires volunteers in all sorts of roles, people to welcome visitors, people to pray, people to play music, people to look after children and many other roles.&lt;/p&gt;
&lt;p&gt;My natural ability lies more with technology than with people so when I decided that I wanted to get more involved it was the technical team that I volunteered for. The technical team is split into two main parts, the PA team which concerns itself with ensuring everyone can hear everything OK and the Projection team which concerns itself with everything that gets projected. I have no knowledge about what sounds good and what doesn’t so it was the projection team that I joined and have been involved with.&lt;/p&gt;
&lt;p&gt;The church has three projectors, one big one and two slightly smaller ones for the side aisles, and a PC located at the back of church which is what the projectionist uses to control what gets projected. There are many things that get projected, lyrics to songs, PowerPoint presentations and the occasional video and to make things easy one piece of software is used to control all of this &lt;a href="https://easyworship.com/" target="_blank" rel="noopener noreferrer"&gt;EasyWorship&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;EasyWorship contains a huge database of song lyrics, so you can quickly select what ever is being sung and project the lyrics on screen. It also allows the addition of PowerPoint files, image or video files and even a web page and they can be projected. EasyWorship allows different things to be queued up in order and that order can be saved as a schedule.&lt;/p&gt;
&lt;p&gt;
&lt;img class="img-fluid" alt="Projection team volunteers at St Michael le Belfrey church" src="https://blog-dev.funkysi1701.com/images/2015/CFMwY_UUgAAc2k2.jpg" loading="lazy"
width="600" height="450"
/&gt;
&lt;/p&gt;
&lt;p&gt;The projectionist’s job is to follow along with the order of service and project things onto screen at the right time. Simple! No not really. The worship leader will skip songs, play songs in a different order, add new songs, videos will fail to play, easy worship will freeze up or crash or the liturgy that the vicar wants isn’t in the EasyWorship database.&lt;/p&gt;
&lt;p&gt;You need to be on your toes as a projectionist but over the years I have become a good projectionist and have really enjoyed my time doing this. You can see me having a laugh with the Head of Music and Worship on the right.&lt;/p&gt;
&lt;p&gt;More recently I have taken on a bigger role for the projection team. I have been coordinating the rota for the volunteers on the projection team. This has given me new challenges, but it has been great to work closely with the Technical Manager and more recently the Head of Music and Worship and get to know the whole team better. The biggest problem that the team has is insufficient volunteers, it had this problem when I joined the team and it has this problem today. If you are reading this consider if this is something you could get involved with? The team has some really hard working people who do an excellent job each week, just wish we had a few more to ease everyone’s work load.&lt;/p&gt;
&lt;p&gt;I am taking a break from the projection team as my wife is due to give birth to my first child in the next few days. I have had a great time, I have worked with some great people and for the most part I will miss volunteering. There are of course things that have not been great, volunteers that have left the team, changes at the church, and many early mornings when I would rather still be in bed but I am glad that I have been involved.&lt;/p&gt;</description></item></channel></rss>