The following document contains the results of PMD 5.2.3.
| Violation | Line |
|---|---|
| Avoid unused private methods such as 'getChecksum(NmeaMessage)'. | 103 |
| Violation | Line |
|---|---|
| Useless parentheses. | 260 |
| Violation | Line |
|---|---|
| Avoid unused constructor parameters such as 'factory'. | 29 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Util.areEqual' due to existing import 'au.gov.amsa.ais.Util' | 69 |
| Violation | Line |
|---|---|
| Avoid unused constructor parameters such as 'padBits'. | 14 |
| Violation | Line |
|---|---|
| Avoid empty catch blocks | 88–90 |
| Avoid empty catch blocks | 94–96 |
| Violation | Line |
|---|---|
| Useless parentheses. | 146 |
| Violation | Line |
|---|---|
| Useless parentheses. | 37 |
| Violation | Line |
|---|---|
| Useless parentheses. | 99–100 |
| Avoid empty catch blocks | 109–113 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'EffectiveSpeedChecker.effectiveSpeedOk' due to existing import 'au.gov.amsa.geo.distance.EffectiveSpeedChecker' | 130 |
| Useless parentheses. | 165 |
| Useless parentheses. | 189 |
| Violation | Line |
|---|---|
| These nested if statements could be combined | 82–83 |
| Violation | Line |
|---|---|
| Too many static imports may lead to messy code | 1–240 |
| Avoid unused private methods such as 'toRegion()'. | 53 |
| Unnecessary use of fully qualified name 'Observable.empty' due to existing import 'rx.Observable' | 104 |
| Violation | Line |
|---|---|
| Avoid empty catch blocks | 68–70 |
| Violation | Line |
|---|---|
| Avoid empty if statements | 128–131 |
| Avoid empty if statements | 156–158 |
| Avoid modifiers which are implied by the context | 203–209 |
| Useless parentheses. | 272–273 |
| Violation | Line |
|---|---|
| Useless parentheses. | 25 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Optional.absent' due to existing import 'com.google.common.base.Optional' | 130 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 132 |
| Unnecessary use of fully qualified name 'Optional.absent' due to existing import 'com.google.common.base.Optional' | 150 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 152 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Optional.absent' due to existing import 'com.google.common.base.Optional' | 64 |
| Avoid unused private fields such as 'EQUAL_ID'. | 158 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 22 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 114 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 315 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 323 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 480 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 487 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 535 |
| Violation | Line |
|---|---|
| Useless parentheses. | 66 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 110 |
| Violation | Line |
|---|---|
| Unnecessary use of fully qualified name 'Optional.fromNullable' due to existing import 'com.google.common.base.Optional' | 21 |
| Violation | Line |
|---|---|
| Avoid unused private methods such as 'toVesselPosition()'. | 103 |
| Avoid unused local variables such as 'r'. | 407 |
| Useless parentheses. | 436 |
| Avoid empty catch blocks | 492–493 |
| Avoid unused private methods such as 'sortFiles()'. | 508 |
| Violation | Line |
|---|---|
| Useless parentheses. | 44 |
| Violation | Line |
|---|---|
| Avoid unused method parameters such as 'num'. | 61 |
| Violation | Line |
|---|---|
| Unnecessary final modifier in final class | 139–153 |
| Violation | Line |
|---|---|
| Avoid unused method parameters such as 'cls'. | 103 |
| Violation | Line |
|---|---|
| Avoid empty catch blocks | 83–85 |
| Violation | Line |
|---|---|
| Useless parentheses. | 184–185 |
| Useless parentheses. | 342 |
| Useless parentheses. | 343 |
| These nested if statements could be combined | 364–369 |
| Useless parentheses. | 395 |
| Avoid modifiers which are implied by the context | 417–421 |
| Violation | Line |
|---|---|
| Avoid modifiers which are implied by the context | 66–69 |
| Violation | Line |
|---|---|
| Useless parentheses. | 63 |
| Useless parentheses. | 64–66 |
| Useless parentheses. | 64–66 |
| Violation | Line |
|---|---|
| Avoid unused method parameters such as 'metrics'. | 153 |
| Avoid unused method parameters such as 'h'. | 154 |
| Violation | Line |
|---|---|
| An operation on an Immutable object (String, BigDecimal or BigInteger) wont change the object itself | 74 |
| Violation | Line |
|---|---|
| Too many static imports may lead to messy code | 1–585 |
| Violation | Line |
|---|---|
| Avoid unused constructor parameters such as 'bufferSize'. | 56 |
| Violation | Line |
|---|---|
| Avoid unused imports such as 'com.vividsolutions.jts.awt.PointShapeFactory.X' | 32 |
| Violation | Line |
|---|---|
| Avoid empty catch blocks | 71–73 |
| Unnecessary use of fully qualified name 'Optional.absent' due to existing import 'com.google.common.base.Optional' | 165 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 167 |
| Unnecessary use of fully qualified name 'Optional.absent' due to existing import 'com.google.common.base.Optional' | 173 |
| Unnecessary use of fully qualified name 'Optional.of' due to existing import 'com.google.common.base.Optional' | 175 |
| Violation | Line |
|---|---|
| Avoid empty catch blocks | 59–61 |
| Violation | Line |
|---|---|
| Avoid unused local variables such as 'sameModel'. | 72 |


Download Android Studio And Sdk Tools Android Developers
Download Android Studio 2 3 2 Portable 32bit 64bit New Youtube
Android Studio 4 1 3 Download Techspot
Download Android Studio 2 3 3 For Windows 7 32 Bit Christianclever
Download Android Studio For Pc 32 Bit Renewcrafts
Android Studio For Beginners Part 1 Installation And Setup Infoworld
How To Install Android Studio In Windows 7 32 Bit Properly And Completely Latest 2018 Youtube
Android Studio 3 1 Download For Windows 7 32 Bit Brownindia
Download Android Studio 3 1 Free All Pc World
Install Android Studio Android Developers
How To Download Android Studio On 32 Bit Windows Youtube
Android Studio Download 2021 Latest For Windows 10 8 7
Android Sdk Download For Windows 7 32bit Everrealty
Android Studio Free Download Getintopc Free
Android Studio 3 0 Download For Windows 8 1 32 Bit Abctk
Download Android Studio 2 0 For Windows 7 32 Bit Lasvegasrenew
Https Encrypted Tbn0 Gstatic Com Images Q Tbn And9gcsehe36jjaay7y3cajrmbb0ce5gdht60 Edkue Nx W37cc3qdn Usqp Cau
How To Download And Install Android Studio On Windows 10
Setting Up Android Sdk And Ndk For Unreal Unreal Engine Documentation
Android Studio Free Download For Windows Xp 32 Bit Zombierenew
Android Studio For Windows 32 Bit Free Download
Android Studio 3 0 Download For 32 Bit Brownholidays


We are happy to help you. Please see if your question is covered in the FAQs below. If you don't find solution to your problem on this page, please contact us.
There are no questions added yet in the knowledge base yet.


Please agree to our policy Please agree to our policy!
Please select a jungle noun Buga Baga Oi
Please select at least two fruits Banana Apple Peach Turtle
Please select no more than two vergetables Potato Tomato Salad
Please select at least two cars, but no more than three Mercedes SL Opel Corsa VW Polo Titanic Skoda


Improve your file type checker’s pattern match logic by rewriting the pattern search algorithm. Use some of the advanced algorithms you have learned so far like the Knuth-Morris-Pratt algorithm. Check your program’s search performance with some huge file. Compare your improved search engine with a naive implementation. If you’re a Linux user, you can use "time"
for measuring execution time, (see man time
for details). Otherwise, you can use nanoTime()
from the java.lang.System
class. Check the official documentation.
Your program should accept another argument, that represents an algorithm - a naive implementation that you implemented in the previous step marked as --naive
and KMP algorithm marked as --KMP
. Other arguments should be parsed after this one - file name, pattern and file type.
First, we checked the naive implementation, and it took roughly 5 seconds. Then KMP showed 5 times better performance. You should expect similar behavior from your program.
java Main --naive huge_doc.pdf "%PDF-" "PDF document"
PDF document
It took 5.011 seconds
java Main --KMP huge_doc.pdf "%PDF-" "PDF document"
PDF document
It took 1.037 seconds
java Main --naive pic.png "%PDF-" "PDF document"
Unknown file type
It took 3.641 seconds
java Main --KMP pic.png "%PDF-" "PDF document"
Unknown file type
It took 0.469 seconds


I am a front-end developer, a student of Kyiv National University of Trade and Economics. I getting education related to the development and testing of software for economic purposes and not only.
The work I provide is of highest quality, fully responsive, and tested in a wide range of devices. I take great care to ensure each project is optimized and easily maintainable so you can enhance a website as your company grows.
I create responsive websites that allow the user to experience your website in the best and most appropriate way suited to the device they are using. By working using progressive enhancement, your website is delivered with a responsive layout that can best make use of the space available on the smallest to largest devices.
All created websites are created by the layout.
All created sites have a responsive design
Each site is a brand
Landing page is the best kind of business site.
2
PROJECT COMPLATED
10
HAPPY CLIENTS
151
CUPS OF COFFEE
170
HOURS OF WORK


Belts Department
We dont have any belts for ya:
Random belt
I wonder
What kinda names !!!ON SALE!!!

Clearance


