Table Of Contents
In this series, we’re instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang’s Telemetry offerings.
- Part I: Telemetry Under The Hood
- Part II: Handling Telemetry Events with
TelemetryMetrics
+TelemetryMetricsStatsd
- Part III: Observing Phoenix + Ecto Telemetry Events
- Part IV: Erlang VM Measurements with
telemetry_poller
,TelemetryMetrics
+TelemetryMetricsStatsd
Intro
In the previous post we used Telemetry.Metrics
to define metrics for a number of out-of-the-box Phoenix and Ecto Telemetry events and used TelemetryMetricsStatsd
to handle and report those events to StatsD.
In this post, we’ll incorporate Erlang’s telemetry_poller
library into our Phoenix app so that we can observe and report on Erlang VM Telemetry events.
Getting Started
You can follow along with this tutorial by cloning down the repo here.
- Checking out the starting state of our code on the branch part-4-start
- Find the solution code on the branch part-4-solution
Overview
In order to report on Erlang VM measurements as metrics, we will:
- Install the
telemetry_poller
dependency - Define metrics for
telemetry_poller
Telemetry events usingTelemetry.Metrics
- That’s it!
Step 1: Installing telemetry_poller
First, we’ll include the telemetry_poller
dependency in our app and run mix deps.get
# mix.exs
def deps do
{:telemetry_poller, "~> 0.4"}
end
Step 2: Defining Metrics for telemetry_poller
Events
telemetry_poller
Telemetry Events
When our app starts up, the telemetry_poller
app will also start running. This app will poll the Erlang VM to take the following measurements and execute these measurements as Telemetry events:
- Memory - Measurement of the memory used by the Erlang VM
- Total run queue lengths - Measurement of the queue of tasks to be scheduled by the Erlang scheduler. This event will be executed with a measurement map describing:
total
- a sum of all run queue lengthscpu
- a sum of CPU schedulers’ run queue lengthsio
- length of dirty IO run queue. It’s always 0 if running on Erlang versions prior to 20.
- System count - Measurement of number of processes currently existing at the local node, the number of atoms currently existing at the local node and the number of ports currently existing at the local node
- Process info - A measurement with information about a given process, for example a worker in your application
Let’s define metrics for some of these events in our Quantum.Telemetry
module.
Defining Our Metrics
The Telemetry.Metrics.last_value/2
function defines a metric that holds the value of the selected measurement from the most recent event. The TelemetryMetricsStatsd
reporter will send such a metric to StatsD as a “gauge” metric. Let’s define a set of gauge metrics for some of the Telemetry events mentioned above:
# lib/quantum/telemetry.ex
defp metrics do
[
# VM Metrics - gauge
last_value("vm.memory.total", unit: :byte),
last_value("vm.total_run_queue_lengths.total"),
last_value("vm.total_run_queue_lengths.cpu"),
last_value("vm.system_counts.process_count")
]
end
Now, when telemetry_poller
executes the corresponding events, we will see the following metrics to StatsD sent to StatsD:
gauges: {
'vm.memory.total': 49670008,
'vm.total_run_queue_lengths.total': 0,
'vm.total_run_queue_lengths.cpu': 0,
'vm.system_counts.process_count': 366
}
And that’s it! Before we wrap up, let’s take a look under the hood of the telemetry_poller
library.
telemetry_poller
Under The Hood
Taking a look at some source code, we can see exactly how telemetry_poller
is executing these events.
The memory/0
Function
The memory/0
function grabs memory measurements with a call to erlang:memory/0
and passes those measurements to the call to telemetry:execute/3
as the measurements map:
% telemetry_poller/src/telemetry_poller_builtin.erl
memory() ->
Measurements = erlang:memory(),
telemetry:execute([vm, memory], maps:from_list(Measurements), #{}).
Let’s break this down further. We can examine the measurements returned from the call to erlang:memory()
by trying it out ourselves in iex
:
iex(1)> :erlang.memory()
[
total: 28544704,
processes: 5268240,
processes_used: 5267272,
system: 23276464,
atom: 339465,
atom_used: 317752,
binary: 58656,
code: 5688655,
ets: 515456
]
We can see that is contains a key of :total
, pointing to a value of the total amount of memory allocated to the Erlang VM.
Thus, a Telemetry event is executed with the name [vm, memory]
and a set of measurements including this total. When we invoke our Telemetry.Metrics.last_value/2
function, we are telling our reporter, TelemetryStatsD
, to attach a handler for this event and to respond to it by constructing a gauge metric with the value of the :total
key included in the provided measurements:
# lib/quantum/telemetry.ex
defp metrics do
[
last_value("vm.memory.total", unit: :byte)
]
end
The total_run_queue_lengths/0
Function
The total_run_queue_lengths/0
function measures the total VM run queue length, as well as the total CPU schedulers’ run queue length and passes those measurements to a call to telemetry:execute/3
:
% telemetry_poller/src/telemetry_poller_builtin.erl
total_run_queue_lengths() ->
Total = cpu_stats(total),
CPU = cpu_stats(cpu),
telemetry:execute([vm, total_run_queue_lengths], #{
total => Total,
cpu => CPU,
io => Total - CPU},
#{}).
To observe this event, we are specifying that our Telemetry pipeline attach a handler for the [vm, total_run_queue_lengths]
event and constructing two gauge metrics for every such event that is executed–one with the value of the total
measurement and one with the value of the cpu
measurement:
# lib/quantum/telemetry.ex
defp metrics do
[
last_value("vm.total_run_queue_lengths.total"),
last_value("vm.total_run_queue_lengths.cpu")
]
end
The system_counts/0
Function
The system_counts/0
function takes measurements including the total process count and executes a Telemetry event with these measurements via a call to telemetry:execute/3
:
system_counts() ->
ProcessCount = erlang:system_info(process_count),
PortCount = erlang:system_info(port_count),
telemetry:execute([vm, system_counts], #{
process_count => ProcessCount,
port_count => PortCount
}).
To observe this event, we are specifying that our Telemetry pipeline attach a handler for the [vm, system_counts]
event and construct a gauge metric with the value of the process_count
measurement for every such event:
# lib/quantum/telemetry.ex
defp metrics do
[
last_value("vm.system_counts.process_count")
]
end
Polling for Custom Measurements
You can also use the telemetry_poller
library to emit measurements describing custom processes or workers running in your app, or to emit custom measurements. See the docs here for more info.
Conclusion
Once again we’ve seen that Erlang and Elixir’s family of Telemetry libraries make it easy for us to achieve fairly comprehensive instrumentation with very little hand-rolled code. By adding the telemetry_poller
library to our dependencies, we’re ensuring our application will execute a set of Telemetry events describing Erlang VM measurements at regular intervals. We’re observing these events, formatting them and sending them to StatsD with the help of Telemetry.Metrics
and TelemetryMetricsStatsd
, allowing us to paint an even fuller picture of the state of our Phoenix app at any given time.
Caught a mistake or want to contribute to the article? Edit this page on GitHub!


From ‘Kayayo’ to Sokoo Hemaa – The story of a popular tv and radio personality
by Adu SarpeahEven the most fortified hurdles can be surmounted by a fiercely determined urge to accomplish one’s dreams and Melody Kukua Adjei, a Ghanaian Radio/TV personality, has inspired others with her grass to grace story.
According to her, it hasn’t been an easy journey but she stayed determined and fought to make her dream a reality.Taken to social media, Sokoo Hemaa shared her story to inspire other young girls.
‘I nearly deferred, yes because it was tough! But I kept on fighting and Yes, I made it.
‘From KAYAYO to Sokoohemaa Kukua. Throughout my education, I’ve never been the best but I’m always among the best after school, I think it’s a calling innit???
‘I’m an example to many young ladies, it doesn’t matter where you’re coming from you can achieve it. I’m here because God made a way.
‘Today I graduated successfully from AUCC, glory be to God. Thanks to all who supported me from Day 1 till today especially my husband Mr Adjei Congratulations to me.’
See post below:


{% extends "site_base.html" %} {% block body_class %}home{% endblock %} {% block body %}
I’m building this site partly to help people learn Koine Greek and partly to research how to improve the way people learn Koine Greek.
I’m bringing together lessons learnt from fields such as linguistics, learning sciences, psychometrics and machine learning, and such projects as MorphGNT, graded-reader, Quisition and Typewar. This project will combine many of my interests and endeavours from the last twenty years.
It will kick off with short surveys and games and will be built up incrementally with a strong focus on gathering data and performing learning experiments.
I’m starting small but have ambitious goals. I’m eventually going to need a lot of people to use the site to get the data I need. But I also want to teach a lot of people Koine Greek.
All the code will be open source and hopefully most of the content will be open as well. Data about individuals will not be public but data in the aggregate will be shared as potentially will de-personalized data.
Whether you're a student, a scholar or just an interested developer…


This text will be green. Inline styles take precedence over CSS included externally.
The style attribute can override it, though.
style


---
layout: null
section-type: about
title: About
---
## About
I am a iOS developer and emojis-lover :heart_eyes: based in Spain. I love Swift, clean code and UX. I love programming iPhone & iPad :iphone: (iOS), Apple Watch :watch: (WatchOS) and Apple TV :tv: (tvOS) apps.


FILL BASIC DETAILS
https://ssc.nic.in/Registration/Home
https://ssc.nic.in/Registration/Home
https://student.nielit.gov.in/CAND/CertificateRegistration.aspx{*}
https://student.nielit.gov.in/CAND/CertificateRegistration.aspx{*}


