2014-7-18
Effective July 18, 2014
INTRODUCTION
The Magic- Infraction Procedure Guide provides judges the appropriate penalties and procedures to handle rules violations that occur during a tournament held at Competitive or Professional Rules Enforcement Level (REL), as well as the underlying philosophy that guides their implementation. It exists to protect players from potential misconduct and to protect the integrity of the tournament itself. Rules violations usually require a penalty or they are unenforceable. Tournaments run at Regular REL use the Judging at Regular REL document.
FRAMEWORK OF THIS DOCUMENT
This document is divided into two major parts: General Definitions and Philosophy (section 1), and Infractions (sections 2-4).
Infractions are broken down into general classes (Game Play Error, Tournament Error, and Unsporting Conduct), and further into subclasses for specific infractions.
See the Magic Tournament Rules for further definitions of terms in this document.
This document is published in multiple languages. If a discrepancy exists between the English version and a non-English version of this document, tournament participants must refer to the English version to settle disputes concerning interpretations of the Infraction Procedure Guide.
This document is updated periodically. Please obtain the most current version at
http://www.wizards.com/wpn/Events/Rules.aspx.
CONTENTS
Introduction
Framework of this Document
Contents
Appendix A - Penalty Quick Reference
Appendix B - Rules Enforcement Levels of Premier Programs
Appendix C - Changes from Previous Versions
Judges are neutral arbiters and enforcers of policy and rules. A judge shouldn't intervene in a game unless he or she believes a rules violation has occurred, a player with a concern or question requests assistance, or the judge wishes to prevent a situation from escalating. Judges don't stop play errors from occurring, but instead deal with errors that have occurred, penalize those who violate rules or policy, and promote fair play and sporting conduct by example and diplomacy. Judges may intervene to prevent or preempt errors occurring outside of a game.
All players are treated equally according to the guidelines of an event's Rules Enforcement Level (REL).
Knowledge of a player's history does not influence the recognition of an infraction or the application of penalties, though it may affect the manner of an investigation. The REL of an event defines what is expected from a player regarding his or her rules and policy knowledge and technical play skill.
Treating a player differently because he or she once played in a Professional event would mean holding each player to a different standard and would produce inconsistent rulings that depended on the judge's familiarity with the player. Professionals should be able to play in events without being held to a higher technical level of play against less-experienced opponents who may not be as familiar with the rules.
The purpose of a penalty is to educate the player not to make similar mistakes in the future. This is done through both an explanation of where the rules or policies were violated and a penalty to reinforce the education. Penalties are also for the deterrence and education of every other player in the event and are also used to track player behavior over time.
The level of penalty an infraction carries is based on these factors:
- The potential for abuse (or risk of being exposed).
- Repeated offenses by the player within the tournament.
- The amount of disruption it causes (time and people affected) in discovering, investigating, and resolving the issue.
Only the Head Judge is authorized to issue penalties that deviate from these guidelines. The Head Judge may not deviate from this guide's procedures except in significant and exceptional circumstances or a situation that has no applicable philosophy for guidance. Significant and exceptional circumstances are rare-a table collapses, a booster contains cards from a different set, etc. The Rules Enforcement Level, round of the tournament, age or experience-level of the player, desire to educate the player, and certification level of the judge are NOT exceptional circumstances. If another judge feels deviation is appropriate, he or she must consult with the Head Judge.
Judges should be seen as a benefit to the players, helping to ensure the consistent and fair running of a tournament.
Players should be encouraged to use judges as needed, and should not be afraid to call a judge when one is required.
If a player commits an offense, realizes it, and calls a judge over immediately and before he or she could potentially benefit from the offense, the Head Judge has the option to downgrade the penalty without it being considered a deviation, though he or she should still follow any procedures recommended to fix the error. For example, a player offers his deck to his opponent and while cutting his opponent's deck discovers that a card that belongs in his deck is still exiled from a previous game. If he calls the judge over immediately, the Head Judge may choose to issue a Warning rather than a Game Loss.
Judges are human and make mistakes. When a judge makes a mistake, he or she should acknowledge the mistake, apologize to the players, and fix it if it is not too late. If the judge gives a player erroneous information that causes them to commit a violation, the Head Judge is authorized to downgrade the penalty. For example, a player asks a judge whether a card is legal for a format and is told yes. When that player's deck is found to be illegal because of these cards, the Head Judge applies the normal procedure for fixing the decklist, but may downgrade the penalty to a Warning because of the direct error of the judge.
Rules Enforcement Level is a means to communicate to the players and judges what expectations they can have of the event in terms of rigidity of rules enforcement, technically correct play, and procedures used.
The REL of an event will increase based on the prizes awarded and the distance a player may be expected to travel.
People who travel further are often more competitive and are likely to desire more precise adherence to rules and procedures. The REL of the event reflects this.
Regular
Regular events are focused on fun and social aspects, not enforcement. Most tournaments are run at this level unless they offer sizeable prizes or invitations. Players are expected to know most of the game rules, may have heard of policy and what is really bad, but generally play in a fashion similar to the way he or she does at home. Players are still responsible for following the rules, but the focus is on education and sportsmanship over technically precise play. Handling infractions in these tournaments is covered by the Judging at Regular REL document.
Competitive
Competitive events are usually those with significant cash prizes or invitations awarded to Professional events.
Players are expected to know the game's rules-but not to a technically detailed level-and be familiar with the policies and procedures, but unintentional errors are not punished severely. These are events that protect the interests of all players by providing event integrity while also recognizing that not all players are intimately familiar with Professional-level event structure, proper procedures, and rules.
Professional
Professional level events offer large cash awards, prestige, and other benefits that draw players from great distances.
These events hold players to a higher standard of behavior and technically correct play than Competitive events.
Caution
A Caution is a verbal admonition to a player. This is the lightest penalty that can be given. Cautions are used in situations of minor incorrect play or disruption where a quick word can easily correct the behavior or situation. It is also used for common mistakes in Regular events where the potential for advantage is low. No extra time is required for a Caution, as any Caution that takes more than a few moments to resolve should be upgraded to a Warning. A Caution is noted for the duration of the tournament in case of repeated offense.
The word caution does not need to be used in issuing this penalty. Any verbal admonition to a player, even if it is not made clear to the player that an official Caution has been issued, is considered a Caution for purposes of upgrading repeated infractions.
Warning
A Warning is an officially tracked penalty. Warnings are used in situations of incorrect play when a small amount of time is needed to implement the corrective procedure. The purpose of a Warning is to alert judges and players involved that a problem has occurred and to keep a permanent record of the infraction in the DCI Penalty Database.
A time extension should be issued if the ruling has taken more than a minute.
Game Loss
A Game Loss is issued in situations where the procedure to correct the offense takes a significant amount of time that may slow the entire tournament or causes significant disruption to the tournament, or in which it is impossible to continue the game due to physical disruption. It is also used for some infractions that have a higher probability for a player to gain advantage.
A Game Loss ends the current game immediately and the player who committed the infraction is considered to have lost the game for the purpose of match reporting. The player receiving a Game Loss chooses whether to play or draw 4
in the next game of that match, if applicable. If a Game Loss is issued before the match begins, neither player in that match may use sideboards (if the tournament uses them) for the first game they play.
Game Losses are applied to the game in which the offense occurred unless the players have begun a new game or the tournament is between rounds, in which case the loss is applied to the player's next game. If a player receives a Game Loss at the same time his or her opponent receives a Match Loss, the Game Loss is carried over into the next round. Simultaneous Game Loss penalties are applied together even if their application would give one player the match win. It is also acceptable for simultaneous Game Loss penalties to extend a match past the expected number of games if neither player has won a majority. Players will still receive a Game Loss if they drop from the tournament; if the penalty is issued between rounds, they will still receive it even though they will not be paired for the next round.
Match Loss
A Match Loss is a severe penalty that is usually issued when the match cannot be completed due to timing restrictions or because the match itself has been compromised.
Match Losses are applied to the match during which the offense occurred unless the match has already ended, in which case the penalty will be applied to the player's next match. Players will still be issued a Match Loss penalty if they drop from the tournament, though they won't be paired for the next round.
Disqualification
A Disqualification is issued for activity that damages the integrity of a tournament as a whole or for severe unsporting conduct.
The recipient of a Disqualification does not need to be a player in the tournament. He or she may be a spectator or other bystander. If this happens, he or she must be entered into the tournament in Wizards Event Reporter (WER) so that he or she may be disqualified and reported to the DCI.
Disqualification can occur without proof of action so long as the Head Judge determines sufficient information exists to believe the tournament's integrity may have been compromised. It is recommended that the Head Judge's report reflect this fact.
When this penalty is applied, the player loses his or her current match and is dropped from the tournament. If a player has already received prizes at the time he or she is disqualified, that player may keep those prizes but does not receive any additional prizes or awards he or she may be due. The Head Judge must report all Disqualifications to the Investigations Manager via the Investigations tab in the Judge Center (http://judge.wizards.com).
When a player is disqualified during a tournament, he or she is removed from the tournament and does not take up a place in the standings. This means that all players in the tournament will advance one spot in the standings and are entitled to any prizes the new standing would offer. If the Disqualification takes place after a cut is made, no additional players advance in place of the disqualified player although they do move up a spot in the standings. For example, if a player is disqualified during the quarterfinal round of a Pro Tour Qualifier, the former 9th place finisher does not advance into the single elimination top 8, but he or she does move into 8th place in the standings.
Any penalty higher than a Caution is included with the tournament report so that a permanent record can be kept in the DCI Penalty Database. Additionally, any penalty of Game Loss or higher should be reported to the Head Judge, and it is recommended that only the Head Judge issue penalties of this nature (with the exception of Tardiness (3.1) and Deck Errors (3.5)).
Any time a penalty is issued, the judge must explain the infraction, the procedure for fixing the situation, and the penalty to all players involved. If the Head Judge chooses to deviate from the Infraction Procedure Guide, the Head Judge is expected to explain the standard penalty and the reason for deviation.
Some infractions include remedies to handle the offense beyond the base penalty. These procedures exist to protect officials from accusations of unfairness, bias, or favoritism. If a judge makes a ruling that is consistent with quoted text, then the complaints of a player shift from accusation of unfairness by the judge to accusations of unfair policy.
Deviations from these procedures may raise accusations against the judge from the player(s) involved, or from those who hear about it.
These procedures do not, and should not, take into account the game being played, the current situation that the game is in, or who will benefit strategically from the procedure associated with a penalty. While it is tempting to try to fix game situations, the danger of missing a subtle detail or showing favoritism to a player (even unintentionally) makes it a bad idea.
Separate infractions committed or discovered at the same time are treated as separate penalties, though if the root cause is the same, only the more severe one is applied. If the first penalty would cause the second one to be inapplicable for the round (such as a Game Loss issued along with a Match Loss), the more severe penalty is issued first, followed by the less severe penalty in the next round.
Some violations of tournament rules will not meet the criteria for any specific infraction. Many minor offenses that a player can commit, even intentionally, are not covered by a specific infraction and can be handled initially with a Caution. If these behaviors continue, the judge may instruct them to stop and treat further incidents as Unsporting Conduct Minor.
Game Play Errors are caused by incorrect or inaccurate play of the game such that it results in violations of the Magic Comprehensive Rules. Many offenses fit into this category and it would be impossible to list them all. The guide below is designed to give judges a framework for assessing how to handle a Game Play Error.
Most Game Play Error infractions are assumed to have been committed unintentionally. If the judge believes that the error was intentional, he or she should first consider whether an Unsporting Conduct - Cheating infraction has occurred.
Both players are expected to maintain the game rules and to share some responsibility for any errors that may occur involving public information. As a result, no attempt should be made to determine or correct any advantage gained in assessing the penalty and associated procedures for fixing the offense. Additionally, for most Game Play Errors not caught within a time that a player could reasonably be expected to notice, teammates and opponents receive a Game Play Error - Failure to Maintain Game State penalty. In multiplayer games, all participants in the match other than the offending player receive this penalty if they meet the criteria.
A third or subsequent Warning for a Game Play Error offense in the same category is upgraded to a Game Loss. For multi-day events, the penalty count for these infractions resets between days.
If the players are playing in a way that is clear to both players, but might cause confusion to an external observer, judges are encouraged to request that the players make the situation clear, but not issue any penalty.
| Penalty |
|---|
| Warning* |
A triggered ability triggers, but the player controlling the ability doesn't demonstrate awareness of the trigger's existence the first time that it would affect the game in a visible fashion.
The point by which the player needs to demonstrate this awareness depends on the impact that the trigger would have on the game:
- A triggered ability that requires its controller to choose targets (other than 'target opponent'), modes, or other choices made when the ability is put onto the stack: The controller must announce those choices before they next pass priority.
- A triggered ability that causes a change in the visible game state (including life totals) or requires a choice upon resolution: The controller must take the appropriate physical action or make it clear what the action taken or choice made is before taking any game actions (such as casting a sorcery spell or explicitly moving to the next step or phase) that can be taken only after the triggered ability should have resolved.
Note that casting an instant spell or activating an ability doesn't mean a triggered ability has been forgotten, as it could still be on the stack.
- A triggered ability that changes the rules of the game: The controller must prevent an opponent from taking any resulting illegal action.
- A triggered ability that affects the game state in non-visible ways: The controller must take physical action or make it clear what the action is the first time the change has an effect on the visible game state.
Once any of the above obligations has been fulfilled, or the trigger has been otherwise acknowledged, further problems are treated as a Game Play Error - Game Rule Violation.
Triggered abilities that do nothing except create delayed triggered abilities automatically resolve without requiring acknowledgment. Awareness of the resulting delayed trigger must be demonstrated at the appropriate point.
Triggered abilities that do nothing except create one or more copies of a spell or ability (such as storm or cipher) automatically resolve, but awareness of the resulting objects must be demonstrated using the same requirements as described above (even though the objects may not be triggered abilities).
Players may not cause triggered abilities controlled by an opponent to be missed by taking game actions or otherwise prematurely advancing the game. For example, if a player draws a card during his or her draw step without allowing an opponent to demonstrate awareness of a triggered ability, the controller still has an opportunity to fulfill the appropriate obligation by doing so at that point. The Out-of-Order Sequencing rules (MTR section 4.3) may also be applicable, especially as they relate to batches of actions or resolving items on the stack in an improper order.
If a triggered ability would have no impact on the game, it's not an infraction to fail to demonstrate awareness of it.
For example, if the effect of a triggered ability instructs its controller to sacrifice a creature, a player who controls no creatures isn't required to demonstrate awareness of the ability.
A. Knight of Infamy (a 2/1 creature with exalted) attacks alone. Its controller says Take two.
B. A player forgets to remove the final time counter from a suspended spell and then draws a card during his draw step.
C. A player casts Azorius Arrester, then forgets its triggered ability by not choosing a target for it. He realizes this only after casting another spell.
D. A player forgets to exile the Angel token created by Geist of Saint Traft at end of combat. She realizes the error when declaring blockers during the next turn.
Triggered abilities are common and invisible, so players should not be harshly penalized when forgetting about one.
Players are expected to remember their own triggered abilities; intentionally ignoring one may be Unsporting Conduct - Cheating (unless the ability would have no impact on the game as described above). Even if an opponent is involved in the announcement or resolution of the ability, the controller is still responsible for ensuring the opponents make the appropriate choices and take the appropriate actions. Opponents are not required to point out triggered abilities that they do not control, though they may do so if they wish.
Triggered abilities are assumed to be remembered until otherwise indicated, and the impact on the game state may not be immediately apparent. The opponent's benefit is in not having to point out triggered abilities, although this does not mean that they can cause triggers to be missed. If an opponent requires information about the precise timing of a triggered ability or needs details about a game object that may be affected by a resolved triggered ability, that player may need to acknowledge that ability's existence before its controller does.
The controller of a missed triggered ability receives a Warning only if the triggered ability is usually considered detrimental for the controlling player. The current game state is not a factor in determining this, though symmetrical abilities (such as Howling Mine) may be considered usually detrimental or not depending on who is being affected.
Whether a Warning is issued or not does not affect any additional remedies that may be applicable. Failure to Maintain Game State penalties are never issued to players who did not control the ability.
Judges do not intervene in a missed trigger situation unless they intend to issue a Warning or have reason to suspect that the controller is intentionally missing his or her triggered abilities.
If the triggered ability specifies a default action associated with a choice made by the controller (usually "If you don't ..." or "... unless"), resolve it choosing the default option. If the triggered ability is a delayed triggered ability that changes the zone of an object, resolve it. For these two types of abilities, the opponent chooses whether to resolve the ability the next time a player would get priority or when a player would get priority at the start of the next phase. These abilities do not expire and should be remedied no matter how much time has passed since they should have triggered.
If the triggered ability creates an effect whose duration has already expired or the ability was missed prior to the current phase in the previous player's turn, instruct the players to continue playing.
If the triggered ability isn't covered by the previous two paragraphs, the opponent chooses whether the triggered ability is added to the stack. If it is, it's inserted at the appropriate place on the stack if possible or on the bottom of the stack. No player may make choices involving objects that were not in the appropriate zone or zones when the 8
ability should have triggered. For example, if the ability instructs a player to sacrifice a creature, that player can't sacrifice a creature that wasn't on the battlefield when the ability should have triggered.
| Penalty |
|---|
| Warning |
A player looks at a card they were not entitled to see. Players are considered to have looked at a card when they have been able to observe the face of a hidden card, or when a card is moved any significant amount from a deck, but before it touches the other cards in their hand. This includes errors of dexterity or catching a play error before the card is placed into his or her hand. Once a card has been placed into his or her hand or if a player takes a game action after removing the card from the library, the offense is no longer Looking at Extra Cards.
A player is not considered to have looked at extra cards when he or she places a card face down on the table (without looking at the card) in an effort to count out cards he or she will draw.
This penalty is applied only once if one or more cards are seen in the same action or sequence of actions.
A. A player accidentally reveals (drops, flips over) a card while shuffling her opponent's deck.
B. A player flips over an extra card while drawing from his deck.
C. A player sees the bottom card of her deck when presenting it to her opponent for cutting/shuffling.
D. A player activates a Sensei's Divining Top that is no longer on the battlefield, and sees 3 cards before the mistake is noticed.
A player can accidentally look at extra cards easily. Drawing extra cards is a separate, more severe Game Play Error.
Players should not use this penalty to get a free shuffle or to attempt to shuffle away cards they don't want to draw; doing so may be Unsporting Conduct - Cheating. Players also are not allowed to use this penalty as a stalling mechanism. The deck is already randomized, so shuffling in the revealed cards should not involve excessive effort.
Shuffle the randomized portion of the deck (which may include the cards that were seen, if they were part of the random portion of the library). This requires first determining whether any portion of the deck is non-random, such as cards that have been manipulated on the top or bottom of the library, and separating those. Once the deck has been shuffled, any manipulated cards are returned to their correct locations.
Care must be taken before shuffling to make sure that there are no legally known cards in the library. Check with both players to verify this, and check the graveyard, exile, and battlefield for deck manipulation cards, such as Brainstorm and cards with the scry mechanic.
| Penalty |
|---|
| Game Loss |
A player illegally puts one or more cards into his or her hand and, at the moment before he or she began the instruction or action that put a card into his or her hand, no other Game Play Error or Communication Policy Violation had been committed, and the error was not the result of resolving objects on the stack in an incorrect order. If the player received confirmation from his or her opponent before drawing the card (including confirming the number of cards when greater than one), the infraction is not Drawing Extra Cards.
Additionally, it is Drawing Extra Cards if a player has excess cards in their hand that he or she cannot account for.
A. A player draws 4 cards after casting Ancestral Recall.
B. A player draws a card forgetting that a Howling Mine is no longer on the battlefield.
C. A player draws for his turn, and then draws again for his turn a few moments later.
D. A player puts a creature with lethal damage on it into her hand instead of her graveyard.
Though this error is easy to commit accidentally, the potential for it to be overlooked by opponents mandates a higher level of penalty. If the identity of the card was known to all players before being placed into the hand, and the card can be returned to the correct zone with minimal disruption, do so and downgrade the penalty to a Warning.
| Penalty |
|---|
| Warning |
A player makes an error while drawing his or her opening hand, or the starting player does not skip the first draw step. If this error is discovered after the player committing it has taken another action in the game, the infraction is Drawing Extra Cards.
A. A player draws eight cards at the start of the game (instead of seven).
B. A player draws seven cards at the start of the game (instead of six) after taking a mulligan.
C. A player, going first, does not skip her first draw step.
D. A player chooses to not take a mulligan then takes a mulligan seeing his opponent choose to take a mulligan.
This is generally a minor infraction and deserves a fairly minor penalty. Removing one more cards than the player was supposed to have is quick, simple and avoids the possibility of a player gaining an advantage if he or she just wished to reshuffle his or her cards and draw a new hand.
If the player has drawn too few cards, instruct the player to draw up to the correct number. Otherwise, remove a number of cards, chosen randomly, equal to the excess plus one from the player's hand and shuffle them into his or her library. The player may continue to take further mulligans if he or she desires.
| Penalty |
|---|
| Warning |
This infraction covers the majority of game situations in which a player makes an error or fails to follow a game procedure correctly. It handles violations of the Comprehensive Rules that are not covered by the other Game Play Errors.
An error that an opponent can't verify the legality of should have its penalty upgraded. These errors involve misplaying hidden information, such as the morph ability or failing to reveal a card to prove that a choice made was a legal one. If the information needed to verify the legality was ever in a uniquely identifiable position (such as on top of the library or as the only card in hand) after the infraction was committed, do not upgrade the penalty and reveal the information if possible.
A. A player casts Wrath of God for 3W (actual cost 2WW).
B. A player does not attack with a creature that must attack each turn.
C. A player fails to put a creature with lethal damage into a graveyard and it is not noticed until several turns later.
D. A Voice of All is on the battlefield that should have had a color named for it.
E. A player casts Brainstorm and forgets to put two cards back on top of his library.
While Game Rule Violations can be attributed to one player, they usually occur publicly and both players are expected to be mindful of what is happening in the game. It is tempting to try and fix these errors, but it is important that they be handled consistently, regardless of their impact on the game.
If the error was discovered within a time frame in which a player could reasonably be expected to notice the error and the situation is simple enough to safely back up without too much disruption to the course of the game, the judge may get permission from the Head Judge to back up the game to the point of the error. Each action taken is undone until the game reaches the point immediately prior to the error. Cards incorrectly placed in hand are returned to the location in the zone from which they were moved (if the identity of the incorrectly drawn card is not known to all players, a random card is returned instead). Once the game is backed up, it continues from that point.
If not caught within a reasonable time frame, or backing up is impossible or sufficiently complex that it could affect the course of the game, the judge should leave the game state as it is after applying state-based actions and not attempt any form of partial fix' either reverse all actions or none, with the following exceptions:
- If a player made an illegal choice or failed to make a required choice for a permanent on the battlefield, that player makes a legal choice.
- If a player forgot to draw cards, discard cards, or return cards from their hand to another zone, that player does so.
- If an object changing zones is put into the wrong zone, the identity of the object was known to all players, and it is within a turn of the error, put the object in the correct zone.
If a player takes an action called for by an effect controlled by his or her opponent, but does it incorrectly, both players receive a Game Play Error Game Rule Violation. For example, if a player casts Path to Exile on an opponent's creature and the opponent puts the creature into the graveyard, both players receive this infraction.
| Penalty |
|---|
| Warning |
A player allows another player in the game to commit a Game Play Error involving an effect or action that he or she does not control, and has not pointed it out immediately. If a judge believes a player is intentionally not pointing out other players' illegal actions, either for his or her own advantage, or in the hope of bringing it up at a more strategically advantageous time, they should consider an Unsporting Conduct - Cheating infraction. Not reminding an opponent about his or her triggered abilities is never Failure to Maintain Game State or Cheating.
A. A player's opponent forgets to reveal the card searched for by Worldly Tutor. It is not noticed until the end of turn.
B. A player does not notice that his opponent has Armadillo Cloak on a creature with protection from green.
If an error is caught before a player could gain advantage, then the dangers of the ongoing game state becoming corrupted are much lower. If the error is allowed to persist, at least some of the fault lies with the opponent, who has also failed to notice the error. This penalty is not normally upgraded, as players will be reluctant to call a judge if they believe that they could receive a significant penalty as a result.
Tournament errors are violations of the Magic Tournament Rules. If the judge believes that the error was intentional, he or she should consider Unsporting Conduct - Cheating. (Previous versions of the MIPG made reference in each section about how to handle an intentional violation; with the exception of Slow Play, all intentional violations are now evaluated as potential Unsporting Conduct - Cheating.) A second or subsequent Warning for a Tournament Error offense in the same category is upgraded to a Game Loss.
| Penalty |
|---|
| Game Loss |
A player fails to comply with announced time limits.
A. A player arrives to her seat 5 minutes after the round begins.
B. A player hands in his decklist after the time designated by the judge or organizer.
C. A player loses his or her deck and must find replacement cards after the round has begun.
D. A player sits at an incorrect table and plays the wrong opponent.
Players are responsible for being on time and in the correct seat for their matches, and for completing registrations in a timely manner.
Give no penalty if the round started early and a player arrived at his or her seat before the originally announced start time. At Competitive events, the Tournament Organizer may announce that they are giving the players some additional time before a penalty is issued. Otherwise, the penalty is issued as soon as the round begins. A player not in his or her seat 10 minutes into the round will receive a Match Loss and be dropped from the tournament unless he or she reports to the Head Judge or Scorekeeper before the end of the round. The players are given a time extension corresponding to the length of the tardiness.
| Penalty |
|---|
| Match Loss |
A player, spectator, or other tournament participant does any of the following:
- Seeks play advice or hidden information about his or her match from others once he or she has sat for his or her match.
- Gives play advice or reveals hidden information to players who have sat for their match.
- During a game, refers to notes (other than Oracle- pages) made before the official beginning of the current match.
These criteria also apply to any deck construction and draft portions of a limited tournament. Additionally, no notes of any kind may be made during a draft. Some team formats have additional communication rules that may modify the definition of this infraction.
Notes made outside the current match may only be referenced between games, and must have been in the player's possession since the beginning of the match.
A. During a game, a player references play notes that were created before the tournament.
B. A spectator points out the correct play to a player who had not solicited the information.
Tournaments test the skill of a player, not his or her ability to follow external advice or directions. Any strategy advice, play advice, or construction advice from an external source is considered outside assistance.
Visual modifications to cards, including brief text, that provide minor strategic information or hints are acceptable and not considered notes. Detailed instructions or complex strategic advice may not be written on cards. The Head Judge is the final arbiter on what cards and notes are acceptable for a tournament. Spectators who commit this infraction may be asked to leave the venue if they are not enrolled in the tournament.
| Penalty |
|---|
| Warning |
A player takes longer than is reasonably required to complete game actions. If a judge believes a player is intentionally playing slowly to take advantage of a time limit, the infraction is Unsporting Conduct - Stalling.
It is also slow play if a player continues to execute a loop without being able to provide an exact number of iterations and the expected resulting game state.
A. A player repeatedly reviews his opponent's graveyard without any significant change in game state.
B. A player spends time writing down the contents of an opponent's deck while resolving Thought Hemorrhage.
C. A player takes an excessive amount of time to shuffle his deck between games.
D. A player gets up from his seat to look at standings or goes to the bathroom without permission of an official.
All players have the responsibility to play quickly enough so that their opponents are not at a significant disadvantage because of the time limit. A player may be playing slowly without realizing it. A comment of I need you to play faster is often appropriate and all that is needed. Further slow play should be penalized.
An additional turn is awarded for each player, to be applied if the match exceeds the time limit. If multiple players on each side are playing the same game (such as in Two-Headed Giant) only one additional turn is awarded per team. This turn extension occurs before any end-of-match procedure can begin and after any time extensions that may have been issued.
No additional turns are awarded if the match is already in additional turns, though the Warning still applies.
If Slow Play has significantly affected the result of the match, the Head Judge may upgrade the penalty.
| Penalty |
|---|
| Warning |
A player unintentionally fails to sufficiently shuffle his or her deck or portion of his or her deck before presenting it to his or her opponent. A deck is not shuffled if the judge believes a player could know the position or distribution of one or more cards in his or her deck.
A. A player forgets to shuffle his library after searching for a card.
B. A player searches for a card, then gives the deck a single riffle-shuffle before presenting the deck to her opponent.
C. A player fails to shuffle the portion of his deck revealed during the resolution of a cascade ability.
Players are expected to shuffle their deck thoroughly when it is required and are expected to have the skill and understanding of randomization to do so. However, as the opponent has the opportunity to shuffle after the player does, the potential for advantage is lowered if tournament policy is followed.
Any time cards in a deck could be seen, including during shuffling, it is no longer shuffled, even if the player only knows the position of one or two cards. Players are expected to take care in shuffling not to reveal cards to themselves, their teammates, or their opponents.
A player should shuffle his or her deck using multiple methods. Patterned pile-shuffling alone is not sufficient. Any manipulation, weaving, or stacking prior to randomization is acceptable, as long as the deck is thoroughly shuffled afterwards.
Shuffle the deck thoroughly, taking into account any parts of the deck ordered through game play.
| Penalty |
|---|
| Game Loss |
A player commits one or more of the following errors involving deck contents or registration:
- The deck or decklist contains an illegal number of cards for the format.
- The deck or decklist contains one or more cards that are illegal for the format.
- A card listed on a decklist is not identified by its full name, and could be interpreted as more than one card.
Truncated names of storyline characters (legendary permanents and Planeswalkers) are acceptable as long as they are the only representation of that character in the format and are treated as referring to that card, even if other cards begin with the same name.
- The contents of the presented deck and sideboard do not match the decklist registered.
Sideboards are considered to be a part of the deck for the purpose of this infraction. If sideboard cards are missing, make a note of this, but issue no penalty.
This infraction does not cover errors in registration made by another participant prior to a sealed pool swap, which should be corrected at the discretion of the judge.
A. A player has 59 cards in her deck, but 60 listed on the decklist.
B. A player in a Legacy tournament lists Mana Drain (a banned card) on his decklist.
C. A player has a 56-card decklist. His actual deck contains 60 cards, with four Psychatogs not listed.
D. A player has a Pacifism in his deck from a previous opponent.
E. A player lists Ajani' in a format with both Ajani Goldmane and Ajani Vengeant F. A player looking at her sideboard during a game fails to keep it clearly separate from her deck.
Decklists are used to ensure that decks are not altered in the course of a tournament. Judges and other tournament officials should be vigilant about reminding players before the tournament begins of the importance of submitting a legal decklist, and playing with a legal deck.
Penalties for errors discovered during decklist checks are issued at the start of the next round to minimize the disruption to the game currently being played and provide consistency in case some players have finished playing their match before the penalty can be administered.
Ambiguous or unclear names on a decklist may allow a player to manipulate the contents of his or her deck up until the point at which they are discovered. The Head Judge may choose to not issue this penalty if they believe that what the player wrote on their decklist is obvious and unambiguous, even if it is not the full, accurate name of the card. This should be determined solely by what is written on the decklist, and not based on intent or the actual contents of the deck; needing to check the deck for confirmation is a sign that the entry is not obvious.
If the sideboard is not kept sufficiently separate from the deck during play, it becomes impossible to determine the legality of the deck. Additionally, if there are extra cards stored with the sideboard that could conceivably be played in the player's deck, they will be considered a part of the sideboard unless they are:
- Promotional cards that have been handed out as part of the tournament.
- Double-faced cards represented by checklist cards in the deck.
- Double-faced cards being used to represent the night' side of cards in the deck.
These cards must not be sleeved in the same way as cards in the main deck and/or sideboard.
Remove any cards from the deck that are illegal for the format or violate the maximum number allowed, fix any failures to de-sideboard, restore any missing cards if they (or identical replacements) can be located, then alter the decklist to reflect the remaining deck. If the remaining deck has too few cards, add basic lands of the player's choice to reach the minimum number. If the deck and decklist both violate a maximum cards restriction (usually too many cards in a sideboard or more than four of a card), remove cards starting from the bottom of the appropriate section of the list.
If both players receive Game Losses for Deck/Decklist Problem at the same time (commonly, when a card from one player's deck is in his or her opponent's deck), those Game Losses offset and do not count towards the final match score.
If a player, before taking any game actions, discovers a deck problem and calls a judge at that point, the Head Judge may downgrade the penalty, fix the deck, and allow the player to redraw the hand with one fewer card. The player may continue to take further mulligans if he or she desires.
| Penalty |
|---|
| Warning |
A player commits a technical error during a draft or sealed deck build.
A. A player passes a booster to his left when it is supposed to go to his right.
B. A player exceeds the amount of time allotted for a pick.
C. A player starts to put a card on top of his pile, then pulls it back.
D. A player does not note one of the cards she was registering before the deck swap .
Errors in Limited procedures are disruptive and may become more so if they are not caught quickly. Announcements prior to the draft or the specific tournament rules for the format may specify additional penalties for Limited Procedure Violations.
| Penalty |
|---|
| Definition |
Warning
A player violates the Player Communication policy detailed in section 4.1 of the Magic Tournament Rules. This infraction only applies to violations of that policy and not to general communication confusion.
Example
A. A player is asked how many cards he has in his hand and answers Three. A few moments later, he realizes that he has four.
B. A player claims she hasn't played her land for the turn, but it is determined that she had and forgot.
Clear communication is essential when playing Magic. Though many offenses will be intentional, it is possible for a player to make a genuine mistake and these should not be penalized harshly. Refer to section 4.1 of the Magic Tournament Rules for a full explanation of the policy. It can be summarized as:
- Players must answer all questions asked of them by a judge completely and honestly, regardless of the type of information requested. Players may request to do so away from the match.
- Players may not represent derived or free information incorrectly.
- Players must answer completely and honestly any specific questions pertaining to free information.
If the situation is simple enough to safely back up without too much disruption to the course of the game, the judge may get permission from the Head Judge to back up the game to the point of the incorrect information. Each action taken is undone until the game reaches the point immediately prior to the error. Cards incorrectly placed in hand are returned to the location in the zone from which they were moved (if the identity of the incorrectly drawn card is not known to all players, a random card is returned instead). Once the game is backed up, it continues from that point.
| Penalty |
|---|
| Warning |
A player's cards are marked or oriented in a way that could potentially give an advantage to that player.
A. A player has small marks on a few of his sleeves. The markings are on a Mountain, a Loxodon Hierarch, and a Lightning Helix.
B. A player without sleeves has several foil cards that stand out significantly from the rest of her deck.
Sleeves and cards often become worn over the course of a tournament, and, as long as the player is not attempting to take advantage of this, addressing the situation is sufficient in most cases. Note that almost all sleeves can be considered marked in some way; judges should keep this in mind when determining penalties. In cases of marked cards, educating players to shuffle their cards and sleeves before sleeving the cards is very important.
The player needs to replace the card(s) or sleeve(s) with an unmarked version or, if no sleeves are being used, use sleeves that conceal the markings. If the cards themselves have become marked through play in the tournament, the Head Judge may decide to issue a proxy. If the player is unable to find replacement cards, he or she may replace those cards with basic lands for the remainder of the tournament. If he or she chooses to do so, the decklist is changed and cannot be reverted, even if replacements are found.
The Head Judge has the option to upgrade this penalty to a Game Loss if he or she believes that a player noticing the pattern of markings would clearly compromise the integrity of the game.
Unsporting conduct is disruptive behavior that may affect the safety, competitiveness, enjoyment, or integrity of an event in a significantly negative fashion.
Being enrolled in the tournament is not a requirement to receive an Unsporting Conduct penalty. Although these guidelines refer to players, other people in the venue, such as spectators, staff, or judges are held to the same standard of behavior.
Unsporting behavior is not the same as a lack of sporting behavior. There is a wide middle ground of competitive
behavior that is certainly neither nice nor sporting but still doesn't qualify as unsporting. The Head Judge is the final arbiter on what constitutes unsporting conduct.
Judges should inform the player how his or her conduct is disruptive. The player is expected to correct the situation and behavior immediately. However, while making sure that the player understands the severity of his or her actions is important, judges should focus first on calming a situation, and deal with infractions and penalties afterwards.
| Penalty |
|---|
| Warning |
A player takes action that is disruptive to the tournament or its participants. It may affect the comfort level of those around the individual, but determining whether this is the case is not required.
A. A player uses excessively vulgar and profane language.
B. A player inappropriately demands to a judge that her opponent receive a penalty.
C. A player appeals to the Head Judge before waiting for the floor judge to issue a ruling.
D. A player throws his deck on the ground after losing a game.
E. A player leaves excessive trash in the play area after leaving the table.
F. A player fails to follow the request of a tournament official, such as being asked to leave the play area.
All participants should expect a safe and enjoyable environment at a tournament, and a participant needs to be made aware if his or her behavior is unacceptable so that this environment may be maintained Additional Remedy
The player must correct the problem immediately. Subsequent Unsporting Conduct - Minor infractions, even for different offenses, will result in a Game Loss. If a Game Loss is issued for repeated infractions, and it occurs at the end of a game, it is acceptable for the judge to apply the penalty to the next game instead.
| Penalty |
|---|
| Match Loss |
A player takes action towards one or more individuals that could reasonably be expected to create a feeling of being harassed, threatened, bullied, or stalked. This may include insults based on race, color, religion, national origin, age, gender, disability, or sexual orientation. Threats of physical violence should be treated as Unsporting Conduct
Aggressive Behavior.
It is possible for an offender to commit this infraction without intending malice or harm to the subject of the harassment.
A. A player uses a racial slur against his opponent.
B. A player takes inappropriate photos of another player without express permission.
C. A player asks a spectator for a date, is denied, and continues to press the issue.
D. A player purposefully obstructs another player with the intent of inducing physical contact.
E. A spectator uses social media to bully another player.
A safe environment is a basic expectation of any tournament attendee. Harassment undermines the safety and integrity of a tournament. Players who purposefully create harmful or unwelcoming situations in an event are expected to immediately correct the behavior and demonstrate remorse or be removed.
Because of the confrontational nature of this infraction, judges need to end any match in progress and separate the players. Care should be taken not to escalate the situation if at all possible. The offender will be removed from the area to receive the penalty, and education about why the behavior is unacceptable regardless of excuse. They may need a few moments to cool down afterwards. Apologizing is encouraged, but the desire of the other individuals to not interact with their harasser must be respected.
Officials must investigate these matters as soon as they are brought to their attention. If they determine that the infraction does not meet the criteria for Unsporting Conduct Major, it is still recommended that the players be talked to to avoid future misunderstandings.
The player must correct the behavior immediately. If the offense was committed with malicious intent, the player displays no remorse, or the offense is repeated at a later time, the penalty is upgraded to Disqualification and removal from the venue.
If the offense occurs at the end of a match, it is acceptable for the judge to apply the penalty to the next match instead.
| Penalty |
|---|
| Disqualification |
A player uses or offers to use a method that is not part of the current game (including actions not legal in the current game) to determine the outcome of a game or match.
A.
B. A player offers to flip a coin to determine the winner of a match.
C. Two players arm wrestle to determine the winner of the match.
D. Two players play rock-paper-scissors to decide if they should play the match or draw.
E. Two players compare the converted mana costs of the top cards of their libraries to determine the winner of a game at the end of extra turns.
F. Two players reveal cards from the top of their libraries to see who would win after extra turns.
Using an outside-the-game method to determine a winner compromises the integrity of the tournament.
Matches that result in a draw due to time are expected to be reported as such and are not excluded from this penalty if the players use an illegal method to determine the outcome.
In most cases this penalty will be issued to both players, unless the other player calls over a judge as soon as an inappropriate suggestion to determine the winner is made.
| Penalty |
|---|
| Disqualification |
A player offers an incentive to entice an opponent into conceding, drawing, or changing the results of a match, or accepts such an offer. Refer to the Magic Tournament Rules for a more detailed description of what constitutes bribery.
Wagering occurs when a player or spectator at a tournament places or offers to place a bet on the outcome of a tournament, match or any portion of a tournament or match. The wager does not need to be monetary, nor is it relevant if a player is not betting on his or her own match.
A. A player in a Swiss round offers his opponent $100 to concede the match.
B. A player offers his opponent a card in exchange for a draw.
C. A player asks for a concession in exchange for a prize split.
D. Two players agree that the winner of the match will be able to choose a rare card out of the other person's deck after the match.
E. Two spectators place a bet on the number of games that will be needed to decide a match.
Bribery and wagering disrupt the integrity of the tournament and are strictly forbidden.
| Penalty |
|---|
| Disqualification |
A player acts in a threatening way towards others or their property.
A. A player threatens to hit another player who won't concede to him.
B. A player pulls a chair out from under another player, causing her to fall to the ground.
C. A player makes threats against a judge after receiving a ruling.
D. A player tears up a card belonging to another player.
E. A player intentionally turns over a table.
The safety of all people at a tournament is of paramount importance. There will be no tolerance of physical abuse or intimidation.
The offender should be asked to leave the venue by the organizer.
| Penalty |
|---|
| Disqualification |
A player steals material from the event, such as cards or tournament equipment.
A. A player in a limited tournament pockets a foil rare that he opened in the sealed pool he is registering.
B. A player steals cards from the sideboard of his opponent.
C. A player steals the table number from a table.
D. A player realizes she has a previous opponent's card, but she hides it instead of telling a tournament official.
Players enter a tournament expecting that their materials will be protected. This does not absolve the players from their responsibility to keep an eye on their possessions, but they should expect to be able to retain the product they began with or were given for the tournament. Other instances of theft not involving tournament materials are the responsibility of the Tournament Organizer, though judges are encouraged to help in any way possible.
The offender should be asked to leave the venue by the organizer.
A player intentionally plays slowly in order to take advantage of the time limit. If the slow play is not intentional, please refer to Tournament Error - Slow Play instead.
A. A player has two lands in his hand, no options available to significantly affect the game, and spends excessive time thinking about what to do to eat up time on the clock.
B. A player is ahead in games and significantly slows down his pace of play so the opponent has little chance to catch up.
C. A player playing slowly appeals a warning in an attempt to gain advantage by having more time to make a decision.
D. A player intentionally mulligans slowly before the third game in an attempt to make it harder for his opponent to win in time.
E. A player losing a game starts slowing down the pace of play in an attempt to run out the clock.
| Penalty |
|---|
| Disqualification |
A person breaks a rule defined by the tournament documents, lies to a tournament official, or notices an offense committed in his or her (or a teammate's) match and does not call attention to it.
Additionally, the offense must meet the following criteria for it to be considered Cheating:
- The player must be attempting to gain advantage from his or her action.
- The player must be aware that he or she is doing something illegal.
If all criteria are not met, the offense is not Cheating and is handled by a different infraction. Cheating will often appear on the surface as a Game Play Error or Tournament Error, and must be investigated by the judge to make a determination of intent and awareness.
A. A player alters the results of a match after the match is over.
B. A player lies to a tournament official about what happened in a game to make his case stronger.
C. A player allows her opponent to put a creature into the graveyard even though the creature has not been dealt lethal damage.
D. A player notices that his opponent resolved only half of the triggered ability of Sword of Feast and Famine and decides not to call attention to the error.
E. A player peeks at another player's picks during the draft.
F. A player adds cards to his Sealed Deck pool.
G. A player realizes he has accidentally drawn an extra card, then fails to call a judge in order to avoid a penalty.
APPENDIX A - PENALTY QUICK REFERENCE
| Infraction | Penalty |
|---|---|
| Game Play Errors | |
| Missed Trigger | Warning* |
| Looking at Extra Cards | Warning |
| Drawing Extra Cards | Game Loss |
| Improper Drawing at Start of Game | Warning |
| Game Rule Violation | Warning |
| Failure to Maintain Game State | Warning |
| Tournament Errors | |
| Tardiness | Game Loss |
| Outside Assistance | Match Loss |
| Slow Play | Warning |
| Insufficient Shuffling | Warning |
| Deck/Decklist Problem | Game Loss |
| Limited Procedure Violation | Warning |
| Communication Policy Violation | Warning |
| Marked Cards | Warning |
| Unsporting Conduct | |
| Unsporting Conduct - Minor | Warning |
| Unsporting Conduct - Major | Match Loss |
| Improperly Determining a Winner | Disqualification |
| Bribery and Wagering | Disqualification |
| Aggressive Behavior | Disqualification |
| Theft of Tournament Material | Disqualification |
| Stalling | Disqualification |
| Cheating | Disqualification |
APPENDIX B - RULES ENFORCEMENT LEVELS OF PREMIER PROGRAMS
| Event | REL |
|---|---|
| Friday Night Magic | Regular |
| Game Days | Regular |
| Grand Prix Day 1 | Competitive |
| Grand Prix Day 2 | Professional |
| Grand Prix Trial | Competitive |
| (Format-Specific) Championship | Competitive |
| Prerelease | Regular |
| Pro Tour | Professional |
| Pro Tour Qualifier | Competitive |
| World Championship | Professional |
| World Magic Cup | Professional |
| World Magic Cup Qualifiers | Competitive |
| World Magic Cup Qualifier Trials | Competitive |
APPENDIX C - CHANGES FROM PREVIOUS VERSIONS
July 18, 2014
Introduction: Removed unnecessary explanation of penalty subclassing.
1.2: Grammatical tweaks.
1.3: Grammatical tweaks. Fixed an erroneous section reference.
2.4: Simplifying the infraction for clarity. Always shuffle the cards away when removed from hand.
2.5: Changing the definition for when both players get a GRV.
3.5: Reworded the obviousness clause to make the criteria for obviousness clearer.
3.5: Bringing the pre-start discovery in line with Improper Drawing at Start of Game.
4.2: Major rewrite. Defines UC Major in the context of harassment. Now a Match Loss.
4.4: Offering to make a bet is sufficient for the infraction.
Appendix A: Chart updated for UC Major. Fixed the error on Deck/Decklist Problems.
Appendix B: World Magic Cup Qualifier trials added to chart.
April 18, 2014
General: Tightened up some grammar, including clarifying a lot of ambiguous should's.
2: Minor grammatical tweak to make the Warning upgrade path clearer.
2.4: Incorporating mulligan procedure and other hand-drawing errors.
2.5: Minor grammatical tweak to make the failure-to-reveal clause a little clearer.
3.5: Removed (Replaced by Deck/Decklist Problem). Most of it rolls into Limited Procedure Violation and Unsporting Conduct - Minor.
3.5: Now Deck/Decklist Problem. Give the Head Judge more flexibility in downgrading obvious clerical errors.
3.6: Renamed. Sealed deck registration errors are now handled here.
3.6: Reworked paragraph on issuing decklist-error penalties to be clearer with new decklist-handling procedures.
4.1: Failing to follow the request of a tournament official moved from UC Major to UC Minor.
4.3: Clarifying that using game information to which the players do not have access is not allowed.
Appendix A: Chart updated to reflect updates.
February 7, 2014
3.9: Clarifiying that we never give penalties for missing sideboard cards.
3.9: When both players get a Deck/Decklist Game Loss at the same time, they don't count towards the match.
4.7: Adjusted Example D to reflect no explicit time between games.
4.8: Removed Example G which outlawed 3-pile shuffling to undo a suspected manaweave.
September 16, 2013
2.1: Missed delayed triggers wait until a player would get priority to resolve.
2.3: Fix a stray reference to a Player Communication Violation.
3.3: Changing extra' to additional' to avoid confusion with abilities that grant extra turns.
All trademarks are property of Wizards of the Coast LLC in the U.S.A. and other countries. 2014 Wizards.
Converted by: Ryan Stapleton - Email: ryan@bluewizard.net


Supervisor : Amarjot Singh Jan ’17 - present
• Developed a hybrid neural network to identify genus of hominid skulls. The network consist pre-trained layers trained to learn
edges and middle layers consist of unsupervised RBMs.
• Dataset consists of images of hominid’s skull of eleven different hominid species belonging to threedifferent genera.
• A deep learning framework first detect 28 key-points on the skull which are then utilized to perform identification.
Supervisor : Dr. L Anjaneyelu Sep ’14 - Dec ’15
• Control of home appliances, doors and wheelchair through Arduino microcontroller, Bluetooth mod-ule, servo and relays.
• Aimed at reducing dependency of the target elderly group in their day to day activities.
Supervisor : Dr. J. Ravi Kumar Oct ’15 - Dec ’15
• A weighing scale was designed using Strain Gauge attached on a metal scale acting as a cantileverbeam.
• The Strain Gauge detects micro strain induced by the weight on metal scale and a user interface designed using Arduino shows the weight of the object.
• The device could measure upto 100 grams of weight with a precision of 1 milligram,


--- layout: default title: "Beesure Level Sensing System" date: May 21, 2017 desc: Automated Level Sensing System keywords: BeeSure, Level Sensing slug: "jekyll_metas" ---
The BeeSure Level Sensing System provides peace of mind that your sample handling automation delivers what you require it to do. This quality control tool measures the change in level within a sample vessel (microplate well, micro-tube, vial, reagent container, test tube) on the addition or subtraction of substance within the sample vessel. The substance can be either liquid or solid.
Using a different sensing technology, BeeSure adds to life science lab automation the same function that vision QC systems provide for large scale industrial manufacturing processes. Proactively detect a faulty dispensing system or blocked tip during pipetting operations. Verify that all the wells in a microplate were as they should have been both before and after the pipetting task in your workflow. Ensure that you have enough substance in a reagent supply vial or reservoir to complete a run with your automation system. Continuously monitor your processes to validate and document their execution before wasting high value samples and reagents because you were unaware of a system failure.
BeeSure is easy and intuitive to use, only requiring one standard electrical output and a very small space on your automation platform, sample deck or lab bench. Place multiple BeeSure units at different nodes in your work flow to increase throughput and efficiency.
| BeeSure 96/384 | |
| Height (inches) | 10.9 |
| Width (inches) | 8.9 |
| Depth (inches) | 19.5 |
| Weight (pounds) | 36.9 |
| Plate indexing | Yes |
| Loading | Portrait and landscape |
| 96-well formats | Most |
| 384-well formats | Most |
| Maximum vessel height (mm) | 51 |
| Communications | USB 2.0 |
| Electrical | 100-240 VAC, 50/60 Hz, 2 A |


Chapter IX (Tiles)
Prev: Gates Next: Type Inference
"Not to get knowledge, but to save yourself from having ignorance foisted upon you."
(Carlyle)
Tiles
We actually told a little white lie when we said that a Hoon file
turns into a twig. Well, sort of. It does turn into a twig.
But parts of it often start out as something else - a tile
.
What is a tile? First, concretely, a tile is an AST subtree
that's reduced statically into a twig. It can be reduced in four
ways - cryptically called bunt
, clam
, fish
, and whip
. A
tile is always some leg of a twig, and that twig defines how the
tile is reduced. (Don't worry, we'll see plenty of examples.)
Abstractly, though, when we see tiles in Hoon peer at them through our rapidly fading 20th-century programming spectacles, what we see looks a heck of a lot like a type declaration.
But no. Just as a gate is not a lambda, a tile is not a type.
And worse - we've already used the word type
for something
else. And worst of all - each tile corresponds to a well-defined
type, called its icon. But tile and icon are not in any way
the same noun. You can see the potential confusion...
A tile is actually two steps away from being a type, in the
strict sense of ++type
. The tile is converted statically
into a twig, which in turn may (depending on the conversion)
produce the icon, test for it, etc. And always, the icon is
some function of the tile and its subject.
Nonetheless, even the most experienced Hoon programmers can be heard saying "type" when they mean "tile." Apparently you can take the boy out of the '90s but not the '90s out of the boy. In fact, it's tempting to suggest that if there's one problem with 20th-century programming in general, it's that it doesn't know the difference between a tile and its icon.
Imagine, for instance, a C++ in which the class definition and the constructor are the same thing. And the latter can also validate untrusted data off the Internets, acting much as for instance an XML DTD. Yo, why would you have a type system and not be able to do this?
Reductions
Broadly speaking, a tile is a convenient way of making a well-typed noun.
It's important to note that tiles are really pure sugar. It is possible to build a language like Hoon, but with only twigs and no tiles. However, certain common tasks in this language will always be unnecessarily cumbersome.
A tile is not a type declaration, but it has roughly the same job to do - and this is by no means a trivial job. So tiles aren't trivial. Sorry, we wish they were. (Actually we wish they didn't exist at all, but couldn't figure out how to swing it.)
We use tiles by converting them to twigs, which produce or
identify nouns of a type easily predictable from the tile.
Again, there are four such reductions: bunt
, clam
, fish
,
and whip
.
Bunting
Bunting a tile - if sec
is a tile, ~(bunt al sec)
produces
its bunt - makes a twig that creates a blank default example
of the tile's icon.
Bunting is actually the most common use of a tile. Consider the gates we've just been defining - how do we build a gate? With
++ deq
=+ x=0
|.
=+ y=0
|-
?: =(x +(y))
y
$(y +(y))
The value x=0
is a useless default. It's in our gate only
because the gate is built first, then modified with the real
sample. Accordingly, in practice to build a gate we use the
synthetic hoon |=
(bartis
, %brts
), which is defined as
++ twig $% [%brts p=tile q=hoon]
==
and
++ open
^- twig
?- gen
[%bctr *] [%ktsg ~(bunt al p.gen)]
[%brcb *] [%tsls [%bctr p.gen] [%brcn q.gen]]
[%brts *] [%brcb p.gen (~(put by *(map term foot)) %$ [%ash q.gen])]
==
(The only hoon we haven't met here is ^~
(ketsig
, %ktsg
),
which tells the compiler to compute a constant expression at
compile time. Obviously, the default sample in a gate should
under almost every circumstance be a constant.)
With |=
we have:
++ deq
|= x=@
=+ y=0
|-
?: =(x +(y))
y
$(y +(y))
or if we prefer
++ deq |=(x=@ =+(y=0 |-(?:(=(x +(y)) y $(y +(y))))))
What is x=@
? A tile. And the tile in |=
is always bunted to
create the default sample.
Furthermore, it's wrong to say that the default sample is useless. It generates a corresponding default product. It is perfectly legitimate to simply apply a gate, even a previously unviolated gate, without changing the sample at all.
For example, one type of tile is simply a gate. When we bunt such a gate, we have no choice but to produce the default product. Thus any gate arm that wants to be used as a tile has the responsibility to produce a useful default product.
Clamming
The clam
reduction generates a gate which accepts an arbitrary
noun and produces a member of the tile's icon. Ie, clam
generates a validator function for the icon. Perhaps you
can see how this might be useful, at least, on the Internets.
Moreover, a clam for any tile, if passed a member of the type, is
guaranteed to produce its sample. If passed a noun outside
the type, it will normalize and/or default. It won't crash -
except for the custom cases of %herb
and %weed
.
Fishing
The fish
reduction lets us test if a noun matches the tile,
with the ?=
(wuttis
, %wtts
) natural hoon:
++ twig $% [%wtts p=tile q=wing]
==
Note that ?=
only works on a wing and more specifically leg -
that is, it has to be testing a fragment of the subject.
Moreover - we'll discuss this in more detail when we get to type
inference - when we use ?=
in a ?:
test, the compiler sees
the test and uses it to refine the subject type on either side
of the branch. Hence:
?: ?=(@ a) :: test if a is an atom
XX :: code assuming a is an atom
XX :: code assuming a is a cell
Some languages call fishing "pattern matching."
Whipping
Besides fishing on a leg, we can normalize any leg to any tile
using the $@
(bucpat
, %bcpt
) hoon - aka, whip
. Not only
is whip
the same thing as clam
, it's what clam
uses
internally. All clam
does is make a gate whose sample, an
arbitrary noun +<
(glus
, .6
), it whips into its tile.
Tile syntax and abuse
A wide variety of twigs contain tiles, but the basic tiling twigs are worth listing in one place, along with their regular and irregular syntax:
++ twig $% [%bccb p=tile]
[%bccm p=tile]
[%bcpt p=wing q=tile]
[%bctr p=tile]
[%wtts p=tile q=wing]
==
$_
(buccab
, %bccb
) bunts tile p
.
$*
(buctar
, %bctr
) bunts tile p
and folds it statically
to a constant with %ktsg
.
$,
(buccom
, %bccm
) makes a clam for tile p
.
$@
(bucpat
, %bcpt
) whips the leg at wing p
, filtering it
with tile q
.
?=
(wuttis
, %wtts
) fishes the leg at wing q
for tile p
,
producing & (yes) if and only if leg q
is in tile p
.
(%wtts
looks different because it produces a boolean, not a
noun in the tile.)
One thing we'll see quite frequently is the irregular wide forms
of these hoons (in fact, the regular forms of many are rare).
Consider the base tiles *
and @
- ie, noun and atom. (And
note that tiles, too, have tall, wide, and irregular wide forms.)
The _
prefix before a wide tile is %bccb
:
~zod/try=> _*
0
~zod/try=> :type; _*
0
*
The *
prefix on a tile is %bctr
, the same thing folded to a
constant (obviously a no-op here)
~zod/try=> **
0
~zod/try=> :type; **
0
*
The ,
prefix on a tile is %bccm
, ie, generate a function
producing the tile. Let's save one of our nouns and make it an
atom, using a clam. Let's try the clam on different things:
~zod/try=> =foo _*
~zod/try=> (,@ foo)
0
~zod/try=> :type; (,@ foo)
0
@
~zod/try=> :type; (,@ [5 5])
0
@
~zod/try=> :type; (,@ %foo)
7.303.014
@
Alternately, we could check if our *
is a @
with ?=
:
~zod/try=> ?=(@ foo)
%.y
Why is all this true? Because the bunt of *
is the atom 0
with the type %noun
.
Finally, if a tile appears where we expect a twig, the normal
tile-to-twig conversion is always %bccm
. Ie, using a tile as a
twig generates a gate producing the icon.
The tiles
With a good general understanding of what a tile is for - we'll go back into the tiles we actually have:
++ tile
$& [p=tile q=tile] :: ordered pair
$% [%axil p=base] :: base type
[%bark p=term q=tile] :: name
[%bush p=tile q=tile] :: pair/tag
[%fern p=[i=tile t=(list tile)]] :: plain selection
[%herb p=twig] :: function
[%kelp p=[i=line t=(list line)]] :: tag selection
[%leaf p=term q=@] :: constant atom
[%reed p=tile q=tile] :: atom/cell
[%weed p=twig] :: example
== ::
++ line ,[p=[%leaf p=odor q=@] q=tile]
++ base ?([%atom p=odor] %noun %cell %bean %null)
Observe that the tile stems are no longer rune digraphs. Rather, a gardening metaphor appears to pertain. Let's work through these one by one, showing both (regular) syntax and semantics.
[%axil p=base]
An %axil
is a simple built-in mechanism for a few basic
icons: an atom of any odor (@odor
, or just @
for the
odorless base atom); a noun (*
); a cell of nouns (^
); a
loobean ?
; and null ~
.
[%leaf p=term q=@]
A %leaf
is an atomic constant of value q
and odor p
.
Obviously its icon is a %cube
.
The syntax for a leaf is the same as the twig syntax, except that
%
is never required to generate a cube. For instance, as a
twig, 7
has a type of [%atom %ud]; %7
has a type of
[%cube 7 [%atom %ud]]
. But the icon of the leaf 7
is,
again, [%cube 7 [%atom %ud]]
.
[p=tile q=tile]
Tiles autocons, just like twigs - a cell of tiles is a tile of a cell. But we shouldn't skip the differences too lightly.
A cell of twigs is also a twig of a cell. But in the cell of twigs, the subject of either leg is the original subject. Whereas when applying a tile in a whip or clam, the subject is split in half for equally obvious reasons.
(Otherwise, how would (,[@ @] [4 5])
be [4 5]
? Clearly, this
should be the same as [(,@ 4) (,@ 5)]
. Clearly, it should not
be the same as [(,@ [4 5]) (,@ [4 5])]
- which would produce
merely [0 0]
.)
The irregular wide syntax for tile autocons is the same as the
syntax for twig autocons - eg, [@ @]
, a cell of atoms. But
there is also a regular tall/wide tuple syntax, with $:
(buccol
, %bccl
). Thus instead of [@ @]
we could write:
$: @
@
==
[%bark p=term q=tile]
Wrap a name round a tile. a=*
parses as [%bark %a %noun]
.
This is another case where the tile syntax matches the twig
syntax, but only in the irregular form. The twig equivalent of
%bark
is of course ^=
(kettis
, %ktts
). But the tile is
$=
(buctis
):
$= a
*
Obviously a silly syntactic arrangement. But you can need it if
q
is really big.
[%reed p=tile q=tile]
A %reed
is a tile whose icon contains two kinds of nouns: atoms
of tile p
and cells of tile q
.
There is no irregular form of %reed
. The regular form is:
$| ~
[@ @]
==
or in wide mode, of course, $|(~ [@ @])
.
[%kelp p=[i=line t=(list line)]]
A kelp
is the workhorse of tiles - it provides the most common
data structure in any language, the discriminated union.
In Hoon, the head (which must be a leaf
) is called the stem
.
The tail (which can be anything) is the bulb
. Cases of a kelp
are known inevitably as fronds
.
(Yes. We're aware that "kelp" is not properly a singular noun. In Hoon - it is properly a singular noun. And that's that. And oddly, it's not that hard to run out of four-letter plants.)
[%bush p=tile q=tile]
A %bush
is a tile in which there are two kinds of nouns: cells
whose head is a cell (tile p
) and cells whose head is an atom
(tile q
). Its default value is the value of q
.
We don't have to look very far to find a bush - ++tile
is one,
as is ++twig
and ++nock
. The rune is $&
(bucpam
). See
++tile
above - p
is [p=tile q=tile]
, q
is the $%
.
There is no irregular form.
What's the use of a bush? Often in a variety of data structures we have something like autocons, in which forming a cell of two instances has an obvious default semantics.
Sure, we could attach these semantics to an atom, and just use a
%kelp
. In twigs, tiles, or nock formulas, we could have an
explicit cons stem of some sort. But it would be a bulky and
annoying pain in the butt as compared to autocons.
[%fern p=[i=tile t=(list tile)]]
A fern
is a non-empty list of cases; its icon is naturally
a %fork
. The programmer is responsible for ensuring that the
cases are actually orthogonal (unlike with the structured forks,
%bush
, %kelp
and %reed
). A good general practice is to use
ferns only with leaves (see below).
For example, a fern that could be %foo
or %bar
has the
irregular form ?(%foo %bar)
, or the regular form
$? %foo
%bar
==
The default value is the first - in this case, %foo
.
But wait. Why do we need these other selection tiles, %bush
and
%reed
and %kelp
, if we have %fern
?
The answer is that tiles aren't magic. They are really just ways
of generating specific twigs that do useful things with nouns.
Suppose, for instance, you use a %fern
as a %kelp
. You can
do this - but we may well generate more effective validation code
for a %kelp
, whose structure we understand how to search for.
And even if were this not the case, anyone creating complex tiles and icons should use one of these standard structures - simply because it is never really worth varying from this set of patterns, even if small structural efficiencies can be extracted. Therefore, it's worth telling both the compiler and the reader exactly what the programmer is trying to do in each case.
[%herb p=twig]
You can write your own tile which is just a gate, accepting a
sample of *
and normalizing it as you choose. If you use a
twig as a tile, it's treated as an herb.
For example, when we define a gate like ++base
, as defined
above (remember that when we use a tile as a twig, we get the
clam, ie, the normalizing gate) base
is just an arm which
produces a gate. Nothing has any idea that this gate is built
from a tile of its own.
So when we parse [p=base q=base]
as a tile, the parser builds
the noun:
[[%bark %p %herb %cnzy %base] [%bark %q %herb %cnzy %base]]
In other words, base
in p=base
is actually a twig, but this
twig happens to produce a normalizing gate generated by clamming
a tile. In time this will come to seem totally straightforward,
but don't be surprised if it confuses you now.
The important thing to remember about %herb
is that the actual
twig we provide will be applied when we whip or clam. Hence,
arbitrary normalization and/or verification procedures may be
part of the herbaceous custom tile.
[%weed p=twig]
%weed
is the lamest kind of tile - tile by example. A %weed
is defined by its example twig p
, which produces the icon.
One limitation is obvious - it is essentially useless to whip or
clam for a %weed
. Whipping or clamming on a %weed
simply
ignores the sample and reproduces the example - as does bunting,
of course. However, %weed
remains quite useful.
The irregular syntax for a %weed
is a _
prefix - for example,
to use a twig foo
as a %weed
, we write _foo
. The regular
form is $_
(buccab
):
$_ foo


8.7. Pattern's split Method, with Two Arguments
String[] split(CharSequence text, int limit)
This version of the split method provides some control over how many times the pattern is applied, and what is done with any trailing empty elements that might be produced. It is also available via the String class split method.
The limit argument takes on different meanings depending on whether it's less than zero, zero, or greater than zero.
8.7.1.
<IP_ADDRESS>. Split with a limit less than zero
Any limit less than zero means to keep trailing empty elements in the array. Thus,
String[] result = Pattern.compile(":").split(":xx:", -1);
returns an array of three strings (an empty string, 'xx', and another empty string).
<IP_ADDRESS>. Split with a limit of zero
An explicit limit of zero is the same as if there were no limit given, i.e., trailing empty elements are suppressed.
<IP_ADDRESS>. Split with a limit greater than zero
With a limit greater than zero, split returns an array of, at most, limit elements. This means that the regex is applied at most limit - 1 times. (A limit of three, for example, requests three strings separated by two matches.)
After having matched limit - 1 times, checking stops and the remainder of the string (after the final match) is returned as the limitth and final string in the array.
For example, if you have a string with:
Friedl,Jeffrey,Eric Francis,America,Ohio,Rootstown
and want to isolate only the three name components, you'd split the string into four parts (the three name components, and one final "everything else" string):
String[] NameInfo = Pattern.compile(",").split(Text, 4);
// NameInfo[0] is the family name.
// NameInfo[1] is the given name.
// NameInfo[2] is the middle name (or in my case, middle names).
// NameInfo[3] is everything else, which we don't need, so we'll just ignore it.
The reason to limit split in this way is enhanced efficiency why bother going through the work of finding the rest of the matches, creating new strings, making a larger array, etc., when the results of that work won't be used? Supplying a limit allows only the required work to be done.
|


THE WALKING DEAD
Directors
Robert Krikman
Studios
AMC Studios
Maturity Rating
TV-14
THE ORIGINALS
Directors
Joseph Morgan
Studios
CBS Telivision Studios
Maturity Rating
14+
THE IRREGULARS
Directors
Johnny Allan
Studios
Drama Republic
Maturity Rating
TV-14
THE TERROR
Directors
Jack Nicholson
Studios
AMC Studios
Maturity Rating
13+


Pork chop cupim cow turkey frankfurter, landjaeger fatback hamburger meatball salami spare ribs. Rump tenderloin salami, hamburger frankfurter landjaeger andouille.
 Shankle venison meatball swine sausage ground round. Tail pork loin ribeye kielbasa short ribs pork chop.


As per the WHO: Coronaviruses (CoV) are a large family of viruses that cause illness ranging from the common cold to more severe diseases such as Middle East Respiratory Syndrome (MERS-CoV) and Severe Acute Respiratory Syndrome (SARS-CoV). Coronaviruses are transmitted between animals and people. Detailed investigations found that SARS-CoV was transmitted from civet cats to humans and MERS-CoV from dromedary camels to humans. Most coronaviruses spread the same way other cold-causing viruses do: through infected people coughing and sneezing, by touching an infected person's hands or face, or by touching things such as doorknobs that infected people have touched.
Renal stones can be found in kidneys, ureter, urinary bladder, or urethra. These are formed when the urine becomes too concentrated with certain components which results in crystallization of these components. Crystals in urine stick together to form a hard mass of stone referred to as crystals. The majority of urinary calculi (renal stone) are made up of calcium oxalate, calcium phosphate, uric acid, or magnesium ammonium phosphate(struvite). Most common type in India is calcium oxalate. Recurrence of kidney stones is common.
Dengue is an infectious mosquito-borne viral infection caused by any of the four dengue viruses. Common symptoms of dengue are:
The symptoms usually take four to six days to appear after infection and may last up to a week or more. However, it is not transmitted directly from person-to-person.
Tip: Avoid spicy and junk food.
Be healthy and fit!


Sound Silo is a premier source for industry quality drums, loops, midi kits, and presets.
Our design team is made up of award winning producers and composers.
All of our sample packs are royalty free and clearance is guaranteed.
Sound Silo is a premier source for industry quality drums, loops, midi kits, and presets.
Our design team is made up of award winning producers and composers.
All of our sample packs are royalty free and clearance is guaranteed.


3D Settings
Home
(current)
Upload Settings
Success!
You settings have been uploaded. You can view, share, and edit them using this link:
{{shareUrl}}


say more about sea as well.
compare to lazy repetitions.
In this section, we shortly inspect how does the startLazy
operator works.
The code parser starLazy
is a shorthand for the following:
The island of the sea is #epsilon
.
Such an island will be always found, because it accepts an empty string.
Furthermore it will be surrounded by water that consumes anything until the next parser succeeds.
You specify contents of a water by setting the waterToken
.
By default you can use #any asPParser
.
This means that the sea moves character by character betwen tests if the next parser succeeds.
Yet as we have seen in the case of the javascript
rule in the Extracting Javascript chapter, invoking #any asPParser
may not be sufficient, the water can get confused by an end tag hidden in a string.
Therefore, bounded seas allow you to define tokens that are expected in water.
Such token can be a string or a comment and thus does not confuse the parser.
In our case the tokens are either jsString
or any character:
We have missed one detail.
The actual implementation of starLazy
actually extracts only before water:
If your island is parse an empty string (e.g. island is optional, zero or more repetitions or simply epsilon), seas postpone the epsilon parse as far as possible, until the boundary is found.
Therefore, in case of starLazy
, all the consumed input is in the before water and after water is empty.


TEENAGE MUTANT NINJA TURTLES A film review by Randy Parker Copyright 1996 Randy Parker
RATING: ** (out of ****)
(Review written in 1990)
"Teenage mutant ninja turtles." It's nearly impossible to say it with a straight face; the concept is inherently funny. Unfortunately, watching the mutant turtles is not nearly as much fun as talking about them.
TEENAGE MUTANT NINJA TURTLES is not, thank goodness, another HOWARD THE DUCK, but then again, it's not BATMAN or SUPERMAN either. TURTLES is a strange and ultimately unsatisfying mixture of whimsical humor, gritty action, cute puppetry, and somber violence. The movie just never finds its niche.
For those of you unfamiliar with the ninja turtle legacy, some background history is in order. The Teenage Mutant Ninja Turtles first appeared in a black and white underground comic book by Kevin Eastman and Peter Laird. Then, the turtles went mainstream and got their own Saturday morning cartoon program and a second line of comic books, this one in color and aimed at children. TEENAGE MUTANT NINJA TURTLES is the live-action film adaptation.
The protagonists are four teenage turtles who as babies were exposed to some radioactive slime which caused them to mutate. They each grew to the size of a human, learned to love pizza, and gained the ability to walk upright and to talk in surfer jargon. Like, gnarly man, these dudes sound like Bill and Ted (from EXCELLENT ADVENTURE) and Spicoli (from FAST TIMES AT RIDGEMONT HIGH). Every other word they utter is something like "cowabunga," "excellent," or "radical." The turtles were raised by Splinter, a mutant Japanese rat, who taught them the art of ninjitsu and gave them names: Raphael, Leonardo, Michaelangelo, and Donatello.
The film is set in New York and tells the story of the turtles' battle against The Shredder, an evil crime lord who is training the city's teenagers as ninja thieves. The turtles team up with a pretty TV news reporter (Judith Hoag) and a renegade street vigilante (Elias Koteas) to rid New York of The Shredder and his goons.
Sound like BATMAN? Well, the movie also LOOKS like BATMAN. TEENAGE MUTANT NINJA TURTLES is surprisingly gloomy and grim. Its dark film noir production design brings to mind both BATMAN and BLADE RUNNER. So does the violence. TURTLES is far too intense and frightening for young children. The film, however, is too juvenile for adults. That leaves teenagers and pre-teenagers as the only people on the planet who may have an appetite for TURTLES.
Ralph, Mikey, Leo, and Don are brought to life by puppet-master Jim Henson, who claims that the creatures are the most advanced he has ever created. To get an idea of what they look like, imagine Arnold Schwarzenegger in a Kermit the Frog costume, with a shell on his back. The turtles look okay, but they certainly don't live up to the magnificent creatures from THE DARK CRYSTAL and LABYRINTH. Furthermore, the four turtles are virtually identical; it's hard to distinguish them as individual characters. Only Raphael, the temperamental, independent loner, stands out as a distinct personality.
Unfortunately, the human characters are just as artificial and rubbery. Hoag is kind of stiff as the TV reporter, but then again she is not exactly performing Shakespeare.  The Shredder (James Saito) is a shameless Darth Vader rip-off, complete with helmet and raspy, sinister voice.
Most of the movie is condescending, but thankfully, every so often a clever sense of humor creeps into the story. Screenwriters Todd Langen and Bobby Herbeck come up with several snappy one-liners. My favorite: one of the turtles has just seen the movie CRITTERS and he mutters, "Where do they come up with this stuff?" Where indeed!
--- Randy Parker<EMAIL_ADDRESS>http://www.shoestring.org
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


| Class | ActionController::Integration::Session |
| In: |
vendor/rails/actionpack/lib/action_controller/integration.rb
|
| Parent: | Object |
An integration Session instance represents a set of requests and responses performed sequentially by some virtual user. Becase you can instantiate multiple sessions and run them side-by-side, you can also mimic (to some limited extent) multiple simultaneous users interacting with your system.
Typically, you will instantiate a new session using IntegrationTest#open_session, rather than instantiating Integration::Session directly.
| accept | [RW] | The Accept header to send. |
| controller | [R] | A reference to the controller instance used by the last request. |
| cookies | [R] | A map of the cookies returned by the last response, and which will be sent with the next request. |
| headers | [R] | A map of the headers returned by the last response. |
| host | [RW] | The hostname used in the last request. |
| path | [R] | The URI of the last request. |
| remote_addr | [RW] | The remote_addr used in the last request. |
| request | [R] | A reference to the request instance used by the last request. |
| request_count | [RW] | A running counter of the number of requests processed. |
| response | [R] | A reference to the response instance used by the last request. |
| status | [R] | The integer HTTP status code of the last request. |
| status_message | [R] | The status message that accompanied the status code of the last request. |
Performs a DELETE request, following any subsequent redirect. See request_via_redirect for more information.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 158 158: def delete_via_redirect(path, parameters = nil, headers = nil) 159: request_via_redirect(:delete, path, parameters, headers) 160: end
Follow a single redirect response. If the last response was not a redirect, an exception will be raised. Otherwise, the redirect is performed on the location header.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 122 122: def follow_redirect! 123: raise "not a redirect! #{@status} #{@status_message}" unless redirect? 124: get(interpret_uri(headers['location'].first)) 125: status 126: end
Performs a GET request with the given parameters. The parameters may be nil, a Hash, or a string that is appropriately encoded (application/x-www-form-urlencoded or multipart/form-data). The headers should be a hash. The keys will automatically be upcased, with the prefix ‘HTTP_’ added if needed.
You can also perform POST, PUT, DELETE, and HEAD requests with post, put, delete, and head.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 175 175: def get(path, parameters = nil, headers = nil) 176: process :get, path, parameters, headers 177: end
Performs a GET request, following any subsequent redirect. See request_via_redirect for more information.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 140 140: def get_via_redirect(path, parameters = nil, headers = nil) 141: request_via_redirect(:get, path, parameters, headers) 142: end
Set the host name to use in the next request.
session.host! "www.example.com"
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 115 115: def host!(name) 116: @host = name 117: end
Specify whether or not the session should mimic a secure HTTPS request.
session.https! session.https!(false)
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 99 99: def https!(flag=true) 100: @https = flag 101: end
Return true if the session is mimicing a secure HTTPS request.
if session.https? ... end
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 108 108: def https? 109: @https 110: end
Performs a POST request, following any subsequent redirect. See request_via_redirect for more information.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 146 146: def post_via_redirect(path, parameters = nil, headers = nil) 147: request_via_redirect(:post, path, parameters, headers) 148: end
Performs a PUT request, following any subsequent redirect. See request_via_redirect for more information.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 152 152: def put_via_redirect(path, parameters = nil, headers = nil) 153: request_via_redirect(:put, path, parameters, headers) 154: end
Returns true if the last response was a redirect.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 163 163: def redirect? 164: status/100 == 3 165: end
Performs a request using the specified method, following any subsequent redirect. Note that the redirects are followed until the response is not a redirect—this means you may run into an infinite loop if your redirect loops back to itself.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 132 132: def request_via_redirect(http_method, path, parameters = nil, headers = nil) 133: send(http_method, path, parameters, headers) 134: follow_redirect! while redirect? 135: status 136: end
Resets the instance. This can be used to reset the state information in an existing session instance, so it can be used from a clean-slate condition.
session.reset!
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 71 71: def reset! 72: @status = @path = @headers = nil 73: @result = @status_message = nil 74: @https = false 75: @cookies = {} 76: @controller = @request = @response = nil 77: @request_count = 0 78: 79: self.host = "www.example.com" 80: self.remote_addr = "<IP_ADDRESS>" 81: self.accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" 82: 83: unless defined? @named_routes_configured 84: # install the named routes in this session instance. 85: klass = class<<self; self; end 86: Routing::Routes.install_helpers(klass) 87: 88: # the helpers are made protected by default--we make them public for 89: # easier access during testing and troubleshooting. 90: klass.module_eval { public *Routing::Routes.named_routes.helpers } 91: @named_routes_configured = true 92: end 93: end
Returns the URL for the given options, according to the rules specified in the application‘s routes.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 217 217: def url_for(options) 218: controller ? controller.url_for(options) : generic_url_rewriter.rewrite(options) 219: end
Performs an XMLHttpRequest request with the given parameters, mirroring a request from the Prototype library.
The request_method is :get, :post, :put, :delete or :head; the parameters are nil, a hash, or a url-encoded or multipart string; the headers are a hash. Keys are automatically upcased and prefixed with ‘HTTP_’ if not already.
# File vendor/rails/actionpack/lib/action_controller/integration.rb, line 206 206: def xml_http_request(request_method, path, parameters = nil, headers = nil) 207: headers ||= {} 208: headers['X-Requested-With'] = 'XMLHttpRequest' 209: headers['Accept'] ||= 'text/javascript, text/html, application/xml, text/xml, */*' 210: 211: process(request_method, path, parameters, headers) 212: end


This app use HTML5 Canvas to get color data from an image. The data collected is then transformed into chain of CSS box-shadow to create "ghost image" of 1x1px DIV element.
Made by @kosamari. Code on github. Inspired by Vince Allen's talk.


procedure Rasterize(Rasterizer: TRasterizer; Bitmap: TBitmap32; DstRect: TRect);
Rasterize is a simple TRenderThread based rasterize auxiliary routine. Calling Rasterize will start up a separate rasterization thread and rasterize through that with the provided Rasterizer.


Last Name:
Password:
Gender: Male Female Uncertain
Which gaming console(s) do you own? Xbox 1 Playstation 4 Nintendo Switch
Button text goes here.