WITNESS LIST Higher Education Committee March 24, 2003-2:30P HB 85 On: Dickey, M.D., Nancy W. (A&M University System Health Science Center) Guckian, M.D., James (University of Texas System) HB 796 For: Aguero, Robert (Dallas County Community College District) Ellis, Cissy (Career Colleges & Schools of Texas) Hodges, Patricia (Self) Against: Gorth, Dr. William (National Evaluation Systems, Inc.) Hempstead, Chuck (Texas Association of College Teachers) Leonard, Mary (Self) Martinez, Dorothy (Self) Noack, Sibyl (Self) Quereau, Tobin (Self) Segura, Dolores (Self) On: Flack, Teri (Texas Higher Education Coordinating Board) Gooden, Dr. Cherry Ross (Texas Southern University) Thomas, Dr. Gayla B. (Texas Southern University) HB 882 For: Bosworth, Erin (Stephen F. Austin State University S.G.) On: Westbrook, Steve (Stephen F. Austin University) HB 944 For: Freeman, Dr. James A. (St. Thomas' Episcopal School, Houston Texas) Lambert, Tim (Texas Home School Coalition)


OpenGreekAndLatin/First1KGreek Diff: Comment on Github Started: 2017-05-23 12:47:04.030682 sonofmun @668dfefb Coverage 100.0 Texts 651/651 Travis Build Link Github Comment Link Metadata 725/725 Citation Nodes 118586 Words [eng] 228834 Words [grc] 17365506 Words [deu] 161465 Words [lat] 357980


|
|
COMPUTER STUDIES
1999
QUESTION AND ANSWER BOOKLET
MODEL ANSWERS
ANSWERS ARE GIVEN IN PLAIN TYPE.
COMMENTS AND GUIDELINES ARE GIVEN IN ITALICS
Time Allowed: 2 hours
INSTRUCTIONS
1. Before you start, write your candidate code on this page and on the back flap.
2. Attempt ALL questions.
3. The answer sheet for Section A is found on the fold out flap on the last page of this booklet. Answers for Section B are to be written on the spaces provided in this booklet.
4. The paper is marked out of 100 and marks are apportioned as follows:
|
Section |
Comments |
Marks |
Suggested Time |
|
A |
There are 20 Multiple Choice questions. |
20 |
24 minutes |
|
B |
There are 5 Short Answer questions. All are compulsory. |
80 |
96 minutes |
SECTION A: MULTIPLE CHOICE
(20 Marks)
Answer all questions.
Write the LETTERS of the best answers in the boxes on the back flap.
If you change your mind, put a line through the first answer and write your new choice beside the box.
1. Computers contain a microprocessor. A microprocessor is
A. a set of instructions in Machine Code.
B. a part of the Basic Input Output System (BIOS).
C. a large scale integrated circuit made from silicon.
D. a video display system developed before computer technology.
2. A mouse belongs to which category ?
A. Software
B. Hardware
C. Firmware
D. Shareware
3. ROM is used for storing
A. overflow from RAM.
B. temporary information only.
C. output from the Central Processing Unit.
D. instructions for the start up sequence of a computer.
4. A Hard Disk stores information as a sequence of
A. electrical pulses.
B. magnetic dipoles.
C. light and dark optical barcodes.
D. up and down steps in the disk surface.
5. A back-up should be created for all important files. This can be done by
A. printing the files.
B. copying the files into RAM.
C. moving the files to a new directory (folder).
D. copying the files onto a floppy disk or other external storage device.
6. A menu is a device that
A. issues commands to a computer.
B. receives output from a computer.
C. processes long lists of data with a computer.
D. never sends information to the operating system of a computer.
7. You have a file called test1 on a floppy disk. You use the operating system to copy it to the directory (folder) called form6 on the hard drive. When you finish you will have
A. only one file called test1.
B. two separate files both called test1.
C. two separate directories both called form6.
D. an error message because the operating system cannot do this.
8. Directories (folders) let a computer operator
A. open a file directly.
B. store files in a logical and ordered way.
C. create new files whenever she wants to.
D. save all new files in the root of a floppy disk.
9. Which structure shows the document trees.doc saved in the forest directory (folder) on the a: drive?
A. a:\forest\trees.doc
B. trees.doc\forest\a:
C. a:\trees.doc\forest
D. trees.doc:forest:a:
10. Software companies (like Microsoft) are the only ones permitted to copy and distribute their software. This is because they own the
A. copyright.
B. distribution channels.
C. floppy disk on which the software is saved.
D. computer on which the software was created.
11. While using a word processor you highlight some text and choose cut from the edit menu. What happens ?
A. Nothing at all.
B. The highlighted text disappears from the computer altogether.
C. The highlighted text is removed from the screen and placed on the clipboard.
D. The highlighted text remains on the screen and is also placed on the clipboard.
12. Which tab is needed to correctly align numbers in a column?
A. Left
B. Right
C. Decimal
D. Justified
QUESTIONS 13 TO 16
The actual entries in the cells of a spreadsheet are shown in the diagram.
|
A |
B |
C |
|
|
1 |
Name |
Amount |
Tax |
|
2 |
Moala |
$10.00 |
=B2*0.1 |
|
3 |
Seth |
$54.00 |
=B3*0.1 |
|
4 |
Jones |
$35.20 |
=B4*0.1 |
|
5 |
13. What is the entry in Cell B2 known as?
A. Data
B. A label
C. A formula
D. A calculation
14. If the total tax is to be calculated in cell C5 which of the following entries will do this correctly?
A. = A4+B4+C4
B. = SUM(C2:C4)
C. = SUM(B2:B4)
D. =C1+C2+C3+C4
15. Cell C3 is copied and pasted to cell B5. What is the actual entry that is written to cell B5?
A. =B3*0.1
B. =B3*C3
C. =A5*B5
D. =A5*0.1
16. In this spreadsheet which cell contains an absolute reference to another cell?
A. Cell A2
B. Cell B3
C. Cell C4
D. No cell
QUESTIONS 17 TO 20
A list of equipment used in a school includes the following three items. These are shown entered into a database.
|
ITEM |
SIZE |
LOCATION |
QUANTITY |
|
Desk |
2 seater |
Room 5 |
15 |
|
Chair |
1 seater |
Library |
30 |
|
Chalk |
1 box of 100 sticks |
Room 1 |
500 |
17. What are the columns and rows called in a database?
A. Fields and Records
B. Records and Fields
C. Fields and Strings
D. Strings and Fields
18. The ITEM column is sorted in a descending alphabetical order. In what order will the items now be listed?
A. Desk, Chair, Chalk
B. Chalk, Chair, Desk
C. Desk, Chalk, Chair
D. Chair, Chalk, Desk
19. Why is a database used in this situation instead of a spreadsheet?
A. Because the data is easier to display in a database.
B. Because calculating with the data is the greatest priority.
C. Because processing non-numeric data is the greatest priority.
D. Because it requires less time to enter the information into a database.
20. What type of data is entered into the QUANTITY column in the database?
A. Text
B. Numeric
C. Calculation
D. Alphanumeric
SECTION B: SHORT ANSWERS
(80 marks)
QUESTION ONE
(a) A school in the tropical South Pacific decides it must buy a computer. This computer will be used to help run the school. Write a list of four hardware specifications that the computer should have.
Any four of : HDD (any size); 1.44MB FDD; SVGA monitor; video RAM; Video card; RAM (any size); CD-ROM drive (any speed); printer; keyboard (any specification); modem (any sort)
Any other sensible hardware specification should receive credit. Students MUST have ANY two correct to get ONE mark, and any FOUR correct to get 2 marks. (Half marks must NOT be awarded)
(2 marks)(b) The school will keep a lot of its information on the computer.
(i) Which computer device is used for long term storage of information?
The Hard Disk or Hard Drive or HDD; or Floppy Disk or FDD or Floppy Drive; or magnetic tape or magnetic drive; or R/W CD ROM
(1 mark)(ii) Describe one physical way that the stored information of question 1 (b) (i) can be damaged.
This answer must link with the previous one.Magnetic media can be damaged by:
Putting magnets near it OR Placing near a source of Heat eg the sun OR by strong vibration causing the heads to scratch the disk surface. CD ROMS can be damaged by scratching; OR by sweaty fingerprints (longterm).Viruses and delete commands are NOT acceptable answers (1 mark)
(iii) Information cannot be stored long term in RAM because RAM is volatile. What does volatile mean?
The information in it disappears when the power is turned off
(1 mark)
(c) The school buys the computer. When the Principal unpacks it the back of the machine looks like this.
Name the component whose lead should be connected to the socket labelled:
(i) serial
Mouse
(1 mark)
(ii) parallel
printer
(1 mark)
(iii) 230vAC
Power, OR mains, ORElectricity supply (etc)
(1 mark)
(d) The Principal decides to put the computer in the staff room so staff can use it.
(i) Explain why this room should be air conditioned.
To stop mildew (fungus, mold) growing on the disks OR to stop floppy disks from
being damaged by moisture
(1 mark)
(ii) Give two reasons why the Principal should also install a UPS.
1.
To prevent damage to computer by voltage spikes or power surges or lightningstrikes
(1 mark)
2. To prevent loss of information due to main power supply failure
(1 mark)
(e) The schoolís computer needs to store files relating to different aspects of the school. These include: the canteen; Principalís letters; school accounts; and subject departments. The Principal has letters coming in and going out. Subject departments are English, Mathematics, Science, and Geography.
(i) Draw a suitable directory (folder) structure for this school. Include the root directory (folder) in your diagram. Draw your diagram in the space below.
(3 marks)
c:\
canteen
principal in
out
accounts
subjects English
Mathematics
Science
Geography
The above diagram may vary, but it must be SENSIBLY STRUCTURED to cover all directories and subdirectories shown. Long directory names are acceptable. The root directory can be called any name, it does NOT have to be shown as c:\
Marks awarded for:
1 for showing root directory (folder) in correct position at top of tree
1 for showing 4 main directories
1 for showing 2 subdirectories in "principal" and 4 subdirectories in "subjects"
(ii) The Mathematics Department saves a file test.doc on the computer. Write the complete path, according to your diagram in question 1 (e) (i), for the best place to store this file.
This MUST follow the structure of the studentís tree diagram. eg in the diagram above the answer is c:\subjects\mathematics\test.doc
(1 mark)
(iii) The file test.doc is still open. Describe how you would copy this file to a floppy disk without closing it.
Use the SAVE AS command from the FILE menu.
NO OTHER answer is acceptable.
(1 mark)
QUESTION TWO
A school in the South Pacific purchases a new computer. The computer is delivered to the school with its operating system already installed.
(a) (i) What is an operating system ?
Software which controls the way the computer operates.
1 mark for concept of software; 1 mark for concept of control
(2 marks)
(ii) Name one operating system.
Any known OS
. eg Windows, MSDOS, Linux, Unix, MacOS, OS/2, warp(1 mark)
(iii) Describe how the Principal would use the operating system to copy a file from the hard drive onto a floppy disk.
Either Drag and Drop icons in a GUI OS; OR issue a copy command with paths
from a command line interface OS.
(1 mark)
(b) The internal clock on the computer was not set to the correct local time when it was delivered. Describe how the clock could be adjusted to the correct time.
Either open the calendar utility on the GUI OS and adjust with the mouse
OR use the DATE and TIME commands from a Command Line Interface OS.
(1 mark)
(c) The following day the Principal turns on the computer. An error message appears that says the computer is trying to boot from a Non System Disk. The computer stops its boot sequence and waits.
(i) What is causing the problem?
A floppy disk which does NOT contain the system files is in the floppy drive
(1 mark)
(ii) If the fault is not corrected, what would happen if the computer was re-started using a warm reboot?
The same error message would re-appear
(1 mark)
(iii) How can the Principal correct the error that is causing the error message?
Take out the floppy disk from the floppy drive and reboot the computer.
(1 mark)
(d) The Principal gets the computer working properly and then uses a CD-ROM encyclopedia to do some research about computer systems.
(i) What does CD-ROM stand for?
compact disk read only memory
(1 mark)
(ii) The Principal finds a diagram in the encyclopedia about computer systems. This diagram is shown below, but it is not complete. Read the diagram below and fill in each of the spaces labeled A to F with the name of one item that fulfills that category (3 marks)
(iii) The arrow on the diagram shows how information flows between two parts of the computer. Draw in four more arrows on the diagram to show how information flows between the bus and the other parts of the computer.
Arrows as shown. Must be in directions shown. 1 mark for two arrows correct. 2 marks for four arrows correct (2 marks)(e) The Principal wishes to make a bootable disk for the computer. Describe how this can be done with an unformatted 3.5" floppy disk.
Format the floppy disk using either the GUI operating system, or the command line interface (eg MSDOS) 1 mark
Copy the system files to the disk. 1 mark
QUESTION THREE
A school in the South Pacific buys a new computer. The school then starts to use this new machine.
(a) One day a staff member tries to save a file onto his own floppy disk. Suddenly this message appears on the screen:
Warning: the boot block of the floppy disk in the floppy drive is infected with the appolyon virus!!
(i) What type of application produced this message?
A virus checker
(1 mark)
(ii) Describe one thing the staff member can do to remove the appolyon virus.
Either: remove it with the virus checker. OR re-format the disk
(1 mark)
(iii) Describe one advantage of the removal method you described in question (3) (a) (ii).
Matching the above answer to (ii):
Either: keeps the information contained on the disk; OR destroys ALL possible viruses off the disk.(1 mark)
(b) The school makes a policy that it will not allow any pirated software to be used on its computer.
(i) Explain what pirated software means.
Copies of programs and/or files made without the ownerís permission, OR copies
made without paying for them
(1 mark)
(ii) Give two reasons why a school might make such a policy.
Any two of the following reasons are acceptable (there may be others not listed here that are considered good reasons):
To abide by copyright laws; To avoid prosecution; To act as role models for students so that no student will be allowed to use pirated software; To ensure software is virus free when installed; To get access to advice and support from software suppliersí helplines;
(2 marks)
(c) When buying the computer the school was supplied with a printer and associated printer driver on disk. They looked like this.
(i) Circle the picture of the item that contains only software.
(1 mark)
(ii) Explain why the software in question 3 (c) (i) is system software.
It is software that controls the way in which the computer operates.
OR Software that the OS uses to operate a piece of hardware
(1 mark)
(d) The Principal creates a message using a wordprocessor. Here is the message. It is shown actual size.
Reminder to
all staff members
Remember to meet in the libbrary today
after school.
(i) Describe one difference in thefonts used in the message.
Either
Different font faces ( OR type faces) OR Different font sizesAny answer that expresses one of these concepts gets the mark.
(1 mark)(ii) The first paragraph is double spaced. What line spacing did the Principal use in the second paragraph?
Single No other answer is acceptable
(1 mark)
(iii) When the Principal runs the spelling checker on her document what message appears?
The word library (libbrary) is misspelt.
(1 mark)
(iv) Describe the paragraph formatting that has been applied to the first paragraph.
Centred and underlined.
It is also double space, but this is NOT an acceptable answer because this is
already told to the candidate in a previous part of this question.
(2 marks)
(v) The Principal experiments with the format of the message. She adjusts the look of the words "Reminder to". In the table below draw a line from the text to the correct format description. (The first one is done for you.)
(1 mark)
TEXT FORMAT
plain
clean and healthy bold
clean and healthy
underline clean and healthy italic
clean and healthy superscript
clean and healthy strikethrough
subscript
The diagram must be FULLY correct to gain the mark.
(vi) How can you tell that centre formatting has been applied to the diagram in the message?
The lines of text are the same distance from both sides of the page.
(1 mark)
(vii) Explain why the notice should be saved before attempting to print it.
If an error occurs during printing then the file is recoverable, and the printing task can be repeated. OR It is always good practice to save work regularly.
(1 mark)
QUESTION FOUR
A school in the South Pacific buys a new computer.
(a) The school canteen decides to keep its business records on a spreadsheet on the computer. The canteen sells bags of peanuts for 20 cents each. These bags of peanuts cost the canteen 7 cents each. On the chart below show the entries in a spreadsheet that could be used to calculate the profit for each bag sold. Make sure you label the entries correctly.
1 mark for having sensible labels; 1 mark for 3 correct data entries; 1 mark for correct formula. The spreadsheet can have the labels in column A, and the data and formula in Column B and still gain full marks.
(3 marks)
|
A |
B |
C |
D |
|
|
1 |
ITEM |
COST PRICE |
SELLING PRICE |
PROFIT |
|
2 |
Peanuts |
$0.07 |
$0.20 |
= C2 - B2 |
|
3 |
||||
|
4 |
(b) The canteen keeps a record of the number of bags of peanuts sold each day for a week. Here is the information as it appears on the screen of the computer in a spreadsheet application:
|
A |
B |
C |
D |
|
|
1 |
WEEK ONE |
ITEMS SOLD |
||
|
2 |
DAY |
PEANUTS |
||
|
3 |
Mon |
25 |
||
|
4 |
Tue |
40 |
||
|
5 |
Wed |
38 |
||
|
6 |
Thu |
17 |
||
|
7 |
Fri |
24 |
||
|
8 |
TOTAL |
144 |
||
|
9 |
AVERAGE |
|||
(i) Describe the function that is entered into cell B8.
The SUM function should be used; OR use = sum(B3:B7); OR use SUM(B3:B7)
The formula B3+B4+B5+B6+B7 is NOT acceptable.
(1 mark)
(ii) Write down a suitable entry that will give the required answer in cell B9.
Average(B3:B7) or equivalent; OR (B3+B4+B5+B6+B7)/count(B3:B6);
OR B3+B4+B5+B6+B7)/5 OR B8/5
(2 marks)
(c) The canteen also keeps a record of the number of ice blocks sold. Here is the information:
Mon 15; Tue 12; Wed 21; Thu 19; Fri 1121.
(i) Which number is probably incorrectly recorded?
1121
(1 mark)
(ii) Explain why you think this number is wrong.
It is extremely large compared to the other numbers.
The concept of checking data for accuracy is being tested here. Other answers will give this concept, and hence gain the mark.
(1 mark)
(d) The canteen soon expands its spreadsheet to include other sales. Here is the expanded sheet:
|
A |
B |
C |
D |
E |
|
|
1 |
WEEK ONE |
ITEMS SOLD |
|||
|
2 |
DAY |
PEANUTS |
PIES |
BONGOS |
CHIPS |
|
3 |
Mon |
25 |
8 |
15 |
29 |
|
4 |
Tue |
40 |
4 |
13 |
35 |
|
5 |
Wed |
38 |
10 |
14 |
26 |
|
6 |
Thu |
17 |
13 |
12 |
43 |
|
7 |
Fri |
24 |
9 |
16 |
39 |
|
8 |
TOTAL |
144 |
|||
|
9 |
AVERAGE |
||||
|
10 |
(i) Explain why the numbers shown in the spreadsheet are formatted with zero decimal places.
All items sold are in whole numbers. Ie No fractions are involved in any item.
(1 mark)
(ii) The formula
=max($B$3:$B$7)
is entered into cell B10. It is then spread across to cell E10. What value actually appears in cell E10?
40
(1 mark)
(iii) Write down the correct formula that should have been placed in cell B10 in the first instance.
MAX(B3:B7) OR MAX(B$3:B$7)
(1 mark)
(iv) Explain the difference between absolute cell references and relative cell references.
Absolute references ALWAYS refer to the same cell no matter where a cell containing a reference is copied and pasted on the spreadsheet. However Relative references always refer to a cell the same distance away on the spreadsheet, and so the reference changes when the cell is cut and pasted.
(1 mark)
(e) The canteen calculates its profit for the week by entering some calculations at the bottom of the spreadsheet. These are shown in the diagram below.
|
A |
B |
C |
D |
E |
|
|
1 |
WEEK ONE |
ITEMS SOLD |
|||
|
2 |
DAY |
PEANUTS |
ROLLS |
BONGOS |
CHIPS |
|
3 |
Mon |
25 |
8 |
15 |
29 |
|
4 |
Tue |
40 |
4 |
13 |
35 |
|
5 |
Wed |
38 |
10 |
14 |
26 |
|
6 |
Thu |
17 |
13 |
12 |
43 |
|
7 |
Fri |
24 |
9 |
16 |
39 |
|
8 |
TOTAL |
144 |
|||
|
9 |
AVERAGE |
||||
| 10 | |||||
|
11 |
Profit per sale |
$0.13 |
$0.54 |
$0.35 |
$1.05 |
|
12 |
Weekly Profit |
= B8*B11 |
|||
|
13 |
The formula
= B8 * B11
is entered into cell B12, as shown. This is then spread to cell E12.
(i) On the spreadsheet on page 18 draw one rectangular box around all the cells that should be formatted as currency.
(ii) What format has been applied to the labels in the spreadsheet?
Bold and Centred Both descriptions are necessary to gain the mark
(1 mark)
(iii) Suppose the profit on each sale of peanuts can be increased by 2 cents if a different supplier is used. Describe how the canteen could run a what-if analysis on their spreadsheet to find the new weekly profit.
Enter the value 0.15 into cell B11
(1 mark)
(iv) Describe how the canteen could use the spreadsheet to create a pie graph showing how each product contributes to the weekly profit.
EITHER: Highlight the cells B12 to B15 and use the graph maker of the spreadsheet.
OR: specify the menus and submenus that are used by the spreadsheet in order to make a pie graph
(1 mark)
QUESTION FIVE
A school in the South Pacific buys a new computer to help run the school.
The Head of Science puts information about the Science Departmentís equipment into a database on the computer.
The table on this page is a small part of the information in the database of Science Department equipment..
|
Room |
Subject |
Item |
Quantity |
Date purchased |
|
9 |
Physics |
Tickertimer |
5 |
1 Feb 85 |
|
10 |
Physics |
Spring |
10 |
12 May 94 |
|
10 |
Chemistry |
Test-tube |
148 |
2 Mar 98 |
|
9 |
Biology |
Scalpel |
5 |
6 Jul 84 |
|
8 |
Chemistry |
Boiling Flask |
24 |
15 Nov 89 |
|
8 |
Biology |
Aquarium |
3 |
30 Apr 90 |
|
10 |
Biology |
Hand Lens |
16 |
3 May 98 |
|
9 |
Chemistry |
Bunsen Burners |
7 |
12 Jun 79 |
|
8 |
Physics |
Trolley |
2 |
9 Oct 96 |
(a) (i) Describe one advantage in using a database for such a task.
Any sensible answer is awarded the mark. Examples of acceptable answers are:
It is easy to sort information; It is easy to select only certain parts of the information; It is possible to get reports of subsets of data; IT is a way of handling large amounts of data and making sense of it. (1 mark)(ii) On the table above draw a rectangle around any one complete record.
Any ONE record (row). It must be completely drawn from one side of the table to the other
(1 mark)(iii) Based on the table above what size should the Subject field be?
9 (Nine)
(1 mark)
(iv) What type of field is the Quantity field?
Numeric
(1 mark)
(v) If the Date Purchased field is sorted in ascending order which Item appears at the top of the Item field?
Bunsen Burners
(1 mark)
(b) (i) The Head of Science wants a hard copy of all Physics equipment listed in alphabetical order. Describe the three steps needed to achieve this.
1.
Select Physics from the "Department" field2.
Sort the "Item" field in ascending order3.
Print a reportThe SELECT and SORT processes can occur at any stage. The Print process must be the last one.
(3 marks)
(ii) Use only the information given in the table on page20. Write down one possible way the report of question 4 (b) (i) could look.
|
Room |
Subject |
Item |
Quantity |
Date purchased |
|
10 |
Physics |
Spring |
10 |
12 May 94 |
|
9 |
Physics |
Tickertimer |
5 |
1 Feb 85 |
|
8 |
Physics |
Trolley |
2 |
9 Oct 96 |
The only field actually required is the ITEM field. Any answer that contains the 3 ITEMS (but only these 3 ITEMS) in correct order is awarded the mark. The order of the fields is unimportant.
(1 mark)
(c) The Head of Science wants to find all the Chemistry equipment that is stored in Room 9. To do this she applies these conditions to the database:
Subject = "Chemistry" AND Room = "9"
(i) Explain what the logical AND statement does in this situation.
It selects information that fulfills BOTH criteria. The data selected will include both "Chemistry" as the "Subject" and "9" as the "Room".
(1 mark)
(ii) How many records from the table shown on the previous page are selected by this query?
ONE (1)
(1 mark)
(d) The Head of Science wants to know if any equipment is older than 15 years. Describe in general how this could be done using the database she made.
Perform a query that selects records in the "Date Purchased" field with a date greater than 15 years ago.OR The actual date must be less than 1984 Any answer that expresses the concepts of
comparison and selection by the correct criterion gains the mark.(1 mark)
(e) The Head of Science needs to find all the equipment purchased in 1998. She gets an appropriate report from the database. This is what the report looks like:
EQUIPMENT PURCHASED IN 1998
ROOM ITEM QUANTITY
10 Test tubes 100
10 Hand Lens 15
(i) Explain why the report has only three fields in it.
These fields are the only ones required to get the answer to the original question (which was "What equipment was purchased in 1998).
(1 mark)
(f) Databases can be useful in many real-life situations.
.(i) Name one database program.
Any correct answer gets the mark.
Eg Access, MSWorks, foxpro, paradox etc(1 mark)
(ii) Give one example where a database would be a useful tool to employ.
Any situation which involves the sorting and /or selection of data from a large amount of information. Eg
constructing a telephone directory; membership lists; school rolls;(1 mark)
(iii) Explain why it is important to keep data in a database up to date.
Any answer that expresses the idea that data needs to be current for it to have any value, gains the mark
(1 mark)
|
|
ANSWER SHEET
MULTIPLE CHOICE
Remember you are to write the letter
of the correct answer only. Marker Use Only
|
Question No. |
Mark |
|
1 |
16 |
|
2 |
16 |
|
3 |
16 |
|
4 |
16 |
|
5 |
16 |
|
M/C |
20 |
|
TOTAL |
100 |


Class: Aws::Honeycode::Types::Cell
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-honeycode/lib/aws-sdk-honeycode/types.rb |
Overview
An object that represents a single cell in a table.
Constant Summary
Instance Attribute Summary
-
#format ⇒ String
rw
The format of the cell.
-
#formatted_value ⇒ String
rw
The formatted value of the cell.
-
#formatted_values ⇒ Array<String>
rw
A list of formatted values of the cell.
-
#formula ⇒ String
rw
The formula contained in the cell.
-
#raw_value ⇒ String
rw
The raw value of the data contained in the cell.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#format ⇒ String
(rw)
The format of the cell. If this field is empty, then the format is either not specified in the workbook or the format is set to AUTO.
# File 'gems/aws-sdk-honeycode/lib/aws-sdk-honeycode/types.rb', line 446
class Cell < Struct.new( :formula, :format, :raw_value, :formatted_value, :formatted_values) SENSITIVE = [:formula] include Aws::Structure end
#formatted_value ⇒ String
(rw)
The formatted value of the cell. This is the value that you see displayed in the cell in the UI.
Note that the formatted value of a cell is always represented as a string irrespective of the data that is stored in the cell. For example, if a cell contains a date, the formatted value of the cell is the string representation of the formatted date being shown in the cell in the UI. See details in the rawValue field below for how cells of different formats will have different raw and formatted values.
#formatted_values ⇒ Array
<String
> (rw)
A list of formatted values of the cell. This field is only returned when the cell is ROWSET format (aka multi-select or multi-record picklist). Values in the list are always represented as strings. The formattedValue field will be empty if this field is returned.
#formula ⇒ String
(rw)
The formula contained in the cell. This field is empty if a cell does not have a formula.
# File 'gems/aws-sdk-honeycode/lib/aws-sdk-honeycode/types.rb', line 446
class Cell < Struct.new( :formula, :format, :raw_value, :formatted_value, :formatted_values) SENSITIVE = [:formula] include Aws::Structure end
#raw_value ⇒ String
(rw)
The raw value of the data contained in the cell. The raw value depends on the format of the data in the cell. However the attribute in the API return value is always a string containing the raw value.
Cells with format DATE, DATE_TIME or TIME have the raw value as a floating point number where the whole number represents the number of days since 1/1/1900 and the fractional part represents the fraction of the day since midnight. For example, a cell with date 11/3/2020 has the raw value "44138". A cell with the time 9:00 AM has the raw value "0.375" and a cell with date/time value of 11/3/2020 9:00 AM has the raw value "44138.375". Notice that even though the raw value is a number in all three cases, it is still represented as a string.
Cells with format NUMBER, CURRENCY, PERCENTAGE and ACCOUNTING have the raw value of the data as the number representing the data being displayed. For example, the number 1.325 with two decimal places in the format will have it's raw value as "1.325" and formatted value as "1.33". A currency value for $10 will have the raw value as "10" and formatted value as "$10.00". A value representing 20% with two decimal places in the format will have its raw value as "0.2" and the formatted value as "20.00%". An accounting value of -$25 will have "-25" as the raw value and "$ (25.00)" as the formatted value.
Cells with format TEXT will have the raw text as the raw value. For example, a cell with text "John Smith" will have "John Smith" as both the raw value and the formatted value.
Cells with format CONTACT will have the name of the contact as a formatted value and the email address of the contact as the raw value. For example, a contact for John Smith will have "John Smith" as the formatted value and<EMAIL_ADDRESS>as the raw value.
Cells with format ROWLINK (aka picklist) will have the first column of the linked row as the formatted value and the row id of the linked row as the raw value. For example, a cell containing a picklist to a table that displays task status might have "Completed" as the formatted value and "row:dfcefaee-5b37-4355-8f28-40c3e4ff5dd4/ca432b2f-b8eb-431d-9fb5-cbe0342f9f03" as the raw value.
Cells with format ROWSET (aka multi-select or multi-record picklist) will by default have the first column of each of the linked rows as the formatted value in the list, and the rowset id of the linked rows as the raw value. For example, a cell containing a multi-select picklist to a table that contains items might have "Item A", "Item B" in the formatted value list and "rows:b742c1f4-6cb0-4650-a845-35eb86fcc2bb/ [fdea123b-8f68-474a-aa8a-5ff87aa333af,6daf41f0-a138-4eee-89da-123086d36ecf]" as the raw value.
Cells with format ATTACHMENT will have the name of the attachment as the formatted value and the attachment id as the raw value. For example, a cell containing an attachment named "image.jpeg" will have "image.jpeg" as the formatted value and "attachment:ca432b2f-b8eb-431d-9fb5-cbe0342f9f03" as the raw value.
Cells with format AUTO or cells without any format that are auto-detected as one of the formats above will contain the raw and formatted values as mentioned above, based on the auto-detected formats. If there is no auto-detected format, the raw and formatted values will be the same as the data in the cell.
# File 'gems/aws-sdk-honeycode/lib/aws-sdk-honeycode/types.rb', line 446
class Cell < Struct.new( :formula, :format, :raw_value, :formatted_value, :formatted_values) SENSITIVE = [:formula] include Aws::Structure end


{% extends "skeleton.html" %} {% block content %} Marcas Escualos Marcas FEGAN
{{ competition.date }} {{ competition.name }}
{{ competition.where }}
{% if competition.comments %}
{{ competition.comments }}
{% endif %} {% if member_participation %}| {% include "member_participation_entry.html" %} | ||
| No te has inscrito. |


Match Play. 3-5 to 7. How should Red play 52?
pips Red=142 White=120
(CorrectAnswer= 0/0, ErrorScore= 0)
Position submitted by Leo Waters
This is very difficult because it is not clear what the best game plan is.
Blitzing with 13/11, 6/1* or 8/1* looks unlikely to succeed and the safe play, 13/6, does nothing to develop Red’s position. It also takes the pressure off the White blot on Red’s 10-pt.
Running a back checker when behind in the race and with a weaker home board is not a good idea. What is left?
Unlikely though it seems priming is the right idea. 8/3, 6/4 is the play and if hit Red can revert to a back game or a holding game. If not hit he has good chances to swiftly build a prime in front of White’s rear checker. It duplicates 3’s and keeps the pressure on White’s checker on the 10-pt.
Nearly everybody would get this wrong over the board.
This is very difficult because it is not clear what the best game plan is.
Blitzing with 13/11, 6/1* or 8/1* looks unlikely to succeed and the safe play, 13/6, does nothing to develop Red’s position. It also takes the pressure off the White blot on Red’s 10-pt.
Running a back checker when behind in the race and with a weaker home board is not a good idea. What is left?
Unlikely though it seems priming is the right idea. 8/3, 6/4 is the play and if hit Red can revert to a back game or a holding game. If not hit he has good chances to swiftly build a prime in front of White’s rear checker. It duplicates 3’s and keeps the pressure on White’s checker on the 10-pt.
Nearly everybody would get this wrong over the board.
1. Cubeful 2-ply 8/3 6/4 Eq.: -0.370 0.358 0.074 0.003 - 0.642 0.210 0.015 2. Cubeful 2-ply 8/3 7/5 Eq.: -0.418 (-0.048) 0.348 0.068 0.002 - 0.652 0.220 0.017 3. Cubeful 2-ply 13/8 6/4 Eq.: -0.467 (-0.097) 0.328 0.060 0.002 - 0.672 0.138 0.006 4. Cubeful 2-ply 13/11 6/1* Eq.: -0.468 (-0.098) 0.326 0.065 0.002 - 0.674 0.154 0.009 5. Cubeful 2-ply 7/5 6/1* Eq.: -0.475 (-0.105) 0.331 0.067 0.002 - 0.669 0.218 0.016


In this round, we implemented P2P botnet traffic detection using machine learning techniques.
tshark
subprocess to parse the pcap files. This gives much greater PCAP parsing speeds than python libraries like scapy
and pyshark
. tshark
is a dependency of pyshark
anyway, so we decided to use tshark
raw taking the huge parsing time gains into account.python3 botnetdetect.py --csv ...
instead of python3 botnetdetect.py ...
.Full specification:
usage: botnetdetect.py [-h] [--train] [--retrain] [--csv]
[--validate] [--predict] [--dump]
[--split [SPLIT]] [--output [OUTPUT]]
[--choose [n]]
[inputs [inputs ...]]
Detect P2P Botnet traffic using machine learning
positional arguments:
inputs Directory/file paths to search for input files
optional arguments:
-h, --help show this help message and exit
--train Use the input data to train and test a model
using the train-test split
--retrain Retrain the model using the preprocessed data
in the specified JSON file
--csv Use alternative modelling suitable for
dumping/loading pre-processed data in CSV file
--validate Use the input data to validate the pre-trained
model
--predict Predict class labels on the input data
--dump Save the preprocessed training data into JSON
format for reproducing results
--split [SPLIT] (only for --train) ratio of input data to use
for training (rest for testing)
--output [OUTPUT] (only for --predict) save the output to a file,
use "stdout" to print
--choose [n] Use only n randomly sampled files from the
input
<input_file_name>.out.txt
)python3 botnetdetect.py file.pcap
python3 botnetdetect.py --output output.csv file.pcap
python3 botnetdetect.py data1/ data2/ data3/ data4/
cache/
directory.python3 botnetdetect.py --train data_set/
python3 botnetdetect.py --train --split 0.7 data_set/
python3 botnetdetect.py --train --choose 10 data_set/
python3 botnetdetect.py --validate validation_set/
python3 botnetdetect.py --dump data_set/
python3 botnetdetect.py --retrain preprocessed.json
Note: preprocessed.json
contains the pre-processed data we used to train our model. However it is present in compressed form in the submission as preprocessed.7z
. Please decompress it to obtain preprocessed.json
. preprocessed.csv
contains pre-processed data for the csv-enabling model. Note that training a model will overwrite the previous trained model. However, running the command below OR retraining with the preprocessed data should give the original (or equivalent) model again.
cp cache/model_bak.pickle cache/model.pickle
cp cache/model_csv_bak.pickle cache/model_csv.pickle
Based on our understanding and research of the problem in the hand, we made the following assumptions (with reasons illustrated).
We define traffic in a network as being completely identified by a 2-tuple (src, dst) meaning all the packet exchanges (bidirectional) between any 2 nodes constitute a traffic flow. Here src and dst are whatever appear in the source
and destination
fields and may (in rare cases) be non-IPs. Note that this differs from the conventional definition of flow which is usually a 5 or 6-tuple. We make this simplification because it is as specified in the forum discussions, and it is also in the interest of simplicity, and it doesn’t affect our performance.
Keeping with the spirit of the problem, we restrict our scope to the classification of P2P traffic only. Since P2P botnets rely on P2P traffic for communication and C&C, we conclude that non P2P traffic is irrelevant for classification purposes. That is, we discard all non P2P traffic from the PCAP files in the preprocessing stage. We do not take the attack phase of botnets into the consideration. (As an aside, from the nature of problems we observe that this forms the subject of problem 2 and therefore choose to confine our classification to P2P traffic only on the basis of the previous phases). These traffics will not be classified in the output.
We assume that the P2P traffic provided to us is homogeneous, i.e, in the data provided all P2P traffic in PCAP files corresponding to botnets is botnet-traffic and there is negligible minimal background P2P traffic in these files. This assumption is motivated by practical considerations of obtaining data and from our manual inspections. Usually data for botnet traffic is obtained from honeypots which only capture non-benign traffic. We take it that this was the case here as well. We take all P2P traffic in benign files to be benign as well, primarily because of quite low rate of botnets in normal networks.
So, our goal is to extract all 2-tuple traffic flows from a PCAP file and classify each such traffic flow to be benign or botnet traffic. For training the feature extraction (features are associated on a per flow basis) is done similarly and the assumption of homogenity allows us to obtain labels for each traffic and hence perform supervised learning.
We extract features in 2 phases.
In this phase we classify between P2P and non-P2P traffic in a PCAP file. To do this classification we rely on DNS queries and responses. The idea is that non-P2P communications usually involve a DNS query from the host whereas P2P communications usually directly happen without DNS resolution because IPs are known in advance. Thus, we extract all IPs found in DNS responses and all flows with source or destination IP in this set are classified as non-P2P and discarded before going into the next phase.
Note that this might also discard some P2P traffic. Because many P2P applications (including botnets) during the bootstrapping phase (when they start) communicate with some fixed domain names to obtain a starting set of peers. Our method will also classify this P2P traffic as non-P2P. However, from our experience, such flows are rare (usually the first few only) and for any PCAP file of good enough duration this should not hamper the accuracy in any measurable manner.
In this phase we extract flows from the PCAP files. Note that our traffic flows are both bidirections and specified by a 2-tuple that is, protocol agnostic. We first of all discard all non-P2P flows (as described above using IPs found in DNS responses). Secondly for all P2P traffic flows thus obtained we extract a number of statistical features which may help in classifying between botnet traffic and benign traffic. Thus, our classification is statistical in nature. The other options were either port based classification or signature based classification. Both of these options are unsatisfactory because port numbers may vary on be non-standard as well as inspecting payload is both a time consuming operation, privacy-invading as well as payload may be encrypted limiting the inspection. The statistical features we use are:
number of packets
variance of the packet times
duration of the flow
sum of packet lengths
average packet length
variance of packet lengths
length of the first packet
symmetric correlation defined as |log((1+incoming_packets)/(1+outgoing_packets))|*
symmetric length correlation defined as |log((1+sum_of_incoming_packet_lengths)/(1+sum_of_outgoing_packet_lengths))|*
In our original modelling, for each traffic flow, we extract the above-mentioned features, but for each protocol that is seen (see sample.json for examples). So, the actual feature set is very large. We use feature dicts and sparse matrix in the model, which allows us to capture us the info about every protocol witnessed in the traffic flow, without being bogged down by the prohibisively large time and space complexities of having all these features represented explicitly.
In our alternative modelling to enable csv (which cannot use the great advantages of sparsity), we used the same features mentioned above, but without associating them with all seen protocols, thus making this approach protocol-agnostic.
However, we have found that having separate info for each protocol is very useful as which protocol is used, how often, etc. can be of great help in classification. This has also been confirmed empirically from the difference in the accuracy of our original protocol-aware feature modelling vs the csv-enabling protocol-agnostic feature modelling, however this restricts our generality of prediction given newer kinds of botnets, which have certain inherent differences.
* The reason for the usage of absolute values of the logs is the following. The ratios are good indicators of the “response ratio”, and the closer they are to 1, the better are the chances of the flow being benign. Also, since we are considering bidirectional flows, we need to have a symmetric function with respect to both ends. One more candidate was the larger of the ratio of the in and out parameters and its reciprocal. However this had two shortcomings - if there is a flow which has no response, then this characteristic blows up to infinity, and there is a high skew towards the higher ratios, which is not good for our model, and hence we used the log of this ratio. A good way to represent it is simply the absolute value of the log.
We have used an sklearn pipeline consisting of two parts: DictVectorizer and GradientBoostingClassifier. At the input end of the pipeline is a list of feature dicts where feature names are dict keys and feature values are dict values. The DictVectorizer converts the list of feature dicts to a sparse feature matrix and passes it on to GradientBoostingClassifier. The sparse feature matrix allows us to keep a lot of features without blowing up memory or time.
The choice of GradientBoostingClassifier is well thought-out. It has a training complexity which is linear in the number of training examples (and we have lots of those, on the order of 10^6 samples), is an ensemble learning technique and inherits the advantages of ensemble learning like less likelihood of overfitting, does not impose strict requirements on the data, and is robust, performant and accurate in general. Also, we were able to get really good results with it.
These results are for training with a 75% : 25% train-test split. Note that the models submitted were obtained by training on 100% of the data.
Training model on 1468842 flows ...
Class Balance : 276856 vs 1191986
training time:<PHONE_NUMBER>173004 s
training time per traffic: 0.0004705331864947356 s
Evaluating model on 489614 flows ...
Class Balance : 92554 vs 397060
prediction time: 34.98868370056152 s
prediction time per traffic: 2.3820590438291882e-05 s
false positives: 1964 / 1468842
false negatives: 691 / 1468842
total mismatch: 2655 / 1468842
accuracy: 0.9981924536471588
f1 (micro): 0.9981924536471588
recall (micro): 0.9981924536471588
precision (micro): 0.9981924536471588
f1 (macro): 0.9970404731593268
recall (macro): 0.9961631773362736
precision (macro): 0.9979233379295962
Training model on 1468842 flows ...
Class Balance : 276933 vs 1191909
training time:<PHONE_NUMBER>760956 s
training time per traffic: 0.0004612258214812046 s
Evaluating model on 489614 flows ...
Class Balance : 92477 vs 397137
prediction time:<PHONE_NUMBER>649353 s
prediction time per traffic: 0.00012699496812110172 s
false positives: 2214 / 1468842
false negatives: 1727 / 1468842
total mismatch: 3941 / 1468842
accuracy: 0.9973169340201329
f1 (micro): 0.9973169340201329
recall (micro): 0.9973169340201329
precision (micro): 0.9973169340201329
f1 (macro): 0.9956127030181323
recall (macro): 0.9952781751793947
precision (macro): 0.9959480414761256


