Difference between revisions of "Team:UNOTT/Software"

Line 1: Line 1:
 
{{:Team:UNOTT/Template/NavBarTest}}
 
{{:Team:UNOTT/Template/NavBarTest}}
<html>
+
 
 +
<html >
 
<head>
 
<head>
 
   <meta charset="UTF-8">
 
   <meta charset="UTF-8">
  
   <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
+
   <script src="https://s.codepen.io/assets/libs/modernizr.js" type="text/javascript"></script>
<link href="https://2017.igem.org/Team:UNOTT/Bootstrap?action=raw&ctype=text/css" rel="stylesheet">
+
 
 +
 
 
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
 
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
 
<script type="text/x-mathjax-config">
 
  MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
 
</script>
 
<script type="text/javascript"
 
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
 
</script>
 
  
  
 
<style>
 
<style>
p{
+
.button {
position: relative;
+
  display: inline-block;
 +
  border-radius: 4px;
 +
  background-color: #f4511e;
 +
  border: none;
 +
  color: #FFFFFF;
 +
  text-align: center;
 +
  font-size: 28px;
 +
  padding: 20px;
 +
  width: 200px;
 +
  transition: all 0.5s;
 +
  cursor: pointer;
 +
  margin: 5px;
 
}
 
}
  
h1{
+
.button span {
 +
  cursor: pointer;
 +
  display: inline-block;
 
   position: relative;
 
   position: relative;
   width: 100%;
+
   transition: 0.5s;
  text-align: center;
+
    margin: 0 auto;
+
    top:250px;
+
 
}
 
}
* {
+
 
   box-sizing: border-box;
+
.button span:after {
 +
   content: '\00bb';
 +
  position: absolute;
 +
  opacity: 0;
 +
  top: 0;
 +
  right: -20px;
 +
  transition: 0.5s;
 
}
 
}
body {
+
 
  font-family: 'Helvetica';
+
.button:hover span {
   font-weight: 400;
+
   padding-right: 25px;
  text-align: center;
+
 
+
 
}
 
}
.blocks {
+
 
  position: fixed;
+
.button:hover span:after {
  bottom: 0;
+
   opacity: 1;
   z-index: 1;
+
   right: 0;
   list-style-type: none;
+
  display: -webkit-box;
+
  display: -ms-flexbox;
+
  display: flex;
+
  width: 100%;
+
  margin: 0;
+
  padding: 0;
+
 
}
 
}
.blocks__block {
+
 
  will-change: transform;
+
.image {
  position: relative;
+
  position: center;
  height: 20vh;
+
  width: 100%;
  -webkit-box-flex: 1;
+
      -ms-flex: 1;
+
          flex: 1;
+
  -webkit-transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1);
+
  transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1);
+
 
}
 
}
.blocks__block:nth-child(1) {
+
 
  background: #ffffff;
+
.crop {
  -webkit-transform-origin: 0% 100%;
+
    width: 100%;
          transform-origin: 0% 100%;
+
    height: 1000px;
 +
    overflow: hidden;
 
}
 
}
.blocks__block:nth-child(2) {
+
 
  background: #ffffff;
+
 
  -webkit-transform-origin: 25% 100%;
+
h2 span.spacer {
          transform-origin: 25% 100%;
+
  padding:0 5px;
 
}
 
}
.blocks__block:nth-child(3) {
+
 
  background: #ffffff;
+
.crop {
  -webkit-transform-origin: 50% 100%;
+
    width: 100%;
          transform-origin: 50% 100%;
+
    height: 700px;
 +
    overflow: hidden;
 
}
 
}
.blocks__block:nth-child(4) {
+
 
  background: #ffffff;
+
h2 span {
  -webkit-transform-origin: 75% 100%;
+
  color: white;
          transform-origin: 75% 100%;
+
  font: 100px/100px Helvetica, Sans-Serif;
 +
  letter-spacing: 10px;
 +
  background: rgb(0, 0, 0); /* fallback color */
 +
  background: rgba(0, 0, 0, 0.7);
 +
  padding: 10px;
 
}
 
}
.blocks__block:nth-child(5) {
+
h2 {
  background: #ffffff;
+
  position: absolute;
  -webkit-transform-origin: 100% 100%;
+
  top: 350px;
          transform-origin: 100% 100%;
+
  left: 0;
 +
  width: 100%;
 +
  font-family: 'Karla', sans-
 
}
 
}
.blocks__block.active {
+
h3 span {
  z-index: 2;
+
  color: white;
 +
  font: 20px/20px Helvetica, Sans-Serif;
 +
  letter-spacing: 0px;
 +
  background: rgb(0, 0, 0); /* fallback color */
 +
  background-color: #D74214;
 +
  padding: 10px;
 +
  float: right;
 +
  position: relative;
 +
  top: -10px;
 
}
 
}
.blocks-content {
+
.container2 {
overflow: scroll;
+
 
   list-style-type: none;
+
   width: 80%;
   margin: 0;
+
   margin: auto;
   padding: 0;
+
   padding-right: 20px;
  position: absolute;
+
   padding-bottom: 700px;
   bottom: 0;
+
   margin-right: 100px;
   left: 40;
+
   padding-top: 250px;
   height: 100vh;
+
 
  width: 100%;
+
 
 
}
 
}
  
