Cards are built with as little markup and styles as possible, but still manage to deliver a ton of control and customization. Built with flexbox, they offer easy alignment and mix well with other Bootstrap components. They have no margin
by default, so use spacing utilities as needed. Although cards are a lightweight solution for 'widget' or 'panel', we recommend you check out {{app}}'s panels page for further flexible and an alternative option.
While we displayed some examples of cards here, you can learn more details of its usage at the official bootstrap documentation.
Some quick example text to build on the card title and make up the bulk of the card's content.
 Integer posuere erat a ante.
With supporting text below as a natural lead-in to additional content.
Go somewhere.card-header
, .card-body
, and .card-footer
background cam be changed using color and border utilities
.card
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
.card-header
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
display: flex;
to achieve their uniform sizing.
This card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins agoThis card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins agoThis card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins agoThis is a wider card with supporting text below as a natural lead-in to additional content.
This card has supporting text below as a natural lead-in to additional content.
This is a wider card with supporting text below as a natural lead-in to additional content.
.card-columns
. Cards are built with CSS column
properties instead of flexbox for easier alignment. Cards are ordered from top to bottom and left to right.
display: inline-block
as column-break-inside: avoid
isn’t a bulletproof solution yet.
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
This card has supporting text below as a natural lead-in to additional content.
Last updated 3 mins ago
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.
This card has a regular title and short paragraphy of text below it.
Last updated 3 mins ago
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
This is another card with title and supporting text below. This card has some additional content to make it slightly taller overall.
Last updated 3 mins ago


Implements the Scout method for regression, described in "Covariance-regularized regression and classification for high-dimensional problems", by Witten and Tibshirani (2008), Journal of the Royal Statistical Society, Series B 71(3): 615-636.
| Version: | 1.0.4 |
| Imports: | glasso, stats, grDevices, graphics |
| Suggests: | lars |
| Published: | 2015-07-10 |
| Author: | Daniela M. Witten and Robert Tibshirani |
| Maintainer: | Daniela M. Witten <dwitten at uw.edu> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| CRAN checks: | scout results |
| Reference manual: | scout.pdf |
| Package source: | scout_1.0.4.tar.gz |
| Windows binaries: | r-devel: scout_1.0.4.zip, r-release: scout_1.0.4.zip, r-oldrel: scout_1.0.4.zip |
| OS X binaries: | r-release: scout_1.0.4.tgz, r-oldrel: scout_1.0.4.tgz |
| Old sources: | scout archive |
Please use the canonical form https://CRAN.R-project.org/package=scout to link to this page.


Hi I'm Kishan Odedra.
Developer
/Student
/Designer
About Me
My name is Kishan Odedra and I'm a MSc Computer Science student at the University of Birmingham. In my spare time, I like video editing, graphic design and programming. I’m interested in the evolving HealthTech field, primarily in the use of Machine Learning in Medicine and Healthcare. I am currently learning full stack web development with JavaScript and Java, as well as automation and scripting with Python.
Projects
Click the projects to find out more!
HealthWhere
HTML
Sass
JavaScript
Node.js
HealthWhere
HealthWhere is a web application that retrieves information regarding any condition on the Health A-Z NHS website and displays local NHS related services. The project gave me practice in working with asynchronous data and APIs. This was my first attempt at creating a web application and it taught me a lot about how to communicate data between the client and server side.
Danbo Explains
Adobe Premiere Pro
Adobe Photoshop
Danbo Explains
Danbo Explains is part of an imagined series of videos that focus on aspects of the human body in regards to health and disease. We decided the best way to appeal to our intended audience of primary school children was to use a fictional character, which could help them visualise difficult concepts whilst also making it more fun and engaging. We settled on using stop motion to animate movements in order to produce a fluid style.
inteRX
React
Bootstrap
Node.js
MongoDB
inteRX
inteRX is a full stack web application that allows users to search for interactions between multiple drugs, and alerts them if there is a potential hazard in taking the combination of drugs they have searched. Submitted as part of HackSheffield5 which won 3rd place for best hack. Using git collaboratively taught me how to handle merges and conflict scenarios. I also learnt how to use React to create UIs and how to integrate data with the backend.
Verbal Seasoning
React
Bootstrap
Flask
Python
Verbal Seasoning
Verbal Seasoning connects with a robot companion to give people with aphasia a vocie. Using an EEG, information about your mood is sent the robot which interprets how you feel and responds accordingly. This provides people with speech impairment cognitive simulation which helps improve speech. Submitted as part of HackMed2020 which won 2nd place for best hack. This was my first time interfacing with hardware and I also learnt about websockets for event driven responses.