SmartDoc is a powerful application that allows you to read, create, and distribute text documents using the industry standard Doc format.
SmartDoc is easy to use. If you're already using the built-in applications, you can begin reading and writing right away.
SmartDoc also has many advanced features: Find and replace text. Rename and reorder bookmarks. Beam and download documents.
SmartDoc has two basic views: the List view and the Document view.
The List view displays a list of the documents that are present on your device. At a minimum, the title of the document is shown. Optionally, settings icons, the document date, or the document size may be shown by altering the Preferences. Tapping on the document title will open the document.
The Document view displays the current chosen document. You may read, edit, or perform other actions here.
The Doc format handles compressed and uncompressed text. The compression algorithm reduces memory use by 30-40% with average English language text.
The compression format is asymmetric. Decompression is much faster than compression. Decompression, which is used every time you view compressed text, is nearly instantaneous.
However, compression requires intense processing, and because of the more limited processing capabilities of your device, compression may take an extraordinary amount of time.
On current devices, the average time is about 6 seconds per kilobyte of uncompressed text, or about 12 kilobytes per minute.
Every time compressed text is displayed, it is decompressed on the fly. If it is not altered, it does not need to be recompressed. However, if it is altered, it will be recompressed and stored back in its file.
Because of this, it may be prudent to work with a document as uncompressed text, and before distribution, manually recompress it. This way you will avoid the decompression/recompression cycle every time you edit text.
SmartDoc allows two types of text searching: Through the Find menu in the List view and through the Global Find (silk-screened Find button).
The Find menu only searches through the current (open) document, searching sequentially through the text.
The Global Find searches sequentially through all documents. This could take a long time if you have many or long documents. This may be enabled or disabled through the Preferences dialog.
If Global Find is disabled, you may enable individual documents to be searched with Global Find (Overide Global Find). This is done through the Info dialog or through the Global icon in the List view. This allows you to search through only documents that you wish to search through, skipping others that don't need to be searched.
You can have SmartDoc automatically scroll the document for handless reading or for basic teleprompting-type use.
Tap on the triangle that represents the "Play" button and SmartDoc will begin scrolling.
Tap on the square that appears to stop scrolling.
Use the MemoPad and ToDo buttons to increase and decrease the scrolling speed respectively.
Press the Addresses button to pause the scrolling. Press it again to unpause.
Press the Dates button to stop scrolling.
When SmartDoc reaches the end of the document, the scrolling will automatically stop.
NOTE: While SmartDoc is scrolling or paused, your device will not go into sleep mode. Be aware not to leave SmartDoc scrolling or paused if you do not intend to do so, otherwise you may unintentionally use up battery power. As soon as you stop the scrolling or close the document, your device will sleep according to the system settings.
SmartDoc allows you to use the System text editing functions such as copy, paste, and undo. However, the system imposes limit to the amount of text that may be put on the clipboard. Since Doc format documents may be much larger than the working memory in your device, Select All has been changed to Select Block while working in the Document view. A block may be as large as 8k of text.
NetMarks are essentially bookmarks for Uniform Resource Locators (URLs). Each NetMark consists of a name for the NetMark and an associated URL. These may be saved into a list. Later versions of SmartDoc will have more NetMark management capabilities.
Install the SmartDoc.prc as you would with other software by using the installation software that accompanied your device. The SmartDoc icon will appear when you tap the Application icon.
SmartDoc is distributed as unlockable demonstration software. For more information, please visit our web site at http://www.onetap.com/.
Visit our web site at: http://www.onetap.com.
Email us at<EMAIL_ADDRESS>Action- This icon allows actions to be performed on the document. Tap on the icon to popup a list of actions.
Open- Select this to view/edit the document.
Open as Copy- Select this to duplicate the document and open it.
Append Memo- Select this to append a memo the the document. A memo selection dialog will appear. Tap the title of a memo to select it.
Change Category- Select this to change the category of the document. The Category popup in the upper right corner will popup. Select a category to assign to the document.
Compression- Select this to toggle the compression status of the document. If it is compressed already, it will be uncompressed, and vice versa. See Compression.
Duplicate- Select this to duplicate the document.
Beam- Select this to beam the document.
Delete- Select this to delete the document.
Backup- This icon indicates whether the document will be backed up on the HotSync. Tap on it to toggle the setting.
Global Find- This icon indicates whether the document will be searched with a Global Find regardless of whether the Global Find preference is set. This means that if Global Find in Preferences is off, the document will still be searched.
Private- This icon indicates whether the document is a private document. Of course, if private documents are set to be hidden in the System Security preferences, the document will not appear in the list.
New Button- Tap this to create a new blank document.
Category Popup- This indicates which category to display in the List view. Tap it to popup a list of categories. Tap on one to select a category.
New- Select this to create a new blank document. The document will be compressed or uncompressed according to the preference selected in Preferences.
Set All Docs To Backup- Select this to set all documents to be backed up on the next HotSync.
Set No Docs To Backup- Select this to set no documents to be backed up on the next HotSync.
Set All Docs To Read Only- Select this to set all documents to Read Only.
Set All Docs To Editable- Select this to set all documents to Editable.
Beam All In Category- Select this to beam all the documents in the current category.
Download- Select this to open up the Get File dialog.
Delete All In Category- Select this to delete all the documents in the current category.
By Name- Select this to display documents in alphabetical order.
By Size- Select this to display documents in order of increasing size.
By Date Created- Select this to display documents in order of the creation date.
By Date Last Touched- Select this to display documents in the order of last used.
Options- Select this to open up the View Options dialog.
About- Select this to open up the About dialog.
Beam SmartDoc- Select this to beam the SmartDoc application to another device.
Validate Code- Select this to open up the Validate Code dialog.
Preferences- Select this to open up the Preferences dialog.
Date- This indicates the date of the document. Its settings are controlled in the View Options dialog.
Size- This indicates the size of the document. If the typeface is in bold lettering, the document is uncompressed. If the typeface is in regular lettering, the document is compressed.
This view allows you to read and edit the document.
Editable/Read Only Switch- This indicates whether the document is editable. Tap it to toggle from Read Only to Editable and vice versa.
Category Popup- This indicates the category that is assigned to the document. Tap it to popup a list of categories. Tap on one to select a category.
Done Button- Tap this to close the current document and return to the List view.
Info Button- Tap this to open up the Info dialog.
F Button- Tap this to open up the Find dialog.
Play Button- Tap this to begin autoscrolling. Tap it again to stop.
Font Buttons- Tap on one of these to change the display font of the text.
Bookmark Popup- Tap this to popup a list of bookmarks for the document. Select a name to go to the position of the bookmark in the document.
Add Bookmark- Select this to bookmark the current position. The first 15 characters that appear at the top of the document will appear as the bookmark name.
Edit Bookmarks- Select this to open the Edit Bookmarks dialog.
New- Select this to close the current document and create a new blank document.
Close- Select this to close the current document and return to the list view.
Info- Select this to open the info dialog.
Rename- Select this to open the info dialog. There you may rename the document.
Compression- Select this to toggle the compression status of the document. If it is compressed already, it will be uncompressed, and vice versa.
Duplicate- Select this to duplicate the document. The original document will be closed and the copy will be opened.
Prepare for Distribution- Select this to open the prepare for distribution dialog.
Upload by FTP- Select this to open the upload dialog.
Beam- Select this to beam the document.
Delete- Select this to delete the document.
Add Bookmark- Select this to bookmark the current position.
Edit Bookmarks- Select this to open the edit bookmarks dialog.
Scan Embedded Bookmarks- Select this to scan the current document for embedded (bracketed) bookmarks.
Scan Custom Bookmarks- Select this to open the scan custom bookmarks dialog.
Delete All Bookmarks- Select this to delete all bookmarks.
Find- Select this to open the find dialog. This is different than global find.
Find Next- Select this to find the next instance of the last find text.
Replace/Find- Select this to open the find and replace dialog
Replace- Select this to replace with or insert the last replace text.
Go to Top- Select this to go to the top of the document.
Go to Bottom- Select this to go to the bottom of the document. Screen- Tap the screen to scroll the text. If you tap the top of the screen, the text scrolls up. If you tap the bottom of the screen, the text scrolls down. You may hold the stylus down for continuous scrolling. With continuous scrolling, the middle of the screen allows scrolling to pause.
Show Sizes- Check this to display sizes for each document in the list view. Uncheck to not display.
Show Bytes- Check this to display sizes in bytes. Uncheck this to display sizes in kilobytes (k).
Show Dates- Check this to display dates for each document in the list view. Uncheck to not display.
Created/Last- Select a display type for the dates. Select created for creation date. Select last for last date used.
Show action- Check this to display the action icon. This allows actions to be performed on the document.
Show Backup- Check this to display the Backup icon. This indicates whether the document will be backed up on the next HotSync.
Show Global- Check this to display the Global Find icon. This indicates whether the document will be searched by Global Find regardless of the Global Find setting in Preferences.
Show Private- Check this to display the Private icon. This indicates whether the document is set as a private.
Page/Line- Select whether to scroll by page or single line.
Overlap Line- Check this to have an overlapping line when scrolling by page.
Down Only- Check this to have the screen scroll down only when tapped.
Left Handed- Check this to have scroll bars appear on the left side.
Left/Right- Select whether to left or right justify the text.
Lined Text- Check this to have lined text.
Start New Docs Compressed- Check this to have new documents created as compressed. Uncheck this to have new documents created as uncompressed.
Autoscan Embedded Bookmarks- Check this to have uninitialized documents automatically scanned for embedded (bracketed) bookmarks.
Allow Global Find- Check this to enable Global Find for SmartDoc. Uncheck to disable Global Find for SmartDoc.
Go To Top Of Document- Check this if you wish to reset the document to the top.
Backup On HotSync- Check this if you wish to have the document backed up on the next HotSync.
Undo Private (If Set)- Check this if you wish to undo the Private setting for the document.
Undo Overide Global Find (If Set)- Check this if you wish to undo the Overide Global Find setting for the document.
Set Category To Unfiled- Check this if you wish to set the document to the Unfiled category.
Compress (If Not Compressed)- Check this if you wish to compress the document. Compression may take a long time to perform. See Compression.
Default Button- Tap this to set all the check boxes to the recommended actions.
Ok Button- Tap this to perform the chosen actions.
Bookmark List- The list of bookmarks available for the current document will appear. To select a bookmark, tap on it and a flashing insertion point will appear. You may then edit the name of the bookmark. You may also change the order of a bookmark by dragging and dropping to another location on the list.
Go Button- Tap this to go to the selected bookmark. If none is selected, this will do nothing.
Delete Button- Tap this to delete the selected bookmark. If none is selected, this will do nothing.
Delete All Button- Tap this to delete all bookmarks in the list.
Scan Embedded Button- Tap this to scan the current document for embedded (bracketed) bookmarks.
Scan Custom Button- Tap this to open the Scan Custom Bookmarks dialog.
Sort Alphabet Button- Tap this to sort the bookmarks in alphabetical order.
Sort Appear Button- Tap this to sort the bookmarks in order of appearance in the document.
Search For Field- Enter the text for the bookmark search.
Only At Beginning Of Line Check Box- Check this if the text should only be found at the beginning of a line of text.
Name Check Box- Check this if every bookmark has the same name. "Chapter" would be a good example.
Name Field- Enter the name of the bookmark. "Chapter" would be a good example.
Add Count Check Box- Check this if you wish to automatically number the bookmarks.
Number Of Characters Check Box- Check this if you wish to include the text after the search text to be used in the bookmark name.
Number Of Characters Field- Enter the number of characters to include. There is a limit of 15 characters.
Text To Look For- Enter the text to search.
Text To Replace With- Enter the text to replace with.
Find Button- Tap this to find the next instance of the search text.
Replace Button- Tap this to replace the selected text with the replacement text.
R/F Button- Tap this to replace the selected text with the replacement text and find the next instance of the search text.
Netmark Name Field- Enter the name of the NetMark. A description of the URL would be appropriate.
User Netmarks Popup- Tap this to popup a list of NetMarks that may be maintained by you.
URL Field- Enter the URL to get.
Text Buttons- Tap one of these buttons to insert/replace the corresponding text into the URL.
History Popup- Tap this to popup a list of previously used NetMarks. Select one to use it.
User Field- Enter the user name if accessing an FTP site. You may leave it blank if you are using an anonymous FTP site.
Pass Field- Enter the password if accessing an FTP site. You may leave it blank if you are using an anonymous FTP site.
Add Button- Tap this to add the current NetMark to the User NetMarks list.
Clear Button- Tap this to clear the User NetMarks list.
Get Button- Tap this to retrieve the URL from the Internet. Your device must be set up properly to access the Internet. See the users manual that came with your device for more details.
Netmark Name Field- Enter the name of the NetMark. A description of the URL would be appropriate.
URL Field- Enter the URL to get.
Text Buttons- Tap one of these buttons to insert/replace the corresponding text into the URL.
History Popup- Tap this to popup a list of previously used NetMarks. Select one to use it.
User Field- Enter the user name if accessing an FTP site. You may leave it blank if you are using an anonymous FTP site.
Pass Field- Enter the password if accessing an FTP site. You may leave it blank if you are using an anonymous FTP site.
Save As Text File Check Box- Check this if you are sending the file as a text file. Leave it unchecked if you are sending the file as a Palm database (pdb file).
Put Button- Tap this to send the document to the URL on the Internet. Your device must be set up properly to access the Internet. See the users manual that came with your device for more details.
Title Field- This displays the title of the document. If you wish to change it, edit the text.
Category Popup- This indicates the category that is assigned to the document. Tap it to popup a list of categories. Tap on one to select a category.
Size- This indicates the size of the document in bytes. This disregards any overhead for the database.
Compression Status- This indicates the compression status of the document.
Private Check Box- Check this if you wish the document to be private. Uncheck it if you don't. Private documents will not be searched with Global Find. Remember that Private documents are not "secure" documents.
Backup Check Box- Check this if you wish the document to be backed up on the next HotSync. Uncheck it if you don't.
Overide Global Find Check Box- Check this if you wish to have the document searched by Global Find regardless of the Global Find setting in Preferences.
Delete Button- Tap this to delete the document.
Regcode Field- This displays the RegCode of your device. It is based on your HotSync ID.
Name- Enter your name here.
Organization- Enter the name of your organization here.
Validation Code- Enter the validation code that you received after purchasing SmartDoc.
Ok- Tap this to validate.
Undo- Select this to undo the last Edit menu function.
Cut- Select this to cut the selected text.
Copy- Select this to copy the selected text.
Paste- Select this to paste previously cut or copied text.
Select All- Select this to select all the text.
Select Block- Select this to select a block of text. Since only a portion of a document is used/visible at a time, only a block will be selected.
Keyboard- Select this to bring up the System keyboard.
Graffiti- Select this to bring up the Graffiti help.
SmartDoc may be distributed as long as this Read Me file is included unmodified.
In using this software, you understand and agree that this software is provided łas is˛ without warranty of any kind. The authors do not make any warranties, either expressed or implied, including but not limited to implied warranties of merchantability and fitness for a particular pur-pose, with respect to this software.
In no event shall the author be liable for any consequential, incidental, or special damages whatsoever (including without limitation, damages for loss of critical data, loss of profits, interruption of business and the like) arising out of the use or inability to use this software.
In registering this software, you are granted a nonexclusive license to use the software. Registration does not grant you any intellectual property rights in the software. The software is owned by OneTap and yischon liaw and is protected by United States Copyright Law and International Treaty provisions.
Palm Computing, HotSync, and Graffiti are registered trademarks and Palm is a trademark of Palm Computing, Inc., 3Com Corporation or its subsidiaries.
Doc is a trademark of Aportis Technologies Corp. and Rick Bram.
RegCode code is based on PalmCreation's description of RegCode appearance.
SmartDoc and NetMarks are Copyright ©1998 OneTap. All Rights reserved.