.border border-width: 2px;  border-color: black;  border-style: solid; }  
+
.expandable-boxes {
 +
   position: relative;
 +
}
  
.blocks-content__content {
+
.expandable-box {
overflow: scroll;
+
  width: 40%;
   will-change: transform, opacity;
+
   height: 300px;
   display: -webkit-box;
+
   float: left;
   display: -ms-flexbox;
+
   margin: 0 3% 20px 0;
   display: flex;
+
   border: 1px solid #999;
   -webkit-box-align: center;
+
   border-radius: 12px;
      -ms-flex-align: center;
+
  padding: 10px;
          align-items: center;
+
  box-sizing: border-box;
   -webkit-box-pack: center;
+
   -webkit-transition: all .3s ease-in-out;
      -ms-flex-pack: center;
+
  -moz-transition: all .3s ease-in-out;
          justify-content: center;
+
   -o-transition: all .3s ease-in-out;
   text-align: center;
+
   -ms-transition: all .3s ease-in-out;
   -webkit-box-orient: vertical;
+
   transition: all .3s ease-in-out;
   -webkit-box-direction: normal;
+
  background-color: #02263e;
      -ms-flex-direction: column;
+
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, .25),
          flex-direction: column;
+
    0 30px 10px -20px rgba(0, 0, 0, .25);
position: fixed;
+
}
  width: 100%;
+
.expandable-box.open {
   z-index: 3;
+
   border-color: #red;
   top: 0;
+
   border-width: thick;
   left: 0;
+
   width: 96%;
 
   height: 100%;
 
   height: 100%;
   padding: 30vw;
+
   margin: 0;
   font-size: 20px;
+
   background-color: #02263e;
 +
}
 +