The patent with the identification number US20150124107A1 was filed quitely by Facebook Inc, in September 2010.[1] Innocuously titled “Associating cameras with users and objects in a social networking system”,[1] the patent gives a glimpse into the power of Facebook to track us online, even when we believe we have covered our tracks.
Below you can see photos filed with the patent. (Source)
More and more today it seems like no piece of data can be safely anonymized. Anonymous data is disconnected from personal identifiers, such as names and birth dates.[2] To be anonymized would mean that the data could not be reconnected to the person who the data was originally from.[2] A 2019 study from Imperial College London found that 99.9% of Americans could be individually identified with just 15 characteristics from widely available data.[3] Similarly, 2015 MIT study found that 90% of people in an ‘anonymized’ data set of store credit card transactions could be identified.[4] Anonymization techniques that researchers, businesses and others have been using for decades now are being revealed to be inadequate,[2] threatening anonymity in all corners of our lives.
Photos are not exempt from new threats to anonymity. Almost all photos now come with extensive metadata automatically added when the photo is taken.[5] Metadata is “data about data”; meaning the metadata describes the data point in question.[6] This metadata can include fields like: the photographer’s name, the GPS coordinates of where the photo was taken, and the date and time when the photo was taken.[5] And applications like Google Photos, or Apple’s iPhoto can automatically add metadata tagging the faces of people in photos.[5] This metadata can be identified and read by anyone able to access the photo online.[7] While many users may have learned to check the visual context of a photo for content they would find privacy invading to share publicly, many do not realize the amount of information shared in the metadata of photos they share.
However, this privacy threat can easily be combatted if users are aware of it. The anti-surveillance non-profit the Electronic Frontier Foundation writes “Surveillance Self-Defense” guides for different people who are especially vulnerable to surveillance.[8] In their guide for activists attending protests, they advise activists to remove the metadata from any photos they took and are hoping to upload in order to protect their personal information.[9] They suggest the simple method of taking a screenshot of an image, and posting the screenshot to avoid metadata concerns.[9] This method allows people who rely on anonymity online like activists to avoid identification when posting important photos.
But Facebook’s patent, “Associating cameras with users and objects in a social networking system”,[1] presents a new threat to anonymous photos. The patent uses “camera signatures”, unique characteristics of cameras like “faulty pixel positions in the camera and metadata available in files storing the images” to identify other photos taken by the same camera and link them to that user.[1] It also allows Facebook to make connections between different users based off of who is sharing a single camera.[10] In the patent abstract, Facebook’s suggested uses are: “recommending potential connections to a user, recommending events and groups to users, identifying multiple user accounts created by the same user, detecting fraudulent accounts, and determining affinity between users.”[1] The listed uses suggest that Facebook could de-anonymize the accounts but also the links between people posting what were previously anonymous photos.
Before Facebook filed this patent, most people did not realize how much personal information photo metadata reveals about them. However, those who did realize could easily combat this problem, like the EFF suggests by taking a screenshot of the photo before posting. But Facebook’s patent threatens to make those efforts obsolete. If photos can be used to match a photo taken on a personal account with a photo uploaded ‘anonymously’ to a protest page, or if photos used by several different organizations could be linked together to identify one person, then this could put activists and protestors in great danger. But this patent exposes threats beyond just for those who rely on anonymity to stay alive and out of jail.
This patent reveals the issue that those efforts suggested by the EFF were never really enough; metadata has always made our personal information accessible when photos are posted by those who do not know or remember to remove it. We need to problematize the issue of privacy in posting online photos. Additionally, as Raley argues in “Raw Data” Is an Oxymoron, we must understand data collection and the inferences that companies make about us as a result of that data as part of a capitalistic control system.[11] In this modern panoptic capitalistic system, “willingly” give up our data to become seen only as our data by this control system.[11] But the consequences of this control and surveillance are not just a loss of privacy but a system where companies are made powerful by data collection control and manipulate our actions through “dataveillance”.[11] And this system can reinforce or make worse existing inequalities, using digital data to sort and categorize people in real life.[12]
I built this website to help with this problem, but it is by no means a perfect solution, just a start. The best solution would likely be if social media companies automatically scrubbed metadata from our photos as we posted them, but their incentives to sell more targeted advertising push them to collect more information about us, not less.[11] The next best solution would be an app which scrubbed all metadata and camera signatures from any photo automatically on one’s computer or phone. This would be best because it would keep the user from having to think about it, before posting a photo, making avoiding surveillance easier and making them more likely to use it. However, because of technical limitations, that is not the project I have created.
Instead, I built a website that I hope achieves two things.
One common resistance method to digital surveillance is to insert noisy or random data to mask real data collected about digital actions. By using this method, you can attempt to not only hide the real data being collected, but also make reliance on the data not commercially valuable. This method is employed in projects like TrackMeNot, a web browser extension that hides your real search and browsing data from third party trackers by periodically sending noisy packets of data to the tracking companies.[11]
There is also a long history of using a method called "steganography" to conceal information. Steganography is “the practice of hiding secret messages in otherwise non-secret mediums.”[13] Least significant bit steganography involves the practice of hiding images or messages in other images by replacing the last few digits (the least significant bits) of a binary representation of a pixel with a message.[14] This shows that you can randomly change the pixel values of a photo and not significantly change the image.
Digital image steganography uses the last few, least valuable bits used to encode a pixel to hide data. Changing these bits changes the color value of the pixel only very slightly. Thus, you can change the pixels and use the value of those pixels to encode secret messages that can only be decoded by a program reading the values of the last few pixels separately.
Below is an image demonstrating how the Least Significant Bit Steganography works. In the example the bits changed only make up the numbers zero through three, so modifying those bits only changes the pixel value (which can range from 0 to 256 for each color that makes up the pixel) by 0 to 3 numbers.
( Image Source )
The EFF guide to Surveillance Self Defense explains that removing metadata from an image is possible, and fairly simple.[9] However, many people are unaware of this, and commonly upload photos to the internet with information they did not realize they were including.
Most photo metadata is stored in formats like EXIF, IPTC or XMP.[5] The tool I am using only removes the EXIF metadata tags, which are those added by most phones and digital cameras.[5]
Obviously, there are some major limitations to this website. As said before this is not the most convienent method. Additionally, because I have not tested whether a camera signature remains once steganographic messages are hidden, I cannot guarantee that it erases the camera signature. Additionally, because of the limitations of my technical knowledge, I cannot guarentee that the tools made by other developers on github work perfectly, only so far as I can verify them by checking the metadata that tool it registers and the hidden message that the other tool registers.
[1] Muriello, Daniel Gregory, Stephen Charles Heise, and Jie Chen. Associating cameras with users and objects in a social networking system. United States US20150124107A1, filed January 14, 2015, and issued May 7, 2015.
[2] Bushwick, Sophie. “‘Anonymous’ Data Won’t Protect Your Identity.” Scientific American. Accessed March 22, 2020.
[3] Kolata, Gina. “Your Data Were ‘Anonymized’? These Scientists Can Still Identify You.” The New York Times, July 23, 2019, sec. Health. https://www.nytimes.com/2019/07/23/health/data-privacy-protection.html.
[4] Singer, Natasha. “With a Few Bits of Data, Researchers Identify ‘Anonymous’ People.” Bits Blog (blog), January 29, 2015. https://bits.blogs.nytimes.com/2015/01/29/with-a-few-bits-of-data-researchers-identify-anonymous-people/.
[5] Henne, Benjamin, Christian Szongott, and Matthew Smith. “SnapMe If You Can: Privacy Threats of Other Peoples’ Geo-Tagged Media and What We Can Do about It.” In Proceedings of the Sixth ACM Conference on Security and Privacy in Wireless and Mobile Networks, 95–106, 2013.
[6] Surveillance Self-Defense. “Metadata.” Accessed March 23, 2020. https://ssd.eff.org/en/glossary/metadata.
[7] Xu, Haitao, Haining Wang, and Angelos Stavrou. “Privacy Risk Assessment on Online Photos.” In International Symposium on Recent Advances in Intrusion Detection, 427–447. Springer, 2015.
[8] Surveillance Self-Defense. “Surveillance Self-Defense.” Accessed March 23, 2020. https://ssd.eff.org/en.
[9] Surveillance Self-Defense. “Activist or Protester?,” April 13, 2015. https://ssd.eff.org/en/playlist/activist-or-protester.
[10] Chinoy, Sahil. “Opinion | What 7 Creepy Patents Reveal About Facebook.” The New York Times, June 21, 2018, sec. Opinion. https://www.nytimes.com/interactive/2018/06/21/opinion/sunday/facebook-patents-privacy.html
[11] Raley, Rita. “Dataveillance and Countervailance,” 2013.
[12] Graham, Stephen DN. “Software-Sorted Geographies.” Progress in Human Geography 29, no. 5 (2005): 562–580.
[13] “What Is Steganography?” Wired. Accessed March 24, 2020. https://www.wired.com/story/steganography-hacker-lexicon/.
[14] Gupta, Shailender, Ankur Goyal, and Bharat Bhushan. “Information Hiding Using Least Significant Bit Steganography and Cryptography.” International Journal of Modern Education and Computer Science 4, no. 6 (2012): 27.