"... no one has, so far as we know,
proposed
modelling propositions as
vectors
while retaining classical logic."
-- Jonathan Westphal and Jim Hardy
in the February 2004 paper excerpted below.
"This note discusses a 'geometry of logic'....
the 16 elements of the affine
4-space A over the two-element Galois field GF(2)."
-- Steven H. Cullinane, The Geometry of Logic, March 2007.
(Recall that an affine space is, essentially,
a vector space (plus translations).)
The following is from "Logic as a Vector System," by Jonathan Westphal
and Jim Hardy, Journal of Logic and Computation
2005 15(5): 751-765. Received by the Journal on 16
February 2004.
Of course the idea that logic might be visualized or represented
geometrically is not at all new.
Venn diagrams are commonly used in beginning logic instruction [8] and
can themselves be seen as
improvements on Euler diagrams. Lewis Carroll presents diagrams that he
sees as further improvements
[5]. There have also been attempts to understand the logic of diagrams
generally. The work
of Jon Barwise and John Etchemendy [3, 2] is important here. Finally,
many studies have attempted
to spell out the logical workings of already existent diagrammatic
methods, for example, Sun-Joo
Shin’s work on the logic of several diagrammatic systems [12, 13, 14].
More closely related to our work are systems such as arrow logic2
and
digraphs [7]. However,
these systems do not quantify the magnitude or direction of the arrows
they use. As a result, neither
can be seen as a vector system.
We do not wish, however, to suggest that our work occurs in a vacuum,
nor that we are the first
to envision a relation between vectors and logic. Widdows and Peters
[16] have argued that logical
operations within certain kinds of vector spaces provide a perspicuous
and computationally efficient
way of modelling word meaning within the context of document retrieval
operations. Vectors, in their system, are models of word meaning.
Mizraji [10] has developed a
vector-based logic in which
truth-values are vectors and logical operators are matrix operations on
the space. More closely related
to the present work is von Neumann’s quantum logic [4]. Von Neumann
models propositions
as sets of vectors in Hilbert Space. However, in contrast to the
present work, von Neumann’s logic
is non-classical. More recently, Aiello and van Benthem [1] have
suggested that mathematical morphology
provides a model for linear logic. On such a model, formulas are
interpreted as arbitrary
subsets of vector space. However, the logic is again not classical.
Given the history, it would be surprising if anyone were to deny that
there was a relation between
vectors and logic. Nonetheless no one has, so far as we know, proposed
modelling propositions as
vectors while retaining classical logic. We hope that by the end of
this paper the reader will agree
that doing so is both interesting and fruitful.
2 The best introduction to the subject
is [15]
References
[1] M. Aiello and J. van Benthem. A modal walk through space. Journal
of Applied Non-Classical Logics, 12, 319–363,
2002.
[2] J. Barwise and J. Etchemendy. Visual information and valid
reasoning. In Visualization in Mathematics, W. Zimmermann and
S. Cunningham, eds, pp. 9–24. Number 19 in MAA Notes,
Mathematical
Association of America, 1991.
[3] J. Barwise and J. Etchemendy. Heterogenous logic. In Diagrammatic
Reasoning: Cognitive and Computational Perspectives. MIT Press,
1995.
[4] G. Birkhoff and J. von Neumann. The logic of quantum mechanics.
Annals of Mathematics, 37, 823–843, 1936.
[5] L. Carroll. Symbolic Logic and the Game of Logic. Dover,
1958.
[7] M. Gardner and F. Harary. The propositional calculus with directed
graphs. Eureka, 34–40, 1988.
[8] P. J. Hurley. A Concise Introduction to Logic. Wadsworth,
2002.
[10] E. Mizraji. Vector logics: the matrix-vector representation of
logical calculus. Fuzzy Sets and Systems, 50, 79–185, 1992.
[12] S.-J. Shin. Peirce and the logical status of diagrams. History
and
Philosophy of Logic, 15, 1994.
[13] S.-J. Shin. A situation-theoretic account of valid reasoning with
venn diagrams. In Logical Reasoning with Diagrams, J. Barwise
and G. Allwein, eds. Oxford, 1996.
[14] S.-J. Shin and E. Hammer. Euler’s visual logic. History and
Philosophy of Logic, 19, 1998.
[15] Y. Venema. A crash course in arrow logic. In Arrow Logic and
Multi-Modal Logic, L. P´ol´os, M. Marx and Masuch, eds,
pp. 3–34. CSLI, Stanford, 1996.
[16] D. Widdows and S. Peters. Word vectors and quantum logic:
Experiments with negation and disjunctions. In Proceedings of
Mathematics of Language, Vol. 8. R.T. Oehrle and J. Rogers, eds,
pp.
141–154. 2003.


