Monday, 17 October 2016

Personal Blog 3

Continuing from where I left off in my last post, for the next week I still had an EA project that required my group to present our final proposal to some of the employees of NB gardens. For that week we focused on finalising the diagrams and reports that we needed for either the presentation or the final report. Everybody had to do a test as well on the friday. This was to test our knowledge of Enterprise Architecture that we learnt over the two weeks.During the week I revised for thirty minutes everyday previous to the exam and on the friday the day of the exam we had one final hour to revise for it.

The exam itself wasn’t too difficult but I did have problems with some questions specifically about UML diagrams and BPMNs. In the end I felt like I didn’t dedicate enough time to final question (correcting a BPMN) but overall I was happy about the exam.

Later on in the day all the groups had to present, we were the final group to present. Most of the group presentations went rather well, although the trainers did seem a bit harsh on the first group that presented, even though they technically didn’t propose any solutions. Our presentation seemed to go very well, though I’m not that confident public speaking. So I did feel as though I was one of the worst at presenting in our group. I do feel i’m improving at public speaking with the experience I’m getting whilst QA.

I was supposed to find what technology I was going to specialise in on the friday as well. But this was moved to monday morning. Where I found out that I will possibly specialising in Microsoft Azure. I don’t know much about cloud computing, but it does sound very interesting and I’m very interested to learn about it.

But anyone that was learning cloud computing first has to learn a bit of DevOps. So to start off we learnt about using puppet. We had to create virtual machines and use puppet to provision java and maven on the machines.

Then once we had learnt the basics we were put into groups to create an entire continuous integration pipeline using puppet. We had to create master and a few agents and then create modules that would install various technologies.

Also all the groups were given a leader of their groups for the first few days. Our leader was Alex for the first few days, he was pretty good as leader and he lead a scrum for us all to start with.

The project needed to be fully automated so that on the command vagrant up the virtual machines would start and install the modules. For the first week we set up the vagrant files and familiarised ourselves with github and jira. In the first week I also created the git module which was simple to make using puppet’s package resource to check it was installed.

Monday, 10 October 2016

Genetic Engineering part 2

Continuing from where I left off in the last post, I explained that by using artificially engineered nucleases scientists could cut DNA strands. Then by manipulating the cell’s own repair mechanisms scientists can alter or correct a mutation by genome editing. But there needs to be a way, to guide the nuclease to the desired DNA sequence where the DNA break will occur.
That is why all nucleases consist of two components, the nuclease which responsible for cutting the DNA and a secondary component responsible for finding the correct DNA sequence.

One type of nuclease that is used regularly in genome editing is the zinc finger nuclease. Zinc finger nucleases are a type of restriction enzyme, which is a protein produced by bacteria that cleaves DNA at specific locations.
Restriction enzymes cleave foreign DNA therefore eliminating any infecting organisms. So by using a restriction enzyme a bacterium can defend itself against bacterial viruses called phages. When a bacterium is infected by a phage, the phage inserts its DNA into the DNA of the bacterial cell in the hopes that it may be replicated. Restriction enzymes recognize a short precise sequence of nucleotide bases (A,T,G and C). These are called recognition sequences and will be randomly distributed throughout the DNA. So then if the enzyme recognizes the phage DNA, it will restrict it from replicating by cutting the phage DNA into many pieces.
Restriction enzymes can be isolated from bacterial cells and therefore be used to manipulate fragments of DNA. Also as different bacterial species make restriction enzymes that recognize different nucleotide sequences, they have proven to be a valuable tool in genetic engineering.

Back to Zinc finger nucleases which are artificially created restriction enzymes made by fusing a zinc finger DNA-binding domain together with a DNA-cleavage domain. Zinc fingers can be designed to target specific DNA sequences and then the cleavage domain can cut at the specified location. Most Zinc finger nucleases contain between three to six zinc fingers and can recognize between 9 and 18 nucleotide base pairs.
The easiest method to form new zinc finger arrays is to combine smaller zinc fingers of known specificity. The main problem with this is that the individual sequences corresponding to a  certain zinc finger can overlap and can depend on the context of the adjacent zinc fingers and DNA.
A pair of Zinc finger nucleases is used to cleave non-palindromic DNA as the nucleases must bind opposites of sides of DNA for the cleavage domains to dimerize ( form from the two cleavage domains) and cut the DNA strands. The nucleases are usually a certain distance apart  ( 5 to 7 base pairs ) as this is where the cut takes place.
Zinc finger nucleases have proven to be effective in the treatment of HIV by mutating a gene. This mutation appears in around 20% of caucasian males and disrupts viral access into the cell. In my next post I will talk about other types of nucleases used commonly in genetic engineering.

Wednesday, 28 September 2016

My second personal blog at QA

To start week three my group moved to the Lowry theatre. Moving here meant an earlier start for me as it is further to travel, but the later start on monday mornings helped me familiarise myself with its location and how long it would take me to get there.

When we first started the work day at 10:00 am on the monday four people volunteered to pick teams. I ended up on Henri’s team. Our first task was to think of a team name, though initially our team got side tracked when we were trying to come up with a multitude of different ways to write the word dynamite, (which was jokingly said immediately) we eventually settled on the name Your Solution. We also came up with some quick ideas for a potential logo which I eventually created in the second week of EA.

We were then given the case study to read through and understand, before we were given the exercises that we would need to complete over the course of the next two weeks. The case study was about a garden accessories company called NB Gardens that had recently acquired a new call centre and then noticed a drop in customer satisfaction. Our company, which was an IT consultancy, was tasked with creating a business transformation project that would improve customer satisfaction back to and possibly exceeding the level that it was.