Getting started with Autotest - Continuous Testing
Why manually run your tests, when the computer can
do it for you! Autotest is a
great tool to speed up test-driven development with Ruby or Ruby on
Rails. Autotest makes your coding session even more productive as
it automatically runs a subset of your test suite each time
you change a file. Autotest is smart -- it figures out which subset
to run based on the files you've changed. Think of it as
Continuous Testing
.
Autotest source code is well-documented (rdoc) but finding a high level overview online is a little more challenging. This article will get you up and running in no time, so that you may concentrate on writing code. Let's get started!
Why Autotest?
Continuous Testing
The cool thing about Autotest is that you have instant feedback on your code (tests run within a second). Even better, the testing happens on its own so you no longer have to switch back and forth from the coding context to the testing context anymore (both wise cognitively and from a UI perspective). This effortless and immediate feedback on your code as well as the automated and unattended test runs are quite similar to the characteristics of Continuous Integration at the team level. However, continuous integration concentrates on improving integration at a team level while Autotest concentrates on facilitating the development for a single developer (or programming-pair) before the code gets integrated -- hence the term Continuous Testing.
As this is highly visual, have a look at Nuby on Rails' autotest screencast.
Quicker Test Runs
Autotest can also provide quicker test runs
than standard convention since it intelligently monitors the
changes and only runs the tests that are impacted by these changes.
In practice this is relevant only for classic
Rails
applications because:
- Rails conventions provide good heuristics for
Autotest to decide which tests to run when a file changes. If your
application does not stick to the classic Rails layout and naming
conventions the
magic
does not work so well anymore. In this case, it is probably better to have Autotest run your whole test suite for all changes. - There is value in running a subset of the whole test
suite only because running
classic
Rails unit tests can be slow. This is mostly since Rails approach to unit testing is quite unconventional and involves database access. This approach goes against generalagile
wisdom that you should make sure your unit tests run quickly, and do not have any dependency for external systems. Also note that there are well-documented ways to have your Rails unit tests not depend on the database and have them run blazing fast!
Make Up for a Lack of a Proper Ruby IDE
Autotest can come in handy if your favorite IDE has limited Ruby support, or if you prefer a more ligthweight development environment (text editor + terminal + Autotest): it gives you an easy and automated way to run your tests.
Install Autotest
Make Sure You Already have RubyGem Installed
The easiest way to install Autotest
is to use the
ZenTest gem. If you have no idea of what a
gem is, or you have not installed the RubyGem packaging
system yet, please have a look at the RubyGem official website. If you are
serious about Ruby development, it will be hard not to use
RubyGem.
OS X and Ubuntu
On OS X or Ubuntu launch from a terminal:
$ sudo gem install ZenTest
Other Unix flavors
For other *Nix flavors, try
$ suPassword:Type root password here$ gem install ZenTest
Run autotest
Ruby on Rails project
Consistent with Rails principles, Autotest does not require any configuration to run. Provided you follow classic Rails conventions, Autotest will figure things out on its own. Simply launch Autotest from the base directory of your Ruby on Rails project.
$ cd base directory of your Ruby on Rails project$ autotest
Autotest will then run all your tests (the first time), and wait for you to modify some code:
$ autotest /usr/bin/ruby1.8 -I.:lib:test -rtest/unit -e "%w[test/functional/tasks_controller_test.rb test/unit/quarter_test.rb test/unit/task_test.rb].each { |f| require f }" | unit_diff -u Loaded suite -e Started ....................... Finished in 0.672928 seconds. ================================================================================ 23 tests, 60 assertions, 0 failures, 0 errors
Go ahead and modify some code in your project so that a test fails. Save the modified file to disk and Autotest will automatically rerun some of the tests:
/usr/bin/ruby1.8 -I.:lib:test -rtest/unit -e "%w[test/functional/tasks_controller_test.rb test/unit/task_test.rb].each { |f| require f }" | unit_diff -u Loaded suite -e Started ...F........ Finished in 0.42272 seconds. 1) Failure: test_should_be_found(TaskTest) [./test/unit/task_test.rb:22]: --- /tmp/diff6647.0 2006-11-15 20:46:43.000000000 -0800 +++ /tmp/diff6647.1 2006-11-15 20:46:43.000000000 -0800 @@ -1 +1 @@ -Expected result +Actual result ================================================================================ 4 tests, 9 assertions, 1 failures, 0 errors
Note that autotest ran only a subset of your test suite this time (4 tests out of 23 in my case). Also note that Autotest is especially good in providing brief and relevant feedback on the test failures.
Autotest focuses on running previous failures until you have fixed them. So test failures are run until they have all passed. Then the full test suite is run to ensure that nothing else was inadvertently broken.
Ruby Project
In theory you would run Autotest the same way as you would for any Ruby project -- even if it is not based on Rails:
$ cd base directory of your Ruby project$ autotest
In practice, Autotest might have problems finding your tests or
figuring out which tests to run when you change some code. If this
is the case, take a look at the troubleshooting
test detection
section.
Forcing a Full Test Run and Stopping Autotest
If you want to force Autotest to run the entire test suite hit Ctrl - C once in the terminal running Autotest. Hitting Ctrl - C twice will stop Autotest.
Configure Plugins
Autotest also provides some cool plugins that enable you to get feedback the way you want.
Create a .autotest
file
You configure plugins by creating a
.autotest
file in your project base
directory. You can also provide a default configuration
for all your projects by creating a .autotest
file in
your home directory (when present, project configuration files
override user default configuration file).
You enable a plugin by adding a line requiring the
plugin in the .autotest
file. For instance,
to enable the Growl
plugin, you would add the following
line:
require 'autotest/growl'
Below you will find a description of the most popular plugins and how to enable them.
Red / Green Plugin
The Red / Green
plugin provides color to
Autotest
messages in the terminal window. As expected,
output is green if all the tests pass, red if some test fails.
Having red / green visual output makes it easier for one to scan
the output and quickly determine whether everything is OK or
something went wrong.
Visually, the Red /Green
plugin turns
================================================================================ 200 tests, 520 assertions, 0 failures, 0 errors
into
================================================================================ 200 tests, 520 assertions, 0 failures, 0 errors
or
================================================================================ 5 tests, 20 assertions, 1 failures, 0 errors
To enable the Red / Green
plugin add the following line
to your .autotest
file:
require 'autotest/redgreen'
Desktop Notification Plugins
You might not even have to look at the Autotest
terminal output to figure out the result of a test run.
Several plugins provide desktop notification messages
capabilities. In this way you can run Autotest in the
background and see popup messages when something fails.
Growl Plugin (OS X)
Growl is a popular desktop notification system for OSX. If you are developing on a Mac, enable the Growl plugin by adding
require 'autotest/growl'
to your .autotest
file. Note that for this plugin
to work, you not only need to install Growl but also its command line
interface: growlnotify.
Snarl Plugin (Windows)
Snarl is a notification
system for Windows largely inspired by Growl. Autotest will use it
if you enable the Snarl plugin in your .autotest
file:
require 'autotest/snarl'
KDE Notify Plugin (Linux)
If you are running Linux and use KDE as your desktop
environment, you will get desktop notification by adding to your
.autotest
file:
require 'autotest/kdenotify'
Gnome Notify plugin (Linux)
If you are running Linux and use Gnome as your desktop
environment, unfortunately there is no official plugin for desktop
notification. You can still get desktop notifications by adding the
following code snipet in your .autotest
file:
module Autotest::GnomeNotify # Time notification will be displayed before disappearing automatically EXPIRATION_IN_SECONDS = 2 ERROR_STOCK_ICON = "gtk-dialog-error" SUCCESS_STOCK_ICON = "gtk-dialog-info" # Convenience method to send an error notification message # # [stock_icon] Stock icon name of icon to display # [title] Notification message title # [message] Core message for the notification def self.notify stock_icon, title, message options = "-t #{EXPIRATION_IN_SECONDS * 1000} -i #{stock_icon}" system "notify-send #{options} '#{title}' '#{message}'" end Autotest.add_hook :red do |at| notify ERROR_STOCK_ICON, "Tests failed", "#{at.files_to_test.size} tests failed" end Autotest.add_hook :green do |at| notify SUCCESS_STOCK_ICON, "All tests passed, good job!", "" end end
For this to work you need to have libnotify
installed on your system and a program named
notify-send
in your PATH
. For
most Linux distributions this simply means that you should install
the libnotify-bin
package. If you are running Ubuntu,
run
sudo apt-get install libnotify-bin
Pretty Plugin
If you are running Autotest on a Mac you can enable the
pretty
plugin to visualize your Autotest status
history as a sequence of red and green squares:
Of course a green square indicates passing tests while a red square signals some test failures. If you want to get a feel of what a session is like with this plugin enabled, ZenSpider has a nice video demonstrating the pretty plugin in action.
To enable this plugin you will need to install RubyCocoa and add the
folowing line to your .autotest
file:
require 'autotest/pretty'
HTML Report Plugin
The HTML report
plugin publishes most recent
Autotest statuses as a web page under
~/Sites/autotest.html
. You can then point a browser to
this page and see something like:
Of course the content of the web page is updated while you work.
Note that you need to have an an existing
~/Sites
directory before you enable
the plugin with the following line:
require 'autotest/html_report'
Menu Plugin
Remember that, by default, hitting Ctrl - C
once
will force Autotest to run the entire test suite, and hitting
Ctrl - C
twice will stop Autotest? The menu
plugin changes this behavior: each time you hit Ctrl -
C
it will explicitly ask you whether you want to quit,
restart or just keep going.
c: continue q: quit r: restart menu>
Enable the menu plugin by adding the following line to your
.autotest
file.
require 'autotest/menu'
Timestamp Plugin
While Autotest waits for you to save a file, the timestamp plugin prints a message with the current time. Messages look like:
# waiting... Sat Feb 03 15:56:23 EST 2007
To enable the timestamp plugin add the following to your
.autotest
file:
require 'autotest/timestamp'
Getting More Information
Your Autotest install comes with a sample .autotest
file listing all available plugins. It is named
example_dot_autotest.rb
. You will find it in the gems
install directory. Most likely this directory will look like:
/usr/local/lib/ruby/gems/1.8/gems/ZenTest-3.4.3/
on OS X./usr/lib/ruby/gems/1.8/gems/ZenTest-3.4.3/
on other Unix platforms
Interesting plugins that are not distributed with Autotest can also be found within autotest pending patches. The RSpec patches you will find there will be of particular interest to those of you that enjoy behavior-driven development.
Troubleshooting Autotest Test Detection
Whether Autotest does not work out of the box for you or its magics eludes you, it is always good to get some understanding of the heuristics that Autotest uses to figure which test(s) to run.
Heuristics for Rails
Autotest automatically discovers Ruby on Rails projects by
checking for a config/environment.rb
file. If there is
one, Autotest will base its logic on standard Rails file mappings
and conventions.
If for some reason you want to force Ruby on Rails mode you can
always launch Autotest it with the -rails
option:
$ autotest -rails
A simplified version of Autotest heuristics in this mode would be:
- When changing a test file, only this file is run (e.g.
test/unit/foo_test.rb
→test/unit/foo_test.rb
). - When changing a model file, only associated unit test file is
run (e.g.
app/models/foo.rb
→test/unit/foo_test.rb
). - When changing a controller file, associated functional test
file is run (e.g.
app/controllers/foo_controller.rb
→test/functional/foo_controller_test.rb
). - When changing a fixture file, associated unit test and
functional test are run (e.g.
app/fixtures/foos.yml
→test/unit/foo_test.rb
+test/functional/foo_controller_test.rb
). - When changing a helper file, associated functional test file is
run (e.g.
app/helpers/foo_helper.rb
→test/functional/foo_controller_test.rb
). - When changing
application_helper.rb
file all functional test files are run (e.g.application_helper.rb
→test/functional/*_test.rb
). - When changing a file under the
config
directory, all tests are run.
You've got the idea. Actual heuristics are a little more complex
and also handle the concept of view
and
controller
tests. For a more thourough
understanding have look at the rails_autotest.rb
file in ZenTest gem install directory.
In case these heuristics do not play well with your own conventions, do not give up yet: you can always configure Autotest to run the whole test suite for all changes.
Heuristics for Non Rails Projects
For non Rails project, Autotest uses a simple naming scheme to map implementation files to test files:
- Test files must be stored in the
test
directory - Implementation files must be stored in the
lib
directory - Test files names must start with
test_
- Test class names must start with
Test
- Test files corresponding to a specific implementation file must
be named
test_*name of implementation file.rb
If you can live with these conventions, Autotest will work out-of-the-box for you. If these conventions are not your cup of tea and you have your own, the next paragraph explains how to configure Autotest so that it runs the whole test suite each time you save a file.
Running the Whole Test Suite for All Changes
If for some reason Autotest heuristics do not work for you, you
can customize them in your .autotest
file with a
little bit of work.
For instance, if your entire test suite runs quickly (as it
should), you can easily configure Autotest to run the whole test
suite for any change by adding the following code to your
.autotest
file:
# # Override autotest default magic deciding which test to run when # a file is changed : enable more flexible naming conventions # trading some of the efficiency: we rerun all the tests each time. # class Autotest def tests_files_for(filename) return Dir["test/**/*.rb"] end end
Conclusion
Autotest provides an easy and effortless way to run your tests: just save a file. This is a great way to get quick feedback on your code and avoid any context switch. Autotest automated test runs are also extremelly valuable if your favorite IDE has poor Ruby support, or if you prefer a more ligthweight development environment (text editor + terminal + Autotest).
Autotest also tries hard to be smart on deciding which tests to run:
- It only runs the tests affected by your latest code changes.
- When some tests fail, Autotest focuses on running previous failures until you have fixed them. Once they pass, the full test suite is run to ensure that nothing else was inadvertently broken.
On deciding which tests to run, Autotest magic
works out
of the box if your application follows classic Ruby on Rails
conventions. If this is not your cup of tea, it is extremely easy
to customize Autotest to fit your conventions.
Via its plugins Autotest also offers a lot of interesting feedback options, from terminal output to html publishing to desktop notifications. The pretty plugin offers a highly visual representation of your test runs history, which could be useful when teaching Test Driven Development (green, red, green, red, ...).
On the flip side, It is important to note that Autotest does not fit all developement styles: Some developers like better control on which tests they are running. While working on a piece of code, they will typically focuss on a few tests (which they know they could have broken), and then run the whole test suite just before committing. Autotest emulates this as well as it can with his focus on running previous failures; but ultimately a human will always have a better intuition, especially if your project does not follow classic Rails conventions.
In all cases, it is worth spending some time playing with
Autotest and experiment with its innovative, lightweight and
effortless approach to test runs, what I have been calling
continuous testing
.


Disclaimer: This is currently a prototype, developed in a rushed few hours at a hackathon. There may be bugs or inaccuracies. The team that developed it is planning to improve it in the coming months.
This application provides a REST API around the existing bike theft data provided by the City of Philadelphia. It's designed to make it easier to query for data regarding bike theft locations. Instructions on how to construct a query are listed below (results are returned in a JSON array of GeoJSON Points).
URL: http://biketheft.jeffsbox.net/search
Query Paramters (e.g. put these in the URL)
If no time parameters are set, all the matching data available within the radius is returned
Example URL:
http://bikethefts.jeffsbox.net/search?latitude=39.929081852&longitude=-75.1672029&radius=0.1
The app is the result of collaboration between Brian Kenny, Brad Steinberg, and Jeff Maher (with guidance from Dave Walk) at the #apps4philly Transit Hackathon in conjunction with Code for Philly (a Code for America Brigade). Future development is planned and we're happy to work with others, so let us know if you want to join in. Or don't, and just fork the project on GitHub (warning: the code is very ugly right now).


Thank you!!
Purchasing information was sent to the registered e-mail
address. We will contact you as soon as the item can be
shipped.
Order ID：
AG 384268


About arc42
arc42, the Template for documentation of software and system architecture.
By Dr. Gernot Starke, Dr. Peter Hruschka and contributors.
Template Revision: 6.5 EN (based on asciidoc), Juni 2014
© We acknowledge that this document uses material from the arc 42 architecture template, http://www.arc42.de. Created by Dr. Peter Hruschka & Dr. Gernot Starke. For additional contributors see http://arc42.de/sonstiges/contributors.html
|
This version of the template contains some help and explanations. It is used for familiarization with arc42 and the understanding of the concepts. For documentation of your own system you use better the plain version. |
1. Introduction and Goals
The introduction to the architecture documentation should list the driving forces that software architects must consider in their decisions. This includes on the one hand the fulfillment of functional requirements of the stakeholders, on the other hand the fulfillment of or compliance with required constraints, always in consideration of the architecture goals.
2. Architecture Constraints
2.1. Technical Constraints
| Technical Constraints | |
|---|---|
Hardware Constraints |
|
C1 |
insert description here |
C2 |
insert description here |
C3 |
insert description here |
Software Constraints |
|
C4 |
insert description here |
C5 |
insert description here |
C6 |
insert description here |
Operating System Constraints |
|
C7 |
insert description here |
C8 |
insert description here |
C9 |
insert description here |
Programming Constraints |
|
C10 |
insert description here |
C11 |
insert description here |
C12 |
insert description here |
2.2. Organizational Constraints
| Organizational Constraints | |
|---|---|
Organization and Structure |
|
C1 |
insert description here |
C2 |
insert description here |
Resources (Budget, Time, Personnel) |
|
C3 |
insert description here |
C4 |
insert description here |
Organizational Standards |
|
C5 |
insert description here |
C6 |
insert description here |
Legal Factors |
|
C7 |
insert description here |
C8 |
insert description here |
5. Building Block View
5.1. Level 1
The following diagram shows the main building blocks of the system and their interdependencies:
<insert overview diagram here>
Comments regarding structure and interdependencies at Level 1:
5.1.1. Building Block Name 1 (Black Box Description)
<insert the building block’s black box template here>
5.1.2. Building Block Name 2 (Black Box Description)
<insert the building block’s black box template here>
Appendix A: Literature and references
- Starke-2014
-
Gernot Starke: Effektive Softwarearchitekturen - Ein praktischer Leitfaden. Carl Hanser Verlag, 6, Auflage 2014.
- Starke-Hruschka-2011
-
Gernot Starke und Peter Hruschka: Softwarearchitektur kompakt. Springer Akademischer Verlag, 2. Auflage 2011.
- Zörner-2013
-
Softwarearchitekturen dokumentieren und kommunizieren, Carl Hanser Verlag, 2012
Appendix B: Examples
-
DocChess (german)
-
Gradle (german)
-
MaMa CRM (german)
-
Financial Data Migration (german)
Appendix C: Acknowledgements and collaborations
arc42 originally envisioned by Dr. Peter Hruschka and Dr. Gernot Starke.
- Sources
-
We maintain arc42 in asciidoc format at the moment, hosted in GitHub under the aim42-Organisation.
- Issues
-
We maintain a list of open topics and bugs.
We are looking forward to your corrections and clarifications! Please fork the repository mentioned over this lines and send us a pull request!


General
Viewing Requirements
- This site works in most common browsers including Firefox, Internet Explorer and Safari. Older browser versions may show errors.
- JavaScript must be enabled in your browser.
- Flash Player 7 or later is required. Download the Flash Player.
Navigating the Site
Books can be selected by:- Repository - the name of the library or museum where the book is now held
- Common name - a shorthand name for the book
- Current location - the city where the book is now held
- Date - the date by century when the book was produced
- Origin - the location by city or country where the book was produced
- Type - the type of codex, either a manuscript or printed book
- Number of Illustrations - the total number of illustrations in the book
- Number of Folios - the number of folios in the book
- Transcription - a copy of the text as it appears in a particular manuscript
- Page turner - Flash animation enables you to move forward and backward through the book. A drop-down menu, located above the viewport, gives several options for examining folios. (No drop-down menu will appear if there is no metadata for that particular manuscript.)
- Show: to view just the image
- Illustration description: to see illustration titles and keywords in a box to the right of the viewport, when available
- Transcription: to read a transcription, when available. Click on the tabs at the top of the box for the next column of text on the folio
- Transcription [Lecoy]: to read a transcription with line numbers (from the Lecoy edition).
- Narrative sections: to see the narrative section/s of displayed folios. The box to the right of the viewport gives the narrative section id in bold (with a question mark when this was generated by an algorithm and so only approximates the start), and the Lecoy line number which begins the section (in purple). For some manuscripts, the actual line beginning the section from Selden Supra 57 (here SS57) is also given.
- Browse images - Thumbnail view of all the images in the book
Changing the amount of viewing space
- Click on the Smaller button above the viewport to decrease the size of the viewing area.
- Click on the Larger button above the viewport to increase the size of the viewing area.
- Select the Popup button above the viewport to open the image in a new window without the top or left navigation buttons.
Getting a closer look at a folio
- There are several ways to zoom in on an image. In Browse images, clicking on the image zooms in on it. In Page turner, the first click on an image allows you to select one of the two folios shown. Subsequent clicks will zoom in on this folio only.
- Another way to zoom in is to click on the "Zoom In" button .
- To return to the default zooming mode after using the "Drag Image" button or the "Tilt Image" button , click on the "Zoom Selection" button .
Moving around an image
- After zooming in on an area of a folio image, there are two ways to move to another area of the same folio. One way is to click on the "Drag Image" button and then click on the folio and drag the cursor to the area.
- Another way to move to another area of an image is to click on the red outline in the survey window and move the cursor to the area.
Getting a full view of the folio
- Click on the "Zoom Out" button to zoom out incrementally.
- Click on the "Reset Image" button to return to the original view.
Rotating an image
- Click on the "Tilt Image" button to use the tilt function. Then click anywhere on the image and drag the cursor to rotate it.
Comparing two folios
Both Page turner and Browse images have a Popup button that will open the book in a separate window. Use the Popup button to look at two images at once
In Page turner:
- To find the first image: select a book, click on Page turner, and enter the folio number in the box above the viewport.
- Click on the Popup button above the viewport. A new window with this folio will open.
- Go back to the viewport.
- Find the second image by selecting a book, clicking on Page turner, and entering the folio number in the box above the viewport or paging through to the folio.
- Click on the Popup button above the viewport. A new window with this folio will open.
- You can resize and move both the windows.
In Browse images:
- To find the first image: select a book, click on Browse images, browse thumbnail images to find a folio.
- Select a thumbnail image.
- Click on the Popup button above the vieweport. A new window with this folio will open.
- Go back to the viewport.
- Find the second image by selecting a book, clicking on Browse images, and browsing thumbnail images to find a folio.
- Select a thumbnail image.
- Click on the Popup button above the viewport. A new window with this folio will open.
- Resize and move the two windows if desired.
Basic Search Tips
- A basic search consists of entering a set of terms. A term can be either a phrase or a word. Phrases must be enclosed in double quotes.
- A proximity search is done by adding the optional '~NUMBER' suffix to a phrase. This sets a requirement that words in the phrase be within NUMBER words of each other.
- Boolean operators '+', (must be present), and '-', (must not be present), are used by starting a term with them.
- Single word terms have additional search options. The '~' suffix specifies fuzzy matching. The '*' character matches multiple characters. The '?' character matches any single character.
- If a word or phrase is not Boolean, does not use wildcards, and does not do fuzzy matching:
- Words that match French character names also match variants of the character name
- When searching Old French, words also match Old French spelling variants
- Results are ordered by relevance, and the option to perform an advanced search is presented.
Advanced Search
- You can search across books and narrow your search by:
- choosing which field(s) to include in the query by using the "Add Field" button.
- choosing which books are searched
- Refer to the glossary below for a definition of terms found in the Advanced Search tool.
The Bookmark tool is used by clicking the "Notepad" button on the bottom menu of the viewer.
If you are in Page turner, the "Notepad" button is at the far left of the menu bar.
If you are in Browse images, the "Notepad" button is at the far right of the menu bar.
Creating a bookmark
While viewing the folio to be bookmarked, click the "Notepad" button . In the dialog window that pops up, click on the first button in the left corner . This creates a bookmark that can be returned to for the duration of the viewing session.Click the "Close" button to close this tool.
Bookmarking a custom area
While viewing the folio you want bookmarked, click the "Notepad" button . Then click the "Bookmark custom area" button . The image becomes green as you click on it and drag the cursor over the area to be bookmarked.Click on the area next to the thumbnail image to write a brief comment about the bookmarked folio (this is optional). Click the "Close" button to close this tool.
Referring to a bookmark
Select the book. Select Page turner or Browse images. Click on the "Notepad" button . Either click on the thumbnail image of the bookmarked folio or click the "Go to bookmark" button .Deleting a bookmark
Click on the "Notepad" button . Select a bookmark to be deleted, and click the "Delete this bookmark" button .The following is a glossary of terms that you may encounter while using this site. A more extensive glossary of medieval terms can be found in the Catalogue of Illuminated Manuscripts at the British Library and Michelle Brown's Understanding Illuminated Manuscripts: A Guide to Technical Terms (J. Paul Getty Museum: Malibu and British Library: London, 1994).
- Codex
- (pl. codices); a book composed of folded sheets of parchment or paper sewn together. This term is used to describe manuscripts, incunabula and printed books.
- Critical note
- a scholarly remark added by the transcriber noting an idiosyncrasy of the text being transcribed
- Codicological description
- a physical description of the codex in its present condition
- Folio
- (pl. folia or folios); an individual leaf of a manuscript. Manuscripts are numbered by folios as opposed to pages. Each leaf is identified by one number, and the front and the back of the leaf are distinguished by the terms “recto” for the front of the leaf, and “verso” for the back.
- Illustration
- a drawn, painted, or woodcut scene in a codex. Illustrations can be searched on this site by illustration title, by character depicted, or by costume, objects in the scene, landscape and architecture.
- Incunabule
- a term for printed books produced before 1501.
- Lecoy
- a line numbering convention that follows Felix Lecoy’s edition of the Rose text
- Nota
- a brief record or jotting of some kind added to the manuscript
- Quire
- sheets of paper or parchment folded to form a booklet of leaves, and sewn together to form a codex
- Repository
- a museum, library, or other storage space for collecting, preserving and disseminating data
- Rubric
- a direction or description that is not part of the text, but is included in the manuscript as a guide for the reader. Rubrics are usually written in red ink. The term is derived from rubrica, the Latin word for red.
- Shelfmark
- a unique number assigned to each codex in a repository, indicating its exact physical location. A shelfmark consists of a combination of letters, numbers, or names usually indicating the physical location of a codex within a particular fonds, room, bookcase, or press and its position relative to other items on the same shelf or within the sequence of a collection.


This tests among others the fix of issue TOBAGO-2210.
- Test if nonce attribute is set corretly, after first load.
- Test if styles from style tag was applied corrretly, after first load.
Style: min-height: 300px
- Test if nonce attribute is set corretly, after AJAX reload.
- Test if styles from style tag was applied corrretly, after AJAX reload.
Style: min-height: 300px
- Test if styles from style tag was NOT applied.
Style: min-height: 300px
Must not be applied, because of CSP. If it is applied, CSP is switched off, or it's just not working.


| WinAPI Wrapper |
The FileMapping class in conjunction with the FileMapping::Map class simplifies the use of file mapping. See File Mapping Overview for details.
The FileMapping class has the following functions:
| Function | Related WinAPI function | Description |
|---|---|---|
| FileMapping | CreateFileMapping | Assigns INVALID_HANDLE_VALUE or calls SetTo(). |
| ~FileMapping | CloseHandle | Calls Close(). |
| operator HANDLE | - | Returns the file mapping handle. |
| SetTo | CreateFileMapping | Creates or opens file mapping. |
| IsOpen | - | Validates the handle. |
| Close | CloseHandle | Closes file mapping. |
WinAPI Wrapper, WinAPI Wrapper classes, FileMapping::Map, File Mapping Overview, File Mapping Functions


If you can run Apache command as root, you can use
sudo apache2 -f /etc/shadow
to host a protected file that you can then view
If Apache is running as root, remember that if you exploit it or get it to read a privileged file, you can win


YACS 2.0 allows for student input and review on individual classes in order to assist peers with a seemless transition between semesters. Typically, when a student drops a class it is because the class is not what he or she expected. YACS 2.0 aims to reduce the number of classes dropped per semester through a new student feedback system. With feedback on both the professor and the course, students will be better advised which courses to take and with which professor.


This website is dedicated to my friend Lily!
She absolutely loves the sun, you would almost think she's cold blooded
Some of her favorite things are
The sun
Treats
Walks


Hannah Jeter on why she and Derek won't post photos of their daughters on social media
by Jessica NapoliHannah and Derek Jeter are an extremely private couple.
The pair, who married in 2016, rarely makes public appearances together and have never shared any photos of their two daughters -- 9-month-old Story Grey and Bella Raine, 2 -- on social media. Hannah recently opened up about why they've made that choice.
The 29-year-old model told Editorialist magazine,“[Social media] has never felt natural to me."
DEREK JETER'S WIFE HANNAH DAVIS SHOWS OFF BABY BUMP WHILE OUT WITH HER HUSBAND
"I know it’s necessary in my industry, and I absolutely have to when it’s part of a contract," she said. "But a lot of people post their children and husbands, and for me that will never be the case."
The retired MLB player, 45, and she realized that they can "handle" the pressures but want to protect their kids, Hannah explained.
“Both my husband and I have been in a place in our careers where we have to share so much. And we can handle it,” she said. “But when you love something so much, you want to protect it more than anything in the world. And for me, that’s my relationship, that’s my kids.”
The Sports Illustrated Swimsuit Issue star said she preferred her privacy even while pregnant.
Hannah revealed that she gained 70 pounds with Bella and 55 pounds with Story and "went into hiding."
SUPERMODEL HANNAH JETER POSED FOR SPORTS ILLUSTRATED WHEN SHE WAS PREGNANT, MAG SAYS
“I always thought, ‘You know, I’m going to have kids and go right back to work and pop back into shape,’ and it’s not that easy,” she said, adding that she has been following an intermittent fasting diet, which gives her more energy.
Hannah also talked about her and Derek's approach to parenting. They limit the use of technology for their daughters and would rather be outside exploring, she said.
 "I think I raise my kids just how my mom raised me -- being outside with nature and animals, trying not to be so on top of them, giving them safe places to explore and use their imagination.
CLICK HERE TO GET THE FOX NEWS APP
“Most days my husband comes home and he’s like, ‘Holy crap’ -- because I’m covered in paint or glue. I was literally painting a birdhouse yesterday,” she added.