<?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-09 on Funky Si's Test</title><link>https://blog-test.funkysi1701.com/2015/09/</link><description>Recent content in 2015-09 on Funky Si's Test</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>Thu, 24 Sep 2015 20:00:45 +0000</lastBuildDate><atom:link href="https://blog-test.funkysi1701.com/2015/09/index.xml" rel="self" type="application/rss+xml"/><item><title>Add internet connection resilience</title><link>https://blog-test.funkysi1701.com/posts/2015/adding-internet-connection-resiliency/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 24 Sep 2015 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2015/adding-internet-connection-resiliency/</guid><category term="Fibre">Fibre</category><category term="VPN">VPN</category><category term="Internet">Internet</category><media:content medium="image" type="image/jpeg" url="https://blog-test.funkysi1701.com/images/2015/internet-connection-drops-every-couple-minutes-cable-sxchu-internet1.jpg"/><description>&lt;p&gt;I have been asked to investigate adding a fail over internet connection to one of our offices.&lt;/p&gt;
&lt;p&gt;Currently this office is connected via a wireless link with our head office. Unfortunately we have recently experienced some poor performance with this connection, this has now been corrected but like all technology there is the chance of it failing in some way in the future and causing loss of business because of it.&lt;/p&gt;
&lt;h2 id="internet-connection"&gt;Internet Connection&lt;a class="anchor ms-1" href="#internet-connection" aria-label="Permalink: Internet Connection"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is one of my first considerations. I need a reliable internet connection and there are a lot of options to consider, lets look at a few.&lt;/p&gt;
&lt;p&gt;
&lt;img class="img-fluid" alt="Internet Connection" src="https://blog-test.funkysi1701.com/images/2015/internet-connection-drops-every-couple-minutes-cable-sxchu-internet1.jpg" loading="lazy"
width="2193" height="837"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ADSL Connection&lt;/strong&gt; This is your standard internet connection that most homes have, you get around 20Mb/s download but only 2Mb/s upload for a fairly low price per month. Speeds are dependent on area and the quality and distance from your exchange, some rural areas have speeds much lower than this. As this connection is for an office I want the best connection I can afford so would rather not go down this option if I can avoid it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FTTC (Fibre to the Cabinet)&lt;/strong&gt; This is what ISPs typically mean when they say superfast broadband. The cables that have been laid to your exchange cabinet have been upgraded to fibre optic cables which are capable of much faster transfer speeds (eg 40Mb/s download and 10Mb/s upload). This is my ideal choice, however BT Openreach are responsible for upgrading the country to these cables and they are not very quick about it. A few years back when investigating this FTTC had almost reached our office, but when I investigated today nothing seems to have progressed. Both FTTC and ADSL require a phone line into the office to run on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Leased Line&lt;/strong&gt; This is where your ISP connects a dedicated line to your office which provides you a much faster connection (upload and download speeds are the same) but this is very expensive. We have this for our head office as this is where our servers are located and the faster speed benefits the entire company. We do not want to do this for every branch office as it will be too expensive.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spur from a Leased Line&lt;/strong&gt; It could be possible to branch or spur off the leased line to our second office. This would be one leased line that terminates in two locations instead of one. However due to the distances involved I do not think this will be possible in my case and may end up costing as much as a second leased line.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISP&lt;/strong&gt; As well as the type of connection I need to decide who will provide it. There are hundreds of ISPs out there but I like to use ISPs that have a good reputation or I have used in the past and have been happy with. I do not stick with one ISP for all my connections as I like to have some connections that continue to work should that ISP be experiencing problems. ISPs that I would recommend are YDS, Eclipse and PlusNet&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Money Off&lt;/strong&gt; While I am talking about internet connections the government has been offering a scheme offering businesses money off upgrading their connections to a superfast connection (either FTTC or Leased Line) More information can be found on your councils website, If you have an office in York have a look here for more details. We got £3000 off installation so worth investigating if you qualify.&lt;/p&gt;
&lt;h2 id="vpn-connection"&gt;VPN Connection&lt;a class="anchor ms-1" href="#vpn-connection" aria-label="Permalink: VPN Connection"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Offices require access to far more resources than just the internet. This particular office requires access to our email and database servers as a bare minimum. One way to access a remote offices network resources is through a VPN (Virtual Private Network) connection. So my next consideration is how to establish a VPN link between our offices.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Software&lt;/strong&gt; Windows Server includes RRAS (Routing and Remote Access Service) which you can use to configure a VPN connection. One important thing to note is that the server needs at least two network connections, one on the internet with a public IP and one on the internal network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hardware&lt;/strong&gt; The more expensive routers often have settings that allow the configuration of a VPN connection.&lt;/p&gt;
&lt;p&gt;I have used both of these methods in the past. RRAS is a pain to work with but has evolved with the newer versions of windows server, so may not be as bad as I remember. Using a router to do VPN introduces its own set of problems and there is no guarantee of avoiding RRAS, you may still need it to authenticate the VPN provided by your router.&lt;/p&gt;
&lt;h2 id="multiple-connection-handling"&gt;Multiple Connection Handling&lt;a class="anchor ms-1" href="#multiple-connection-handling" aria-label="Permalink: Multiple Connection Handling"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Internet connectivity is being provided in two ways, the primary way is via a Wireless link and the second way is via one of the options above.&lt;/p&gt;
&lt;p&gt;There are lots of options to deal with multiple connections, do I want to load balance both connections and use them all the time, do I want to fail over onto the second connection only if the first one fails, or do I want it to be a manual process or switching over to the backup network if problems occur.&lt;/p&gt;
&lt;p&gt;As you can see there are lots of different technologies to consider before I can add resiliency to this office and I haven’t even started to think about if an additional server will be required.&lt;/p&gt;</description></item><item><title>Unmanaged Database Deployment</title><link>https://blog-test.funkysi1701.com/posts/2015/unmanaged-database-deployment/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 10 Sep 2015 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2015/unmanaged-database-deployment/</guid><category term="SQL">SQL</category><category term="Backups">Backups</category><category term="Deployment">Deployment</category><media:content medium="image" type="image/jpeg" url="https://blog-test.funkysi1701.com/images/2015/09/deploy.jpg"/><description>&lt;p&gt;For the past few months I have been deploying changes to my companies database every couple of weeks or so. Over a weekend when the database was not being used I would make a backup of the database, load up visual studio, deploy the database changes and copy a couple of front-end files.&lt;/p&gt;
&lt;p&gt;My weekends and evenings have recently become a bit more precious to me since the arrival of my son James. At suitable times to run the database upgrade I am either, asleep, about to fall asleep or be spending time with James.&lt;/p&gt;
&lt;p&gt;This entire deployment can be set to run at a time of my choosing using SQL Server Jobs, (not sure why I never thought of doing this before). I still need to check everything is working after it has run. The job can send me an email if it encounters any problems so I can still ensure the company has the minimum of problems but has more frequent changes.&lt;/p&gt;
&lt;h2 id="unmanaged-database-deployment"&gt;Unmanaged Database Deployment&lt;a class="anchor ms-1" href="#unmanaged-database-deployment" aria-label="Permalink: Unmanaged Database Deployment"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;OK so what do I need to do to set this up.&lt;/p&gt;
&lt;p&gt;
&lt;img class="img-fluid" alt="Database deployment workflow diagram" src="https://blog-test.funkysi1701.com/images/2015/09/deploy.jpg" loading="lazy"
width="711" height="811"
/&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Test all your code changes are working correctly on a backup of the database and everything is committed to source control.&lt;/li&gt;
&lt;li&gt;Backup everything that is going to be changed so it can be rolled back in case of a problem. I don’t rely on the daily backup jobs for this, I do my own. Maybe I am a bit paranoid, or maybe I am just being cautious.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BACKUP &lt;span style="color:#66d9ef"&gt;DATABASE&lt;/span&gt; DBName &lt;span style="color:#66d9ef"&gt;TO&lt;/span&gt; DISK&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;E:\SQL Backups\Filename.bak&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I would include in the backup file name the date and time of the deployment for easy reference later on. For the front-end files these are backed up daily and only ever change during a deployment so I am going to rely on the day to day backups, plus they are in source control so in a worse case scenario I can look there.&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;From Visual Studio create a deployment script using the publish option and save as a file on your database server.&lt;/li&gt;
&lt;li&gt;Create a SQL Server Job and give it a descriptive name.&lt;/li&gt;
&lt;li&gt;In steps create a step called backup and enter the T-SQL code above. Set this to stop on failure and continue on success.&lt;/li&gt;
&lt;li&gt;Create a second step called upgrade of type operating system with the following code.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sqlcmd -S (local) -i &amp;#34;E:\SQL Backups\deploy_test.sql&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The -S parameter is the name of your SQL Server instance and the -i parameter is the path to the sql script you generated from Visual Studio above. Set this job to quit reporting success or failure.&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;In schedule create a date time you want the job to run, make sure this is a one time job as you don’t want it to try and run again possibly causing problems.&lt;/li&gt;
&lt;li&gt;In notifications I have set to email on completion, you can set it to email on failure only. I would prefer to know the outcome of the job regardless.&lt;/li&gt;
&lt;li&gt;Using SQL Server jobs to copy files over the network is possible but is not trivial to setup so I am going to use windows task scheduler for this.&lt;/li&gt;
&lt;li&gt;Create a job in task scheduler to copy all the ADPs or ADEs that have been changed. If the SQL job fails you will need to copy the old versions of these back but that is simple enough to do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This process can be expanded to check code out of source control and do even more automated deployments but for now this is good enough for my purposes.&lt;/p&gt;</description></item><item><title>Baby Magic and Becoming a Father</title><link>https://blog-test.funkysi1701.com/posts/2015/baby-magic-and-becoming-a-father/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 03 Sep 2015 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2015/baby-magic-and-becoming-a-father/</guid><category term="Father">Father</category><category term="Baby">Baby</category><category term="Family">Family</category><media:content medium="image" type="image/jpeg" url="https://blog-test.funkysi1701.com/images/2015/07/james5.jpg"/><description>&lt;p&gt;I am pleased to announce the birth of James David Martin Foster weighing 9 lb 12 on 19th August 2015.&lt;/p&gt;
&lt;p&gt;Mother and Baby (and Father) are doing well.&lt;/p&gt;
&lt;p&gt;
&lt;img class="img-fluid" alt="Newborn baby James" src="https://blog-test.funkysi1701.com/images/2015/07/james5.jpg" loading="lazy"
width="1080" height="810"
/&gt;
&lt;/p&gt;
&lt;p&gt;I am not a baby person, I hate children and I run a mile from other people’s babies.&lt;/p&gt;
&lt;p&gt;But James performed some magic on me and now I will do anything for him. If you have had children you probably know what I am talking about and if you haven’t you are probably like me 24 hours before James arrived.&lt;/p&gt;
&lt;p&gt;During the pregnancy I had been living in denial that I would become a father, despite the wife speaking about nothing else and our home filing with baby equipment. It was only minutes before I first saw my son that I changed.&lt;/p&gt;
&lt;p&gt;Due to James’s large size, the birth wasn’t easy. After about an hour of pushing the midwife called in a team of doctors and nurses to help and I think it was at this point that it started to hit me. I am not an emotional man, if anything I tend to repress my feelings but I completely and utterly failed to do that on this occasion. By the time the baby had been placed on my wife’s chest tears of joy were streaming down my face and this continued for some time. Moments after birth James had a tight grip on my finger. His tiny hands were like miniature versions of my own hands.&lt;/p&gt;
&lt;p&gt;
&lt;img class="img-fluid" alt="Baby James holding finger" src="https://blog-test.funkysi1701.com/images/2015/08/jameshand.jpg" loading="lazy"
width="562" height="1000"
/&gt;
&lt;/p&gt;
&lt;p&gt;I have been asked what it felt like holding James in my arms for the first time, this happened on the following day. I am not sure if I can put it into words, but a few adjectives come to mind, amazing, great, fantastic, humbling. James depends on me (and his mother) for everything and his existence has put a new spin on everything I do. I want to be there for him, help him learn stuff, provide for him and love him.&lt;/p&gt;
&lt;p&gt;I have been working very hard recently, spending my free time writing this blog, learning stuff and doing other work. The reasons for this hard work are now clear, I work so I can provide for James and so I can spend my free time with him.&lt;/p&gt;
&lt;p&gt;Before James arrived I had it in my head that his mother would do the majority of the caring for him. This is not going to happen now that I have met James. I want to cuddle him, change his nappies, dress him, hold his hand, take him to school, watch TV with him, stroke his head when he is ill, tell him about my life experiences, introduce him to wine, tell him about girls, help him move home, etc.&lt;/p&gt;
&lt;p&gt;I am not saying being a parent is going to be easy. I am pretty clueless about what is in store for us, but already I am worrying if he is OK, trying to calm him down when he is upset and being woken in the early hours.&lt;/p&gt;
&lt;p&gt;Anyway only time will tell if I continue being this positive about fatherhood, but so far I am loving it. Normal blog posts will hopefully resume over the next few weeks (or when I have time).&lt;/p&gt;</description></item></channel></rss>