Stroll describes racing in Brazil as an "interesting experience"
by Tom MasonThere are now just two races remaining of the season as the grid head to Brazil as the season comes towards a close. Lance Stroll is looking forward to getting back out to Brazil for the penultimate race of the season.
With just two races remaining, Stroll is 15th in the drivers' standings on 15 points, ten behind Kimi Raikkonen.
“Racing at Interlagos is always an interesting experience. There is so much passion and emotion from the Brazilian fans. They love racing and they’ve got a great history in the sport," Stroll said in Racing Point's race preview.
“It’s quite a compact track and it’s tight and twisty in the middle section. I remember it being quite bumpy too.
"It’s much more undulating than it looks on television and you notice that when you walk the track."
The race in Brazil was a tough one for the Canadian last season finishing last of all the drivers which completed the race after Nico Hulkenberg and Marcus Ericsson failed to finish.


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
Andrew Carter OBE has been appointed to chair a review of the quality and effectiveness of initial teacher training (ITT) courses.
An independent review of the quality and effectiveness of ITT courses has been announced today (1 May 2014) by the Secretary of State for Education, Michael Gove.
Providing the best possible training is at the heart of this government’s drive to improve teaching standards and ensure children from all backgrounds have the opportunity to achieve academic excellence. The review will look across the full range of ITT courses and will seek views from those involved across the sector to:
Andrew Carter OBE , Headteacher of South Farnham School, leader of a school-centred ITT provider and ITT lead on the Teaching Schools Council has been appointed to chair the review. A review panel will be appointed in the coming weeks.
Secretary of State for Education Michael Gove said:
There has never been a better time to be a teacher. There are more teachers in England’s classrooms than ever before, with a rise of 9,000 in the last year, and there is no doubt that the current generation of young teachers is the best ever.
While we have already taken steps to improve teacher training, including through the popular School Direct route, it is right that we look at how we can ensure all courses are providing the best possible training.
I am very pleased to appoint Andrew Carter to lead this important review. He has a wealth of experience in this area and I look forward to receiving his report.
Andrew Carter OBE said:
I am delighted to accept the government’s invitation to carry out an independent review of the quality of initial teacher training.
I have championed the importance of ITT in my work at South Farnham School, Surrey South Farnham SCITT and on the Teaching Schools Council. Since 2010 we have seen significant change in education and it is paramount that trainees are prepared to face the demands of the 21st century classroom.
The review will report to the Secretary of State for Education by the end of the year.
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 1 May 2014