.expandable-box.out {
 +
  width: 0;
 +
  height: 0;
 +
  overflow: hidden;
 +
  border: none;
 +
  padding: 0;
 +
  margin: 0;
 
   opacity: 0;
 
   opacity: 0;
  visibility: hidden;
+
 
  text-align: center;
+
  -webkit-transform: scale(0.9);
+
          transform: scale(0.9);
+
  -webkit-transition: all 0.3s 0.2s ease-out;
+
  transition: all 0.3s 0.2s ease-out;
+
 
}
 
}
.blocks-content__content.active {
+
body {
   opacity: 1;
+
   background-color: #ffffff;
   -webkit-transform: scale(1);
+
   font-color: #ffffff;
          transform: scale(1);
+
  visibility: visible;
+
 
}
 
}
.blocks-content .blocks__content-close {
+
h1{
  position: absolute;
+
    color: #02263e;
  right: 0vw;
+
  top: 0vh;
+
  height: 300vh;
+
  font-size: 40px;
+
  cursor: pointer;
+
  -webkit-transition: all 0.2s ease-out;
+
  transition: all 0.2s ease-out;
+
  margin-top: 80px;
+
 
}
 
}
.blocks-content .blocks__content-close:hover {
+
h2{
  -webkit-transform: scale(1.1);
+
    color: #ffffff;
          transform: scale(1.1);
+
 
}
 
}
.blocks-content p {
+
p{
  font-size: 16px;
+
    color: #ffffff;
  line-height: 2;
+
  max-width: 800px;
+
 
}
 
}
.blocks-content h2 {
+
 
  padding: 15px 30px;
+
html {
  font-weight: 300;
+
height: 100%;
  letter-spacing: 6px;
+
  box-shadow: inset 0 0 0 3px #000;
+
 
}
 
}
.blocks-names {
+
li {
   position: fixed;
+
   color: #B7D18F; /* bullet color */
  bottom: 0;
+
  left: 0;
+
  z-index: 2;
+
  width: 100%;
+
  list-style-type: none;
+
  margin: 0;
+
  padding: 0;
+
  display: -webkit-box;
+
  display: -ms-flexbox;
+
  display: flex;
+
  font-size: 18px;
+
  letter-spacing: 4px;
+
  cursor: pointer;
+
  -webkit-transition: all 0.15s ease-out;
+
  transition: all 0.15s ease-out;
+
 
}
 
}
.blocks-names .blocks__name {
+
li span {
   -webkit-box-flex: 1;
+
   color: #ffffff; /* text color */
      -ms-flex: 1;
+
          flex: 1;
+
  height: 20vh;
+
  display: -webkit-box;
+
  display: -ms-flexbox;
+
  display: flex;
+
  -webkit-box-align: center;
+
      -ms-flex-align: center;
+
          align-items: center;
+
  -webkit-box-pack: center;
+
      -ms-flex-pack: center;
+
          justify-content: center;
+
 
}
 
}
  
main {
+
.white-bg{
  overflow: scroll;
+
    background-color: #ffffff;
  position: relative;
+
    padding-left: 350px;
  z-index: 1;
+
    padding-right: 350px;
  padding: -50vh -50vw;
+
}
  height: 80vh;
+
  display: -webkit-box;
+
  display: -ms-flexbox;
+
  display: flex;
+
  -ms-flex-flow: column wrap;
+
      flex-flow: column wrap;
+
  -webkit-box-pack: center;
+
      -ms-flex-pack: center;
+
          justify-content: center;
+
  background: #02263E;
+
  
 +
.icons{
 +
    position: relative;
 +
    top:-80px;
 
}
 
}
main h1 {
+
 
  margin: 0;
+
.icons2{
  font-weight: 400;
+
    position: relative;
  color: #ffffff;
+
    top:-20px;
 
}
 
}
main h1 a {
+
 
  font-size: 48px;
+
.icons3{
  color: #ffffff;
+
    position: relative;
 +
    top:-40px;
 
}
 
}
main p {
+
 
  font-weight: 800;
+
.icons4{
  font-size: 9px;
+
    position: relative;
  max-width: 800px;
+
    top:0px;
  margin: 0px auto;
+
  color: #ffffff;
+
  top: 300px;
+
  text-align: center;
+
 
}
 
}
main a {
 
  text-decoration: none;
 
    color: #ffffff;
 
  font-size: 30px;
 
}
 
main .plate {
 
  position: absolute;
 
  top: 50%;
 
  left: 50%;
 
  max-width: 380px;
 
  width: 100%;
 
  -webkit-transform: translate(-50%, -50%);
 
          transform: translate(-50%, -50%);
 
  z-index: -1;
 
}
 
 
 
</style>
 
</style>
 +
 +
<script type="text/x-mathjax-config">
 +
  MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
 +
</script>
 +
<script type="text/javascript"
 +
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
 +
</script>
  
 
</head>
 
</head>
  
 
<body>
 
<body>
 +
<p><br>
 +
<br>
 +
<br>
 +
<br>
 +
</p>
 +
<div class="image">
 +