{% extends "carrental/base.html" %} {% load staticfiles %} {% block content %} {% if booking_success %} You have successfully created a booking for this car. Someone from our staff will contact you shortly. {% endif %}
{{ object.description }}
${{ object.daily_rent }} / day
Book Now {% endblock %}


View.ClipOff
Syntax
View.ClipOff
Description
The View.ClipOff procedure turns off clipping. This means that any drawing commands can appear on the entire drawing surface (the screen or the window, depending on the system).
These commands only work in "graphics" mode.
Status
Exported qualified.
This means that you can only call the function by calling View.ClipOff, not by calling ClipOff.
| See also |
|
View.ClipAdd and View.ClipSet functions. |


Guidance
A guide for teachers on the responsibilities of exam boards and schools.
Regulation of GCSEs, AS and A levels: guide for schools Students in England take around 5 million GCSEs, 1 million AS and 800,000 A levels every year.
Schools and colleges have a key role in making the system work.
This guide explains how Ofqual regulates the exam boards that provide GCSEs, AS and A level qualifications, what schools and colleges can expect from exam boards and what exam boards, in turn, expect from schools and colleges. It covers:
The guide includes links to other documents that include more detail about how the qualifications and exam systems work. It does not detail all the requirements we place on exam boards and it does not have any regulatory status. The regulations with which exam boards must comply can be found on Ofqual’s website .
We do not regulate schools or colleges and so we do not place any requirements directly on them. In light of the key role schools and colleges play in making sure the qualifications system works effectively and fairly, some of the regulations we place on the exam boards affect the way they must interact with schools and colleges and the obligations exam boards place on them.
We have recognised 4 exam boards to award GCSEs, AS and A level qualifications:
Information about their ways of working and about their qualifications can be found on their websites. For some aspects of the qualification system, the exam boards adopt common ways of working. This makes it easier for schools and colleges and can help secure a qualification that is fair to all, regardless of the exam board used. When the exam boards work together in this way they generally do so through the Joint Council of Qualifications ( JCQ ) , their membership body. The guide should be read alongside more detailed documents published by the exam boards and JCQ . We have included links in this guide to relevant JCQ documents.
This guide covers both the reformed and legacy versions of the qualifications. It includes information on when the reformed qualifications are being introduced.
We will continue to develop this guide as necessary and reissue it in 2017.
The GCSE, GCE, Principal Learning and Project Code of Practice (the Code) set out a number of rules exam boards had to follow when delivering, assessing and awarding these qualifications. We are withdrawing the Code because it largely duplicates some of the General Conditions of Recognition with which exam boards must comply. We have also decided to introduce some clearer rules on the way exam boards deal with requests for reviews of marking and appeals. The Code pre-dates the introduction of reformed GCSEs, AS and A levels and it does not apply to the new qualifications.
We withdrew the Code in respect of AS and A level qualifications on Thursday 18 August 2016, coinciding with the issue of results for those qualifications. We withdrew the Code in respect of GCSEs on Thursday 25 August 2016 coinciding with the issue of results. We will withdraw the Code in respect of Principal Learning and Project at a later date.
We have already incorporated into the relevant Qualification Level Conditions the rules with which exam boards must comply when they are setting grade boundaries. These Conditions are published on our website.
For the remainder of this guide we refer to the Code in the past tense.
Exam boards develop and award GCSEs, AS and A levels. The content for these qualifications is prepared and published by the government.
We set rules for each of these qualifications with which exam boards must comply. These are General Conditions that apply to all regulated qualifications, Qualification Level Conditions (that are specific to GCSEs or to AS and A levels) and Subject Level Conditions (that are specific to a qualification in a subject). They include rules on how the qualifications must be assessed. The rules are published on the section of our website called Understand our regulations .
Exam boards can only award these qualifications if we have accredited them. We only accredit qualifications when we are confident the exam board has demonstrated it can comply with the requirements for the qualification on an on-going basis.
Exam boards are required to publish a specification for each qualification. The specification must set out a range of information, including:
When they are developing new qualifications, exam boards usually publish a draft version of the specification on their website. An exam board may also publish draft sample assessments materials and mark schemes.
The drafts might not reflect the final versions, as changes may be required before we accredit them. Schools and colleges should be aware that draft specifications can change before the qualification is accredited, but the drafts do give an indication of the approach the exam board is intending to take.
We do not set rules on how exam boards handle entries from schools and colleges. They have their own arrangements and set their entry deadlines.
We know that schools and colleges are most likely to consider switching exam boards when new qualifications are introduced. This can make it particularly difficult for exam boards to predict how many students will be taking their assessments and how many markers they will need. To help them with their planning, the exam boards may ask schools and colleges for early indications of their expected entries. We encourage schools and colleges to give exam boards this information as this should help the system run efficiently and effectively.
These qualifications are assessed by exam, except where there are essential skills in a subject that can only be assessed in other ways (by non-exam assessment). We set a number of requirements with which exam boards must comply when developing, delivering and marking exams and non-exam assessments. For example, they must design assessments that assess the specified content of the qualifications and be of an appropriate level of demand. Any optional routes must be of a comparable level of demand and the exams should be designed as far as possible to be equally demanding year on year.
Exam papers are written well in advance; for some papers the process can start 2 years before students sit the exam. Exam boards take into account how well previous years’ assessments worked when developing papers.
The Code prescribed some of the processes exam boards had to follow when writing papers. With the removal of the Code they now have more flexibility to determine their own processes, but the outcome must meet the full range of requirements that apply to all assessments and to those for assessments for each particular qualification type and subject.
Exam boards must make sure schools and colleges have the information they need to administer the exams at the right time and under the right conditions, and that they take particular care to protect the confidentiality of the exams.
We require exam boards to have written and enforceable agreements with schools and colleges that deliver any part of their qualifications, including administering exams and other assessments. The agreements must cover a number of provisions, including that the school or college:
The full range of provisions we require exam boards to cover in their agreements with schools and colleges is set out in C2 of our General Conditions of Recognition .
JCQ has produced some instructions for schools and colleges for conducting examinations. This is a comprehensive guide to what schools or colleges must do to administer the exams properly , as well as some helpful tips for making sure that the exams go smoothly. It covers a range of requirements the exam boards place on schools and colleges, including:
Exam boards check that schools and colleges are following their instructions, including through visits carried out by JCQ ’s Centre Inspection Service. We require exam boards to have a sanctions policy that they apply when a school or college is found to have breached its requirements. Possible sanctions include additional monitoring visits, the deployment of exam board invigilators and stopping a school or college offering some or all of its qualifications. The JCQ publishes guidance setting out how exam boards investigate potential malpractice and the sanctions they may impose when malpractice is confirmed.
We will not normally be involved with the investigation. If a school or college is dissatisfied with the way an exam board has conducted such an investigation or with any sanctions applied it should complain or appeal to the exam board. We will usually only consider a complaint once the exam board’s own complaints and appeals procedures have been exhausted.
Many of the issues which exam boards notify us about, and which exam boards investigate, appear to result from poor practice or maladministration rather than acts of deliberate wrong doing. For example, when the wrong exam papers are given to students at the wrong time. These incidents must be reported to the exam board as soon as they are discovered. Schools and colleges must comply with the instructions they are given by their exam boards to reduce the risk of these errors occurring, such as 2 people being present when the papers are opened.
Where a mistake like this is made it can be difficult to prevent the affected students being disadvantaged. For example, they might find themselves taking an exam they were not expecting that day, and for which they were not fully prepared. Their marks for a qualification might have to be estimated if they could not then take the exam they should have taken, because, for example, they had been in contact with other students who had taken the correct exam.
At the end of an exam, schools and colleges must also carefully follow the instructions from each exam board on how to return the scripts for marking.
Anyone who works in a school or college should report any concerns they have about the administration of an exam to the relevant exam board or to Ofqual. Concerns can be reported to us under the Public Interest Disclosure Act 1998. This is also known as whistleblowing. In certain circumstances, this can provide protection when a person discloses concerns about practice where they work. We have a whistleblowing policy and a form for reporting concerns on our website . You can find out more about whistleblowing from Public Concern at Work .
If a school or college believes there is an error in an exam paper, including in any modified papers, it should contact the relevant exam board immediately. Exam boards will consider whether an error has been made and, if it has, consider the potential impact of the error on students. They consider, for example, whether the error will have stopped students being able to answer the question or complete the task or whether students’ performance in other questions might have been affected by the error. They then decide the fairest way to proceed. This might include carrying out statistical analysis to see whether the question performed as expected or awarding all students full marks for the question.
We take question paper errors seriously. We consider whether an exam board’s planned action is appropriate and fair and we may require it to take particular steps to address the impact of the error on student.
We require exam boards to have effective arrangements in place to make sure mark schemes are understood by markers and are being applied accurately and consistently.
Exam boards have their own ways of meeting this rule. Their approaches often depend on whether scripts are marked on paper or electronically (on-screen), as well as whether they are marked by question or as a whole paper.
Where marking is carried out on-screen, exam boards check on an on-going basis the accuracy of each marker’s marking, often by including in their marking allocation ‘seed’ items (selected responses to one or more questions). Senior markers will already have agreed a mark for the response and determined how much variation they think is acceptable (a marking tolerance). Markers do not know which items are ‘seeds’. If markers award a mark for a seed item which is outside the set tolerance, the marker can be stopped from marking, until they have undertaken further training. The marking they have already completed might be remarked or adjusted. They might be stopped permanently from marking.
Where marking is carried out on paper, markers send samples of their marking to a more senior marker for checking. If a marker is not marking to the required standard, the marker can be stopped from marking. They might be required to undertake further training or be stopped permanently from marking. The marking they have already completed might be remarked or adjusted.
A school or college that wants to understand how a particular exam board quality assures its marking should look on the exam board’s website for information or contact the board.
The great majority of markers are current or retired teachers ( Our survey of 10,000 examiners in 2013 found that over 99% were teachers or former teachers). The exam boards recruit markers every year and look for ways to encourage teachers to become markers. Teachers who become markers often find that they enjoy it and notice the benefits it can have on their teaching. Teachers who are interested in becoming markers should contact the exam boards. JCQ publish information on the role of an examiner. .
Not all skills and knowledge can be assessed through exams. Where this is not possible exam boards test these skills and knowledge through non-exam assessments. In GCSEs, AS and A levels that have not been reformed, non-exam assessment is generally described as controlled assessment or coursework.
Some non-exam assessment is marked by teachers in the student’s school or college; some is marked by visiting examiners, or sent to the exam board for marking.
For all reformed GCSEs, AS and A levels we have set out what percentage of the total marks will come from non-exam assessments. Unless this is prescribed in our rules, exam boards decide how many tasks students have to complete and which assessment objectives the tasks will cover. For some subjects we have prescribed the earliest date by which the tasks to be completed by students can be provided to teachers and to students. Exam boards must comply with any such date restrictions.
Exam boards must make sure all assessors, including teachers who are marking their own students’ work, understand how they must mark and that marking is done accurately and consistently.
Each exam board will provide its own instructions on how the non-exam assessments must be undertaken. JCQ has also published detailed guidance about how the exam boards operate their non-exam assessments and what is expected of schools and colleges. JCQ also has guidance on the conduct of coursework .
Exam boards check whether their rules are properly followed. They have different ways of doing so, including through general centre-inspection visits, subject-targeted visits and statistical monitoring (which enables them to identify marks for non-exam assessments that appear out of line with students’ performance in their exams for the subject).
We require exam boards to take all reasonable steps to prevent malpractice and maladministration occurring, including in the way non-exam assessments are undertaken, supervised and marked. We require exam boards to investigate any suspicions or allegations of malpractice or maladministration. We also require exam boards to keep under review what schools and colleges do to prevent and investigate malpractice and maladministration. Exam boards must take action against those responsible for malpractice or maladministration.
For some of the reformed qualifications, students’ performance in their non-exam assessment is reported in a grade or outcome that is separate to that for the exam assessments for the qualification. This is the case for GCSE English language, for which the outcome of the spoken language assessment is to be reported separately to the grade for the exams. In A level science qualifications, students’ performance in their practical science assessment is also to be reported separately to the grade for the exams.
Exam boards must moderate (or monitor, for qualifications where non-exam assessment is reported separately) any assessments marked within the school or college (internally marked assessment) to make sure marking has been undertaken accurately and consistently between teachers across all schools and colleges. Schools and colleges must comply with the exam boards’ moderation requirements.
An exam board must adjust the marks given to internally marked assessment where they find that marking is out of line with the required standard.
Once the work of most students has been marked, grade boundaries are set. All exam boards must set grade boundaries according to our rules. The basic principle that exam boards follow when setting grade boundaries is that if the group of students (the cohort) taking a qualification in one year is of similar ability to the cohort in the previous year then the overall results (outcomes) should be comparable. This is a longstanding principle that exam boards have used for decades.
For AS and A level, exam boards will use predictions based on the prior attainment at GCSE of the current year’s cohort. For GCSE, they will use predictions based on the prior achievement at Key Stage 2 of the current year’s cohort. Predictions are used to guide decisions on the key grade boundaries. For AS and A level, exam boards will use predictions based on the prior attainment at GCSE of the current year’s cohort. For GCSE, they will use predictions based on the prior achievement at Key Stage 2 of the current year’s cohort. Predictions are used to guide decisions on the key grade boundaries.
Other evidence is also considered, including:
When qualifications are introduced, it is usual to see a dip in performance, as schools and colleges get used to new content, or new styles of assessment. The use of predictions to guide awarding decisions helps to make sure students are not disadvantaged by being the first to sit a new qualification. It also means that we can judge whether the grade standards are in line across exam boards.
The predictions are used to guide awarding decisions at national level and not to predict the grades for individual students.
Before any results are issued, exam boards share the outcomes of their awards with us. Exam boards must provide evidence to justify any circumstances where the expected results are markedly different from the predictions. We consider that evidence according to a published process (See ‘ Reviewing GCE and GCSE outcome data received from awarding organisations as part of the data exchange procedure Summer 2016 ’). We will either accept the explanation provided by exam boards or challenge the results if the argument is not backed by sufficient evidence.
While national results may remain steady from one year to the next, we know that schools and colleges can see variability in their year-on-year results, even when qualifications don’t change. When qualifications do change, schools and colleges are more likely to see variations in their results. We have published information on this in recent years (For example, see ‘ Variability in GCSE results: 2012 to 2015 ’).
Each exam board must, on request, review whether there were any errors in the original marking of an assessment, or in the moderation of a teacher-marked assessment. They must also allow appeals in certain circumstances. We are introducing into the relevant Qualification Level Conditions, requirements about the way exam boards must undertake reviews of marking and moderation and consider appeals. These will replace the provisions that were in the Code. Most of these new Conditions will apply for reviews of marking and moderation and for appeals in respect of the qualifications awarded in 2016; some of the new Conditions won’t come fully into force until 2017 or later.
The Code stopped exam boards accepting a review of marking or an appeal directly from students (or their parents or carers). There was an exception for students who were not attached to a school or college, for example because they were home schooled. We have lifted this restriction. This does not mean that exam boards must now accept requests directly from students (or their parents or carers).
We recognise the value in schools and colleges advising their students on whether they should formally question their marks. We have not, therefore, required exam boards to accept requests directly from students.
However, exam boards can now decide whether and, if so, in what circumstances, they will accept requests directly from individual students. Each exam board will decide whether to do so, either in all cases or on an exceptional basis.
If an exam board only accepts requests from schools or colleges, and not those made directly by students, the exam board must make sure the school or college gives a student an opportunity to appeal against the school’s or college’s decision not to ask for a review or to appeal. This reflects the requirements that were in the Code.
When requested to do so, an exam board must arrange for a reviewer to consider whether the original marker made any errors when marking an assessment. Reviewers must be specifically trained to undertake reviews, as the process of reviewing the way a question or a paper has been marked is different to marking the question or paper afresh. Exam boards must also monitor the way reviewers undertake reviews, to assure themselves reviewers are complying with the Conditions and are acting consistently.
The exam board must publish its deadlines for receiving such requests and its fees. It must also publish its target turnaround times.
A reviewer must:
If the reviewer finds a marking error, the reviewer’s mark will replace the original mark and the exam board must change the grade if necessary. Any new mark and grade awarded after the review could be higher or lower than that originally given. If the reviewer does not find a marking error the original mark must not be changed. The exam board must tell the school, college or individual student (where the request was accepted from an individual) the outcome of the review.
If the review raises questions about the accuracy of other students’ results the exam board may choose to extend the review to other students’ papers. If it finds errors in the marking of those students’ papers, they may replace the original mark, and the grade if necessary. Any new mark and grade awarded after the review could be higher or lower than that originally given.
For 2016 a school or college (or student, where the exam boards accepted a request from an individual) can ask the exam board to give reasons for the outcome of a review. The exam board must provide the reasons on request. Because the turnaround time for reviews can be important for a student’s progression, we do not require exam boards to provide reasons when they communicate the outcome, as this might delay the outcome being communicated.
We will consider whether, in future years, reasons should be provided automatically.
Some exam boards have told us they might not be able to provide reasons immediately on request. If an exam board receives a large volume of requests, particularly in 2016, it might need an extended period of time in which to respond. A school or college waiting for a response to its request for the reason of a review outcome should take care not to miss the exam board’s deadline for submitting an appeal or it might not be accepted. An appeal can be made without the reason having been returned.
A mark will only change where the reviewer found the original marker made a marking error. In most cases, where the mark has not been changed on review, the reason will be that the reviewer found no marking error. An exam board might choose to communicate this when it provides the outcome of the review.
Occasionally, a reviewer might find 2 or more different errors on review which, when corrected, result in no overall mark change (they cancel each other out). Exam boards must provide reasons for this, if requested to do so (unless they provide the reason when they communicate the outcome of the review).
Exam boards will have their own ways of providing reasons for review outcomes on request.
The Code required that schools and colleges (through their agreements with exam boards) provided an opportunity for students to appeal within their school or college about teacher-marked (internal) assessments that contribute to a GCSE, AS or A level.
We have consulted on the requirements we should put in place to allow students to ask for a review of the marks given by their teachers for their assessments. As teacher-marking will already be completed for qualifications to be awarded in summer 2016, we have not yet introduced the range of requirements on which we consulted, beyond replicating the requirement that was in the Code. This means that in 2016 an exam board must make sure a school or college has arrangements in place to allow a student to request a review of teacher marking.
We are still considering when we should bring our new requirements in this area into force and will also further consider whether any revisions to our regulations should be made.
A school or college can ask for the outcome of an exam board’s moderation to be reviewed by the exam board. The request must be made on behalf of the whole of the school or centre’s cohort for that component. This reflects the requirements that were in the Code. The exam board must publish its deadline for receiving such requests and its fees. The reviewer must consider whether the moderator made any errors. As with exam marking, an error is likely to have been made if the reviewer concludes that:
If the reviewer does not find a moderation error the outcome must not be changed. If the reviewer finds there was an error, the reviewer must re-moderate the teacher’s marking and adjust the marks appropriately. The exam board will normally adjust the grades where necessary.
The Code included a rule that where an exam board found, following a review of moderation, that a student had been given a grade that was too high, the grade should not be reduced. It is important that students should be given the result their performance deserves. There is no automatic protection of a grade that is too high when such an error is found in other circumstances and we intend to withdraw this automatic protection. However, to allow schools and colleges to have time to adjust to the change, for 2016 such a protection will be in place. We will announce when the protection is removed.
Each exam board must set and publish its own timelines, including the deadlines by which requests for a review or an appeal must be received. The exam boards have set common deadlines for 2016 .
For future years we will require the exam boards to set their timelines within common parameters.
Exam boards can charge a fee for reviewing a mark and for considering an appeal. They have to publish the fees they will charge, and be clear about any circumstances in which they will not charge. The fees for 2016 have been published by each exam board.
Schools and colleges can ask exam boards to give them access to marked AS and A levels scripts. Exam boards set a deadline for the receipt of requests for returned scripts. When asked by a school or college to do so, by their deadline, they must provide a copy of the student’s marked script in time for a school or college to decide whether to ask for the marking to be reviewed. Where a school or college wants a review completed quickly, due to the timescales imposed by university admissions arrangements, an exam board may offer a different approach. This is a well-established practice. Exam boards may charge for this service.
The Code did not make similar provisions for access to marked GCSE assessments. For exams taken in 2016 exam boards can decide whether to make marked GCSE assessments available before the deadline for asking for a review of marking. They will also decide whether to charge a fee for this service.
In the future, we intend to make it a requirement that exam boards must give schools and colleges access to marked GCSE scripts before a school, college or individual student has to decide whether to ask for a review of marking. We have not yet set a date for the introduction of this requirement, as we know some exam boards will have to change their systems to make this possible.
From 2016 exam boards must make mark schemes available before the deadline for schools and colleges deciding whether to request a review of marking of the corresponding assessments. Although it is already the case that exam boards made mark schemes available they have not been required to do so before now.
If a school or college remains concerned about an outcome following a review, it can appeal to the exam board. Appeals can be on the grounds that an exam board did not apply its procedures consistently or that procedures were not followed properly and fairly.
Appeals can also be made in respect of:
This is broadly in line with the grounds for appeal that were provided for in the Code.
The Code required exam boards to consider appeals on the grounds that the exam board’s procedures were not consistent with the Code and/or that it had not applied its procedures properly or fairly in arriving at judgements.
A school or college seeking to appeal on the grounds of a procedural failure by an exam board would need to demonstrate that the exam board had not applied its procedures consistently or followed them correctly or fairly.
The exam boards will need to publish or tell the school or college what procedures it has adopted. Where an exam board has used the procedures set out in the Code for aspects of its approach, they might in 2016 refer to the relevant parts of the Code when telling a school or college what procedures it has followed. The Code will continue to be available for schools and colleges to see, should they wish to use inconsistency with the procedures in the Code as the basis for an appeal – if these are the procedures the exam board says it has followed.
The setting of a grade boundary cannot be the subject of an appeal.
An exam board must make sure that those making appeal decisions are competent to do so, have no personal interest in the outcome, and were not involved in the original marking or moderation or the review of the marking or moderation. The final decision must involve at least 1 decision maker who is not connected to the exam board.
An exam board may choose to offer the school or college (or individual student whose appeal was accepted by the exam board) the opportunity to attempt to resolve the disagreement without the need for a full and formal appeal. This may be welcomed as a potentially quicker and cheaper option, but we do not require that this approach is offered and the opportunity for a full appeal must remain available. Each exam board must publish its appeal arrangements, its fees and deadlines.
We have proposed that in future the grounds for an appeal should be extended to include the grounds that a marking error made by the original marker or moderator had not been corrected on review or that there had been a marking error in the review itself. An appeal could be based on a concern that an administrative error had not be corrected, the mark scheme was not properly applied and/or the mark could not have been given by a trained marker, who had appropriate subject knowledge and who had exercised his or her academic judgement in a reasonable way.
We have decided, following further consultation, to require the exam boards to allow this additional ground of appeal in a pilot in 2016 in:
As the reformed versions of these qualifications will not be awarded until 2017, the pilot will only cover A levels of which an AS is a part. The pilots must, therefore, necessarily cover the AS qualifications in these subjects. The reformed AS qualifications are not to be included in the pilot.
We will evaluate the pilot and consider if, and if so how and when, this additional ground for appeal should be extended to other GCSE, AS and A level qualifications.
We recognise that in requiring this pilot in just 6 qualifications (3 A levels, 3 AS), students taking those qualifications have the potential to appeal on grounds that will not be available to students taking other subjects. However, we will not be putting students taking those other qualifications in a worse position than they otherwise would be if the pilot did not take place. The appeal provisions in respect of other subjects will align with those that were required by the Code.
Opening up the grounds of appeal in this way is considered to be a significant change in approach. The pilot will allow exam boards, schools, colleges and us to understand and evaluate the benefits and costs of doing so. It will provide information to help schools and colleges decide whether and, if so, how to appeal on the additional grounds in the future.
A school or college wishing to appeal to the exam board on the grounds of an uncorrected marking error in one of the pilot qualifications should follow the exam board’s requirements for submitting such an appeal.
Schools and colleges who, having exhausted the exam board’s appeals process, are still unhappy with the result can ask Ofqual to review the case through the Exam Procedure Review Service ( EPRS ).
We are not planning to make any changes to this service in respect of assessments taken in 2016. A school or college that had appealed in one of the pilot subjects could apply to the EPRS in the normal way. A school or college that applied to the EPRS in respect of one of the qualifications that was subject to the pilot could apply to the EPRS on the grounds that the appeal had not been properly considered by the exam board.
Reasonable adjustments are changes made to an assessment or to the way an assessment is conducted that reduce or remove a disadvantage caused by a student’s disability. They are needed because some disabilities can make it harder for students to show what they know and can do in an assessment than it would have been had the student not been disabled.
The Equality Act 2010 requires exam boards to make reasonable adjustments to assessments for disabled students. We require exam boards to publish their arrangements for making reasonable adjustments, including how a student qualifies for a reasonable adjustment and what reasonable adjustments will be made.
We have the power under the Equality Act to lift the duty on exam boards to make reasonable adjustments in some cases. The way we have exercised this power is set out in our specifications (We are consulting on making some amendments to these specifications . The consultation closes on 1 August 2016.).
Exam boards only have to make a reasonable adjustment to an assessment if the student’s disability makes it substantially harder for them to show what they know, understand and can do in that assessment.
The Equality Act 2010 defines disability as:
a physical or mental impairment … [that] has a substantial and long-term adverse effect on [their] ability to carry out normal day-to-day activities.
A short-term illness or temporary injury is not a disability. So a student who is temporarily ill or injured isn’t entitled to reasonable adjustments. But there may be other adjustments available for them.
Exam boards can make a wide range of adjustments to their assessments. Some of the most common adjustments are:
This is not an exhaustive list – other adjustments may be available, depending on the student’s needs – and not all of these adjustments will be reasonable in all cases.
It is important to understand that the adjustments for an individual student will depend on how – and how much – their disability affects them when taking a particular assessment. That means:
The exam board has to decide, based on each student’s individual circumstances, which (if any) adjustments are reasonable, factors they should consider when making that decision include:
Schools and colleges normally need to apply for reasonable adjustments on behalf of their students. To show that a student is eligible for a reasonable adjustment, you need to show that:
Schools and colleges must also set out the adjustments the student needs. The student’s normal way of working is likely to be particularly relevant when coming to that view.
A school or college that is unsure what adjustments might be appropriate for a particular disabled student should discuss their needs with the exam board as early as possible. The exam board will be able to provide advice about the different adjustments that are available, and the evidence that will be needed to support the application. Some adjustments take time to arrange, and early notice helps the exam board provide the adjustment in time.
Schools and colleges are responsible for making sure that any adjustments agreed with the exam board are put in place and are used properly when students take their assessments.
JCQ provide more information about applying for reasonable adjustments .
An exam board should explain why it has decided not to give a student an adjustment or to give them a different adjustment to that requested. Our rules also mean they must have a process for appealing that decision. If a school or college does not agree with the exam board’s decision, it should follow that process. We will usually only consider complaints about an exam board once the appeal has been concluded.
We do not have powers to investigate complaints or disputes about whether exam boards have breached equality law. We cannot, for example, determine whether an exam board has discriminated against a disabled student. However, an exam board that was found to have breached equality law may also have breached its Conditions, enabling us to take regulatory action.
Complaints about whether an exam board has breached equality law should be made to the Equality and Human Rights Commission . The matter might also be taken to court. A school or college might therefore want to get legal advice or contact the Equality Advisory and Support Service first.
Our rules define special consideration as any special treatment given to a student who has temporarily experienced an illness, injury or other event outside their control which significantly affects their ability to:
Our rules require exam boards to:
We do not specify what special consideration exam boards should give, or how they should determine eligibility for it.
However, all the exam boards offer 2 different types of support for students who are affected by circumstances outside their control, both of which are types of special consideration:
JCQ provide more information about these different types of support .
If a student’s ability to complete their assessments, or fully to demonstrate in their assessments what they know, is affected by a temporary illness, injury or other event outside their control, the exam board should be notified as soon as possible.
The exam board can explain what support they can offer, and how to apply for it.
A school or college should not wait until the student has completed the assessments, or until after results are issued before contacting the exam board as this may mean the student misses out on additional support.
An exam board should always explain why it has decided not to give a student a special consideration or to make a different consideration to that requested. Our rules mean they must have a process for appealing that decision. If a school or college doesn’t agree with the exam board’s decision, it should follow that process. We will usually only consider complaints about an exam board once the appeal has been concluded.
Malpractice (including cheating and exam fraud) can affect both qualification standards and confidence in qualifications. It undermines the hard work of students, teachers, schools and colleges, and we take it very seriously.
Our rules for exam boards reflect how serious malpractice can be. We require exam boards to do all they can to prevent malpractice when developing, delivering and awarding regulated qualifications. We also require exam boards to:
Schools and colleges have a key role to play in tackling malpractice.
Exam boards rightly expect schools and colleges to take malpractice, and the risk of malpractice, seriously. They expect schools and colleges to have proper processes in place for investigating and dealing with allegations of malpractice. Exam boards will have their own rules for when and how exams and other assessments are conducted which schools and colleges must follow. Any breach of these rules can undermine the fair conduct of the assessments and the fair award of the qualifications and can result in the assessed work being rejected, the school or college being sanctioned by the exam board or both.
Exam boards, schools and colleges (and those working for them) should always report any evidence or suspicions of malpractice.
Employees of exam boards, schools and colleges should normally raise any concerns with their employer first. For more information see the page on whistleblowing .
But concerns can also be reported to Ofqual .
We will investigate concerns about malpractice within exam boards, but will normally ask the appropriate exam boards to investigate concerns about schools and colleges.
If we are not satisfied that an exam board is properly investigating suspicions or allegations of malpractice we may require it to take particular steps to do so. We may also require it to impose particular sanctions on those responsible for the malpractice.
Reformed GCSEs, AS and A levels are being introduced in a phased way. The table below shows which reformed qualifications students in different years will take.
| Year group | GCSE | AS and A level |
|---|---|---|
| Students starting their course in 2015 (Note 1) and taking their exams in 2017 (Note 2) |
English language
English literature mathematics |
art & design
biology business chemistry computer science economics English language English language and literature English literature history physics psychology sociology |
| Students starting their course in 2016 and taking their exams in 2018 (Note 3) |
2015 subjects plus:
art & design biology chemistry citizenship studies computer science dance drama combined studies food preparation & nutrition French geography German classical Greek history Latin music physical education physics religious studies (Note 6) Spanish |
2015 subjects plus:
classical Greek dance drama & theatre French geography German Latin music physical education religious studies Spanish |
| Students starting their course in 2017 and taking their first exams in 2019 (Note 4) |
2015 and 2016 subjects plus:
ancient history Arabic astronomy Bengali business Chinese classical civilisation design and technology economics electronics engineering film studies geology Italian Japanese media studies modern Greek modern Hebrew PE short course Polish psychology Panjabi Russian sociology statistics Urdu |
2015 and 2016 subjects plus:
accounting ancient history Chinese classical civilisation design & technology electronics environmental science film studies geology history of art Italian law mathematics further mathematics media studies music technology philosophy politics Russian statistics |
| Students starting their course in 2018 and taking their exams in 2020 (Note 5) |
All previous subjects plus:
Gujarati Persian Portuguese Turkish |
All previous subjects plus:
Arabic Bengali Gujarati modern Hebrew Biblical Hebrew Japanese Panjabi Persian Portuguese Polish Turkish Urdu |
The rules with which exam boards must comply for all regulated qualifications are set out in Conditions of Recognition . In addition, the GCSE Qualification Level Conditions apply to all GCSEs (graded 9 to 1). There is a separate set of Conditions for GCSEs graded A* to G . There are specific GCSE Subject Level Conditions for each subject.
The approach is the same for GCE qualifications (AS and A level), with a set of Qualification Level Conditions for new AS and A levels and Qualification Level Conditions for pre-reform AS and A levels .
All the Conditions are published on our website , including subject level Conditions.
Exam boards must tell schools and colleges about any subject-specific requirements. There are, for example, additional requirements on schools and colleges to submit to exam boards statements about the provision of opportunities for and/or participation in GCSE science and geology practical work, astronomy observations, geography fieldwork and citizenship activities.
We have put requirements on exam boards to provide resits for some of the legacy qualifications.
Exam boards must provide resits for:
Exam boards do not have to provide resit opportunities in any other legacy GCSEs, although they may decide to so do. So, for example, an exam board might decide to provide students with an opportunity to enter for legacy GCSEs in biology, chemistry and physics (as well as in science and additional science) but they do not have to do so.
There are restrictions on who can take the GCSE, AS and A level resits. For GCSEs, only those students who have taken the qualification previously, those who had good reason not to have taken it when planned (such as illness), or who are aged 16 or above on 31 August in the year of the last scheduled sitting can take the resits. For AS and A levels only students who have taken the qualification previously, or those who had good reason not to have taken it when planned (such as illness) can take the resits.
We have published further information about the resit policy .
Published: 8 July 2016
Updated: 12 December 2016


