This User Guide will aid you in understanding how this Scoring System works and how it should be used. Since the system is quite large and has many sections to describe, you may find it useful to consult the Contents page or the Frequently Asked Questions section if you have a specific query.
Otherwise, this first part of the User Guide will cover the general basics of the system, which should provide some useful background on common terms and how the system represents sporting competitions.
The system is web-based, meaning it requires a web-browser to use it. While this means that the system could be run over the internet, it does not have to be - indeed, for private school use, it can be run over a local server to be accessed by a limited number of computers, or indeed can be run on a single computer, requiring no internet connection to run. Note that while this Guide will explain how to set the system up on a server, the choice of server setup itself is up to the person in charge of running the system.
The system consists of two main parts: the system itself, which handles all of the processing and user interaction, and the database, which contains all of the system's data and is accessed by the main system in order to display information.
Access to the system is controlled by User Accounts, so that only authorised persons may use the system. These Accounts are organised into User Groups, which store access permissions to the system. Access permissions define what sections of the site a User in that Group is allowed and not allowed to use, which prevents Users from accessing important administration tools in the system that they should not be allowed to use.
Users who are not logged in are only able to access the logging in page. Users who are logged in can all access the system's default landing page and the help files, however all other pages are controlled by permissions. Each single sidebar link is controlled by a permission flag; these are: 'Admin Panel', 'Manage Days', 'Edit Scores', 'View Scores' and 'Analyse Statistics'.
This system is designed to be able to support a wide variety of sporting competitions, rather than being limited to a pre-defined selection. However, in order for the system to be able to handle the task of scoring a competition, that competition must conform to the following standard, which is how the system represents competitions as data:
A Competition is an overall sporting engagement in which there are several Teams, each with their own unique group of Competitors. These Competitors may also (optionally) be classified into Subgroups (each Competitor may only have one Subgroup), which are used for certain data analysis and organisational tasks. In the context of an in-school sporting event, Teams represent Houses and Subgroups represent Year Groups.
Then, there are many Events which make up the Competition. Each Event only occurs once, and is entered by a set number of Competitors from each Team (this number is fixed for an individual Event - however different Events may have different numbers; additionally, an Event can be limited to be only open to certain Subgroups). Since many Events may be scored in a similar way, the Competition also has a set of Scoring Schemes, which define how many points each finishing position is worth, and what the units and value order of results are. Each Event can use a single Scoring Scheme.
A Competition also has a soft limit on how many Events an individual Competitor may enter ('soft' meaning that infractions are warned about, but are not prevented from happening). It is possible to mark certain Events as not counting towards this limit. Finally, there is a set of Records (one for each Event) stating what the current Record to beat is for that Event.
That is a general idea of what a Competition must be in order to be scored using this system. So long as a real-world sporting competition can be adapted to fit those rules, it is valid for scoring by this system. On a more specific level, the representation of Competitions is split into two halves: Competition Templates and Days.
As its name suggests, a Competition Template contains all of the settings that define a Competition that may be repeated on many separate occasions (such as annual competitions like Sports Day or the Swimming Gala). Once a Competition Template has been defined, Days can be derived from it. A Day is a specific instance of a Template - for instance, there might be a Sports Day Template, but Sports Day 2012 or Sports Day 2013 would each be an individual Day. The Day stores data unique to itself, such as Team Lists. An important feature is that changing a Competition Template does not retroactively alter existing Days - Days are essentially 'copies' of their Template at the time of creation; after that point, any changes to the Template will only apply to future Days. This allows the layout of a Competition to be changed (such as adding Events) without invalidating existing data. For this reason, once a Day has been created, its structure (total numbers of Teams, Subgroups, Scoring Schemes and Events, and how they interact with oneanother) cannot be modified without deleting the Day, modifying the Template, then recreating the Day. It is possible to rename certain aspects of a Day defined in the Template, however, as these do not affect the structure of the data. The system can be scoring only one Day at a time - this is set in the Competition Management section of the program, and is reflecting in the scoring and results parts of the system.
It may be difficult at first to work out if a sporting competition can be represented by the system, given the above description. This section will explain how to convert a real world competition into a form that the system can recognise - simply follow these instructions (note that if you cannot represent your competition by using these steps, then your competition probably cannot be represented by the system - sorry!).
If you can represent your Competition in this way, then it can be managed using this system!
Before the system can be used, it must first be installed. This part of the User Guide covers how to set up the system for the first time.
The system must be installed on a web-server, although it is not required for this to be connected to the internet, as the system may be accessed over a local network or from the server itself. However, the server should have the latest version of PHP and MySQL, and preferably some sort of GUI-based management system for the database (however, if you are proficient in writing SQL queries, this will not be essential).
Any server that fits this description will do, however we recommend XAMPP (http://www.apachefriends.org/en/xampp.html) as a good choice of server package. XAMPP is a free, convenient tool for installing and managing a PHP web-server and MySQL database system, as well as other server tools. It can be run from any computer rather than a dedicated server, and a portable version (i.e. version that runs from a memory stick) is available. If you lack experience with running a server, do not want to get external internet hosting, or just want a simple server setup, then XAMPP is the way to go. However, it is not compulsory to run the system.
Once you have your server set up and configured (as per its instructions), you can install the system on it.
The system is comprised of two sections: the program files and the database. Before we install the main system, we shall first set up the database so it is ready for the system to use. Open your database management software (if you are using XAMPP, or possibly some other hosting package, this will likely be phpmyadmin, however other solutions or even the SQL console will work) and Import the file 'setup.sql' which is provided with this system. This setup file will create the entire database, its tables, user, and basic data in a single action. If this succeeds with no errors then you may proceed to the next step. If a problem is encountered, make sure your server is correctly set up and try again. If it still fails, use the contact details at the end of this Guide to request technical support.
With the database fully set up, the program files can now be installed. Create a folder in the server where you want the system to be accessed from - you may wish to consult your server's manual for possible locations. Then copy the entire contents of the 'scoresystem' folder provided into this location on the server. The system should now be set up! To check it works, open your browser and enter the address of your server and the location you installed it at. You should be presented with the log in page of the system.
If for some reason you do not see this page, make sure your server is configured correctly and try again, or use the contact details at the end of this Guide to request technical support.
Although the next section of this Guide covers how to actually use the system, it is worth noting that the system comes with a default User Account and User Group set up. The username of this account is 'root' and the password is 'root' (this can be changed). This account belongs to the User Group 'Administrator', which had permission to do anything on the system. Use this account to log in for the first time, and to create further User Accounts and User Groups.
While most normal operation of the system can be handled through the system itself once it has been installed, there are a handful of tasks that can only be done by a technical user behind the scenes. Such tasks are discussed now.
To ensure that data is not lost permanently in the event of some accident or mishap, it is important to take regular backups of the database. Then, in the event that the original data is lost of corrupted, the backup can be restored and the data retrieved.
Taking and restoring backups is made incredibly easy with database software such as phpmyadmin (which comes with many web-server systems, including XAMPP). To back up the database, open your database management software and chose to export the system's database. This will produce an SQL dump. Save this file to wherever you want to keep your backup. It is important when creating the SQL dump that you make sure that all settings are set to produce a full copy of the database, not just one part of it.
To restore the backup, drop any existing versions of the tables and content in the system's database. Depending on the level of detail recorded in the backup SQL dump, it may be neccessary to drop the actual database as well - note that if you do this, you may need to recreate the SQL user to go with the database (SQL code for this can be found in setup.sql). You can then import the SQL dump. This will rebuild the entire database exactly how it was when the backup was taken.
While the system comes with an administrator account set up by default for you to start using the system, it is not impossible that you could accidentally delete or lose access to the only account with administrator access on the system, effectively locking yourself out. If you do this, it is possible to create a new User Account and User Group by directly inserting them into the database.
First, look in the 'usergroups' table for an administrator User Group entry. This should have the field 'perm_admin' set to 1. If you can find one, note down the value of the 'ug_id' field. If you cannot find one, then insert a new row into the 'usergroups' table, setting the following values: 'name' = 'Administrator' (or whatever you want to call the new User Group) and 'perm_admin' = 1, or edit an existing User Group to have 'perm_admin' equal to 1. The values of the other 'perm_...' fields do not matter, but since this is an administrative User Group you may wish to set them all to 1. If you had to create a new User Group, take note of its 'ug_id' field.
Secondly, if your User Account still exists in the 'users' table, change its 'ug_id' field to the value you noted down. If the User does not exist, then create a new row in 'users' with the following values: 'name' = 'New User' (or whatever you want to call the new User), 'password' = SHA1('password') (this will give the User the password 'password') and 'ug_id' = the noted value of 'ug_id'.
This process will create a new administrator User Account.
With the system set up and ready to use, we shall now cover how each part of the system works and how they should be used. These are best used as guidance while using a panel - if you require instructions on carrying out a particular, broad task, then see the next section.
If you are not logged in and try to access the system, you will be prompted to log in. Simply enter your username and password to gain access to the system.
When you are finished, click 'Log Out', which is located in the lower box on the left menu bar.
Here you can see your name and User Group, and change your password. To change your password, enter your old password and a new password (the two cannot be the same), and confirm the new password. This change will take immediate effect.
This is the default page of the system. If there are any warnings the system has generated about the currently active Day, these will be displayed here.
This panel acts as a hub for the management of the system as a whole. From here you can manage User Groups, User Accounts, and the system logs.
To create a new User Group or Account, enter a name to call it by and click the 'Create' button. This will create the item and take you to a Settings panel to fill in its details.
To modify an existing User Group or Account, select it from the drop-down list and click the 'Edit' button. This will take you to the same Settings panel as used when creating an item.
To delete an existing User Group or Account, select it from the drop-down list and click the 'Delete' button. This will require confirmation, as once performed it cannot be undone.
To access the system logs, click the link provided.
This panel allows you to modify the settings of a User Group that already exists or has just been created. There are two parts: the name of the User Group and its permissions. Permissions are granted if the checkbox next to them is ticked, or are withheld otherwise. Once you have made the necessary changes, click the 'Save Changes' button to save your modifications. Leaving this page without saving will cancel any unsaved changes.
Caution: Ensure there is at least one User Group with Administrator permissions at all times, to ensure all of the system is always accessible without needing to directly modify the database! Do not change your User Group to one without Administrator permissions or you will lose access to the Admin Panel!
This panel requests confirmation that you wish to delete the User Group you selected on the Admin Panel. Select 'yes' to permanently delete the User Group, or 'no' to return to the Admin Panel. You cannot delete a User Group if any Users still belong to it. If they do, assign them to a different User Group first.
This panel allows you to modify the settings of a User Account that already exists or has just been created. There are two distinct sections to this panel: the basic settings of the User and their password.
The basic settings part consists of the User's name and the User Group to which they are assigned. Changing the User Group will change the system access permissions for this User. Once you have made the necessary changes, click the 'Save Changes' button to save your modifications. Leaving this page without saving will cancel any unsaved changes.
The password part allows you to change the User's password. Enter a new password and confirm it, then click the 'Change Password' button to set the new password. Leaving this page without saving will cancel any unsaved changes.
Note that changing the details in one form section, then saving the other section, will not save the settings in the first section. Each must be edited and submitted separately.
Caution: If editing yourself, do not change your User Group to one lacking Administrator permissions, or you will lose your Admin Panel access!
This panel requests confirmation that you wish to delete the User you selected on the Admin Panel. Select 'yes' to permanently delete the User, or 'no' to return to the Admin Panel.
Caution: Do not delete yourself!
This panel shows all action logs taken by the system. A log entry is recorded every time any User performs an action with an effect on the database or system as a whole. It is useful for tracing actions performed to identify where a problem may have occurred.
Log entries are displayed in chronological order. Each page displays 20 log entries at most. Use the bar along the bottom to select a page number to skip to.
This panel acts as a hub for setting up Competition Templates and Days, changing the active Day, and managing Records.
To create a new Competition Template or Day, enter a name to call it by and click the 'Create' button. For creating a new Day, you will also have to specify a Competition Template to derive the Day from - make sure that the Template is fully correct before doing so, as you cannot amend the structure of the Day once it has been derived. This will create the item and take you to a Settings panel to fill in its details.
To modify an existing Competition Template or Day, select it from the drop-down list and click the 'Edit' button. This will take you to the same Settings panel as used when creating an item.
It is also possible to change non-structural aspects of a Day that were copied from the Competition Template used to make it, namely the names and some output parameters of Teams, Subgroups, Scoring Schemes and Events. To do this, select a Day to adjust from the drop-down list and click the 'Adjust' button. This will take you to a panel with a similar layout to the Competition Template Settings panel, however, only certain non-structural fields can be changed.
To delete an existing Competition Template or Day, select it from the drop-down list and click the 'Delete' button. This will require confirmation, as once performed it cannot be undone.
To change the currently active Day, select an existing Day from the drop-down list and click the 'Set as Active Day' button. The change will be reflected in the system's title bar on the page load after the change has been processed.
To manage the base Records for a Day, select that Day from the drop-down list and click the 'Manage Records' button. This will take you to a panel where the base Record data can be viewed and modified.
This panel allows you to modify the settings of a Competition Template that already exists or has just been created. Note that changing the content of a Competition Template will only affect Days derived from it after these changes have been made, and will not retroactively change existing Days derived from this Template. It is not compulsory to keep Templates for Days once the Days are made, but it is useful for repeating Competitions, such as annual tournaments, as the Template can be reused.
This panel has five sections to fill in. The earlier sections have an effect on the later sections, so it is strongly recommended that you fill in the sections in the order they are given on the page. Any changes to a section which resize or redefine the layout of a later section will cause data currently stored there to be lost. Therefore, it is useful to plan out exactly what the Competition Template will look like before entering it into the system. Consult the section 'How to work out if a Competition is supported by the system' in this Guide for help with this.
First, enter the basic details. These are the name of the Template and the maximum number of Events a single Competitor may take part in (note that if a Competitor goes over this limit during a Day, it is warned about on the Landing Page, but the system will not attempt to prevent it). These values do not affect the rest of the form, so can be changed at any time.
Next, enter the list of Teams taking part in this Competition. To add a new Team, click the 'Add New Team' button and enter the Team's name in the text box. To remove a team, click the 'Remove' button next to it. The name of any existing Team can be edited through its text box at any time - it is not necessary to remove it and re-add it. The number of Teams affects the number of Score elements in the Scoring Schemes section later, so try to avoid needing to change the number of Teams once you get that far (renaming them is alright).
Now enter the list of Subgroups for this Competition. Adding, editing and removing Subgroups works in exactly the same way as for Teams. The entire Subgroups list affects the options in the Events section later, so try to avoid needing to change the names of or number of Subgroups once you get that far.
The next step is to add Scoring Schemes. Each Scoring Scheme consists of seven components: the name, the number of Competitors entered per Team (into an Event using this Scheme), whether first place should be awarded to the highest or lowest value results, the type of measurement taken for these results (such as Distance or Time), the units these measurements are taken in (such as metres or seconds), the minimum number of decimal places to which values in these units should always be represented, and finally the Scores themselves. The number of Score boxes depends on the number of Teams already entered, and the number of Competitors entered per Team for this Scoring Scheme. Therefore, try to avoid changing either of these values once you start entering Scores, or you will have to re-enter them. Adding, editing and removing a Scheme works in the same way as before. The Scoring Scheme itself affects part of the Events section later, so try to avoid changing the names of or numbers of any Scoring Schemes once you start adding Events.
The finally section to enter data for is the Events section. Each Event has four settings, each requiring a short explanation. The name of the Event is simply its name - that is not complicated. The number of Competitors entering per Team is also fairly straightforward; however its value affects which Scoring Schemes may be selected for this Event. Only Scoring Schemes with the same number of Competitors per Team as this Event may be selected for it. These are the third setting, which are a simple drop-down list of all the existing Scoring Schemes, of which you must select one for this Event. Finally, there is a multiple-selection box of all the existing Subgroups. These are the Subgroups that are eligible to take part in this Event. This may be one or many Subgroups. To select many Subgroups, hold down the Control (Ctrl) key while selecting each Subgroup.
Once all the data has been entered, click the 'Save Changes' button. The entire Template will be saved into the database, and be ready to have Days derived from it.
This panel requests confirmation that you wish to delete the Competition Template you selected on the Competition Management panel. Select 'yes' to permanently delete the Template, or 'no' to return to the Competition Management panel. Unless a Template was created by mistake, it is generally not advisable to delete Templates - they do not take up a large amount of space, and tend to contain valuable data that you may wish to reuse.
This panel allows you to modify the settings of a Day that already exists or has just been created. When a Day is created, it fully copies all of the settings of the Template it is derived from - however, to ensure data consistency, none of these values can be modified from this panel (but it is possible to make non-structural changes from the 'adjustment' panel). The Day settings that can be modified are the name of the Day, the year it takes place in, whether it should import Records from a previous Day, and the Competitors taking part in the Day.
Setting the Day name and the Day year is simple - just edit the text boxes, noting that the year must be a number. The 'Import Records' option requires more explaining. Records set for a Competition are stored with the Day, not with the Competition Template. This is because the Competition Template could change, and there is no guarantee we will want to carry over Records to newly created Days (for instance, if we add old Days into the system in non-chronological order). However, the system recognises that often we will want to carry over existing Record data, hence the existence of this feature. When first creating a Day, select the previous Day you wish to copy Records from. When you click 'Save Changes' after filling in the rest of the form, the Records as of the end of that Day will be set as the base Records to beat for this new Day. Note: This only needs to be done once per Day, or if the Records for the previous Day are changed after an import. Selecting the 'Do not import Records' option will not cause Records to be blanked - they will simply not be overwritten when the settings are saved.
Adding Competitors to the Day is optimised for adding large numbers of Competitors at once. However, they must be first subdivided two ways: firstly by Team, and secondly by Subgroup. The Day Settings form has a text entry area for each combination of Teams and Subgroups, sorted first by Team and then by Subgroup. Either type each name in to the appropriate text entry area, or paste the list in if it already exists. Each name should be separated by a new line.
A Competitor will typically be a person, but this does not always have to be the case. At its core, a Competitor is a single entity taking part in Events - therefore, it could also be several athletes working together, such as in a Relay Team; in cases such as this, the Relay Team itself is the Competitor.
When you have entered all of the Competitors into each text entry box, click the 'Add Competitors' button for that box. This will automatically separate the Competitor name dump into individual Competitors, each with their own row. To delete a Competitor, click the 'Remove' button next to their name. To edit a Competitor, simply edit their name in their text box. Remember to click 'Add Competitors' before saving the Day! Any Competitors not allocated to their own text field, so remaining in the data-entry box, will be discarded when the Day is saved!
Important Note: You are free to add more Competitors during the scoring process of a Day. You are also free to rename them, however to do this, always rename the existing Competitor - never remove and re-add them, as the system will count them as two different Competitors. If a Competitor already has Scores associated with them, the system will not detect that the Competitor is missing until their Score is overwritten by rescoring that Event. Until this occurs, some data for the affected Event may not display properly.
Once all Competitors and other settings have been set, click the 'Save Changes' button. This will save the Day to the database.
This panel allows you to rename or change a select few attributes of a Day that it derived from its Competition Template that do not affect the overall structure of the Day. The Day structure cannot be modified without deleting the Day, modifying the Competition Template, then recreating the Day, in order to preserve the integrity of already entered data.
The layout of this panel is very similar to the Competition Template Settings panel, however certain fields (those that affect structure) are read-only and cannot be modified. The remaining fields can be easily changed to modify how the Day data is presented.
You are free to change any of the modifiable values, however, if you change the result ordering or score values of any Scoring Scheme, you will need to resave all scoresheets for Events using that Scoring Scheme via the Edit Scores panel, or the old scoring rules will remain applied to those Events. Changes to any other fields do not require further adjustment from other panels.
This panel requests confirmation that you wish to delete the Day you selected on the Competition Management panel. Select 'yes' to permanently delete the Day, or 'no' to return to the Competition Management panel. If you delete the currently active Day, you will need to select a new active Day before you can do any more scoring with the system. Unless a Day was created by mistake, it is generally not advisable to delete Days - they do not take up a large amount of space, and tend to contain large amounts of valuable data.
This panel allows you to view and modify the base Records of a Day that already exists. Note that these are the base Records - they are the Records to beat for this Day, but they do not contain any Records set on this Day. The purpose of this panel is to allow you to make any modifications or tweaks to any Records that require correcting. While you can by extension view base Records here, it is recommended to use the Analyse Records panel for that task.
To change the currently loaded Record, select its Event from the drop-down list. The form will automatically update with all of the Record's data. If you wish to modify this data, edit it then click the 'Save Changes' button.
This panel acts as a hub for scoring Events in the currently active Day. The summary box at the top of the panel lists how many Events have been scored correctly, scored incorrectly (i.e. in an inconsistent / contradictory way), and not yet scored at all. A full breakdown of all Events, their colour-coded status and a summary of their results is then listed in the table below. To score an Event, select it in this table - this will take you to an Edit Scores panel where you can enter the score data.
This panel allows you to score an Event in the currently active Day that you have selected from the Score Entry hub panel. At the top of the form is a message informing you of the currently scoring status of this Event. The rest of the form is dedicated to the data entry itself.
Each Team is listed in the form, and for each Team there are as many scoring rows as there were 'Entrants per Team' specified in the Competition Template that this Day was derived from. You will probably receive the scores you are to enter on a score card of some description. Simply copy the data into this form. The available Competitors to assign a score to will be limited to those in Subgroups that are eligible for this Event. If a Competitor is missing from the list, then select the 'Missing From List' option as the Competitor. A sub-form will appear under this data row, into which you should enter the name of the new Competitor and the Subgroup they should belong to. If your Event (like most typical Events) is only open to a single Subgroup, then that will be the only available Subgroup. If it is open to many, then you will have to select one. Upon submission of the form, any missing Competitors will be added to the appropriate Competitor list. This will happen regardless of whether or not the data submission was successful (i.e. regardless of whether you made any mistakes, unless those mistakes were with the missing Competitor's new details), so if you submit a scoresheet that has problems, you should see your new Competitor in the drop-down list. It is also possible for a User with the appropriate permissions to add missing Competitors directly into the Day Settings panel, however this can be cumbersome. That panel will be required should you get the new Competitor's details wrong, however.
Once you have entered the score data for this Event, check it carefully, then click the 'Save Changes' button. This will save the Score to the database. If the system agrees that your score data makes sense, it will mark the scores as 'consistent' which will display in green. While this does not guarantee that your scores are error free, it means any obvious errors will have been detected. However, if any of your score data is contradictory, such as the Competitor in second place having a better result than the person in first place, then the system will mark these scores as 'inconsistent' which will display in red. If this occurs, you should carefully check the data you have entered and correct any mistakes. You may edit score data already inputted as many times as you want, even if it was marked as consistent the first time.
This panel allows you to view the results for the currently active Day presented in a variety of formats. This data updates live - this means that if a User inputs a new set of scores from another computer into the system, they will appear on this results panel automatically!
The panel fetches new data from the server at a fixed time interval. By default this is 5 seconds, but you can change this by changing the value in the control panel box at the top of the page. If you want to stop the panel from automatically updating, set this value to 0 seconds. You may trigger a one-off update by clicking the 'Manual Update' button.
There are four information panes and a progress bar in this panel. The progress bar shows the number of Events correctly scored so far out of how many Events there are in total. The remaining four information panes show the current overall scores for each Team, a list of any and all broken Records, a list of the highest scoring Competitors in each Subgroup, and a full breakdown of all results for all Events. Each of these information panes can be minimised by clicking on its title bar, and re-shown by clicking again. In the Event Scores pane, clicking an Event's name will toggle the visibility of a full breakdown of the Scores for that Event.
This panel acts a hub through which six statistical analysers can be accessed. Each of these panels will produce a data table of a different sort based on a combination of sources selected. Each of these panels works in a similar way, so all six will be detailed at once here.
The six panels available are:
In each panel, you can select which items you want to compare. You may compare as many or as few items as you want, and there does not have to be any relation between them such as being on the same Day. This allows you to compare the same Competitor across multiple Days, or to track a Team's progress over time. For any lists of Events, the rows are automatically cross-referenced so that different Days with the same (named) Events can be easily compared. Once you have selected what you want to compare, you can click the 'Generate Table' button to produce the analysis table.
The Produce Scoresheet panel has some unique options available to it, which affect how much information is displayed in the output. Most of these are self-explanatory, however note that the checkboxes for displaying only Events open to certain Subgroups will show any Event into which at least one of the selected Subgroups may enter, so if an Event is open to all Subgroups, selecting any one of those boxes will have that Event appear. Note also that these options do not affect what data is collected in the summary table - that data will always cover the entire Day.
As well as generating a results table within the system, this panel can also generate the same table as a Word document or Excel spreadsheet. These files can be downloaded; however it is recommended that you resave the files after downloading them due to technical constraints in how they are produced.
Help with using the system is available in two forms while actually using the system. Firstly, inline help messages are displayed on all panels where necessary to guide you while using them. This includes both success and error messages that display when an action is taken to help inform you on what to do next. However, if these are not helpful, a second form of online help is available, and that is... this User Guide! A copy of this User Guide can be accessed from the 'Help' link in the menu. You may even be reading it now! Additionally, every panel has a link to its section of this Guide in the top right corner of the page.
The following points deal with common questions and problems, including common tasks that it may not be immediately clear how best to perform. If you have a question that is not answered here or anywhere else in this Guide, please get in contact using the details at the end of this Guide to request technical support.
This system will work in Google Chrome and Mozilla Firefox (and should work in any standards compliant browser). Chrome is recommended, as it is the browser the system was primarily built and tested on. The system can also run on iPad!
Should you lose access to your administrator account(s), follow the instructions given in the 'Fixing deleted administrator users' section of this Guide.
Access to each part of the system is controlled by permissions set to the User Group to which your account belongs. If you are an administrator, you can change these privileges yourself; otherwise, ask your administrator if you think you should have access to a section you cannot see. Additionally, note that sections of the website that require an Active Day to be set (such as Score Entry and Live Results) will be inaccessible if an Active Day is not set. The Active Day can be set in the Competition Management Panel.
Before a (real-world) competition starts, you will need to set up the system to handle it. The procedure for this is relatively straight forward.
To score Events on the currently active Day, go to the Score Entry section of the system and select an Event to score. Events that have been scored are highlighted green, except those containing an error which are highlighted red, and are ignored by the system for scoring purposes.
All information about the currently active Day is available on the Live Results panel, which updates live as new information is entered into the system. 'Victor Ludorum' winners are listed as the 'Current Highest Individual Scores' on this panel.
The Records for a Day can be accessed from the Analyse Days panel (accessed through Statistical Analysis). If you have used the 'Import Records' feature when creating the Day, then it should list all previous Records, as well as the newly broken ones. Records broken on this Day will be highlighted.
Depending on your needs, there are several ways of giving people access to data collected by the system.
If simple statistics are all that are needed, then you could simply generate a datasheet using one of panels in the 'Analyse Statistics' section. Follow the link for help on using that section.
If you need to actually share access to the system, for instance so that scores can be verified by the person in charge of the competition, then you have two options. If the server is running from a laptop or other portable device, you could simply make the device available to the person who wants access. Alternatively, you could place a copy of the system on a publicly accessible webserver - this will also be the option you want to choose if you want to share the system with multiple people.
To place a copy of the system on a web server, first install a fresh copy of the system onto your web server by following the Installation Instructions. Then take an SQL dump from the original system, by following the Backup Procedure. However, instead of restoring the backup to the original system, restore it to the new server. You will now have a duplicate system set up. Note that these two systems will be distinct - changes on what will not be automatically reflected on the other. To transfer changes made on one system to another, simply back up the most recent system and restore it to the other one.
If you have a question or problem that is not answered by this Guide, then you can contact the creator
of the system at the following email address:
<EMAIL_ADDRESS>Please try to be as descriptive as possible when describing a problem so you can be assisted faster.
I should hopefully still be using that email address for many years (decades?) to come, ignoring unforseeable disturbances such as the destruction of the internet. Don't be afraid to give it a try if you have any problems - there's a good chance I should respond.


|
|
|
|
Directors' strategy update for August
|
|
I just
wanted to say a big thank you to everyone that sponsored me in the Ride 100 bike ride last
Sunday. In total, I raised �1,935 for Cancer Research UK, which I'm really pleased about.
It was a bit of a slog in the rain and wind, and as a result, there were a lot of nasty incidents
along the way which slowed the whole thing down. The most important thing about the day however
was raising the money, and with my brothers in law also raising �1k, we pretty much hit �3k
in total.
In September
OneAvenue is organising a 24-hour rowing event in the kitchen downstairs, in order to raise
funds for NSPCC. If anyone is up for a minimum 10 minute slot, then please let us know and
give an indication of when you would like to take part - else you may be allocated a 2am
slot! I've signed up for 3 slots so far...
Many
people will be heading away on holidays throughout August (myself included), but at the same
time there is lots of ongoing project activity. In addition to things already in flight,
we are kicking off a new set of enhancements from this month with Princes Trust (agreed through
to April 2019), and have also been given the green light to progress a 10-day assessment
to map out a roadmap for Panasonic, which will result in either a 12c upgrade of OBIEE or
a move to the Cloud onto BICS. We also continue to be in touch with QBE about their plans
for MuleSoft, and we hope to receive some further details in the next week.
Happy
holidays and enjoy the sun - while it lasts!
Dan,
Marta, Natalia, Vikram
|
|
Client updates
|
|
|
Anousha's
announcements from Motability
Our
milestone for this month included completing the development for Release 23.
The release includes GDPR enhancements, audit capabilities for Wordpress, and
other account-related changes to support our Google maps functionalities across
the websites.
The
team also did the groundwork and development to make some mega menu enhancements,
but due to some adverse impact on the sites, the changes needed to be rolled
back. The show goes on however; both internal and external teams are supporting
each other to get through UAT, and then the production release, in the next couple
of weeks.
In
other news, we have also started planning for Release 24, and have begun some
very early discussions on the pipeline for Release 25 and beyond. More to follow
on this next month.
|
|
|
Andrew's
updates from BAE Hawk
The
team - Matteo, Diego, Richard, Marta, Karunakar - has now introduced the Identity
Cloud Service to production. The solution was first discussed over eighteen months
ago, and it has taken a lot of perseverance from everyone involved with Hawk
to finally get the job done. The implementation offers another significant improvement
in BAE's portal capability, with self-service for users on password management
and account access, two-factor authentication for additional security, and single
sign-on across portal and identity cloud among many of the new features introduced.
|
|
|
Giulia's
news from Prince's Trust
Hemant
just completed a small release, where he made changes to the Funder and Contract,
Outreach and Assessment and Session Capacity reports. Apart from that, we've
been receiving lots of requests in July, so we're working to put in place a new
structured collaboration with the Trust.
|
|
|
Vivi's
intel from PPL
With
the AWS migration completed a few months go, the team is now working on integrating
PPL's database with Auddly - an application for musicians to record their music
as they are composing it.
Another
project, set for the beginning of September, is a hackathon to build a chatbot
for PPL.
In
other news, PPL is looking to move its database (Repertoire) from Oracle to another
platform, and is considering moving it to Neptune. Next Friday, Matteo, Vikram
and I will be attending the Repertoire technical refresh briefing event, where
PPL will brief its partners on what needs to be done for the move. More updates
on this next month.
|
|
|
Sadaqa's
snapshot from IQPC
In
July, Rene was busy with continuous bug fixes for the Pre Order and end user
feedback on existing functionalities on Oracle Sales Cloud.
We
also welcomed Karunakar, for a short period of time, as a�DBA to review and fix
issues in IQPC's database. This is something IQPC have been looking to address
for a while now, and Karunakar was able to successfully fix the majority of the
issues, with the need to schedule downtime to fix the remaining security issues.
Keep
up the hard work guys!
|
|
|
Nelena's
info from BAE Systems
July
saw the start of an exciting new project for the BAE team - the migration of
the currently external Education Programme site to dot com. This site enables
teachers/parents to apply for work experience on behalf of their students/children,
to secure a position at one of the BAE sites.
For
us, it has so far involved creating a new, sexy front-end form, and lots of technical
activities, so that the system is eventually integrated with the government's
school database for searching. Watch this space!
|
|
|
Vivi's
news from NCR
We
were recently introduced to NCR Cyprus by Oracle. NCR is an IT company that provides
solutions and support services to various industries, one of its main services
being payment technologies.
NCR
recently won a project with the Cyrpus Health Insurance Organisation (HIO). NCR
describes it as follows: "the biggest IT project ever awarded in Cyprus, and
probably the most important project in Cyprus in the 21st�century. The quality
of our delivered product and the good name of our company comes second to nothing".�It
will be�a 5-year project, and will encompass almost all of Oracle's Fusion Middleware
stack.
The
first phase will redevelop HIO's website, using Oracle Webcenter Sites. During
the first three months of the project,, Harish, Karunakar, Diego, Marta, Alessandro,
and Dan have been involved. The go-live for the website's launch is planned for
the beginning of September.
 Vikram and I have agreed to meet with NCR post go-live,
to discuss how we can get involved in the project more widely.��
|
|
|
Paulina
- change
asd
|
|
|
Molly's team corner
|
Staff
After a sad end to July losing�Dave & Nelson, we unfortunately, say goodbye to Olu this week.
Olu has been with Infomentum for just under 2 years and has been a huge asset to the test
team.�I'm sure you will all join me in wishing him all the best for the future.
As previously mentioned in my email: introducing... Cameron Douglas.
Cameron is with us for the next 2 weeks doing some work experience. He has just finished his
A-levels in Maths, Physics, and Chemistry and is looking to study Computer Science at St
Andrews University in September.
Whilst here, he will be joining the MO team and will also be completing a�
Java image resizing project, to gain some coding experience. Cameron has been like
a duck to water, and has taken to the challenge extremely well; In fact, he has nearly completed
it.
Take a look at the project link, and if you have any other ideas on what Cameron can get involved
in, please let us know.
|
Training
Karunakar is now an�Oracle E-Business Suite R12 Applications Database Administrator Certified
Professional, having scored�an amazing 92% in the exam! Congratulations Karunakar - you smashed
it!
Also,�congratulations to Erin, who although being on maternity leave, juggling baby Arie and
her little lady Elaine, also managed to pass her practical driving test...�Well done Erin!!
|
Kudos
update
Let's not make this something that gets forgotten about!
Please continue to make someone's day, and give a colleague kudos, to let them know they've
done something above and beyond.
Remember: there will be a reward for the person with the most at the next company meeting...
Here are the stats for this month so far:
I>M Collaborative = 3 I>M Committed = 4 I>M Inclusive = 6 I>M Progressive =
12
As of Tuesday 7th August -� Alessandro & Sital are in joint lead with 3 kudos each! Anousha
& Charlie are also close behind with 2 kudos each...�
|
|
Paulina change
|
Title
text
|
|
Paulina's marketing mix
|
|
In Marketing, we are still working on refreshing our website. Diego and Kaori have been working
on the design side of things. Alongside that, A&G (the marketing agency we are working with),
Natalia, and I are looking after the content.
Meanwhile, Vikram and I are preparing for the Technology Insight Summit - a 2.5 day event
where our Sales team will meet� with senior IT decision-makers and business leaders from
across the continent.
Finally, we are continuing to develop the team's respective areas of industry expertise -
more to come on this next month!
|
|
Marta's infrastructure rundown
|
|
March was the month to put the house in order.
Apart from a few UKCloud issues, July was a much calmer month for the Infrastructure team.
Even UKCloud issues seem to be a result of hardware failures, for which we are not responsible
(although Simon has been very involved in the troubleshooting).
This means that we can relax a bit, and start looking at DevOps initiatives again. There has
been a lot of interest among other teams to help us develop this space, and I am more than
keen to listen to your ideas. After all, you are the experts.
So far we have Simon, Matteo, Farhan, Richard and Amr giving ideas and contributing to shape
up the area.�
Despite the incidents, we have been doing some important work:
- BAE Hawk IDCS go-live with all the excitements of handling BAE teams, DXC/SCC teams,
Security Teams and Incapsula
- Karunakar has been involved in IQPC and NCR
- Stephen Gebbie has been involved in Motability, and is preparing for a grand Solr upgrade
event
- Simon has been busy with UKCloud
- BAE Systems .COM migration to Oracle Cloud has started, although we are still in the
design phase
- IQPC, Motability and UKCloud require further consultancy activities
|
|
Paola's support summary (this month from Marta)
|
|
Despite several holidays, July was a good month for the Support team.
- We have resolved more tickets than there were tickets created.�
- We have agreed separate POs for the overspend of hours in PT, MO and UKCloud
In terms of ticket creation, MO, PT and UKCloud are the most active customers.
|
|
|
|


You can find your package in /packages/vehicles
MEAN versions prior to 0.3.2 will be in /node_modules/vehicles


| CS_SequenceLoaded |
541 (0x21d) |
Sequence file was successfully loaded. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| CS_SequenceCanceled |
542 (0x21e) |
A command sequence was successfully canceled. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| CS_FileReadError |
543 (0x21f) |
The Sequence File Loader could not read the sequence file. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| CS_FileInvalid |
544 (0x220) |
The sequence file format was invalid. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| stage |
FileReadStage |
|
The read stage |
| error |
I32 |
|
The error code |
| CS_RecordInvalid |
545 (0x221) |
The format of a command record was invalid. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| recordNumber |
U32 |
|
The record number |
| error |
I32 |
|
The error code |
| CS_FileSizeError |
546 (0x222) |
The sequence file was too large. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| size |
U32 |
|
Inavalid size |
| CS_FileNotFound |
547 (0x223) |
The sequence file was not found |
| fileName |
Fw::LogStringArg& |
60 |
The sequence file |
| CS_FileCrcFailure |
548 (0x224) |
The sequence file validation failed |
| fileName |
Fw::LogStringArg& |
60 |
The sequence file |
| storedCRC |
U32 |
|
The CRC stored in the file |
| computedCRC |
U32 |
|
The CRC computed over the file |
| CS_CommandComplete |
549 (0x225) |
The Command Sequencer issued a command and received a success status in return. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| recordNumber |
U32 |
|
The record number of the command |
| opCode |
U32 |
|
The command opcode |
| CS_SequenceComplete |
550 (0x226) |
A command sequence successfully completed. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| CS_CommandError |
551 (0x227) |
The Command Sequencer issued a command and received an error status in return. |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| recordNumber |
U32 |
|
The record number |
| opCode |
U32 |
|
The opcode |
| errorStatus |
U32 |
|
The error status |
| CS_InvalidMode |
552 (0x228) |
The Command Sequencer received a command that was invalid for its current mode. |
|
|
|
|
| CS_RecordMismatch |
553 (0x229) |
Number of records in header doesn't match number in file |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| header_records |
U32 |
|
The number of records in the header |
| extra_bytes |
U32 |
|
The number of bytes beyond last record |
| CS_TimeBaseMismatch |
554 (0x22a) |
The running time base doesn't match the time base in the sequence files |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| time_base |
U16 |
|
The current time |
| seq_time_base |
U16 |
|
The sequence time base |
| CS_TimeContextMismatch |
555 (0x22b) |
The running time base doesn't match the time base in the sequence files |
| fileName |
Fw::LogStringArg& |
60 |
The name of the sequence file |
| currTimeBase |
U8 |
|
The current time base |
| seqTimeBase |
U8 |
|
The sequence time base |
| CS_PortSequenceStarted |
556 (0x22c) |
A local port request to run a sequence was started |
| filename |
Fw::LogStringArg& |
60 |
The sequence file |
| CS_UnexpectedCompletion |
557 (0x22d) |
A command status came back when no sequence was running |
| opcode |
U32 |
|
The reported opcode |
| CS_ModeSwitched |
558 (0x22e) |
Switched step mode |
| mode |
SeqMode |
|
The new mode |
| CS_NoSequenceActive |
559 (0x22f) |
A sequence related command came with no active sequence |
|
|
|
|
| CS_SequenceValid |
560 (0x230) |
A sequence passed validation |
| filename |
Fw::LogStringArg& |
60 |
The sequence file |
| CS_SequenceTimeout |
561 (0x231) |
A sequence passed validation |
| filename |
Fw::LogStringArg& |
60 |
The sequence file |
| command |
U32 |
|
The command that timed out |
| CS_CmdStepped |
562 (0x232) |
A commmand in a sequence was stepped through |
| filename |
Fw::LogStringArg& |
60 |
The sequence file |
| command |
U32 |
|
The command that was stepped |
| CS_CmdStarted |
563 (0x233) |
A manual sequence was started |
| filename |
Fw::LogStringArg& |
60 |
The sequence file |


ABOUT THE AUTHOR
Emily Skrutskie is six feet tall. She was born in Massachusetts, raised in Virginia, and forged in the mountains above Boulder, Colorado. She holds a B.A. in Performing and Media Arts from Cornell University, where she studied an outrageous and demanding combination of film, computer science, and game design.
Her short fiction has been published by HarperTeen, and her debut novel, THE ABYSS SURROUNDS US, is now available. Its sequel, THE EDGE OF THE ABYSS, will hit shelves in Spring 2017. She is represented by Thao Le of the Sandra Dijkstra Literary Agency.
RECENT WORKS


$template{name="sample-readme-html-header" title="Pluggable View demo"}$
What does the sample do?
This sample demonstrates a pluggable view integrated into the JPPF administration and monitoring tool. The view shows a log of grid topology and job monitoring events occurring in the JPPF grid.
Each log entry is timestamped and the view also has two action buttons to clear the log and copy the log to the clipboard.
The view looks like this:
How do I run it?
Before running this sample, you need to install a JPPF server, at least one node, and the JPPF amdinistration console.
For information on how to set the JPPF components, please refer to the JPPF documentation.
Once you have installed the console, a server and a node, perform the following steps:
- Open a command prompt in JPPF-x.y-samples-pack/PluggableView
- Build the sample's jar file: type "ant jar". This will create a file named PluggableView.jar.
- Copy PluggableView.jar in the "lib" folder of the JPPF amdinistration console, to add it to the console's classpath.
- add the following configuration properties to the admin console's configuration file "JPPF-x.y-admin/config/jppf-gui.properties":
# enable / disable the custom view; defaults to true (enabled)
jppf.admin.console.view.MyView.enabled = true
# name of a class extending org.jppf.ui.plugin.PluggableView
jppf.admin.console.view.MyView.class = org.jppf.example.pluggableview.MyView
# the title for the view, seen as the tab label;
jppf.admin.console.view.MyView.title = Events Log
# path to the icon for the view, seen as the tab icon
jppf.admin.console.view.MyView.icon = /test.gif
# the built-in view it is attached to; it must be one of the tabbed panes of the console
# possible values: Main | Topology | Charts (see section below for their definition)
jppf.admin.console.view.MyView.addto = Main
# the position at which the custom view is inserted within the enclosing tabbed pane
# a negative value means insert at the end; defaults to -1 (insert at the end)
jppf.admin.console.view.MyView.position = 1
# whether to automatically select the view; defaults to false
jppf.admin.console.view.MyView.autoselect = true
- Start the driver
- Start one or more node(s).
- Start the admin console.
Related source files
MyView.java : this is the implementation of our pluggable view.
I have additional questions and comments, where can I go?
There are 2 privileged places you can go to:
$template{name="sample-readme-html-footer"}$


{% extends 'layout.html' %} {% block content %}
Living in Romania, City: Sebes, State: Alba
Born:04 October
Driver's Licence
email<EMAIL_ADDRESS>IT, History, sport, Krav Maga self defense, mountain climbing, downhill bicycle, passionate about Forex & Trade Market's
Love Via Ferrata and Ski.Highschool: Lucian Blaga Highschool, specialized: computer science *** College: 1 December 1918 Alba Iulia, specialization: Economy, Commerce
Foreighn language: english *** task oriented, analitical thinking, leadership experience
Linux(basic), html, css, Javascript(basic), SQL, computer hardware
Learning Python (flask, pandas, etc)


Preparation time
30 mins to 1 hour
Cooking time
over 2 hours
Serves
Makes 1 large cake
Mary’s light fruit cake is covered with marzipan and fondant icing to look like a tennis court, but you can easily adapt it to your sport of choice. A great birthday cake for sports fans!
You will need a deep 23x15cm/9x6in rectangular cake tin and 4 nozzles for piping (no. 2 writing nozzle, no. 3 writing nozzle, no. 7 small star nozzle and no. 8 medium star nozzle).
Preheat the oven to 160C/140C Fan/Gas 3. Grease a 23x15cm/9x6in rectangular cake tin. Line the base and sides with a double layer of baking parchment.
Put the cherries in a sieve and rinse under running water then drain well. Dry the pineapple and cherries very thoroughly using kitchen paper.
Place all the fruits and nuts in a bowl with the lemon zest and gently mix together.
In a separate bowl, cream the butter and sugar together until pale and fluffy. Beat in the eggs one at a time, with a spoonful of flour to prevent the mixture curdling. Fold in the remaining flour and ground almonds. Lightly fold in the fruit and nuts then pour the mixture into the prepared cake tin. Level the surface.
Bake for 2 hours, or until golden-brown and a skewer inserted into the centre of the cake comes out clean. Cover the cake loosely with aluminum foil after 1 hour to prevent the top becoming too dark.
Leave to cool in the tin for 15 minutes then turn out, peel off the parchment and finish cooling on a wire rack.
For the almond paste, mix the ground almonds, caster sugar and icing sugar in a bowl. Stir in the egg and almond essence. Knead in the bowl to form a stiff paste but don’t over-knead as this will make the paste oily. Wrap in cling film and set aside.
For the royal icing, whisk the egg whites in a large bowl until they become frothy. Mix in the sifted icing sugar a tablespoonful at a time. You can do this with a hand-held electric whisk but keep the speed low. Beat the icing until it is very stiff and white and stands up in peaks. Cover the surface of the icing with cling film.
For the fondant, place the gelatine, 2 tablespoons water, glucose and glycerine in a bowl set over a pan of gently simmering water and heat until the gelatine has dissolved (do not allow the water to boil or the gelatine to get too hot). Remove from the heat.
Sieve half of the icing sugar into a large bowl. Make a well in the centre, add the gelatine mixture and using a wooden spoon mix together. Sieve the remaining sugar onto the work surface and tip the mixture onto it. Knead together until the fondant is smooth and pliable. Reserve a thumb size piece of the white fondant and wrap in clingfilm. Little by little, add mint green food colouring to the remaining fondant and knead to a pale pistachio green colour. Wrap in clingfilm to prevent it drying out.
Roll out the almond paste on a work surface lightly dusted with icing sugar, to a rectangle slightly larger than the cake. Neatly cut out a 23x15cm/9x6in rectangle and place on silicon sheet dusted with icing sugar (this will enable you to slip the almond paste on top of the cake, once the cake has cooled).
Roll out the green fondant on a surface lightly dusted with icing sugar, to a rectangle slightly larger than the cake. Neatly cut out a 23x15cm/9x6in rectangle and carefully place on top of the almond paste.
Divide the royal icing equally between 3 bowls. Colour one bowl pale dusky pink and colour the second bowl a light gold colour, using the autumn leaf colouring. Leave the third bowl white.
Spoon most of the white royal icing into a piping bag fitted with a number 3 writing nozzle. Pipe the outline of a tennis court on top of the green fondant, leaving a 2cm/¾in gap around the edge.
On a sheet of greaseproof paper or a silicon mat, pipe the outline of 2 small tennis rackets (approx. 5cm/2½in long) and a tennis net about 12x3cm/4½x1¼in (it should be the same width as the court you piped onto the cake). Spoon the remaining white icing into a piping bag fitted with a number 2 plain nozzle and pipe the strings of the tennis racket within the tennis racket outline and the strings of the net within the outline of the net. Leave to dry until you can peel them off the paper.
Spoon the pink icing into a piping bag fitted with the number 8 star nozzle and spoon the gold icing into a piping bag fitted with the number 7 star nozzle. Using the pink and the gold icing, pipe a decorative border around the edge of the fondant.
When the cake has cooled, gently lift the decorative iced layer of almond paste and fondant onto the cake.
Pipe a line of white icing across the middle of the tennis court. Peel the net off the greaseproof paper and stick it on the line of icing, so it stands up on top of the cake. Lay the iced tennis rackets on either end of the court and finally roll a small tennis ball from the reserved fondant.
You need JavaScript to view this clip.
How to cream butter by hand
You need JavaScript to view this clip.
Testing to see if a cake is cooked
You need JavaScript to view this clip.
Whisking egg whites


This page shows all the HTML5 input types. When you change any of them, its value will fill into a span to the right of the input.
The submit button will clear the form.
See the MDN page on input elements for more information,


--- layout: default title: About Me description: A little bit about me. permalink: /about/ redirect_from: - /about.html ---
If I'm not writing code or helping companies deliver software, I'm probably training, presenting or mentoring on new technologies, writing better code and the lessons I've learnt to help companies deliver software.
The topics that really get me going at the moment are: Azure, Angular, Machine Learning / AI / Cognitive Services and choosing the right micro-services strategy.
I believe communication and agility lead to success: 'fail fast', inspect, adapt, have a lot of fun.


This page shows photos that you are tagged in that this tool can see. These are either public or uploaded by friends who have also used this tool.
Greyscale photos are non-negotiable but publicly searchable and viewable.
face is the amount of users tagged in a photo.
folder is the amount of contexts the photo has been assigned.
Clicking on a photo takes presents a detail page where you can apply modify and view the results of the mediator after conflict detection.


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| docsCtrl.js | 95.45% | 42/44 | 76.92% | 20/26 | 100% | 0/0 | 94.87% | 37/39 | |
| roleAccess.js | 66.67% | 2/3 | 100% | 0/0 | 0% | 0/1 | 66.67% | 2/3 | |
| rolesCtrl.js | 96% | 24/25 | 83.33% | 10/12 | 100% | 0/0 | 95.45% | 21/22 | |
| searchCtrl.js | 100% | 10/10 | 100% | 4/4 | 100% | 0/0 | 100% | 9/9 | |
| usersCtrl.js | 86.57% | 58/67 | 71.05% | 27/38 | 100% | 0/0 | 94.64% | 53/56 |


Here you'll find a list of trades that are not paired into a
buy/sell pair that we found in the database. If you see any
withdraws, they are fine. Just leave them.
If you see a
buy/sell pair that should be matched please check them and click
Match trades. You can also select more than 2 trades (f.e. 3 Buys
and 1 Sell [Just make sure the quantities are equal for sell and
buy)] and combine them into one profit. After you have combined the
trades they will be paired and show up on the Profits page. If you
notice some weird patterns please let the developer know.


The mountainous island of Karpathos has a port of the same name. Lyings midway between Rhodes and Crete, it is the most southerly of the islands in the Dodecanese. It is not much visited by tourists and has retained many traditional ways, including dress. Most of the inhabitants live in villages in the southern half of the island.
Beware of strong gusts when approaching this island. The Port of Karpathos (Pigadhia) is on the eastern side of the island.
Moor to the mole in the SW corner of the harbour. There is nearly always some surge here and many of the moored boats will have springs out.
Karpathos and Eastern Crete are affected by near gale or gale force winds from the north west a lot of the time. The many wind mills on the ridges and wind surfing resorts in Karpathos indicate the Greeks are well aware of this despite no mention of it in the cruising guides.
Anchorages
Amorfos: Sandy seabed, good protection from the winds.
Diafani Bay (NE of Island): Small port, sandy seabed with rocks. Difficult at night. Good anchorage from which to visit Olympos.
Finiki (SW of Island): Small port. Good protection from the Meltemi (WNW) wind.
Makrys Yalos: Sandy seabed. Good protection from the Meltemi.
Saria: Moderate protection from the Meltemi.
Tristomo (N. point) Bay: Good protection from the Meltemi.
Last updated January 2009.


India Post introduces app to track letters online in Vellore
Nanyatha helps officials streamline letter box clearance
by Staff ReporterAs part of its digitisation programme, India Post has introduced a new mobile application for monitoring the clearance and despatch of letters posted at a particular letter box. One such facility was inaugurated at Vellore Head Post Office on Friday in the presence of P. Komal Kumar, Superintendent of Post Offices, Vellore region, and G. Srinivasan, Senior Post Master.
The app-based monitoring system, Nanyatha, contains data pertaining to the location of the letter box, date and time of clearance, number of letters picked up and postal staff number.
Residents can check these details online via the website https:appost.in/nanyatha
According to Mr. Kumar, every letter box has a distinctive barcode which consists of a pin code followed by a two-digit serial number. The postal department staff will capture the location coordinates of the letter box and will then open it, note the number of letters inside, and scan the barcode that the letter box has been assigned.
Through a smartphone app, the staff member will then enter his/her name, and the number of items cleared. This information will be uploaded on the central server, from where it can be monitored till the letters reach the destination post offices.
Reviewing letter boxes
The software will also assist in reviewing how many letters have been posted and in examining whether letter boxes should be withdrawn or removed


ABOUT:
An event of mechanized innovation technique that holds the design, construction and load testing of
bascule bridge build with ice-cream sticks and mechanized by pulley, motor or hydraulic pumping.
DESCRIPTION:
A bascule bridge is an extensive engineering design that holds the capability of allowing the passage of
movement of object through the bridge median. The name comes from the French term for balance scale,
which employs the same principle. Bascule bridges are the most common type of movable span because they
open quickly and require relatively little energy to operate, while providing the possibility for
unlimited vertical clearance for marine traffic.
COMPETITION RULES
- Competition proceeds with team wise evaluation with 2 members in each team.
- Only ice-cream sticks are to be used as the building material.
- Mechanism of lift is kept in comfort and innovation of the teams.
- Width of span/leaf- 15 cm, Length of each span/leaf-30cm
- Height of bridge-15cm from the centre of bridge.
- Bridge must bear loads, else disqualified.
Specification
- Pillars (Minimum 80mm)
- Plateform(length = breadth =250 to 350mm)
- Cello tape can be used to join plateform and pillars together however adhesives cannot be used
anyway.
- Only four pillars are allowed. The points will be deducted if using more than 4 pillars.
- Points will be deducted if u will take extra material.The cello tape should be used at joints only.
Materials Provided:
- ICE CREAM
- PULLEY
- THREAD
- FOAM SHEET/CLAY
- FEVICOL/GUMS ETC
TEST OF BRIDGE
BENDING TEST
BRIDGE OPENING TEST


Gladiators
问题描述 :
In the TV game show Gladiators, the final competition is to run through a steeplechase course. To get some variation, the producer has decided to change the course each week. The course is always built out of m obstacles, all of different heights, placed along a straight line. An obstacle consists of two initially connected platforms which may be separated. Between the two platforms of an obstacle, other higher obstacles may be put. Also, obstacles may be put after one another.
Figure 1. To the left: An obstacle seen from the side. To the right: A steeplechase course consisting of 5 obstacles. The contestants run from left to right.
Figure 1. To the left: An obstacle seen from the side. To the right: A steeplechase course consisting of 5 obstacles. The contestants run from left to right.
The producer thinks it is most desirable that the results from different weeks may be compared to each other. Therefore, he wants to build courses of similar degree of difficulty.
A proposed measure of difficulty is the number of platforms that are higher than their immediately preceeding platform along the course. Moreover, the leftmost (first) platform of the course always give rise to one point since it is located above the floor. E.g. the course to the right in figure 1 has four points of difficulty.
Your mission is to find out how many ways there are to build a course of a given point of difficulty,from a given number of obstacles.
输入:
On the first line of input is a single positive integer n, telling the number of test scenarios to follow.
Each test scenario consists of one line containing two non negative integers m and k, where m <= 50 is the number of obstacles, and k is the point of difficulty asked for.
Each test scenario consists of one line containing two non negative integers m and k, where m <= 50 is the number of obstacles, and k is the point of difficulty asked for.
输出:
On the first line of input is a single positive integer n, telling the number of test scenarios to follow.
Each test scenario consists of one line containing two non negative integers m and k, where m <= 50 is the number of obstacles, and k is the point of difficulty asked for.
Each test scenario consists of one line containing two non negative integers m and k, where m <= 50 is the number of obstacles, and k is the point of difficulty asked for.
样例输入:
6 0 1 0 1 1 2 1 2 2 3 1 3 2
样例输出:
0 1 1 2 1 8
/*This Code is Submitted by billforum for Problem 1952 at 2012-06-08 15:39:09*/ #include <stdio.h> #include <iostream> #include <fstream> #include <vector> #include <exception> #include <cstring> #include <stdlib.h> using namespace std; const int Len=1000000; int next[Len+5]; void getNext(int next[],char str[]) { int len=strlen(str); int i=0,j=-1; while(i<len) { if((j==-1)||(str[i]==str[j])) { j++; i++; next[i]=j; } else j=next[j]; } return; } void print(int next[],int len) { for(int i=0;i<len;i++) printf("%d ",next[i]); } int cmp(char s1[],char s2[]) { int i=0,j=0;//i->s1,j->s2 int len1=strlen(s1),len2=strlen(s2); int times=0; while(i<len1) { if((j==-1)||(s1[i]==s2[j])) { i++; j++; if(j>=len2) { j=0; times++; } } else j=next[j]; } return times; } int main(int argc, char **argv) { char str1[Len+5]; memset(next,0,sizeof(next)); next[0]=-1; while(scanf("%s",str1)==1) { if(strcmp(str1,".")==0) break; int len1=strlen(str1); str1[len1]='.'; str1[len1+1]='\0'; getNext(next,str1); len1=strlen(str1); //print(next,len1); //cout<<endl; if((len1-1)%(len1-1-next[len1-1])==0) printf("%d\n",(len1-1)/(len1-1-next[len1-1])); else printf("1\n"); } return 0; }
解题转自：http://www.cnblogs.com/wuzhibin/archive/2012/06/08/2541870.html
(adsbygoogle = window.adsbygoogle || []).push({});
大致看了下，算法的时间复杂度没有很本性的提升，算不上高效。
顶一个 赞一个
因为是要把从字符串s的start位到当前位在hash中重置，修改提交后能accept，但是不修改居然也能accept
不错的网站，建议添加些比赛信息
,,,,,,,,,,,,,,,
因为是要把从字符串s的start位到当前位在hash中重置，修改提交后能accept，但是不修改居然也能accept
Thank you very much
多谢支持！
http://beeder.me 这个网站上有很多poj和hihoCoder的题解，质量不错，欢迎转载。
不需要输出，只要函数返回值正确就行
这种二分还是比较经典！mark
思路二可以用一个长度为k的队列来实现，入队后判断下队尾元素的next指针是否为空，若为空，则出队指针即为所求。


{% extends "layout.html" %} {% block title %} My Games {% endblock %} {% block main %}
| White | Black | Player to Move | Time to Move | Turn Limit | Game Start Time | View Game? |
| {{ game.white_name }} | {{ game.black_name }} | {{ game.player_to_move }} | {{ game.time_to_move }} hrs | {{ game.turn_day_limit }} day(s) | {{ game.timestamp }} | View |


{% extends "email.html" %} {% load email_image from enrolment_email %} {% load company_profile_url from notifications_tags %} {% block logo %} {% endblock %} {% block heading %}Find a Supplier{% endblock %} {% block body %}
Dear {{ full_name|default:'User' }},
You have successfully unsubscribed from marketing emails for the Find a buyer service.
We will only send you emails about the Find a supplier service, for example, if there are changes to the services offered.
If you have a problem with our emails, please contact us.
{% endblock %} {% block action %} {% endblock %} {% block footer %} {% endblock %}


peita nois tiukk
CC Checker
CC AKI
TEST
STOP

Informations:
Status:
Aguardando o comando.
Approved:

0
Declined:

0
Tested:

0
Loaded:

0
SHOW/HIDE
Approved -
0
SHOW/HIDE
Declined -
0


The Red Violin (1998/1999) Reviewed by Eugene Novikov http://www.ultimate-movie.com/ Member: Online Film Critics Society
**** out of four
Starring Samuel L. Jackson, Don McKellar, Carlo Cecchi, Irene Grazioli, Jean-Luc Bideau, Christopher Koncz, Jason Flemyng, Greta Scacci, Sylvia Chang, Liu Zifang, Colm Feore. Not Rated.
Perfection is elusive. In fact, many will argue that nothing on Earth has ever truly achieved it. Some will even say that there really is no such thing as perfection because everything has flaws; be they concrete or abstract, large or minute. The Red Violin, a stellar new movie from Canadian director François Girard, explores the concept of perfection and what it takes to achieve it.
One of the first scenes in the film takes place at a very prestigious auction. As we enter, the auction is drawing to a close with what is the last lot of the evening, an instrument introduced as "The Red Violin." The camera lingers on the gorgeous piece as we are transported back 3 centuries, to the time and place of the violin's creation.
So begins the story of this uniquely powerful instrument. It's told in an offbeat manner via a fortune teller reading into the future of the violin creator's wife through tarot cards. This is deceptive because she is telling the future of the violin rather than of the woman, who is to die during childbirth soon after. The kicker, however, is that the violin was painted red by her husband using a brush made from his deceased wife's hair and paint colored by the red of her blood. Made with love and out of love, the violin becomes a character in the movie; analogous with the violin maker's wife.
The Red Violin tracks the history of its subject as it changes hands and travels the world, introducing us to many a fascinating character along the way. We come back to the auction scene on numerous occasions, as the movie slowly reveals the motives of the characters we see in present day (one of whom is played by Samuel L. Jackson). Girard is master of his domain -- time -- to the point where his film flows freely through it every which way, manipulating it at will while maintaining the narrative cohesion necessary for the film to work as a story.
As The Red Violin progressed, the violin -- an inanimate object -- established a veritable personality of its own, a feat only the most deft of directors can achieve. This instrument, which drastically and almost consciously changed the lives of everyone it touched, is established as something perfect from the start: a masterpiece. It is shot at, buried, mutilated and subjected to numerous trials and tribulations and yet it always survives: inevitable for a completely flawless entity.
Making a film like this is dangerous because it has the potential to become a pretentious bore (give the project to Terrence Malick or John Sayles and voila!). There is enough theme here to make this a self- indulgently abstract, philosophizing movie, sticking in voiceover narrations and adding excess symbolism. François Girard, however, keeps this movie cerebral yet down-to-earth. He also proves that a movie about a 300 year old violin can be mesmerizing: I did not suspect that this film might be capable of genuinely entertaining me, but alas I'm happy to report that aside from making think, The Red Violin engaged me and kept my eyes glued to the screen.
The story and concept of the violin is intriguing and scintillating, but what is most impressive about this movie is how each of the many characters is interesting as well. From the passionate dedication of George Poussin to teaching his prodigy to Frederick Pope's bizarre connection between sex and music, each of the people in The Red Violin is worth exploring and analyzing. This is an added bonus to what is already a gloriously multifaceted film.
It is films like The Red Violin that keep me coming back to the movie theaters week after week, day after day. It works at an astounding number of levels, entertaining casual moviegoers with its plot twists and its suspense, impressing classical music lovers with a powerful and poignant score, all the while engaging cineasts with its thematic intricacies. It could very well be that nothing in the real world can achieve perfection, but The Red Violin is as close as films come. ©1999 Eugene Novikov
Sent via Deja.com http://www.deja.com/ Share what you know. Learn what you don't.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Supernova
Home
(current)
Profile
Resources
Discussion Center
Action
Map
Thomas Cohen
24 Tags
4 Events Scheduled
11 Active Discussion Channels
Edit Profile
Discussion Channels
The fight for equality does not end in one platform! -
Thomas Cohen
Defund the police! -
Thomas Cohen
Green New Deal or Green California Plans? -
Thomas Cohen
More from Thomas..
USC + Southern California + Social and Political Science Major + #lovewins


Performance Comparison between NVIDIA’s GeForce GTX 1080 and Tesla P100 for Deep Learning
Introduction
This post aims at comparing two different pieces of hardware that are often used for Deep Learning tasks. The first is a GTX 1080 Ti GPU, a gaming device. The second is a Tesla P100 GPU, a high-end device devised for data centers which provides high-performance computing for Deep Learning.
Hardware
The hardware specifications of both the devices are:
| GeForce GTX® 1080 Ti | Tesla® P100-SMX2 | |
|---|---|---|
| CUDA Cores | 3,584 | 3,584 |
| Floating-point Performance (TFLOPS) | 11.3 | 10.6 |
| Memory | 11 GB (GDDR5X) | 16 GB (HBM2) |
| Max Power Consumption | 250 W | 300 W |
| Launch price (USD) | $699 | $9,428 |
Tesla P100 has more memory than GTX 1080 Ti. Also, high-bandwidth HBM2 memory is significantly faster than GDDR5X. The direct CPU-to-GPU NVLink connectivity on P100 enables 5X faster transfers than standard PCI-E. However, the cost of P100 is almost 15X more than the 1080 Ti.
Software
We have used the following components for the software:
- NVIDIA CUDA Toolkit: 8.0
- NVIDIA cuDNN: 5.1
- Python: v3.6.3
- NumPy: v1.13.3
- TensorFlow: v1.4
- NVIDIA graphics driver: v384.81
Dataset
The Cars Overhead with Context (COWC) dataset is a large, high quality set of annotated cars from overhead imagery. The data consists of ~33,000 unique cars from six different image locales: Toronto Canada, Selwyn New Zealand, Potsdam and Vaihingen Germany, Columbus and Utah United States. The dataset is described in detail by Mundhenk et al, 2016. The Columbus and Vaihingen datasets are in grayscale. The remaining datasets are 3-band RGB images. Data is collected via aerial platforms, but at a view angle such that it resembles satellite imagery.
We chose this dataset as we were already working with it for a project ‘Counting the number of cars in satellite imagery using Deep Learning’. Datasets like MNIST do not aid much in the evaluation of the hardware configurations, since it is a small dataset. Therefore, it is much desirable to use larger and more complex datasets.
Model
The Inception v4 model is known to perform very well on the ImageNet challenge. It has 95.2% Top-5 accuracy. However, it did not perform well on our classes of interest. So we fine-tuned this model to adapt for our classes (this approach is also called ‘Transfer Learning’) and named it as ‘Pondception’.
Benchmarks
In order to compare the performance of both the hardware architectures, we used four benchmarks:
- We trained the Pondception classification network model till 2000 steps for the dataset on the CPU and both the hardware configurations.
- We used the maximum batch size that the memory of both the hardware configurations can fit and train the model.
- We monitored the amount of energy consumed and the temperature of both the hardware configurations during the training of the model.
- We ran some popular convolutional neural network models on both the hardware configurations on synthetic data to avoid potential disk I/O as an overhead.
Results
Time taken during training
For a batch size of 32 and 2000 training steps, the total time taken to train the model on the CPU, P100 and 1080 Ti was:
| GTX 1080 Ti | Tesla P100 | CPU | |
|---|---|---|---|
| Total time taken (in min) | 67 | 51 | 240 |
| % of time taken | 100% | 76% | 400% |
We can see that the GPU’s are significantly faster than the CPU, with about 4X speedup. Regarding the comparison between both the GPU’s, the P100 outperforms the 1080 Ti, though there is only 1.3X speedup, i.e. the time taken for training is reduced by approximately 20%.
Evaluation Metrics and Validation Loss comparison
Since the P100 has a larger memory size (i.e. 5 GB more than the 1080 Ti), it is able to fit a larger batch size for the given dataset. While the largest batch size for 1080 Ti is 32, the largest batch size for the P100 is 85. Training with these batch sizes and taking 2000 training steps gives the following results for the evaluation metrics and the loss in validation.
As we can visualize from the bar chart, there is not much difference in the metrics even though we had taken a larger batch size for the P100. In fact, the accuracy and the other metrics decrease by around 2% in the case of P100. So, we can’t conclude that if we have a larger memory in a GPU and take a larger batch size, it will give better validation accuracy. Moreover, the time taken for training with a larger batch also increases significantly. In the case of P100, while the time taken for training with 2000 steps and the batch size as 32 was 51 minutes, the time taken for training with same number of steps but with the batch size as 85, was 120 minutes (almost double!).
If we visualize the plot for validation loss in the model for both the GPU’s for 2000 steps, we can see that the validation loss is decreasing more at every subsequent checkpoint in the case of P100. It might have decreased more and converged earlier in case of P100, had we trained for more number of steps.
Power Consumption and Temperature analysis
We recorded the power consumption and the temperature of the 1080 Ti and P100, for 5000 points at equal time intervals during the training of the model. Following is the plot for the power consumption by 1080 Ti and P100 during training of the model:
Following is the plot for the temperature of 1080 Ti and P100 during training of the model:
As we can infer from the plots, P100 definitely beats 1080 Ti in terms of power consumption and the temperature. For the temperature, it is natural since 1080 Ti GPU’s are installed in our office at room temperature and do not have any special cooling system besides the fans located in the device. Since P100 runs at a lower temperature as compared to the 1080 Ti, it might have special cooling systems or better heat management mechanisms .
Image classification models performance
In this section, we use InceptionV3, ResNet-50, VGG16, and ResNet-152 models on synthetic data to compare the performance of P100 and 1080 Ti.
Speedup over CPU
Compared to the CPUs, GPUs provide huge performance speedups during deep learning training. The ResNet-50 model is trained with a batch size of 64.
Speedup with multi-GPUs
Training on double GPUs enhanced the performance significantly, be it P100 or 1080 Ti. However, the P100 was not much faster than the 1080 Ti (with double GPUs). There was only slight improvement.
Half-Precision (FP16) Performance
According to the official documentation, P100 is designed for high-performance double-precision floats (FP64) which is used in many HPC applications such as quantum chemistry and numerical simulation, since there are 1792 double-precision CUDA cores, which is half the number of single-precision (FP32) CUDA cores. Even with the GPUs like the 1080 Ti or the Titan X, we can compute with half-precision floats (FP16), however the performance will be slower than single-precision floats (FP32). The P100 also supports FP16 calculation which speeds up deep learning. There is around 13% speedup on average in this case.
Memory Bottleneck
GPU memory will never be too much for large-scale deep learning training. Sometimes the memory will be a bottleneck for training efficiency. Larger mini-batches are more efficient to compute and lead to better convergence in fewer epochs , but at the same time they also require more GPU memory. P100 has 5GB more memory than 1080 Ti, which enables larger batch size in deep learning. For example, if we use a batch size of 64, the 1080 Ti will run out of memory, however the P100 will still work.
One possible approach to avoid this is by applying half-precision computing because storing FP16 data compared to the higher FP32 or FP64 reduces memory usage, which enables us to use larger batch size or train larger networks. For example, if we use FP16 with a batch size of 64 on ResNet-50 model in 1080 Ti, then the out-of-memory problem will be solved.
Conclusions
We compared two different GPUs by running a couple of Deep Learning benchmarks. These devices are GeForce GTX 1080 and Tesla P100.
After looking at the results, we can argue that the P100 is probably not worth the cost (which is 15X more than the 1080 Ti), while the performance is generally around 15% better.
However, as already discussed in previous section, the larger memory size of P100 would enable to either work with larger networks or with larger batches. Larger batches could lead to better convergence of the gradient descent process, enabling us to train a successful model in a smaller number of epochs. Moreover, P100 might last longer given that it is a high-end device specially devised for datacenters and runs on a lower temperature and is much cooler as compared to the 1080 Ti.


Top headlines: SBI's MCLR rate cut, Lodha India's richest realtor and more
This is the eighth cut in MCLR in this financial year and follows a 5 bps reduction last month
by BS Web TeamSBI cuts MCLR rate by 10 bps for one-year loan, deposit rates unchanged
The country’s largest lender, State Bank of India, has cut its marginal cost of fund-based lending rate (MCLR) by 10 basis points for loans with a one-year tenure to 7.9 per cent, effective December 10. Read more
M P Lodha India's richest real estate entrepreneur with wealth of Rs 32,000 cr: Report
Lodha Developers' M P Lodha and family has been named India's richest real estate entrepreneur with a wealth of Rs 31,960 crore followed by DLF's Rajiv Singh and Embassy group founder Jitendra Virwani in the second and third position respectively, according to a report. Read more
Yes Bank likely to reject $1.2 bn offer from Canadian tycoon Erwin Braich
Yes Bank Ltd. is likely to reject an offer that made up more than half of its planned $2 billion capital raising, and is talking to institutional investors about making up the shortfall, according to a person familiar with the matter. Read more
Jaguar Land Rover Retail Sales Down 3.4% In November: Tata Motors
Tata Motors-owned Jaguar Land Rover (JLR) on Monday reported 3.4 per cent decline in total retail sales at 46,542 units in November as compared to the year-ago period. Read more
BJP Retains Karnataka, Set To Win 12 Bypoll Seats Under CM Yeddiyurappa
The ruling BJP on Monday retained majority in the Karnataka Assembly when it bagged six seats in the byelections in which it was also leading in an equal number in other segments where counting is underway. The BJP's good show in 12 seats comes as a morale booster for the saffron party after it's setback in Maharashtra. Read more


Preparation time
30 mins to 1 hour
Cooking time
1 to 2 hours
Serves
Serves 4
Rachel Allen shows you how to make a smoky fish pie, rich with cheese and eggs. A real winter warmer.
Preheat the oven to 180C/350F/Gas 4. Place the pieces of fish in a wide pan, add the quartered onion and bay leaf and pour over 450ml/16floz of the milk.
Bring the milk up to the boil, reduce the heat and simmer for about eight minutes, or until the fish is just cooked.
Using a fish slice or slotted spoon, carefully remove the fish from the milk and place it on a plate.
Using a fork, flake the fish into chunky pieces. Spread the pieces out in an ovenproof dish (about 22cm/9in square) or into smaller individual dishes.
Pour the poaching milk through a sieve into a jug and set aside.
Place the potatoes into a saucepan and cover with water and a pinch of salt.
Bring the potatoes to the boil and simmer for 10 minutes.
Pour out nearly all of the water, leaving about 4cm/1½in of water, and continue to cook for about 20 minutes on a very low heat.
Test the potatoes with a skewer to see if they are tender - if they aren't soft, then return to the heat for a further five minutes.
When the potatoes are soft, drain any remaining water and peel them, using a tea towel to hold them if they're too hot to handle.
Place the potatoes in a bowl and mash until smooth, adding the butter as you mash.
Place the remaining cold milk (NOT the set-aside poaching milk) into a saucepan and bring to a simmer. Add this milk to the potatoes and beat in. Season with salt and freshly ground black pepper.
Set the potato topping aside and bring a small pan of water to a gentle boil to boil the eggs. Carefully lower the eggs into the water and boil for eight minutes.
Drain and cool the eggs under cold water. Peel the eggs, cut into chunks of about 2cm/¾in and place on top of the fish. Sprinkle with the chopped parsley.
For the white sauce, melt the butter in a pan, stir in the flour and cook for one minute over a moderate heat.
Gradually add all the set-aside fish poaching milk, whisking all the time, and simmer for 1-2 minutes, stirring, until you have a smooth, slightly thick sauce.
Remove the sauce from the heat, season with salt, freshly ground black pepper and nutmeg. Pour the sauce over the fish and eggs in the dish.
Arrange the mashed potato over the top of the sauce, score with a fork to make a pretty pattern and sprinkle with the grated cheese.
Place in the oven and cook for about 30 minutes, until bubbling and golden-brown on top. Serve straightaway.


50 students fall ill after consuming mid-day meal in Odisha
Reports of a dead lizard and rotten eggs were allegedly found in the food by two different govt. schools
by PTIAs many as 50 students of two government schools in Odisha’s Jajpur were taken ill after consuming mid-day meal on Saturday, officials said.
The first incident occurred at Sibantpur Upper Primary School under Haridaspur panchayat of Dharmasala block, they said.
The meal was served at about 10 am in the school and about 40 students were vomiting, feeling nauseous and complaining of stomach pain after consuming it, an official said.
They were immediately rushed to the nearby Dharmasala community health centre (CHC) and treated.
According to a preliminary enquiry, a dead lizard was found in dalma (pulses cooked with vegetables), served to the students in the mid-day meal, Dharmasala block education officer Prafulla Kumar Behera said.
In another incident, 10 students of Bamphu Mangarajpur Nodal School were rushed to the same CHC with similar complaints, the official said.
Rotten eggs were allegedly served to the students in the mid-day meal, he said.
Behera said all the students were discharged from the heath centre after preliminary treatments.
Samples of food, served to the students, have been collected and sent to a laboratory for tests, he said, adding that the matter is “under investigation and appropriate action would be taken, if anyone is found guilty”.


--- layout: page_default title: Incomplete Transcripts ---
Some of these episodes may already be partially-transcribed in this publicly-editable Google Docs folder; those linked below can be also be downloaded in Markdown format from their archive pages.
| {{ post.episode_number | escape }} | {{ post.episode_title | escape }} | {{ post.date | date: "%Y-%m-%d" }} |


${site_title} received and settled an ACH file.
| Filename | ${filename} |
|---|---|
| Credits Received | ${received_credits_count} (${received_credits_total}) |
| Credits Settled | ${settled_credits_count} (${settled_credits_total}) |
| Debits Received | ${received_debits_count} (${received_debits_total}) |
| Return Entries Created | ${returns_count} (${returns_total}) |
Not all credits could be settled at this time. % if not_yet_effective: Some of the credits have not yet reached the effective date. % endif
% endif % if not unsettled_count:All entries in this file have been settled.
% endifFollow the link below for more details.


Sets the minimum percentage of time that must be spent executing a construct or user function for it to be displayed by the profile-info command.
(set-profile-percent-threshold <number in the range 0 to 100>)