<div class="crop">
 +
    <img src="https://static.igem.org/mediawiki/2017/7/72/UNotts2017ellie.jpg"; style="width:100%;height:auto;">
 +
</div>
  
 +
<h2><span>SOFTWARE<span class='spacer'></span></h2>
  
 +
  <div class="container2">
 +
  <div class="expandable-boxes">
 +
    <div class="expandable-box">
 +
      <h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Overview </h4><center>
 +
</center>
  
<div id="body-wrapper">
+
      <div id="clear2" style="display: none;">
    <div class="absolute">
+
  
 
    <main>
 
<h1>Software</h1>
 
<p>&#9661;</p>
 
 
<p>Along with modeling all the possible combinations, another issue the team faced was they wouldn't be able to compare the  read fluorescence spectra and compare it back to the mother colony's spectra in the time and resources available, as that would mean they would need to create a brand new construction, test and implement. </p>
 
<p>Along with modeling all the possible combinations, another issue the team faced was they wouldn't be able to compare the  read fluorescence spectra and compare it back to the mother colony's spectra in the time and resources available, as that would mean they would need to create a brand new construction, test and implement. </p>
 
<p> &nbsp; </p>  
 
<p> &nbsp; </p>  
Line 272: Line 239:
 
<p>Another issue the team faced is identifying whether Key.Coli was a user friendly product. In order to test how user's would respond to having to use Key.Coli in practice, a virtual every day environment was developed within Unity which showed a person's everyday life. Actions were monitored and fed back to the team to see how easy it was to operate Key.Coli. as well as identifying any practical problems we would face.</p>  
 
<p>Another issue the team faced is identifying whether Key.Coli was a user friendly product. In order to test how user's would respond to having to use Key.Coli in practice, a virtual every day environment was developed within Unity which showed a person's everyday life. Actions were monitored and fed back to the team to see how easy it was to operate Key.Coli. as well as identifying any practical problems we would face.</p>  
 
<p> &nbsp; </p>  
 
<p> &nbsp; </p>  
<p> Lastly, to put Key.Coli into practice, was to write a security layer on top of Linux on a Raspberry Pi which means it can only be accessed through the Key.Coli password. This protects the computer from intruders, hence completing the objective of Key.Coli </p>  
+
<p> Lastly, to put Key.Coli into practice, was to write a security layer on top of Linux on a Raspberry Pi which means it can only be accessed through the Key.Coli password. This protects the computer from intruders, hence completing the objective of Key.Coli </p>
<p> &nbsp; </p>  
+
 
<br> </br>
+
</a>
 +
</div>
 +
 
 +
 
 +
      </div>
 +
  </div>
  
     </main>
+
     <div class="expandable-box">
    <!-- Component starts here-->
+
<h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Image Comparison Software</h4>
    <ul class="blocks-names">
+
<center></center>
      <li class="blocks__name"> Image Comparison Software </li>
+
  <div id="clear3" style="display: none;">
      <li class="blocks__name"> Data Differentiating Software</li>
+
    <a href="https://github.com/BurgundyIsAPublicEnemy/iGEMNotts2017/blob/master/fl_compare.exe">Download the software here</a>  
      <li class="blocks__name"> Fluorescent Spectra Predicting Software</li>
+
      <li class="blocks__name"> Random Number Generation using Key.Coli </li>
+
      <li class="blocks__name"> Linux Key.Coli Security Layer </li>
+
    </ul>
+
    <ul class="blocks">
+
      <li class="blocks__block" id="1"></li>
+
      <li class="blocks__block" id="2"></li>
+
      <li class="blocks__block" id="3"></li>
+
      <li class="blocks__block" id="4"></li>
+
      <li class="blocks__block" id="5"></li>
+
    </ul>
+
    <ul class="blocks-content">
+
      <li class="blocks-content__content">
+
        <div class="content__close"></div>
+
<center>
+
<br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br>
+
<h2> Image Comparison Software </h2> <i class="blocks__content-close fa fa-times"></i>
+
<a href="https://github.com/BurgundyIsAPublicEnemy/iGEMNotts2017/blob/master/fl_compare.exe">Download the software here</a>  
+
 