Our initial approach was to try to come up with solutions immediately, like implementing a website for the company. But before long, we understood that we were first tasked with understanding the company’s processes inside and out. With this information we could then move forward and find out the processes that needed to be improved.

Initially some of our group members had a welcome meeting with two employees of NB Gardens (played by the trainers). In this they tried to find out the problems the company has with some of the current processes and what they expected of us. Then on the friday we had many meetings with various employees of NB gardens. From these meetings we had to get as much information as we could about the processes within the company and find out why there had been a drop in customer satisfaction. We found out that we needed to improve the customer order fulfillment process and the stock replenishment process by the end of the week.

Though I liked the group I was in for the project, there was some initial conflict over who would be the Project Manager. The team voted for Henri to be the manager in the end though. Whilst Henri was a good manager, there wasn’t to much for us to do by the middle of the week, so it felt that we were often repeating tasks we had already done. I also felt we were having too many meetings and discussions about things that necessarily didn’t matter. Again though this felt like a problem of the course as we were waiting on the meetings that happened on the friday, so when we eventually had them we had to rush to complete a report that needing handing in that day.

Friday, 23 September 2016

Genetic Engineering

What is Genetic Engineering ?

Genetic Engineering is the process by which you modify the genome of an organism.
In our own bodies every cell contains a copy of our genome, which contains over 20,000 genes and 3 billion letters of DNA. Most DNA or Deoxyribonucleic acid molecules consist of two strands called polynucleotides. Polynucleotides are composed of simpler units called nucleotides. Each nucleotide contains one of the four nucleotide bases either A,T,C or G, a sugar and a phosphate group. The polynucleotides are twisted into a double helix which is held together by a simple pairing rule of the four nucleotide bases. A pairs with T and C pairs with G.
( Where A is adenine , T is thymine , C is cytosine and G is guanine. )

Thus the genome of an organism is a complete set of genetic instructions that contain all of the information that builds that organism and allows it to develop and grow.
To create a genetically modified organism it requires recombinant DNA or rDNA , this is a combination of DNA from different organisms or different locations that is not normally found in nature. Recombinant DNA is possible as all DNA molecules from all organisms share the same chemical structure and only differ in the nucleotide sequence.

I will be focusing on Genome Editing which is to change the genome sequence either by inserting, replacing or removing DNA. But as the genome is so important to an organism it is relatively resistant to change, this is because if it wasn’t the DNA could be easily altered causing many of the cell’s vital functions to be disrupted. Because of this a cell has inherent mechanisms to read and repair their own genetic code. Despite these limitations though, researchers have found ways to achieve genome editing by taking advantage of a cell’s DNA repair mechanisms.

To achieve genome editing scientists can use artificially engineered enzymes called nucleases to cut DNA strands. These nucleases basically act as molecular scissors to create a break in the DNA double stranded helix. Once the break is created in the DNA the cell’s repair mechanisms will quickly act to repair its genetic code.
There are two main ways a cell can repair a break in its DNA. Firstly a cell can utilize various enzymes to directly rejoin the two ends of the DNA strands back together. But this is often prone to errors and can result in mutations. These mutations may not affect the gene, but they could disrupt the gene effectively making it non-functional.
The other way a cell can repair its own genetic code is by using another DNA sequence as a template. With genome editing a DNA sequence can be designed to be inserted along with the artificially engineered nuclease. Thus when the DNA strands are cleaved a cell’s own repair mechanisms can use the designed DNA sequence to replace the existing DNA sequence. This allows scientists to directly change the genetic information of a cell correcting or replacing an unwanted mutation. I will go into more detail about this in later posts.


Friday, 16 September 2016

First Week
During my first week of training at QA I learnt java programming. Having previously learnt some java basics I didn't find the syntax and the OOP principles to difficult to learn. Implementing the OOP techniques was much harder for me to do. I think this is because coming from a mathematical background I’m much more familiar with functional programming. So I instinctively tried to solve the tasks with only using a few classes, but without really applying the OOP principles to them.
As the week progressed I tried to combat this. I started planning what I needed to write first i.e. the classes I would need and how they would connect. I also found that I would sometimes go off on tangent trying solve something by just listing command after command. So again I stopped and thought about how best to go about the situation.
Learning how to use a GUI has proven rather difficult as well, as this is an entirely new concept to me and so I am unfamiliar with using an action listener and key listener. So far I have managed to create a grid of buttons that correspond to a colored grid. Then when the user clicks a button the corresponding square on the colored grid changes color if the user then presses an arrow key. This places the ship from that starting point and in that direction. I still need to improve the AI as I have yet to get it to work properly.

By the end of the first week I feel much more comfortable using oop techniques e.g. making a garage. But occasionally I still find it difficult to apply some techniques to more abstract projects i.e. something where the classes aren’t as obvious such as the battleships project.
Going over any tasks that I’m unhappy with or continuing to try to complete the battleships project when i have some free time seems to be working though. Overall I started the first week feeling kind of stressed due to the new job and moving to new city, however by the end of the week I feel much more relaxed and I’m really starting to enjoy the training.

Second Week
Starting my second week I have been learning about CI and CD this has been very frustrating but also strangely enjoyable. As I have used a linux based system before using Ubuntu and CentOS was fairly easy for me to do. But the hardest part so far has been understanding bash syntax as I have never written a bash script before this week. So hopefully I’ll get some time to practise writing more bash scripts soon and I may start doing some online tutorials to get better at writing the scripts.

Having done most of the tasks for the week starting the project wasn’t to much of a daunting task. Again I have had some difficulty trying to write all the commands in a full bash file but I have been persevering and have gotten most of the project done with one day left still.

Initially I was unsure of what it would be like working in at QA as I don’t have that much experience working in an office. As a whole the first two weeks have been very enjoyable.