The dygraphs library relies heavily on the HTML5 <canvas>
tag, which Microsoft Internet Explorer did not traditionally support. To use Microsoft's native canvas implementation in IE9, you need to set an HTML5 doctype on your page:
<!DOCTYPE html>
When IE9 is in HTML5 mode, dygraphs works just like in other modern browsers.
If you need to support older versions of IE, which do not have native
<canvas>
implementations, you'll need to use the 1.x series of dygraphs and follow its instructions for IE.


Your info
Name:
Nickname:
One
Two
Three
Four
One
Two
Three
Four
Your info
Name:
Nickname:
One
Two
Three
Four
One
Two
Three
Four


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
8/23/2018
When students return to school in August, they will not be paying more for their cup of joe.
Starbucks Coffee announced in June that they will increase their prices anywhere from 10 to 20 cents, which is the third increase in three years.
Ohio University will not be increasing prices on products, even though the school is part of a “We Proudly Serve” contract with the company at The Front Room Coffee House, Steam Station Café and Southside Espresso Bar.
OU spokesman Dan Pittman said Starbucks does not determine OU campus cafe pricing structure, and that no immediate price increase is planned for any cafe that serves Starbucks products on campus.
Rilee Lockhart | ILLUSTRATION
Josie Ehrman, an undecided sophomore, said she prefers local coffee shops because they usually have more interesting flavors.
“Sometimes having the same caramel Frappuccino gets kinda boring,” Ehrman said in an email.
She said that if prices did go up, she would not change her habits, as she views coffee as a luxury and only drinks it about once or twice a month.
“I don’t think I would change my habits too much because I kinda think it is expensive,” Ehrman said. “I also don’t drink it too often, so the change in price wouldn’t really be breaking my bank.”
Prestin Minter is an avid coffee drinker who drinks it at least three times a day.
“If I’m on campus, like running around, Front Room would be the easiest because it’s in Baker,” Minter, a sophomore studying strategic communication, said. “But if I’m off campus, I like Brenan’s Coffee a lot.”
Minter said because he often spends late nights in Alden or Front Room, OU-provided coffee is often his only choice.
“If I had the option to go somewhere else and I had the time, I would go somewhere else,” he said.
A full-service Starbucks is also coming to Athens at 16 W. Union St. this summer. Minter said he thinks it is annoying to raise prices since students will be coming to the new location.
“I think Starbucks is doing it because they can do it and people are going to deal with it,” Minter said. “They’re such a big company, so they know they can do it and people will still drink their coffee.”
Pittman also said the OU Culinary Services team is aware of Starbucks’ announcement to phase out plastic straws from all of its locations by 2020. They are assessing steps to do the same for OU coffee vendors, such as Front Room Coffeehouse and Southside Espresso Bar.
Correction: A previous version of the graphic incorrectly listed the price of a large coffee from OU coffee shops. The graphic has been updated to reflect the most accurate information.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