<br> </br>
 
<br> </br>
 
<p> A major issue the team faced was the comparison between the fluorescence with the mother colony and the Key.Coli mechanism. One option considered was to use image comparison to check how similar the spectra were </p>
 
<p> A major issue the team faced was the comparison between the fluorescence with the mother colony and the Key.Coli mechanism. One option considered was to use image comparison to check how similar the spectra were </p>
Line 331: Line 285:
 
<sup> 1 </sup> <a href="https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance">Image taken from Wikipedia</a>
 
<sup> 1 </sup> <a href="https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance">Image taken from Wikipedia</a>
  
<br> </br>
 
</center>
 
  
 +
</a>
 +
</div>
 
</div>
 
</div>
      </li>
 
  
<ul class="blocks-content">
+
    <div class="expandable-box">
      <li class="blocks-content__content">
+
        <div class="content__close"></div>
+
<center>
+
  
<br> </br>
+
      <h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Raw Data Differentiating Software </h4><center></center>
<br> </br>
+
  <div id="clear4" style="display: none;">
<br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br><br> </br> <br> </br> <br> </br><br> </br> <br> </br> <br> </br><br> </br> <br> </br>
+
    <p> Another method of comparing fluorescence spectra is by taking raw data and comparing them cell by cell. This was a far more user friendly method than using Image Comparison we found the data held the same format in terms of spacing when outputted by the fluorescence reader. </p>  
<h2> Raw Data Differentiating Software </h2><i class="blocks__content-close fa fa-times"></i>
+
<p> Another method of comparing fluorescence spectra is by taking raw data and comparing them cell by cell. This was a far more user friendly method than using Image Comparison we found the data held the same format in terms of spacing when outputted by the fluorescence reader. </p>  
+
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
 
<p> One major issue with using Image Comparison is that the images were required to be exactly the same size for it to work and be bitmaps, which is an uncommon image type. Another issue is that if the images were very large, the time would take longer. This would be an improvement over that method as there wouldn't be any images involved </p>
 
<p> One major issue with using Image Comparison is that the images were required to be exactly the same size for it to work and be bitmaps, which is an uncommon image type. Another issue is that if the images were very large, the time would take longer. This would be an improvement over that method as there wouldn't be any images involved </p>
Line 362: Line 310:
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
  
<br> </br>
+
    </div>
<br> </br>
+
  </div>
 
+
</center>
+
 
+
</div>
+
</li>
+
<ul class="blocks-content">
+
      <li class="blocks-content__content">
+
        <div class="content__close"></div>
+
<center>
+
<br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br> <br> </br><br> </br> <br> </br><br> </br><br> </br> <br> </br>
+
<h2>Fluorescence Spectra Simulation</h2> <i class="blocks__content-close fa fa-times"></i>
+
  
<p> The software was written as an answer to the team wanting to be see how the spectra would look like after a certain amount of time as well as what the fluorescence would be at a certain time point. This is very useful as it allows the team to know what to expect during the constructions as well as be able to test multiple conditions in a short time </p>  
+
    <div class="expandable-box">
 +
      <h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Fluorescence Spectra Simulation</h4>
 +
      <center></center>
 +
          <div id="clear5" style="display: none;">
 +
      <p> The software was written as an answer to the team wanting to be see how the spectra would look like after a certain amount of time as well as what the fluorescence would be at a certain time point. This is very useful as it allows the team to know what to expect during the constructions as well as be able to test multiple conditions in a short time </p>  
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
  
Line 394: Line 335:
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
  
</center>
+
</a>
 
+
</div>
 
</div>
 
</div>
      </li>
 
 
  
      <li class="blocks-content__content">
 
     
 
        <ul class="blocks-content">
 
        <div class="content__close"></div>
 
<center>
 
<br> </br> <br> </br> <br>
 
  
<h2>Random Number Generation</h2> <i class="blocks__content-close fa fa-times"></i>
+
    <div class="expandable-box">
 +
      <h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Random Number Generation</h4><center></center>
 +
      <div id="clear6" style="display: none;">
 