PSYC 5316: Advanced Quantitative Methods & Experimental Design
Contact info
- Professor: Thomas J. Faulkenberry, Ph.D
- Office: Math 319
- Office hours: MWF 1-3 pm; TR 9:30-11:30 am
- Email<EMAIL_ADDRESS>- Website: http://tomfaulkenberry.github.io
- Phone:<PHONE_NUMBER>
Course description
This course is designed to teach you the advanced quantitative methods and techniques of experimental design that are necessary to read and conduct modern empirical research in the psychological sciences. We will do this through replicating three classic experiments, each illustrating a unique experimental design and technique for data analysis. Students taking this course are expected to have previously taken a graduate level course in statistics (or equivalent statistical training).
Some of the specific skills you'll learn this semester are:
- using a computer to program behavioral experiments and collect response time data
- efficiently pre-processing raw data and implement sophisticated statistical models using R
- writing technical manuscripts to report results of experiments
Course materials
There is no required textbook for the course. However, I recommend you have access to a good statistics text (e.g., Gravetter or Field are great ones to have). In addition, you'll need to have access to a computer (laptop is best) on which you can install the following software packages:
- R statistical software (free download from http://www.r-project.org)
- RStudio (free download from http://www.rstudio.com)
- OpenSesame (free download from http://osdoc.cogsci.nl/
All readings/videos/etc. will be posted on Github: http://github.com/tomfaulkenberry/courses/
Student learning outcomes
- perform and interpret basic techniques of statistical inference, both in a frequentist and Bayesian framework
- program and administer behavioral experiments using computer software
- understand various methods of cleaning data for analysis in R
- develop skills for communicating technical material, especially through writing scientific manuscripts in APA format.
Requirements and grading
- Lab 1 (100 pts)
- Lab 2 (100 pts)
- Lab 3 (100 pts)
- In class participation (100 pts)
- Total = 400 points
Grades will be assigned based on the percentage of points you accumulate out of these 400 points. I will use the standard grading scale of A=90%, B=80%, etc.
Labs (75% of grade)
There will be three lab experiments conducted throughout the semester. Each lab will take approximately four weeks to complete using the schedule below:
- first week (online): video lecture describing to construct experiment and collect data
- second week (face to face): in class discussion on how to analyze the data you've collected
- third week (online): video lecture describing how to analyze data in R
- fourth week (face to face): in class discussion of the results of experiment and writeup of final manuscript
In class participation (25% of grade)
We meet face-to-face in Stephenville every other week this semester. In total, there will be 8 meetings (see schedule below for specific dates). It is imperative that you attend these face-to-face sessions, because this is where we will discuss the material needed to successfully complete the labs that we will complete. The participation will be assigned as a percent of the classes you attend. For example, if you attend 5 out of 8 classes, your attendance grade will be 62.5 points.
Course Communication
This course is designed to be an intensive, interactive seminar on modern statistical methods and experimental design. That means that I will be available for one-on-one consultation most any time. Just stop by my office or give me a call.
All official course communication (questions, setting up a meeting, etc.) will be conducted by email. Any time you need to contact me, feel free to send me an email at<EMAIL_ADDRESS>I only ask that you adhere to two guidelines:
- please include the course number (PSYC 5316) in the subject line. For example, one good way to do this is: Subject: [PSYC 5316] Question about problem set 3
- please use proper email etiquette.  You might be surprised how many times I get an email from a nondescript email address with no indication from WHOM the email was sent!
Also, I will be sending periodic emails to each of you that update you on course progress, due dates, etc. It is imperative that you check your Tarleton email address regularly so that you don't miss any of these messages.
University Policy on "F" Grades
Beginning in Fall 2015, Tarleton will begin differentiating between a failed grade in a class because a student never attended (F0 grade), stopped attending at some point in the semester (FX grade), or because the student did not pass the course (F) but attended the entire semester. These grades will be noted on the official transcript. Stopping or never attending class can result in the student having to return aid monies received. For more information see the Tarleton Financial Aid website.
Academic Honesty
Tarleton State University expects its students to maintain high standards of personal and scholarly conduct. Students guilty of academic dishonesty are subject to disciplinary action. Cheating, plagiarism (submitting another person’s materials or ideas as one’s own), or doing work for another person who will receive academic credit are all disallowed. This includes the use of unauthorized books, notebooks, or other sources in order to secure of give help during an examination, the unauthorized copying of examinations, assignments, reports, or term papers, or the presentation of unacknowledged material as if it were the student’s own work. Disciplinary action may be taken beyond the academic discipline administered by the faculty member who teaches the course in which the cheating took place.
In particular, any exam taken online must be completed without the aid of any unauthorized resource (including using any search engine, Google, etc.). Authorized resources are limited only to the official textbook and any lecture notes from the course. Any other authorized resources will be provided to you before the exam. The minimum sanction for violation of this policy is a grade of 0 on the affected exam.
Each student’s honesty and integrity are taken for granted. However, if I find evidence of academic misconduct I will pursue the matter to the fullest extent permitted by the university. ACADEMIC MISCONDUCT OR DISHONESTY WILL RESULT IN A GRADE OF F FOR THE COURSE. Students are strongly advised to avoid even the appearance of academic misconduct.
Academic Affairs Core Value Statements
Academic Integrity Statement
Tarleton State University's core values are integrity, leadership, tradition, civility, excellence, and service. Central to these values is integrity, which is maintaining a high standard of personal and scholarly conduct. Academic integrity represents the choice to uphold ethical responsibility for one’s learning within the academic community, regardless of audience or situation.
Academic Civility Statement
Students are expected to interact with professors and peers in a respectful manner that enhances the learning environment. Professors may require a student who deviates from this expectation to leave the face-to-face (or virtual) classroom learning environment for that particular class session (and potentially subsequent class sessions) for a specific amount of time. In addition, the professor might consider the university disciplinary process (for Academic Affairs/Student Life) for egregious or continued disruptive behavior.
Academic Excellence Statement
Tarleton holds high expectations for students to assume responsibility for their own individual learning. Students are also expected to achieve academic excellence by:
- honoring Tarleton’s core values, upholding high standards of habit and behavior.
- maintaining excellence through class attendance and punctuality, preparing for active participation in all learning experiences.
- putting forth their best individual effort.
- continually improving as independent learners.
- engaging in extracurricular opportunities that encourage personal and academic growth.
- reflecting critically upon feedback and applying these lessons to meet future challenges.
Students with Disabilities Policy
It is the policy of Tarleton State University to comply with the Americans with Disabilities Act (www.ada.gov) and other applicable laws. If you are a student with a disability seeking accommodations for this course, please contact the Center for Access and Academic Testing, at<PHONE_NUMBER> or<EMAIL_ADDRESS>The office is located in Math 201. More information can be found at www.tarleton.edu/caat or in the University Catalog.
Note: any changes to this syllabus will be communicated to you by the instructor!
Tentative schedule
| Week | Date | Location | Topic |
|---|---|---|---|
| 1 | 8/27 | Stephenville | Install software, introduce flanker task |
| 2 | 9/3 | online | Video lecture: programming flanker task and collect data |
| 3 | 9/10 | Stephenville | Discussion: stats background on repeated measures designs |
| 4 | 9/17 | online | Video lecture: analyzing flanker task data in R |
| 5 | 9/24 | Stephenville | Discussion: results of flanker task & final manuscript |
| 6 | 10/1 | online | Video lecture: programming Sternberg memory scanning task and collect data |
| 7 | 10/8 | Stephenville | Discussion: stats background on linear modeling |
| 8 | 10/15 | online | Video lecture: analyzing Sternberg data in R |
| 9 | 10/22 | Stephenville | Discussion: results of Sternberg task & final manuscript |
| 10 | 10/29 | online | Video lecture: programming mental arithmetic task and collect data |
| 11 | 11/5 | Stephenville | Discussion: stats background on factorial designs |
| 12 | 11/12 | online | Video lecture: analyzing mental arithmetic data in R |
| 13 | 11/19 | Stephenville | Discussion: results of mental arithmetic task & final manuscript |
| 14 | 11/26 | online | TBA |
| 15 | 12/3 | Stephenville | Wrap up |


Question Selections 2 3 4 5 6 Single Multiple Ask No Result No title Never asked Numbers of People 0 Learning Speed 0% Learning Situation 0% Connection via PinCode via URL via QR Code Back No Message


GenoSets helps to create all the files necessary to run OrthoMCL on a given set of genes.
To create a new OrthoMCL download set:
Wizard Settings:
The path variables must be set for the perl bin folder, the orthoMCL bin folder, and the MCL bin folder. The script file can be created local but run on a different machine. Make sure the path variables are for the machine that is to run the script.
If the location of perl is /usr/bin/perl, then the perl bin should be set to:
/usr/bin/
If the OrthoMCL script orthomclInstallSchema (along with the other orthomcl files) is located at /usr/orthomcl/bin/orthomclInstallSchema, the the orthomcl bin should be set to:
/usr/orthomcl/bin/
If MCL is located at /usr/bin/mcl, the the MCL bin path should be set to:
/usr/bin/
The settings for the BLAST run can be set in
the BLAST Settings wizard step. The output format must be set to
tab-delimeted (-outfmt 6 for NCBI BLAST) and the name of the BLAST
output file should be blast.out.
OrthoMCL requires an instance of Mysql or Oracle. The database user must have adequate priveleges. See OrthoMCL documentation for more information.
The OrthoMCL settings can be set in the
final step of the wizard. For more information on OrthoMCL settings
see OrthoMCL documentation.
Selecting Finish will add the
download format to the download set. The files will not be
downloaded until the user selects download from the context menu
that is available from right-clicking the download set.When
downloaded a number of files will be saved on the local machine
including a folder named fasta that contains all the fasta files, a
config_file, and a script file (runOrthomcl.sh or runOrthomcl.bat).


Nonprofit to give $3.8 million to Dayton shooting victims
by EndPlayDAYTON, Ohio (AP) - An Ohio nonprofit has approved the disbursement of $3.8 million to victims of the August mass shooting in Dayton.
The Community Oversight Committee chose 47 applicants to receive a charitable gift from the Dayton Oregon District Tragedy Fund.
Seventy percent of the money raised is being distributed to families of deceased victims, with the remaining funds divided among hospitalized victims based on severity of injury.
Dayton Daily News reports that the family of the shooter, Connor Betts, will be among those receiving a charitable gift, because their daughter Megan was among the nine people killed in the Aug. 4 mass shooting in the city's Oregon District.


Connecting to Our Minecraft Server
Copy the Saas server address: minecraft.seattleacademy.org.
Step 1: Open Minecraft and click on Multiplayer
Step 2: Click Add Servers
Step 3: Enter Server Information
Enter the name of the Saas server which is also minecraft.seattleacademy.org in the Server Name box.
In the Server Address box, paste the Saas server address.
Click Done.
Step 4: Connect to the Server
Click on the server in the list and select Join Server to connect!


SIGN IN
EMAIL
PASSWORD
Stay Signed in
SIGN IN
By accessing this portal, you are agreeing to these
Terms of Use
.


Angular 2 and Typescript in action - Modules and Components
In this article I will first give you a brief introduction on Modules and Components, and then I will show you
how to code them in Angular 2 using Typescript.
Others metadata properties of a @Component are:
To clone and start the sample project type the following command in the terminal:
Browsing in the src folder of the sample project you will see the 2 following files.
As already mentioned, the selector metadata defines the HTML tag of your component, and in this case because is the root component of our app, is also the tag that we have to include in the index.html, as you can see in the index below.
With the styles properties you can define the CSS of your component, you can alternatively also define it inside the template.
The template tag define the HTML of your component, in this case is just a text but you can define also complex structure with it, just remember to avoid the error to use the ` symbol instead of the ' when you include the HTML.
TemplateUrl and styleUrls define the name of the external CSS and HTML files. The path is the relative path starting from the position of your component.
The moduleId property is necessary when you define HTML or CSS as external files because his value is used by Angular 2 to evaluate the component path before the component is constructed, without it the framework would try to load the files from the application root. Keep in mind that the value to assign to the moduleId it's different if you decide to use SystemJs as module solver instead of CommonJS as in this example.
Angular 2 architecture
Before we start to get in context I want to show you the eight fundamentals blocks of the Angular 2 architecture.- Module
- Component
- Template
- Metadata
- Data Binding
- Directive
- Service
- Dependency Injection
Module:
Angular 2 apps are composed of modules. Modularity helps you to improve the separation of concerns, and also to reduce the scope of your block of code. As a module you can export class, function and values, often modules can also be libraries of other modules. But typically a module export a class that you can import and consume in other modules, example:
cpu.ts
export class Cpu {
mhz: number;
}
computer.ts
import { Cpu } from "./cpu.ts"
export class Computer {
constructor(cpu: Cpu) {
}
}
Component:
Components are one of the three types of directive available in Angular 2:- Components directive
- Structural directives
- Attribute directives
Others metadata properties of a @Component are:
- selector
- moduleId
- viewprovider/provider
- provider
- style/styleUrls
- template/templateUrl
- directives
Prerequisites to use Angular 2
In order to write and run an Angular 2 app, you need Node.js and npm installed on your machine. If you want to know how to install both of them please follow this guide on how to install npm and Node.js .Show me the code!!
The code in this article is written in typescript. You can write Angular 2 in all the language supported by the framework, I choose typescript because remember me Java which I know well. Let’s start cloning a quick start project for Angular 2: https://github.com/magemello/angular2 -sample-project . This will save us the time needed to configure the project and will give us more time to focus on the code.To clone and start the sample project type the following command in the terminal:
git clone https://github.com/magemello/angular2-sample-project
cd angular2-sample-project
npm install
npm start
If everything is working you should see inside your browser the classic hello world text.Browsing in the src folder of the sample project you will see the 2 following files.
main.ts
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
bootstrap(AppComponent);
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
styles: ['h1 { color: red; }'],
template: `<h1>Hello world</h1>`
})
export class AppComponent {
}
In this 2 files, you can see modularity in action, the app.component.ts is exported and then imported and
consumed by the main.ts.
main.ts:
The main.ts include also the bootstrap function, it tells to Angular what is the root component of your app. In our case, the root component that has to be called is the AppComponent. As second parameter bootstrap accept an array of service provider, but now we are not interested in how services work so I will come back to this topic when we will talk about services in the upcoming articles.app.component.ts:
In this class, we see for the first time the @Component decorator, and 3 of his metadata properties in action : selector, styles and template.As already mentioned, the selector metadata defines the HTML tag of your component, and in this case because is the root component of our app, is also the tag that we have to include in the index.html, as you can see in the index below.
With the styles properties you can define the CSS of your component, you can alternatively also define it inside the template.
The template tag define the HTML of your component, in this case is just a text but you can define also complex structure with it, just remember to avoid the error to use the ` symbol instead of the ' when you include the HTML.
index.html

<title>Angular 2 Sample Project</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="css/styles.css">

<my-app>Loading...</my-app>

HTML and CSS in external files:
Put together HTML, CSS and javascript it works for small application, but doesn't scale when things get complicated. So let's see how we can move the HTML and CSS of our app.component.ts in external files. If you want to see the following code switch on the external-html-css branch of the git project that you downloaded before.
app.component.ts
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
}
app.component.html

Hello world

app.component.css
h1 {
color: red;
}
With this solution we have introduced also 3 more metadata properties : moduleId, templateUrl and
styleUrls.TemplateUrl and styleUrls define the name of the external CSS and HTML files. The path is the relative path starting from the position of your component.
The moduleId property is necessary when you define HTML or CSS as external files because his value is used by Angular 2 to evaluate the component path before the component is constructed, without it the framework would try to load the files from the application root. Keep in mind that the value to assign to the moduleId it's different if you decide to use SystemJs as module solver instead of CommonJS as in this example.


{{model.bookInfo.publisher}} (From External API, Cannot Be Modified)
{{model.bookInfo.date}} (From External API, Cannot Be Modified)
{{model.bookInfo.page}} (From External API, Cannot Be Modified)


| Alert Time | Alert Subject | |
|---|---|---|
| {{Time.format(item.timestamp)}} | {{item.alertSubject}} | Detail |
| Category | {{policy.alertDefinition.category}} |
|---|---|
| Severity | {{policy.alertDefinition.severity}} |
| Alert Subject | {{policy.alertDefinition.subject}} |
| Alert Body | {{policy.alertDefinition.body}} |
| Parallelism Hint | {{policy.parallelismHint}} |
|---|---|
| Partitions |
|
| Input Streams | |
| Output Streams |
|
| Publishers |
|
| Assigned Version | {{assignment.version}} |
|---|---|
| Assigned Queue | {{assignment.queueId}} |
| Assigned Slots |
|


I spent some time, re-investigating Javascript. After a few months of intensive TDD and SOLID training at OpenTable I was curious how those principles apply in a slightly different environment. Guess what, they do not differ that much… I planned to write about all this sometime in the future after gaining more experience from real battles ahead, however Watirmelon post invited me to attack this subject immediately.
I went through the available testing frameworks for Javascript and decided on Jasmine. Why? Mainly because of its BDD syntax which is fashionable this season. The second reason is that it has really cool documentation. Finally, the basic set up of just running an HTML file in a browser got me up and running fast.
Let’s look at the basics – what I expect from different types of tests and how Jasmine fits into those requirements:
Unit Testing
Advice from senior craftsman
- Shoot them one by one (structure your code so that it is easier to maintain)
- Be sure you kill with every shot (verify small bits of code to nail down issues)
- Kill them all (verify edge cases)
- Kill them quick (provide fast feedback on issues)
- Choose a fast shooting gun – the faster you shoot, the more enemies you will kill (unit tests must be blazing fast)
- Choose the most reliable gun – if it is stuck then you are dead (when unit tests are brittle you will stop depending on them)
- Your gun needs to be light enough to carry everywhere (unit tests are your gun, so you must be able to run them all locally)
Jasmine works great for all those aims, as it is really fast and it allows you to stub both objects and DOM elements (especially combined with a Jasmine-jQuery plugin). Keep in mind that Unit Testing is useful only if you either write new code or refactor old code. Do not ever try to write Unit Tests for existing code which you don’t intend to refactor. It’s like shooting the dead. You simply cannot kill them with another bullet.
Integration Testing
Advice from senior craftsman
- Beware of the hidden sniper (test against external dependencies like files, databases, network services)
- You are part of your squad (verify that components of the application work well together)
- Observe the environment (try to use depenedencies as close to the real problem as possible e.g. example file, database with test data, test version of an external service)
- Point in the right direction (do not try to test your stack top-down, instead concentrate on interfaces and adapters that you could not test in unit tests)
Integration tests will naturally be harder to quickly setup – they might break due to configuration problems or inaccessible external services. That’s why you don’t want to have that many of them. Still, you want to know that all your problems are due to your partner changing protocol. Once again nothing stops us from using Jasmine here.
Jasmine just executes your tests, so the tests that point towards external services, send example files to your code etc. will all be a breeze to implement with Jasmine.
Acceptance Testing
Aims
- Confirm you are fighting the right war (show specification to your product owner/manager/client)
- Keep clean supply routes (test the functionality of your app with full set up and all dependencies)
- Find hidden mines (test your application in all environments to which you deploy)
Advice from senior craftsman
- Speak in their language (use a tool which allows writing tests in natural language such as Cucumber or SpecFlow)
- Take your time (those tests will be slower, so accept that you will not always run them locally and that you will not run them every minute)
- Spend your resources wisely (acceptance tests are naturally much more brittle then other types of tests, so try to keep their number reasonably small)
This is where I would not recommend Jasmine, simply because it doesn’t fit this job. Its syntax is based on programming language, so it is harder to read by non-engineers. Jasmine allows you to execute events and call your code. However, your users will be most likely be using a browser to interact with your code, so it is much better to use a tool that also uses a browser to test your web page.
Conclusion
I find Jasmine extremely well suited for unit and integration testing. I wouldn’t use it for acceptance tests as there are quite few better tools for that job. And I guess that is the issue that Alister Scott has with Jasmine on his blog – he tried to use it for acceptance testing. In that case I wouldn’t choose Jasmine either. On the other hand I don’t like using a screwdriver to hammer a nail.
Post Scriptum (on DOM dependency)
Alister also complains about integration issues between his server-side code and client-side code. His experience is that changes to IDs and classes in MVC applications result in failing Javascript. The issue is serious and shows one important mistake, which is hardcoding dependencies. IDs and class names are configurable details and Javascript code should be agnostic of them. To illustrate let’s look at a simple test case from my pet-project:
describe("GameController", function(){
describe("During Initialize", function() {
var view;
var subject;
beforeEach(function() {
setFixtures("

");
subject = new GameView();
subject.CreateFabricInDiv("#myid");
});
it("creates fabric in div", function(){
expect($("#myid")).not.toBeEmpty();
});
it("holds pointer to canvas", function(){
expect(subject._canvas).not.toBe(undefined);
});
});
Do you see how “#myid” parameter is passed into the method call? We moved the configuration detail out from the Javascript code, which in my opinion it is the simplest solution to Alister’s problem.
If code is designed in such a way that IDs/class names are not embedded all around the codebase you can figure out quite few nice ways to keep them consistent between Javascript and server-side code.
It also helps with code re-usability as you can use the same code on two separate pages with differing IDs!