One door has a prize behind it, the other two do not.
Click a door to select, then choose to "keep" or "change" your choice
Description:
The Monty Hall problem is a brain teaser, in the form of a probability puzzle, loosely based on the American television game show Let's Make a Deal and named after its original host, Monty Hall. The problem states:
Suppose you're on a game show, and you're given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what's behind the doors, opens another door, say No. 3, which has a goat. He then says to you, "Do you want to pick door No. 2?" Is it to your advantage to switch your choice?
In the statistical sense, the contestant should switch to the other door. Under the standard assumptions, contestants who switch have a 2/3 chance of winning the car, while contestants who stick to their initial choice have only a 1/3 chance.


Class name
Description
{@link java.nio.charset.Charset} A named mapping between characters
and bytes{@link java.nio.charset.CharsetDecoder} Decodes bytes into characters {@link java.nio.charset.CharsetEncoder} Encodes characters into bytes {@link java.nio.charset.CoderResult} Describes coder results {@link java.nio.charset.CodingErrorAction} Describes actions to take when
coding errors are detected
A charset is named mapping between sequences of sixteen-bit Unicode characters and sequences of bytes, in the sense defined in RFC 2278. A decoder is an engine which transforms bytes in a specific charset into characters, and an encoder is an engine which transforms characters into bytes. Encoders and decoders operate on byte and character buffers. They are collectively referred to as coders.
The {@link java.nio.charset.Charset} class defines methods for creating coders for a given charset and for retrieving the various names associated with a charset. It also defines static methods for testing whether a particular charset is supported, for locating charset instances by name, and for constructing a map that contains every charset for which support is available in the current Java virtual machine.
Most users will not use these classes directly; instead they will use the existing charset-related constructors and methods in the {@link java.lang.String} class, together with the existing {@link java.io.InputStreamReader} and {@link java.io.OutputStreamWriter} classes, all of whose implementations have been reworked to make use of the charset facilities defined in this package. A small number of changes have been made to the {@link java.io.InputStreamReader} and {@link java.io.OutputStreamWriter} classes in order to allow explicit charset objects to be specified in the construction of instances of those classes.
Support for new charsets can be made available via the interface defined in the {@link java.nio.charset.spi.CharsetProvider} class in the {@link java.nio.charset.spi} package.
Unless otherwise noted, passing a null argument to a constructor or method in any class or interface in this package will cause a {@link java.lang.NullPointerException NullPointerException} to be thrown. @since 1.4 @author Mark Reinhold @author JSR-51 Expert Group