<p> When speaking to our industry contacts about Key.Coli, they were very interested in seeing Key.Coli's capabilities as a Random Number Generation tool. After gaining results from the random constructions, the team set to finding out if the values could be used to generate a string of random numbers. The results are as shown. </p>
 
<p> When speaking to our industry contacts about Key.Coli, they were very interested in seeing Key.Coli's capabilities as a Random Number Generation tool. After gaining results from the random constructions, the team set to finding out if the values could be used to generate a string of random numbers. The results are as shown. </p>
  
Line 420: Line 355:
 
<br> </br>
 
<br> </br>
 
<p> <sup> 1 </sup> RAND was generated using =INT(NORM.INV(RAND(),XX,XX)) on Excel, Atmospheric Noise was taken from Random.org and Fortuna is used in some Unix based OS to generate security keys </p>
 
<p> <sup> 1 </sup> RAND was generated using =INT(NORM.INV(RAND(),XX,XX)) on Excel, Atmospheric Noise was taken from Random.org and Fortuna is used in some Unix based OS to generate security keys </p>
<p> <sup> 2 </sup> See Modelling's Are Our Constructions Random </p>
+
<p> <sup> 2 </sup> See Modelling's Are Our Constructions Random </p>       
 +
</a>
 +
</div>
 +
    </div>
  
</center>
 
</ul>
 
      </li>
 
  
     
+
<div class="expandable-box">
      <li class="blocks-content__content">
+
      <h4 style="color: #ffffff; font-weight: bold; font-size: 30px;">Linux Key.Coli Security Layer </h4><center></center>
     
+
      <div id="clear7" style="display: none;">
        <ul class="blocks-content">
+
        <p> As a final wrap up for the project, all the software and modelling was put together to create an additional security layer on top of Linux for the Raspberry Pi. <p>
        <div class="content__close"></div>
+
<center>
+
<br> </br>
+
<br> </br>
+
 
+
<h2>Linux Key.Coli Security Layer </h2> <i class="blocks__content-close fa fa-times"></i>
+
<p> As a final wrap up for the project, all the software and modelling was put together to create an additional security layer on top of Linux for the Raspberry Pi. <p>
+
  
 
<p> This was done to show people how Key.Coli could be used to secure your computer from strangers who don't have the Key.Coli but might know your password as well as giving us a physical demonstration of Key.Coli to show at the Jamboree.</p>
 
<p> This was done to show people how Key.Coli could be used to secure your computer from strangers who don't have the Key.Coli but might know your password as well as giving us a physical demonstration of Key.Coli to show at the Jamboree.</p>
Line 447: Line 375:
 
<p> However, due to health and safety regulations, for the Jamboree, we read data from conditions in lab and stored them on USB sticks, acting as the Key.Coli and mother colony. This is similar to how the actual system would work, except it has USB drives instead of fluorescence readers </p>
 
<p> However, due to health and safety regulations, for the Jamboree, we read data from conditions in lab and stored them on USB sticks, acting as the Key.Coli and mother colony. This is similar to how the actual system would work, except it has USB drives instead of fluorescence readers </p>
  
</center>
+
</a>
</ul>
+
</div>
      </li>
+
    </div>
 
+
  
 +
  </div>
 +
</div>
 
   <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
 
   <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
  
    <script>
 
  
     (function() {
+
     <script>$(document).ready(function() {
      var bHeight, bWidth, block, bname, closeBtn, closeContent, content, expand, openContent, updateValues, wHeight, wWidth, xVal, yVal;
+
        //HOW TO HIDE
 +
        var mydiv = document.getElementById('clear2');
 +
        var mydiv1 = document.getElementById('clear3');
 +
        var mydiv2 = document.getElementById('clear4');
 +
        var mydiv3 = document.getElementById('clear5');
 +
        var mydiv4 = document.getElementById('clear6');
 +
        var mydiv5 = document.getElementById('clear7');
 +
//HOW TO HIDE
  
       block = $('.blocks__block');
+
       $('.expandable-box').click(function(e) {
 +
        if($(this).hasClass('open')) {
 +
            //HOW TO HIDE
  
      bname = $('.blocks__name');
+
            //HOW TO HIDE
 
+
          $('.expandable-box.out').not($(this)).removeClass('out');
      content = $('.blocks-content__content');
+
          $(this).removeClass('open');
 
+
          mydiv.style.display = 'none';
      closeBtn = $('.blocks__content-close');
+
           mydiv1.style.display = 'none';
 
+
           mydiv2.style.display = 'none';
      wHeight = $(window).outerHeight();
+
          mydiv3.style.display = 'none';
 
+
           mydiv4.style.display = 'none';
      wWidth = $(window).outerWidth();
+
           mydiv5.style.display = 'none';
 
+
      bHeight = block.outerHeight();
+
 
+
      bWidth = block.outerWidth();
+
 
+
      xVal = Math.round(wWidth / bWidth) + 0.03;
+
 
+
      yVal = wHeight / bHeight + 0.03;
+
 
+
      expand = function() {
+
        var aBlock, num;
+
        num = $(this).index();
+
        aBlock = block.eq(num);
+
        if (!aBlock.hasClass('active')) {
+
           bname.css('opacity', '0');
+
           aBlock.css({
+
            'transform': 'scale(' + xVal + ',' + yVal + ')',
+
            '-webkit-transform': 'scale(' + xVal + ',' + yVal + ')'
+
          });
+
           aBlock.addClass('active');
+
           openContent(num);
+
 
         }
 
         }
      };
+
         else {
 
+
           $('.expandable-box').not($(this)).addClass('out');
      openContent = function(num) {
+
           $(this).addClass('open');
         var aContent;
+
        content.css({
+
           'transition': 'all 0.3s 0.4s ease-out',
+
          '-webkit-transition': 'all 0.3s 0.4s ease-out'
+
        });
+
        aContent = content.eq(num);
+
        aContent.addClass('active');
+
      };
+
 
+
      closeContent = function() {
+
        bname.css('opacity', '1');
+
        content.css({
+
          'transition': 'all 0.1s 0 ease-out',
+
          '-webkit-transition': 'all 0.1s 0 ease-out'
+
        });
+
        block.css({
+
           'transform': 'scale(1)',
+
          '-webkit-transform': 'scale(1)'
+
        });
+
        block.removeClass('active');
+
        content.removeClass('active');
+
      };
+
  
      updateValues = function() {
+
          //HOW TO HIDE
        var yVal;
+
            mydiv.style.display = 'block'
        var xVal;
+
            mydiv1.style.display = 'block'
        var bWidth;
+
            mydiv2.style.display = 'block'
        var bHeight;
+
            mydiv3.style.display = 'block'
        var wWidth;
+
            mydiv4.style.display = 'block'
        var wHeight;
+
             mydiv5.style.display = 'block'
        var aBlock;
+
            //HOW TO HIDE
        if (block.hasClass('active')) {
+
          aBlock = $('.blocks__block.active');
+
          wHeight = $(window).height();
+
          wWidth = $(window).width();
+
          bHeight = block.height();
+
          bWidth = block.width();
+
          xVal = Math.round(wWidth / bWidth) + 0.03;
+
          yVal = wHeight / bHeight + 0.03;
+
          aBlock.css({
+
            'transform': 'scale(' + xVal + ',' + yVal + ')',
+
             '-webkit-transform': 'scale(' + xVal + ',' + yVal + ')'
+
          });
+
 
         }
 
         }
       };
+
       });
 +
    });</script>
  
      $(window).on('resize', updateValues);
 
  
      bname.on('click', expand);
 
  
      closeBtn.on('click', closeContent);
 
  
    }).call(this);
 
    </script>
 
 
</div>
 
</div>
 
 
</body>
 
</body>
 
</html>
 
</html>

Revision as of 20:51, 31 October 2017





SOFTWARE

Overview

Image Comparison Software

Raw Data Differentiating Software

Fluorescence Spectra Simulation

Random Number Generation

Linux Key.Coli Security Layer