Home
Sales
Merch
sales
Add a location
Location Name
Minimum Customers per Hour
Maximum Customers per Hour
Average Cookeis per Customer
Submit
JS TABLE SHOULD BE HERE


Vision 100 IT exists to help churches and particularly church IT volunteers and ministry staff to use IT better.
by Mikey 1 day ago
We've finally put something together that will hopefully serve as a placeholder for all of the stuff we're going to publish. Podcasts, blog, news etc.
NewsWebsite
by Christian 1 week ago
Vision 100 IT is proud to announce that all of our stuff is now in the cloud...
News
by Christian 2 months ago
We're proud to announce that we've been able to publish all of our sites sermons as podcasts...
FeaturesNews
by Jonno 1 day ago
One of the hardest things to work out on a full stack javascript project is how to organise everything...
TechnicalSparkleshareJavascript
by Chris 7 days ago
Getting people to provide high quality images for church podcasts is such a necessary thing, but also the thing that churches find hardest to do....
DrupalTechnical


I paid some attention to my MasterPage and the link to CSS file. Here is what I noticed.
The default Site.Master has this markup:
<head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> </head>I expected the link href will always be static as it is set: "../../Content/Site.css"
It means pages like these would have the CSS:
- Home/One/Index.aspx
- Home/Two/Index.aspx
- Product/One/Edit.aspx
- Home/Index.aspx
- Home/Two/Three/Index.aspx
- Product/Category/One/Edit.aspx
How come?
The answer is Url Rebasing - the feature of the master pages.
The runtime will try to “rebase” relative URLs it finds on server-side controls inside a master page and paths it finds inside of the head tag.


disabled
class
click
event
click
event unless boundclick
eventclick
event unless boundclick
event unless boundclick
eventclick
event unless boundclick
event unless boundclick
eventclick
event unless bound| Performance* | Scalability | Size | Testable | Flexibility | |
|---|---|---|---|---|---|
| AngularJS | Very High | Very | 36kb |
Very | Good |
| Ember.js | High | Extremely | 69kb |
DIY | Good |
| Backbone | Baseline | Average | 6kb |
DIY | Excellent |
angular.module("myApp").factory "Cat", ($resource) ->
$resource "/pets/:pet_type/:pet_id",
"pet_type": "cats"
"pet_id": "@pet_id"
angular.module("myApp").controller "CatCtrl", ($scope, Cat) ->
# Get all cats
$scope.cats = Cat.index()
# Get cat by ID
arthur = Cat.get(42)
# New Cat
jeff = Cat.new( { name: "Jeff", type: "Tabby" } )
# Update
jeff.type = "Octocat"
jeff.save()
{
loading: false
user: undefined
addressBook: undefined
addressBooks: undefined
contacts: [
{ sname: "Reid", fname: "Benjamin", checked: true, ...}
{ sname: "Redman", fname: "Rob", checked: true, ...}
{ sname: "Procter", fname: "Paul", checked: true, ...}
{ sname: "Prior", fname: "Cheryl", checked: true ...}
{ sname: "Procter", fname: "Paul", checked: true, ...}
{ sname: "Panay", fname: "Mark", checked: true ...}
...
]
complete: false
showHelp: false
}


As an introduction to OpenCV and using it with modern C++, I decided to code a Harris corner detector. I'd previously only used MexOpenCV so this was new to me. I'm 100% certain that this could've been done more efficiently but I think that I should prioritize moving on to new material rather than perfecting this. Quality vs quantity. This was also my first introduction to makefiles and gdb, but I’ll include that elsewhere.
My main problem when coding this was that I kept mixing up types for cv::Mat. This website was so incredibly helpful for me. I can't even begin to explain how many errors I had where it was simply because I was mixing up Mat types. I'm not certain why the compiler doesn't throw an error when this happens, but I might switch to a different one. I also found the at function strange in OpenCV, as in image.at
These are the general steps of the Harris Corner Detector
1. Take the grayscale of an image
2. Apply the Sobel operator to find the gradient values at each pixel
3. Compute the gradient covariance matrix elements
4. Apply gaussian blur to the covariance matrix elements
5. Calculate Harris score
6. Threshold and apply non maximum suppression
I've seen sources apply Gaussian blur to the image after step 1 as well.
I wanted to learn this from a sort of first principles approach, so I started with coding a Sobel operator. This is a method of finding the x and y gradients at every pixel of an image. Functionally, this detects edges in an image, which is useful because corners are the intersection of edges. How it works is you take a specific kernel (matrix) and multiply element wise with a 3x3 patch of the image.
Sobel operator kernel
My implementation iterates over each pixel in the image. I hardcoded the kernel, as opposed to creating a Mat, simply because it seemed simpler. I created two temp Mats of int type to store the output. This was necessary because the output of multiplication like this would've overflowed uchar. At the end I cast and scale the temporary Mat data to be back to uchar for consistency. You can see the results of running on a chessboard image below.
The original image
X Gradient
Y Gradient
I then needed to calculate the gradient covariance matrix, which is this
If you remember that the Sobel operator calculates the x and y gradients at each pixel, this is just going to be iterating over each pixel in the gx and gy Mats and multiplying as required. I used the mul function, which does element wise multiplication.
This was one tricky part for me. I had gotten to the part where I had to calculate the Harris score, which is determined by the equation below.
I had a problem though. Wouldn't the determinant of M always be 0? What needs to happen before I do the Harris score calculation is I need to apply a window function to M.
For this I chose a Gaussian blur with radius of 2. Gaussian blur is simply applying a 3x3 kernel to a 3x3 image patch again, similar to the Sobel operator. At the end you multiply by the inverse of the sum of the matrix elements, to compute an average.
Gaussian blur kernel
I tried to do something a little strange here. Rather than hardcoding the values of the Gaussian kernel, I created a loop to fill the values in for me. If I had to do this next time, I would probably hardcode the values in a Mat, then use the mul function. I don't think I would actually precalculate the values from the Gaussian function, since it's not too difficult to just hardcode.
Blurred XX Gradient
Blurred XY Gradient
Blurred YY Gradient
Now we can calculate Harris score. I use k constant of 0.04 since that's what was recommended here. I then create a float Mat called window and fill it with the elements of the blurred gradient covariance matrix. Again, its type float to avoid overflow when calculating trace and determinant. I then threshold based on an empirically determined value (I chose it based on when I was getting a reasonable number of corners). It’s important to note that both very negative and very positive values are what you're looking for. I then put the absolute value of the score into a Mat. I was considering using a std::vector
I then ran a quick and not very good form of non maximum suppression. The idea is to find the best corner in an area, and then suppress (ignore) all the others. I iterated over the corners Mat with a 40x40 window and placed the point with the highest score into a std::vector
I then put all of my corners onto the color image for easy viewing. I seem to have issues with not detecting the corners perfectly on center, as well as the previously mentioned non max suppression problem. This OpenCV tutorial details how sub pixel accuracy can be achieved.
I've added my full code here as well as pasted below.
#include