IF - ELSE STATEMENTS
Discuss IF/ELSE statements
Programming project using IF/ELSE statements
prev
|
next


Rules: At the Double, Forward to Victory, Inspiring Presence
Selections: Aethershot Carbine, Boarding Weapons, Drill Cannon
Categories: DUARDIN, GRUNDSTOK GUNHAULER, SKYVESSEL, WAR MACHINE, KHARADRON OVERLORDS, ORDER, Other, Artillery, Battleline
Unit: Grundstok Gunhauler, Unit Abilities: Ahead Full, Bomb Racks, Disengage, Drill Cannon, Escort Vessel, Fly, Fly High, Weapon: Aethershot Carbine, Boarding Weapons, Drill Cannon
| Unit | Move | Wounds | Bravery | Save | Ref |
|---|---|---|---|---|---|
| Grundstok Gunhauler | 12" | 10 | 7 | 4+ |
| Unit Abilities | Ability Details | Ref |
|---|---|---|
| Ahead Full | Once per battle, at the start of your movement phase, you can say that this model will move ahead full. If you do so, add 6" to the Move characteristic of this model in that phase. | |
| Bomb Racks | At the start of the combat phase, you can pick 1 enemy unit within 1" of this model and roll a dice. Add the Bomb Rack modifier from this model’s damage table to the roll. On a 4+, that enemy unit suffers D3 mortal wounds. | |
| Disengage | This model and any models in its garrison can still shoot if this model retreats in the same turn, as long as there are no enemy units that can fly within 3" of this model at the start of the retreat move and there are less than 10 wounds allocated to this model at the start of the retreat move. | |
| Drill Cannon | If the unmodified hit roll for an attack made with a Drill Cannon is 5+, that attack inflicts 3 mortal wounds on the target and the attack sequence ends (do not make a wound or save roll). | |
| Escort Vessel | Roll 1 dice each time you allocate a wound or mortal wound to a friendly SKYVESSEL other than a Grundstok Gunhauler while it is within 3" of any friendly Grundstok Gunhaulers. On a 6, that wound or mortal wound is negated. | |
| Fly | This unit can fly. | |
| Fly High | Instead of making a normal move with this model, if there are less than 7 wounds currently allocated to this model, you can say that it will fly high (it can retreat and disengage). If you do so, remove this model from the battlefield and set it up again more than 1" from any terrain features or objectives and more than 9" from any enemy models. |
| Weapon | Type | Range | Attacks | To Hit | To Wound | Rend | Damage | Ref |
|---|---|---|---|---|---|---|---|---|
| Aethershot Carbine | Missile | 12" | 2 | 3+ | 4+ | -1 | 1 | |
| Boarding Weapons | Melee | 1" | 4 | 4+ | 4+ | - | 1 | |
| Drill Cannon | Missile | 36" | 1 | 3+ | 3+ | -3 | D3 |
Selections: Aethershot Carbine, Boarding Weapons, Drill Cannon
Categories: DUARDIN, GRUNDSTOK GUNHAULER, SKYVESSEL, WAR MACHINE, KHARADRON OVERLORDS, ORDER, Other, Artillery, Battleline
Unit: Grundstok Gunhauler, Unit Abilities: Ahead Full, Bomb Racks, Disengage, Drill Cannon, Escort Vessel, Fly, Fly High, Weapon: Aethershot Carbine, Boarding Weapons, Drill Cannon
| Unit | Move | Wounds | Bravery | Save | Ref |
|---|---|---|---|---|---|
| Grundstok Gunhauler | 12" | 10 | 7 | 4+ |
| Unit Abilities | Ability Details | Ref |
|---|---|---|
| Ahead Full | Once per battle, at the start of your movement phase, you can say that this model will move ahead full. If you do so, add 6" to the Move characteristic of this model in that phase. | |
| Bomb Racks | At the start of the combat phase, you can pick 1 enemy unit within 1" of this model and roll a dice. Add the Bomb Rack modifier from this model’s damage table to the roll. On a 4+, that enemy unit suffers D3 mortal wounds. | |
| Disengage | This model and any models in its garrison can still shoot if this model retreats in the same turn, as long as there are no enemy units that can fly within 3" of this model at the start of the retreat move and there are less than 10 wounds allocated to this model at the start of the retreat move. | |
| Drill Cannon | If the unmodified hit roll for an attack made with a Drill Cannon is 5+, that attack inflicts 3 mortal wounds on the target and the attack sequence ends (do not make a wound or save roll). | |
| Escort Vessel | Roll 1 dice each time you allocate a wound or mortal wound to a friendly SKYVESSEL other than a Grundstok Gunhauler while it is within 3" of any friendly Grundstok Gunhaulers. On a 6, that wound or mortal wound is negated. | |
| Fly | This unit can fly. | |
| Fly High | Instead of making a normal move with this model, if there are less than 7 wounds currently allocated to this model, you can say that it will fly high (it can retreat and disengage). If you do so, remove this model from the battlefield and set it up again more than 1" from any terrain features or objectives and more than 9" from any enemy models. |
| Weapon | Type | Range | Attacks | To Hit | To Wound | Rend | Damage | Ref |
|---|---|---|---|---|---|---|---|---|
| Aethershot Carbine | Missile | 12" | 2 | 3+ | 4+ | -1 | 1 | |
| Boarding Weapons | Melee | 1" | 4 | 4+ | 4+ | - | 1 | |
| Drill Cannon | Missile | 36" | 1 | 3+ | 3+ | -3 | D3 |
Selections: 3x 5 Grundstok Thunderers [360pts], 3x Aethercannon, 6x Aethershot Rifle, 3x Decksweeper, 3x Grundstok Mortar, Gun Butt, Gunnery Sergeant
Categories: DUARDIN, GRUNDSTOK THUNDERERS, SKYFARER, KHARADRON OVERLORDS, ORDER, MARINE, Other
Unit: Grundstok Thunderers, Unit Abilities: Drive Them Back!, Gunnery Sergeant, Pin, Shred Them, Finish Them, Weapon: Aethercannon, Aethershot Rifle, Decksweeper, Double-barreled Aethershot Rifle, Drillbill, Grundstok Mortar, Gun Butt
| Unit | Move | Wounds | Bravery | Save | Ref |
|---|---|---|---|---|---|
| Grundstok Thunderers | 4" | 2 | 7 | 4+ |
| Unit Abilities | Ability Details | Ref |
|---|---|---|
| Drive Them Back! | Add 1 to the Attacks characteristic of missile weapons used by this unit while any enemy units are within 3" of this unit. This ability cannot be used by a model that is part of a garrison. | |
| Gunnery Sergeant | 1 model in this unit can be a Gunnery Sergeant. Replace that model's weapons with a Double-barreled Aethershot Rifle, Gun Butt and Drillbill. | |
| Pin, Shred Them, Finish Them | Add 1 to hit rolls for attacks made with a Grundstok Mortar, Decksweeper or Aethercannon when it is used by a unit that has at least 1 of each of these weapons (i.e. at least 1 Grundstok Mortar, and at least 1 Decksweeper, and at least 1 Aethercannon). This ability cannot be used by a model that is part of a garrison. |
| Weapon | Type | Range | Attacks | To Hit | To Wound | Rend | Damage | Ref |
|---|---|---|---|---|---|---|---|---|
| Aethercannon | Missile | 12" | 1 | 4+ | 2+ | -2 | D3 | |
| Aethershot Rifle | Missile | 18" | 2 | 3+ | 4+ | -1 | 1 | |
| Decksweeper | Missile | 12" | 4 | 4+ | 4+ | -1 | 1 | |
| Double-barreled Aethershot Rifle | Missile | 18" | 4 | 3+ | 4+ | -1 | 1 | |
| Drillbill | Melee | 3" | D3 | 4+ | 4+ | -1 | 1 | |
| Grundstok Mortar | Missile | 12" | 1 | 4+ | 3+ | - | D3 | |
| Gun Butt | Melee | 1" | 1 | 4+ | 5+ | - | 1 |
Categories: Battalion
Battalion Abilities: Lords of the Skies
Selections: Atmospheric Anatomiser, Heavy Instruments
Categories: AETHER-KHEMIST, DUARDIN, HERO, SKYFARER, KHARADRON OVERLORDS, ORDER, Leader, MARINE
Unit: Aether-Khemist, Unit Abilities: Aetheric Augmentation, Atmospheric Isolation, Weapon: Atmospheric Anatomiser, Heavy Instruments
Selections: Ranging Pistol, Zephyrscope
Categories: AETHERIC NAVIGATOR, DUARDIN, HERO, SKYFARER, KHARADRON OVERLORDS, ORDER, Leader, MARINE
Unit: Aetheric Navigator, Unit Abilities: Aethersight, Aetherstorm, Read the Winds, Weapon: Ranging Pistol, Zephyrscope
Selections: Skalfhammer, Volley Pistol
Categories: ARKANAUT ADMIRAL, DUARDIN, HERO, SKYFARER, KHARADRON OVERLORDS, ORDER, Leader, MARINE
Command Abilities: Master of the Skies, On My Mark, Fire!, Repel Boarders!, Up And At Them!, Unit: Arkanaut Admiral, Unit Abilities: If You Want A Job Done…, Protect the Admiral!, Weapon: Skalfhammer, Volley Pistol
Selections: 10 Arkanaut Company [90pts], Aethermatic Volley Gun & Gun Butt, Light Skyhook, 8x Privateer Pistol and Arkanaut Cutter, Volley Pistol
Categories: ARKANAUT COMPANY, DUARDIN, SKYFARER, KHARADRON OVERLORDS, ORDER, Battleline, MARINE
Unit: Arkanaut Company, Unit Abilities: Company Captain, Glory-seekers, Weapon: Aethermatic Volley Gun (Arkanauts), Arkanaut Cutter, Arkanaut Cutter (Company Captain), Gun Butt, Light Skyhook, Privateer Pistol, Volley Pistol
Selections: 3. Ebullient Buoyancy Aids, Aethershock Torpedoes, Aethershot Carbines, Boarding Weapons, Great Volley Cannon, Wound Track
Categories: ARKANAUT IRONCLAD, DUARDIN, SKYVESSEL, WAR MACHINE, KHARADRON OVERLORDS, ORDER, Behemoth
Artefact: Ebullient Buoyancy Aids, Skyvessel Wound Track: 00-03, 04-06, 07-09, 10-12, 13+, Unit: Arkanaut Ironclad, Unit Abilities: Aetheric Navigator and Endrinrigger, Bomb Racks, Disengage, Fly High, Flying Transport (Ironclad), Weapon: Aethershock Torpedoes, Aethershot Carbines, Boarding Weapons, Great Volley Cannon
Selections: 1. Wealthy, 2. Phosphorite Bomblets, Aethercannon, Aethermatic Saw, Dirigible Suit Weapon Battery, Gaze of Grungni, General - Endrinmaster with Dirigible Suit
Categories: DUARDIN, ENDRINMASTER, HERO, SKYFARER, KHARADRON OVERLORDS, ORDER, Leader, MARINE, General
Artefact: Phosphorite Bomblets, Command Abilities: By Grungni, I Have My Eye On You!, Command Trait: Wealthy, Unit: Endrinmaster with Dirigible Suit, Unit Abilities: Endrinmaster, Fly, Hitcher(s), Weapon: Aethercannon, Aethermatic Saw, Dirigible Suit Weapon Battery, Gaze of Grungni
Selections: 2x 3 Endrinriggers [200pts], 2x Aethermatic Volley Gun & Gun Butt, 4x Rapid-fire Rivet Gun and Aethermatic Saw
Categories: DUARDIN, ENDRINRIGGERS, SKYFARER, KHARADRON OVERLORDS, ORDER, Other, Battleline
Unit: Endrinriggers, Unit Abilities: Endrincraft, Fly, Hitcher(s), Mizzenmaster, Weapon: Aethermatic Saw, Aethermatic Volley Gun, Gun Butt, Rapid-fire Rivet Gun
| Artefact | Artefact Details | Ref |
|---|---|---|
| Ebullient Buoyancy Aids | This model can fly high and/or disengage even while it has a garrison of 16 or more models. | |
| Phosphorite Bomblets | Once per battle, in your shooting phase, you can pick 1 unit within 6" of this model and roll a dice. On a 2+, that unit suffers 1 mortal wound you can roll again. Keep on rolling until the target is destroyed or you roll a 1. |
| Battalion Abilities | Battalion Ability Details | Ref |
|---|---|---|
| Lords of the Skies | Do not take battleshock tests for friendly KHARADRON OVERLORDS units while they are wholly within 18" of the ARKANAUT IRONCLAD from this battalion. |
| Command Abilities | Command Ability Details | Ref |
|---|---|---|
| By Grungni, I Have My Eye On You! | You can use this command ability in your hero phase before a friendly ENDRINRIGGERS unit wholly within 18" of a friendly model with this command ability uses its Endrincraft ability. If you do so, you can re-roll any of the dice that determine how many wounds are healed by that ENDRINRIGGERS unit in that phase. |
|
| Master of the Skies | You can use this command ability at the start of your shooting phase. If you do, pick 1 friendly SKYVESSEL that has a model with this command ability in its garrison. That SKYVESSEL can shoot in that phase even if it ran earlier in the same turn. | |
| On My Mark, Fire! | You can use this command ability at the start of your shooting phase. If you do so, pick 1 friendly SKYVESSEL that has a model with this command ability in its garrison. You can re-roll hit rolls of 1 for attacks made by that SKYVESSEL in that phase. | |
| Repel Boarders! | You can use this command ability at the start of your combat phase. If you do so, pick 1 friendly SKYVESSEL that has a model with this command ability in its garrison. Add 1 to hit rolls for attacks made by that SKYVESSEL and any models in its garrison in that phase. | |
| Up And At Them! | You can use this command ability at the start of your charge phase. If you do so, pick 1 friendly SKYFARERS unit that is wholly within 12" of a friendly model with this command ability. You can re-roll charge rolls for that unit in that phase. |
| Command Trait | Command Trait Details | Ref |
|---|---|---|
| Wealthy | This general starts the battle with 2 shares of aether-gold instead of 1. |
| Skyvessel Wound Track | Move | Boarding Weapons | Bomb Racks | Ref |
|---|---|---|---|---|
| 00-03 | 10", Disengage, Fly High | 8 | +2 | |
| 04-06 | 8", Disengage, Fly High | 7 | +1 | |
| 07-09 | 6", Disengage | 6 | 0 | |
| 10-12 | 6" | 5 | 0 | |
| 13+ | 4" | 4 | -1 |
| Unit | Move | Wounds | Bravery | Save | Ref |
|---|---|---|---|---|---|
| Aether-Khemist | 4" | 5 | 7 | 4+ | |
| Aetheric Navigator | 4" | 5 | 7 | 3+ | |
| Arkanaut Admiral | 4" | 6 | 8 | 3+ | |
| Arkanaut Company | 4" | 1 | 6 | 4+ | |
| Arkanaut Ironclad | 8" | 18 | 8 | 3+ | |
| Endrinmaster with Dirigible Suit | 12" | 8 | 8 | 3+ | |
| Endrinriggers | 12" | 2 | 7 | 4+ |
| Unit Abilities | Ability Details | Ref |
|---|---|---|
| Aetheric Augmentation | In your hero phase, you can pick 1 friendly SKYFARERS unit wholly within 12" of this model. Until your next hero phase, you can re-roll wound rolls of 1 for attacks made by that unit. This ability cannot be used by an AETHER-KHEMIST that is part of a garrison, or on a friendly unit that is part of a garrison. | |
| Aetheric Navigator and Endrinrigger | In your hero phase, you can heal 1 wound allocated to this model. In addition, you can re‑roll run rolls for this model. | |
| Aethersight | An Aetheric Navigator can attempt to dispel 1 endless spell at the start of your hero phase and attempt to unbind 1 spell in the enemy hero phase, in the same manner as a WIZARD. | |
| Aetherstorm | In your hero phase, you can pick 1 enemy unit within 36" of this model that is visible to them and can fly, and roll a dice. On a 1-2 nothing happen. On a 3-5 halve the Move characteristic of that unit until your next hero phase, and that unit suffers D3 mortal wounds. | |
| Atmospheric Isolation | Subtract 1 from hit rolls for attacks made by enemy models while they are within 3" of any friendly models with this ability. This ability cannot be used by an AETHER-KHEMIST that is part of a garrison. | |
| Bomb Racks | At the start of the combat phase, you can pick 1 enemy unit within 1" of this model and roll a dice. Add the Bomb Rack modifier from this model’s damage table to the roll. On a 4+, that enemy unit suffers D3 mortal wounds. | |
| Company Captain | One model in this unit can be a Company Captain. That model is armed with an Aetherflare Pistol or Volley Pistol instead of a Privateer Pistol. | |
| Disengage | This model and any models in its garrison can still shoot if this model retreats in the same turn, as long as there are no enemy units that can fly within 3" of this model at the start of the retreat move and there are less than 10 wounds allocated to this model at the start of the retreat move. | |
| Endrincraft | In each of your hero phases, a unit of Endrinriggers can repair a single SKYVESSEL within 1" or the one they are embarked upon. That SKYVESSEL immediately heals 1 wound. | |
| Endrinmaster | At the start of your hero phase, you can pick 1 friendly SKYVESSEL within 1" of this model. Heal 3 wounds allocated to that SKYVESSEL. | |
| Fly | This unit can fly. | |
| Fly High | Instead of making a normal move with this model, if there are less than 7 wounds currently allocated to this model, you can say that it will fly high (it can retreat and disengage). If you do so, remove this model from the battlefield and set it up again more than 1" from any terrain features or objectives and more than 9" from any enemy models. | |
| Flying Transport (Ironclad) | This model can fly, and can be garrisoned by up to 25 friendly MARINE models even though it is not a terrain feature. Halve this model’s Move characteristic and it cannot Fly High if there are 16 or more models in its garrison. Units cannot join or leave this model’s garrison if it has made a move or flown high in the same phase (they can join or leave before it does so). Models in the garrison are not counted towards gaining control of an objective. An attack made by a weapon that is in range of this model can target either this model or a unit in its garrison. If this model is destroyed, before it is removed from play, roll 1 dice for each model in its garrison. On a 1, that model is slain. Set up any surviving models wholly within 3" of this model and more than 3" from any enemy units. |
|
| Glory-seekers | You can re-roll battleshock tests for this unit while it is wholly within 9" of an objective, and add 1 to hit rolls for attacks made by this unit while it is wholly within 9" of an objective. This ability cannot be used if this unit is part of a garrison. | |
| Hitcher(s) | If this model is wholly within 6" of a friendly SKYVESSEL immediately before the SKYVESSL uses its Fly High ability, you can say that this model will hitch a lift instead of making a normal move (as long as this model has not already made a normal move in the same phase). If you do so, after that skyvessel has moved, remove this model from the battlefield and set it up again wholly within 6" of that SKYVESSEL, more than 1" from any terrain features or objectives and more than 9" from any enemy models. No more than 7 models can hitch a lift on the same SKYVESSEL in the same turn. |
|
| If You Want A Job Done… | You can re-roll hit and wound rolls of 1 for attacks made with a melee weapon by this model that target a HERO or MONSTER. | |
| Mizzenmaster | 1 model in this unit can be a Mizzenmaster. Add 1 to the Attacks characteristic of that model’s melee weapons. | |
| Protect the Admiral! | Do not take battleshock tests for friendly KHARADRON OVERLORDS units while they are wholly within 12" of this model. In addition, roll a dice before you allocate a wound or mortal wound to a friendly ARKANAUT ADMIRAL while it is within 3" of any friendly SKYFARER units with 5 or more models. On a 5+, you must allocate that wound or mortal wound to a friendly SKYFARERS unit with 5 or more models that is within 3" of that ARKANAUT ADMIRAL, instead of to that ARKANAUT ADMIRAL. |
|
| Read the Winds | You can re-roll run and charge rolls for friendly SKYVESSELS that are visible to a friendly AETHERIC NAVIGATOR that has not attempted to use the Aetherstorm ability in the same turn. |
| Weapon | Type | Range | Attacks | To Hit | To Wound | Rend | Damage | Ref |
|---|---|---|---|---|---|---|---|---|
| Aethercannon | Missile | 12" | 1 | 3+ | 2+ | -2 | D3 | |
| Aethermatic Saw | Melee | 1" | 1 | 3+ | 2+ | -2 | D3 | |
| Aethermatic Volley Gun | Missile | 24" | 6 | 4+ | 4+ | -1 | 1 | |
| Aethermatic Volley Gun (Arkanauts) | Missile | 12" | 6 | 5+ | 4+ | -1 | 1 | |
| Aethershock Torpedoes | Missile | 24" | 4 | 4+ | 3+ | -1 | D3 | |
| Aethershot Carbines | Missile | 12" | 8 | 3+ | 3+ | -1 | 2 | |
| Arkanaut Cutter | Melee | 1" | 1 | 4+ | 4+ | - | 1 | |
| Arkanaut Cutter (Company Captain) | Melee | 1" | 2 | 4+ | 4+ | - | 1 | |
| Atmospheric Anatomiser | Missile | 9" | 3D6 | 4+ | 4+ | -2 | 1 | |
| Boarding Weapons | Melee | 1" | * | 4+ | 4+ | - | 1 | |
| Dirigible Suit Weapon Battery | Missile | 18" | 6 | 3+ | 3+ | -1 | 1 | |
| Gaze of Grungni | Missile | 9" | 1 | 3+ | 2+ | -1 | D3 | |
| Great Volley Cannon | Missile | 18" | 4D6 | 3+ | 3+ | -1 | 1 | |
| Gun Butt | Melee | 1" | 1 | 4+ | 5+ | - | 1 | |
| Heavy Instruments | Melee | 1" | 2 | 4+ | 4+ | - | 1 | |
| Light Skyhook | Missile | 18" | 1 | 4+ | 3+ | -2 | D3 | |
| Privateer Pistol | Missile | 9" | 2 | 4+ | 4+ | - | 1 | |
| Ranging Pistol | Missile | 15" | 2 | 3+ | 3+ | -1 | 1 | |
| Rapid-fire Rivet Gun | Missile | 12" | 3 | 3+ | 4+ | -1 | 1 | |
| Skalfhammer | Melee | 1" | 3 | 3+ | 2+ | -2 | 2 | |
| Volley Pistol | Missile | 9" | 3 | 4+ | 4+ | - | 1 | |
| Zephyrscope | Melee | 1" | 2 | 3+ | 4+ | - | 1 |
Categories: Allegiance
Battle Trait: Aether-gold
Selections: Amendment, Artycle, Footnote
1) Artycle: Seek New Prospects, 2) Amendment: Always Take What You Are Owed, 3) Footnote: Where There's War, There's Gold, Battle Trait: The Market City
| 1) Artycle | Details | Ref |
|---|---|---|
| Seek New Prospects | You can re-roll battleshock tests for friendly BARAK-URBAZ units while they are wholly within your opponent's territory. |
| 2) Amendment | Details | Ref |
|---|---|---|
| Always Take What You Are Owed | Pick up to 3 different KHARADRON OVERLORDS units in your army. Each of those units starts the battle with 1 share of aether-gold in addition to any they normally receive. |
| 3) Footnote | Details | Ref |
|---|---|---|
| Where There's War, There's Gold | Once per battle, at the end of the combat phase, 1 friendly SKYFARERS unit that fought in that phase gains 1 share of aether-gold. |
| Battle Trait | Battle Trait Details | Ref |
|---|---|---|
| Aether-gold | Each KHARADRON OVERLORDS HERO, SKYVESSEL, and KHARADRON OVERLORDS unit with 10 or more models starts a battle with 1 share of aether-gold. Once per phase, you can say that 1 unit from your army that has any shares of aether-gold will spend 1 of them. If you do so, subtract 1 rom that unit's Bravery characteristic for the rest of the battle, but you can pick a triumph it is eligible to use an immediately apply its effect to that unit. Ignore any restrictions on a triumph that say it can only be used once per battle if you pay to use it with a share of aether-gold. |
|
| The Market City | Do not subtract 1 from the Bravery characteristic of a BARAK-URBAZ unit that spends a share of aether-gold. |
Selections: 2000 Points - Battlehost
Categories: Game Options, Battlehost
At the Double: You can use this command ability after you make a run roll for a friendly unit that is within 6" of a friendly HERO, or 12" of a friendly HERO that is a general.  (Core Rules p3)
Forward to Victory: You can use this command ability after you make a charge roll for a friendly unit that is within 6" of a friendly HERO, or 12" of a friendly HERO that is a general. If you do so, re-roll the charge roll. (Core Rules p3)
Inspiring Presence: You can use this command ability at the start of the battleshock phase. If you do so, pick a friendly unit that is within 6" of friendly HERO, or 12" of a friendly HERO that is a general. That unit does not have to take battleshock tests in that phase. (Core Rules p3)
Created with BattleScribe


@(crewSize : String)
This way is not looking very promising. You keep going in and out of bays trying to find a way east but you always run into land. You are afraid you may run aground and be eaten by one of the roving bands of feral kittens you see frolicking upon the shore.
Current crew size = @crewSize


Flowchart of this study. The following datasets were used for the identification of potential diagnostic genes and mechanisms associated with the development of sepsis: GSE13904 (children), GSE25504 (children), GSE9960 (adults) and GSE154918 (adults).


RT @mkapral: Imagine driving to work at rush hour with no traffic, magically getting exercise, and parking for free near the front door. Th…
10/4/2017, 11:10:01 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @mkapral: Imagine driving to work at rush hour with no traffic, magically getting exercise, and parking for free near the front door. Th…
10/4/2017, 11:10:01 PM
Favs: 0
Retweets: 0
link


Welcome to 266-750 Balloons!
Where we favor eccentric amounts of balloons.
Microsoft Windows [Version 6.1.7601]
C:/Users/Username/Documents>echo aboutme.txt
About 266-750Balloons
My programming experience started with Scratch, and then it grew into learning Javascript, then HTML and CSS through Khan Academy. I have kept practicing and been growing since then, and so has my love, obsession, and mourning for Windows 7 (I upgraded for free 3 days after it proudly crossed the rainbow bridge to be with XP and mock Vista).
Outside of the Microsoft world, I'm a fan of Linux, admiring it/hosting apache2 servers for testing pages on my phone/building nano for fun in Virtualbox and WSL.
In my spare time, I program (obviously), read, do family history at familysearch.org, and study the Book of Mormon.


Candidacy to the elections for President of the Republic
In a world where hope has ended, as Saramago portrayed in his
“Blindness”, we stop looking at the future, we stop seeing it.
"This is blindness too," he said. Recalling Castrim, "Hope: it
is the way the future speaks in our ears". At a time when so
many do not see or hear the future to speak to them, the more
necessary it is to know how to organize and open that future. To
transform restlessness in struggle, convert unrest into trust.
Confidence in a future built according to the dreams and
projects to which we are entitled and which we do not want to
give up. That we will not give up.
more ...
Give Us Fully Automated Luxury Communism
Imagine a life in which all your basic needs were met, the
bottom of Maslow’s hierarchy of needs forever lopped off. No
concerns about college debt ruining your ability to buy a home.
No worries about where meals would come from, or whether you
would have enough cash to keep gas in the car. No problems
paying medical bills.
more ...
Bourgeois and Proletarians
The history of all hitherto existing society is the history of
class struggles.
Freeman and slave, patrician and plebeian, lord and serf,
guild-master and journeyman, in a word, oppressor and oppressed,
stood in constant opposition to one another, carried on an
uninterrupted, now hidden, now open fight, a fight that each
time ended, either in a revolutionary reconstitution of society
at large, or in the common ruin of the contending classes.
more ...


Home
About
Portfolio
Service
Contact
Let's Talk!
Business
Collaboration
Ernakulam, Kerala
India
+91 79 0711 2119
Give a call or text me!
<EMAIL_ADDRESS>Send me your query anytime!
Subject
Business
Collaboration
Others
S
e
n
d
M
e
s
s
a
g
e
Message Sent


🦥 xmlazy Samples
- 00. Loading the xmlazy Bundle
-
Demonstrates how to include the Laxyx bundle in your webpage.
- 01. Basic Stax Parsing
-
Explains how to use the xmlazy for StAX parsing XML (i.e. streaming or "pull" parsing)
Lets you enter some arbitrary XML and parses it.
Stax output is presented in a table.
- 02. Parsing a File with FileReader
-
Lets you choose a XML file from your local system, reads it with the built-in
FileReader
and parses it.
Sax output ispresented in a table.
- 03. Building a document with FileReader
-
Lets you choose a XML file from your local system, reads it with the built-in
FileReader
and parses it.
Sax output ispresented in a table.
- 04. Reading a stream with the SaxStreamReader
-
Lets you choose a XML file from your local system, and passes it as a ReadableStream to the SaxStreamReader.
- 05. Basic Dom manipulation - getElementById
-
Lets you enter some XML and specify the id of an element to find, and prints out the element with that id.
- 06. Basic Dom manipulation - childNodes
-
Lets you enter some XML and specify the id of an element to find, and prints out the childNodes of the element with that id.
- 07. Basic Dom Manipulation - getElementsByTagName
-
Lets you enter some XML, specify a qualified name, and then gets the matching elements from the document element down.
- 08. Basic Dom Manipulation - getElementsByTagNameNS
-
Lets you enter some XML, specify a namespace uri and localname, and then gets the matching elements from the document element down.


Government Polytechnic College For Girls , Surat
Home Page
Information
Book Information
Syllbus Information
Download GTU Papers
Download Books
Top 3 Projects Information
Other Information
Contact Us
Select Your Department For Books Information
Computer Engineering
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6
Electrical Engineering
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6
Information Technology
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6
Electronics and Communication
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6
Textile Design
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6
Architecture Assistantship
Semester-1
Semester-2
Semester-3
Semester-4
Semester-5
Semester-6


Which Programming Language Should I Learn?
A choose your own adventure book
go to page 1
Do you already know a programming language?
Do you want to try something new?
Do you have friends who will mentor you?
Do you want to get better at your current language?
Cool. Keep working with that.
Fair Enough. Your life is yours. We all get around 1000 months to enjoy.
Make 'em count.
Is downloading and configuring going to stop you from getting started?
What do you want to make?
What do you want to learn?
Can you rely on data from
Web APIs instead?
what would you rather use?
What statement do you agree
with more?


|
App Engine Python SDK
v1.6.9 rev.445
The Python runtime is available as an experimental Preview feature.
|
Classes | |
| class | BaseRecognizer |
| class | Lexer |
| class | Parser |
| class | ParserRuleReturnScope |
| class | RecognizerSharedState |
| class | RuleReturnScope |
| class | TokenSource |
| if self._state.failed: sys.stdout.write(" failed=%s" % self._state.failed) More... | |
Functions | |
| def | reportError |
| def mismatchRecover(self, input, ttype, follow): if self.mismatchIsUnwantedToken(input, ttype): mte = UnwantedTokenException(ttype, input) More... | |
| def | displayRecognitionError |
| def | getErrorMessage |
| def | getNumberOfSyntaxErrors |
| def | getErrorHeader |
| def | getTokenErrorDisplay |
| def | emitErrorMessage |
| def | recover |
| def | beginResync |
| def | endResync |
| def | computeErrorRecoverySet |
| def | computeContextSensitiveRuleFOLLOW |
| def | combineFollows |
| def | recoverFromMismatchedToken |
| def | recoverFromMismatchedSet |
| def | getCurrentInputSymbol |
| def | getMissingSymbol |
| def | consumeUntil |
| def recoverFromMissingElement(self, input, e, follow): """ This code is factored out from mismatched token and mismatched set recovery. More... | |
| def | getRuleInvocationStack |
| def | getBacktrackingLevel |
| def | getGrammarFileName |
| def | getSourceName |
| def | toStrings |
| def | getRuleMemoization |
| def | alreadyParsedRule |
| def | memoize |
| def | traceIn |
| def | traceOut |
| if self._state.failed: sys.stdout.write(" failed=%s" % self._state.failed) | |
Variables | |
| tuple | _getRuleInvocationStack = classmethod(_getRuleInvocationStack) |
ANTLR3 runtime package
| def google.appengine._internal.antlr3.recognizers.alreadyParsedRule | ( | self, | |
| input, | |||
| ruleIndex | |||
| ) |
Has this rule already parsed input at the current index in the input stream? Return the stop token index or MEMO_RULE_UNKNOWN. If we attempted but failed to parse properly before, return MEMO_RULE_FAILED. This method has a side-effect: if we have seen this input for this rule and successfully parsed before, then seek ahead to 1 past the stop token matched for this rule last time.
| def google.appengine._internal.antlr3.recognizers.beginResync | ( | self | ) |
A hook to listen in on the token consumption during error recovery. The DebugParser subclasses this to fire events to the listenter.
| def google.appengine._internal.antlr3.recognizers.computeContextSensitiveRuleFOLLOW | ( | self | ) |
Compute the context-sensitive FOLLOW set for current rule. This is set of token types that can follow a specific rule reference given a specific call chain. You get the set of viable tokens that can possibly come next (lookahead depth 1) given the current call chain. Contrast this with the definition of plain FOLLOW for rule r: FOLLOW(r)={x | S=>*alpha r beta in G and x in FIRST(beta)} where x in T* and alpha, beta in V*; T is set of terminals and V is the set of terminals and nonterminals. In other words, FOLLOW(r) is the set of all tokens that can possibly follow references to r in *any* sentential form (context). At runtime, however, we know precisely which context applies as we have the call chain. We may compute the exact (rather than covering superset) set of following tokens. For example, consider grammar: stat : ID '=' expr ';' // FOLLOW(stat)=={EOF} | "return" expr '.' ; expr : atom ('+' atom)* ; // FOLLOW(expr)=={';','.',')'} atom : INT // FOLLOW(atom)=={'+',')',';','.'} | '(' expr ')' ; The FOLLOW sets are all inclusive whereas context-sensitive FOLLOW sets are precisely what could follow a rule reference. For input input "i=(3);", here is the derivation: stat => ID '=' expr ';' => ID '=' atom ('+' atom)* ';' => ID '=' '(' expr ')' ('+' atom)* ';' => ID '=' '(' atom ')' ('+' atom)* ';' => ID '=' '(' INT ')' ('+' atom)* ';' => ID '=' '(' INT ')' ';' At the "3" token, you'd have a call chain of stat -> expr -> atom -> expr -> atom What can follow that specific nested ref to atom? Exactly ')' as you can see by looking at the derivation of this specific input. Contrast this with the FOLLOW(atom)={'+',')',';','.'}. You want the exact viable token set when recovering from a token mismatch. Upon token mismatch, if LA(1) is member of the viable next token set, then you know there is most likely a missing token in the input stream. "Insert" one by just not throwing an exception.
| def google.appengine._internal.antlr3.recognizers.computeErrorRecoverySet | ( | self | ) |
Compute the error recovery set for the current rule. During rule invocation, the parser pushes the set of tokens that can follow that rule reference on the stack; this amounts to computing FIRST of what follows the rule reference in the enclosing rule. This local follow set only includes tokens from within the rule; i.e., the FIRST computation done by ANTLR stops at the end of a rule. EXAMPLE When you find a "no viable alt exception", the input is not consistent with any of the alternatives for rule r. The best thing to do is to consume tokens until you see something that can legally follow a call to r *or* any rule that called r. You don't want the exact set of viable next tokens because the input might just be missing a token--you might consume the rest of the input looking for one of the missing tokens. Consider grammar: a : '[' b ']' | '(' b ')' ; b : c '^' INT ; c : ID | INT ; At each rule invocation, the set of tokens that could follow that rule is pushed on a stack. Here are the various "local" follow sets: FOLLOW(b1_in_a) = FIRST(']') = ']' FOLLOW(b2_in_a) = FIRST(')') = ')' FOLLOW(c_in_b) = FIRST('^') = '^' Upon erroneous input "[]", the call chain is a -> b -> c and, hence, the follow context stack is: depth local follow set after call to rule 0 \<EOF> a (from main()) 1 ']' b 3 '^' c Notice that ')' is not included, because b would have to have been called from a different context in rule a for ')' to be included. For error recovery, we cannot consider FOLLOW(c) (context-sensitive or otherwise). We need the combined set of all context-sensitive FOLLOW sets--the set of all tokens that could follow any reference in the call chain. We need to resync to one of those tokens. Note that FOLLOW(c)='^' and if we resync'd to that token, we'd consume until EOF. We need to sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. In this case, for input "[]", LA(1) is in this set so we would not consume anything and after printing an error rule c would return normally. It would not find the required '^' though. At this point, it gets a mismatched token error and throws an exception (since LA(1) is not in the viable following token set). The rule exception handler tries to recover, but finds the same recovery set and doesn't consume anything. Rule b exits normally returning to rule a. Now it finds the ']' (and with the successful match exits errorRecovery mode). So, you cna see that the parser walks up call chain looking for the token that was a member of the recovery set. Errors are not generated in errorRecovery mode. ANTLR's error recovery mechanism is based upon original ideas: "Algorithms + Data Structures = Programs" by Niklaus Wirth and "A note on error recovery in recursive descent parsers": http://portal.acm.org/citation.cfm?id=947902.947905 Later, Josef Grosch had some good ideas: "Efficient and Comfortable Error Recovery in Recursive Descent Parsers": ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip Like Grosch I implemented local FOLLOW sets that are combined at run-time upon error to avoid overhead during parsing.
| def google.appengine._internal.antlr3.recognizers.consumeUntil | ( | self, | |
| input, | |||
| tokenTypes | |||
| ) |
def recoverFromMissingElement(self, input, e, follow): """ This code is factored out from mismatched token and mismatched set recovery.
It handles "single token insertion" error recovery for both. No tokens are consumed to recover from insertions. Return true if recovery was possible else return false. """ if self.mismatchIsMissingToken(input, follow): self.reportError(e) return True # nothing to do; throw exception return False
Consume tokens until one matches the given token or token set tokenTypes can be a single token type or a set of token types
| def google.appengine._internal.antlr3.recognizers.emitErrorMessage | ( | self, | |
| msg | |||
| ) |
Override this method to change where error messages go
| def google.appengine._internal.antlr3.recognizers.endResync | ( | self | ) |
A hook to listen in on the token consumption during error recovery. The DebugParser subclasses this to fire events to the listenter.
| def google.appengine._internal.antlr3.recognizers.getCurrentInputSymbol | ( | self, | |
| input | |||
| ) |
Match needs to return the current input symbol, which gets put into the label for the associated token ref; e.g., x=ID. Token and tree parsers need to return different objects. Rather than test for input stream type or change the IntStream interface, I use a simple method to ask the recognizer to tell me what the current input symbol is. This is ignored for lexers.
| def google.appengine._internal.antlr3.recognizers.getErrorHeader | ( | self, | |
| e | |||
| ) |
What is the error header, normally line/character position information?
| def google.appengine._internal.antlr3.recognizers.getErrorMessage | ( | self, | |
| e, | |||
| tokenNames | |||
| ) |
What error message should be generated for the various exception types? Not very object-oriented code, but I like having all error message generation within one method rather than spread among all of the exception classes. This also makes it much easier for the exception handling because the exception classes do not have to have pointers back to this object to access utility routines and so on. Also, changing the message for an exception type would be difficult because you would have to subclassing exception, but then somehow get ANTLR to make those kinds of exception objects instead of the default. This looks weird, but trust me--it makes the most sense in terms of flexibility. For grammar debugging, you will want to override this to add more information such as the stack frame with getRuleInvocationStack(e, this.getClass().getName()) and, for no viable alts, the decision description and state etc... Override this to change the message generated for one or more exception types.
| def google.appengine._internal.antlr3.recognizers.getGrammarFileName | ( | self | ) |
For debugging and other purposes, might want the grammar name. Have ANTLR generate an implementation for this method.
| def google.appengine._internal.antlr3.recognizers.getMissingSymbol | ( | self, | |
| input, | |||
| e, | |||
| expectedTokenType, | |||
| follow | |||
| ) |
Conjure up a missing token during error recovery. The recognizer attempts to recover from single missing symbols. But, actions might refer to that missing symbol. For example, x=ID {f($x);}. The action clearly assumes that there has been an identifier matched previously and that $x points at that token. If that token is missing, but the next token in the stream is what we want we assume that this token is missing and we keep going. Because we have to return some token to replace the missing token, we have to conjure one up. This method gives the user control over the tokens returned for missing tokens. Mostly, you will want to create something special for identifier tokens. For literals such as '{' and ',', the default action in the parser or tree parser works. It simply creates a CommonToken of the appropriate type. The text will be the token. If you change what tokens must be created by the lexer, override this method to create the appropriate tokens.
| def google.appengine._internal.antlr3.recognizers.getNumberOfSyntaxErrors | ( | self | ) |
Get number of recognition errors (lexer, parser, tree parser). Each recognizer tracks its own number. So parser and lexer each have separate count. Does not count the spurious errors found between an error and next valid token match See also reportError()
| def google.appengine._internal.antlr3.recognizers.getRuleInvocationStack | ( | self | ) |
Return List<String> of the rules in your parser instance leading up to a call to this method. You could override if you want more details such as the file/line info of where in the parser java code a rule is invoked. This is very useful for error messages and for context-sensitive error recovery. You must be careful, if you subclass a generated recognizers. The default implementation will only search the module of self for rules, but the subclass will not contain any rules. You probably want to override this method to look like def getRuleInvocationStack(self): return self._getRuleInvocationStack(<class>.__module__) where <class> is the class of the generated recognizer, e.g. the superclass of self.
| def google.appengine._internal.antlr3.recognizers.getRuleMemoization | ( | self, | |
| ruleIndex, | |||
| ruleStartIndex | |||
| ) |
Given a rule number and a start token index number, return MEMO_RULE_UNKNOWN if the rule has not parsed input starting from start index. If this rule has parsed input starting from the start index before, then return where the rule stopped parsing. It returns the index of the last token matched by the rule.
| def google.appengine._internal.antlr3.recognizers.getTokenErrorDisplay | ( | self, | |
| t | |||
| ) |
How should a token be displayed in an error message? The default is to display just the text, but during development you might want to have a lot of information spit out. Override in that case to use t.toString() (which, for CommonToken, dumps everything about the token). This is better than forcing you to override a method in your token objects because you don't have to go modify your lexer so that it creates a new Java type.
| def google.appengine._internal.antlr3.recognizers.memoize | ( | self, | |
| input, | |||
| ruleIndex, | |||
| ruleStartIndex, | |||
| success | |||
| ) |
Record whether or not this rule parsed the input at this position successfully.
| def google.appengine._internal.antlr3.recognizers.recover | ( | self, | |
| input, | |||
| re | |||
| ) |
Recover from an error found on the input stream. This is for NoViableAlt and mismatched symbol exceptions. If you enable single token insertion and deletion, this will usually not handle mismatched symbol exceptions but there could be a mismatched token that the match() routine could not recover from.
| def google.appengine._internal.antlr3.recognizers.recoverFromMismatchedSet | ( | self, | |
| input, | |||
| e, | |||
| follow | |||
| ) |
Not currently used
| def google.appengine._internal.antlr3.recognizers.recoverFromMismatchedToken | ( | self, | |
| input, | |||
| ttype, | |||
| follow | |||
| ) |
Attempt to recover from a single missing or extra token. EXTRA TOKEN LA(1) is not what we are looking for. If LA(2) has the right token, however, then assume LA(1) is some extra spurious token. Delete it and LA(2) as if we were doing a normal match(), which advances the input. MISSING TOKEN If current token is consistent with what could come after ttype then it is ok to 'insert' the missing token, else throw exception For example, Input 'i=(3;' is clearly missing the ')'. When the parser returns from the nested call to expr, it will have call chain: stat -> expr -> atom and it will be trying to match the ')' at this point in the derivation: => ID '=' '(' INT ')' ('+' atom)* ';' ^ match() will see that ';' doesn't match ')' and report a mismatched token error. To recover, it sees that LA(1)==';' is in the set of tokens that can follow the ')' token reference in rule atom. It can assume that you forgot the ')'.
| def google.appengine._internal.antlr3.recognizers.reportError | ( | self, | |
| e | |||
| ) |
def mismatchRecover(self, input, ttype, follow): if self.mismatchIsUnwantedToken(input, ttype): mte = UnwantedTokenException(ttype, input)
elif self.mismatchIsMissingToken(input, follow): mte = MissingTokenException(ttype, input) else: mte = MismatchedTokenException(ttype, input) self.recoverFromMismatchedToken(input, mte, ttype, follow)
Report a recognition problem. This method sets errorRecovery to indicate the parser is recovering not parsing. Once in recovery mode, no errors are generated. To get out of recovery mode, the parser must successfully match a token (after a resync). So it will go: 1. error occurs 2. enter recovery mode, report error 3. consume until token found in resynch set 4. try to resume parsing 5. next match() will reset errorRecovery mode If you override, make sure to update syntaxErrors if you care about that.
| def google.appengine._internal.antlr3.recognizers.toStrings | ( | self, | |
| tokens | |||
| ) |
A convenience method for use most often with template rewrites. Convert a List<Token> to List<String>


class: center, middle, inverse, title-slide # Geography 13 ## Lecture 12: Spatial Predicates ### Mike Johnson ---  # Picking back up! --- # Yesterday We learned about the SRS (Spatial Reference Systems) -- - They can be **geographic** (3D, angular units) -- - Ellipsoid (squished sphere model) -- - geoid (mathamatical model of gravitatial feild) -- - datum the relationship between the ellipsoid and geoid -- - can be local (NAD27) -- - can be global (WGS84, NAD83) --- - SRS can be projected (x-y axis, measurement units (m), false origin) -- - All PCS are based on GCS -- - Projections seek to place the 3D earth on 2D -- - Do this by defining a plane that can be conic, cylindrical or planar -- - "unfolding to this plane" creates distortion of **shape**, **area**, **distance**, or **direction** -- - The distortion is greater from point/lines of tangency or secanacy --- # Measure (GEOS Measures) - Measures are the questions we ask about the dimension of a geometry -- - How long is a line or polygon perimeter (unit) -- - What is the area of a polygon (unit^2^) -- - How far are two object from one another (unit) -- - Measures come from the GEOS library -- - Measures are in the **units** of the base projection -- - Measures can be Euclidean (PCS) or geodesic (GSC) -- - geodesic (Great Circle) distances can be more accurate by eliminating distortion -- - but are much slower to calculate --- # For example ... ```r usa = st_cast(st_union(us_states()), "MULTILINESTRING") nrow(cities) ``` ``` [1] 28889 ``` ```r # Great Circle Distance in GCS system.time({x = st_distance(usa, cities)}) # user system elapsed # 103.560 1.390 117.128 # Euclidian Distance on PCS system.time({x = st_distance(usa, cities, which = "Euclidean")}) # user system elapsed # 2.422 0.019 2.494 ``` --- # Units When possible measure operations report results with a units appropriate for the CRS: ```r ca = st_read("data/ca.shp") ``` ``` Reading layer `ca' from data source `/Users/mikejohnson/github/spds/lectures/data/ca.shp' using driver `ESRI Shapefile' Simple feature collection with 58 features and 12 fields Geometry type: MULTIPOLYGON Dimension: XY Bounding box: xmin: -124.4096 ymin: 32.53416 xmax: -114.1391 ymax: 42.00925 Geodetic CRS: NAD83 ``` ```r a <- st_area(ca[1,]) attributes(a) %>% unlist() ``` ``` units.numerator1 units.numerator2 class "m" "m" "units" ``` --- The **units** package can be used to convert between units: ```r units::set_units(a, km^2) # result in square kilometers ``` ``` 113.9796 [km^2] ``` ```r units::set_units(a, ha) # result in hectares ``` ``` 11397.96 [ha] ``` -- and the results can be stripped of their attributes for cases where numeric values are needed (e.g. math operators and ggplot): ```r as.numeric(a) ``` ``` [1] 113979625 ``` --- # Daily Exersise 11 Tasks: Read in `uscities.csv`, make an `sf` object, isolate your home town and Santa Barbara ```r homes = readr::read_csv("/Users/mikejohnson/github/spds/lectures/data/uscities.csv") %>% st_as_sf(coords = c("lng", "lat"), crs = 4326) %>% filter(city %in% c("Santa Barbara", "Colorado Springs")) ``` --- From there we needed to calculate the distance of these 2 points in a WGS84, Equal Area, and Equidistant Projection: ```r st_distance(homes) ``` ``` Units: [m] [,1] [,2] [1,] 0 1423393 [2,] 1423393 0 ``` ```r st_distance(st_transform(homes, 5070)) ``` ``` Units: [m] [,1] [,2] [1,] 0 1413414 [2,] 1413414 0 ``` ```r st_distance(st_transform(homes, '+proj=eqdc +lat_0=40 +lon_0=-96 +lat_1=20 +lat_2=60 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs')) ``` ``` Units: [m] [,1] [,2] [1,] 0 1352729 [2,] 1352729 0 ``` --- Last, we needed to select 1 of the outputs and modify/drop the units ```r library(units) st_distance(homes) ``` ``` Units: [m] [,1] [,2] [1,] 0 1423393 [2,] 1423393 0 ``` ```r (st_distance(homes) %>% set_units("km") %>% drop_units()) ``` ``` [,1] [,2] [1,] 0.000 1423.393 [2,] 1423.393 0.000 ``` --- # Topologic Diminsion A **POINT** is shape with a dimension of 0 that occupies a single location in coordinate space. ```r # POINT defined as numeric vector (st_dimension(st_point(c(0,1)))) ``` ``` [1] 0 ``` -- A **LINESTRING** is shape that has a dimension of 1 (length) ```r # LINESTRING defined by matrix (st_dimension(st_linestring(matrix(1:4, nrow = 2)))) ``` ``` [1] 1 ``` -- A **POLYGON** is surface stored as a list of its exterior and interior rings. It has a dimension of 2. (area) ```r # POLYGON defined by LIST (interior and exterior rings) (st_dimension(st_polygon(list(matrix(c(1:4, 1,2), nrow = 3, byrow = TRUE))))) ``` ``` [1] 2 ``` --- ## Geometric Interiors, Boundaries and Exteriors All geometries have interior, boundary and exterior regions. The terms `interior` and `boundary` are used in the context of algebraic topology and manifold theory and **not** general topology -- The OGC has define these states for the common geometry types in the simple features standard: **** | Subtypes | Dim | Interior (I) | boundary (B) | |:---------------------------- |:---- |:---------------------------------------------------------- |:-----------------| | Point, MultiPoint | 0 | Point, Points | Empty | | LineString, Line | 1 | Points that are left when the boundary points are removed. | Two end points. | | Polygon | 2 | Points within the rings. | Set of rings. | **** --- ## Interior, Boundary and Exterior: POINTS  --- ## Interior, Boundary and Exterior: LINESTRING  --- # Interior, Boundary and Exterior: POLYGON  --- # Summary  ``` TableGrob (3 x 4) "arrange": 12 grobs z cells name grob 1 1 (1-1,1-1) arrange gtable[layout] 2 2 (1-1,2-2) arrange gtable[layout] 3 3 (1-1,3-3) arrange gtable[layout] 4 4 (1-1,4-4) arrange gtable[layout] 5 5 (2-2,1-1) arrange gtable[layout] 6 6 (2-2,2-2) arrange gtable[layout] 7 7 (2-2,3-3) arrange gtable[layout] 8 8 (2-2,4-4) arrange gtable[layout] 9 9 (3-3,1-1) arrange gtable[layout] 10 10 (3-3,2-2) arrange gtable[layout] 11 11 (3-3,3-3) arrange gtable[layout] 12 12 (3-3,4-4) arrange gtable[layout] ``` --- class: middle, center In the following, we are interested in the resulting geometry that occurs when 2 geometries are overlaid... --- # Overlap is a POINT: 0D  --  --  --- # Overlap is a LINESTRING: 1D  --  --  --- # Overlap is a POLYGON: 2D  --  --  --- # No Overlap = FALSE  --- ## DE-9IM - Dimensionally Extended 9-Intersection Model (DE-9IM) - The DE-9IM is a **topological** model and (standard) used to describe the spatial relations of two geometries -- - Used in geometry, point-set topology, geospatial topology -- - The **DE-9IM** _matrix_ provides a way to classify geometry relations using the set **{0,1,2,F}** or **{T,F}** --- - With a **{T,F}** matrix domain, there are 512 possible relations that can be grouped into binary classification schemes. -- - About 10 of these, have been given a common name such as _intersects_, _touches_, and _within_. -- - When testing two geometries against a scheme, the result is a spatial _predicate_ named by the scheme. -- - The model was developed by Clementini and others based on the seminal works of Egenhofer -- - Provides the primary basis for queries and assertions in GIS and spatial databases (PostGIS). --- # The Matrix Model The **DE-9IM** matrix is based on a 3x3 intersection matrix:  -- Where: - **dim** is the dimension of the intersection and -- - I is the interior - B is the boundary - E is the exterior Of respective geometries `a` and `b` -- - Empty sets are denoted as **F** - non-empty sets are denoted with the maximum dimension of the intersection *{0,1,2}* --- A simplier (binary) version of this matrix can be created by mapping all non-empty intersections {0,1,2} to TRUE. ![](lec-img/12-de-9Im-matrix-simple.svg) -- Where `II` would state: "Does the Interior of a overlap with the Interior of b in a way that produces a point (0), line (1), or polygon (2)" -- Where `IB` would state: "Does the Interior of "a" overlap with the Boundary of "b" in a way that produces a point (0), line (1), or polygon (2)" --- Both matrix forms: - dimensional {0,1,2,F} - boolean {T,F} Can be serialize as a "DE-9IM string code" representing the matrix in a single string element - The Open Geospatial Consortium (OGC) has standardized the typical spatial predicates (Contains, Crosses, Intersects, Touches, etc.) as *boolean* functions, and the DE-9IM model as a function that returns the DE-9IM code, with domain of {0,1,2,F} - This DE-9IM string code is a standardized format for data interchange. --- # Illustration  Reading from left-to-right and top-to-bottom, the DE-9IM(a,b) string code is '212101212' --- # Spatial Predicates - Spatial predicates are topologically-invariant binary relations based on the DE-9IM. -- - "named spatial predicates" have been defined for some common relations. -- - A few spatial predicate functions that can be derived (expressed by masks) from DE-9IM include (* = wildcard): -- **Equals**: `T*F**FFF*` "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other" -- **Disjoint**: `FF*FF*****` "a and b are disjoint: they have no point in common. They form a set of disconnected geometries." -- **Touches**: `FT*******` | `F**T*****` | `F***T****` "a touches b: they have at least one point in common, but their interiors do not intersect." -- **Contains**: `T*****FF**` "a contains b: geometry b lies in a, and the interiors intersect" -- **Covers**: `T*****FF*` | `*T****FF*` | `***T**FF*` | `****T*FF*` "a covers b: geometry b lies in a." --- # Example Dataset - Geometry X is a 3 feature polygon colored in red - Cemetery Y is a 4 feature polygon colored in blue  --- # Spatial Predicates in R ```r st_relate(x,y) ``` ``` [,1] [,2] [,3] [,4] [1,] "212FF1FF2" "FF2FF1212" "212101212" "FF2FF1212" [2,] "FF2FF1212" "212101212" "212101212" "FF2FF1212" [3,] "FF2FF1212" "FF2FF1212" "212101212" "FF2FF1212" ``` ```r st_relate(x,x) ``` ``` [,1] [,2] [,3] [1,] "2FFF1FFF2" "FF2F01212" "FF2F11212" [2,] "FF2F01212" "2FFF1FFF2" "FF2FF1212" [3,] "FF2F11212" "FF2FF1212" "2FFF1FFF2" ``` ```r st_relate(y,y) ``` ``` [,1] [,2] [,3] [,4] [1,] "2FFF1FFF2" "FF2FF1212" "212101212" "FF2FF1212" [2,] "FF2FF1212" "2FFF1FFF2" "212101212" "FF2FF1212" [3,] "212101212" "212101212" "2FFF1FFF2" "FF2FF1212" [4,] "FF2FF1212" "FF2FF1212" "FF2FF1212" "2FFF1FFF2" ``` --- ## Binary logical operations Returns either a *sparse* matrix ```r st_intersects(x,y) ``` ``` Sparse geometry binary predicate list of length 3, where the predicate was `intersects' 1: 1, 3 2: 2, 3 3: 3 ``` or a *dense* matrix ```r st_intersects(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] TRUE FALSE TRUE FALSE [2,] FALSE TRUE TRUE FALSE [3,] FALSE FALSE TRUE FALSE ``` --- ```r st_disjoint(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE TRUE FALSE TRUE [2,] TRUE FALSE FALSE TRUE [3,] TRUE TRUE FALSE TRUE ``` ```r st_touches(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` ```r st_within(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` --- ```r st_contains(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] TRUE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` ```r st_overlaps(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE TRUE FALSE [2,] FALSE TRUE TRUE FALSE [3,] FALSE FALSE TRUE FALSE ``` ```r st_equals(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` --- ```r st_covers(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] TRUE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` ```r st_covered_by(x, y, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` ```r st_equals_exact(x, y,0.001, sparse = FALSE) ``` ``` [,1] [,2] [,3] [,4] [1,] FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE [3,] FALSE FALSE FALSE FALSE ``` --- # Example - You have been tasked by the USACE of identify the population living along the Mississippi River systems - You are interested in the county level since most flood control measures and flood response efforts are enforced by county EMAs - Federal funding however is administered at the state level so you need population counts aggregated to state... -- ```r # Global River Shapefile filtered to the Mississippi System miss = read_sf('/Users/mikejohnson/github/spds/lectures/data/majorrivers_0_0/MajorRivers.shp') %>% filter(SYSTEM == "Mississippi") # Which counties intersect this system misscount = st_filter(us_counties(), miss, .predicate = st_intersects) # Find all counties in the intersecting states counties = filter(us_counties(), state_name %in% c(misscount$state_name) ) # Find all impacted states states = filter(us_states(), state_name %in% c(misscount$state_name) ) ``` --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r *ggplot() ``` ] .panel2-q11-auto[  ] --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r ggplot() + * geom_sf(data = counties, lty = 3) ``` ] .panel2-q11-auto[  ] --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r ggplot() + geom_sf(data = counties, lty = 3) + * geom_sf(data = states, fill = NA, size = 1) ``` ] .panel2-q11-auto[  ] --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r ggplot() + geom_sf(data = counties, lty = 3) + geom_sf(data = states, fill = NA, size = 1) + * geom_sf(data = misscount, fill = 'red', alpha = .5) ``` ] .panel2-q11-auto[  ] --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r ggplot() + geom_sf(data = counties, lty = 3) + geom_sf(data = states, fill = NA, size = 1) + geom_sf(data = misscount, fill = 'red', alpha = .5) + * geom_sf(data = miss, col = "blue") ``` ] .panel2-q11-auto[  ] --- count: false ##Intersecting Counties .panel1-q11-auto[ ```r ggplot() + geom_sf(data = counties, lty = 3) + geom_sf(data = states, fill = NA, size = 1) + geom_sf(data = misscount, fill = 'red', alpha = .5) + geom_sf(data = miss, col = "blue") + * theme_linedraw() ``` ] .panel2-q11-auto[  ]  --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r *st_filter(cities, misscount, .predicate = st_within) ``` ] .panel2-q12-auto[ ``` Simple feature collection with 3262 features and 3 fields Geometry type: POINT Dimension: XY Bounding box: xmin: -112.6693 ymin: 29.2134 xmax: -77.6454 ymax: 48.8571 Geodetic CRS: WGS 84 # A tibble: 3,262 x 4 city state_name population geometry * <chr> <chr> <dbl> <POINT [°]> 1 Nelson Wisconsin 351 (-92.0044 44.4214) 2 Fennimore Wisconsin 2482 (-90.6491 42.9793) 3 Whitehall Wisconsin 1583 (-91.3476 44.3705) 4 River Falls Wisconsin 15873 (-92.6244 44.8608) 5 Livingston Wisconsin 643 (-90.4337 42.9001) 6 Hillsboro Wisconsin 1402 (-90.3365 43.6559) 7 Ferryville Wisconsin 175 (-91.0935 43.3516) 8 Eleva Wisconsin 665 (-91.4705 44.5763) 9 Independence Wisconsin 1308 (-91.4172 44.3328) 10 Patch Grove Wisconsin 197 (-90.9725 42.9406) # … with 3,252 more rows ``` ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% * group_by(state_name) ``` ] .panel2-q12-auto[ ``` Simple feature collection with 3262 features and 3 fields Geometry type: POINT Dimension: XY Bounding box: xmin: -112.6693 ymin: 29.2134 xmax: -77.6454 ymax: 48.8571 Geodetic CRS: WGS 84 # A tibble: 3,262 x 4 # Groups: state_name [23] city state_name population geometry <chr> <chr> <dbl> <POINT [°]> 1 Nelson Wisconsin 351 (-92.0044 44.4214) 2 Fennimore Wisconsin 2482 (-90.6491 42.9793) 3 Whitehall Wisconsin 1583 (-91.3476 44.3705) 4 River Falls Wisconsin 15873 (-92.6244 44.8608) 5 Livingston Wisconsin 643 (-90.4337 42.9001) 6 Hillsboro Wisconsin 1402 (-90.3365 43.6559) 7 Ferryville Wisconsin 175 (-91.0935 43.3516) 8 Eleva Wisconsin 665 (-91.4705 44.5763) 9 Independence Wisconsin 1308 (-91.4172 44.3328) 10 Patch Grove Wisconsin 197 (-90.9725 42.9406) # … with 3,252 more rows ``` ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% * summarize(tot = sum(population)/1e6) ``` ] .panel2-q12-auto[ ``` Simple feature collection with 23 features and 2 fields Geometry type: MULTIPOINT Dimension: XY Bounding box: xmin: -112.6693 ymin: 29.2134 xmax: -77.6454 ymax: 48.8571 Geodetic CRS: WGS 84 # A tibble: 23 x 3 state_name tot geometry <chr> <dbl> <MULTIPOINT [°]> 1 Arkansas 1.15 ((-94.4168 35.2335), (-94.4107 35.1877), (-94.3799 35.02… 2 Colorado 0.324 ((-107.092 39.4051), (-107.054 39.6463), (-107.0413 39.3… 3 Illinois 0.588 ((-91.4277 40.3509), (-91.3829 40.5457), (-91.3798 39.93… 4 Indiana 0.453 ((-87.9308 38.1291), (-87.9151 38.2042), (-87.8955 37.93… 5 Iowa 0.829 ((-96.3901 42.4959), (-96.3516 42.3975), (-96.3035 42.31… 6 Kansas 1.06 ((-102.0078 38.0415), (-101.7784 37.9618), (-101.2587 37… 7 Kentucky 1.78 ((-89.1836 36.565), (-89.102 36.7596), (-89.0822 36.9658… 8 Louisiana 2.51 ((-91.7191 31.4436), (-91.6179 30.594), (-91.592 30.7383… 9 Minnesota 5.87 ((-95.1303 47.5211), (-95.1162 45.5003), (-95.106 47.866… 10 Mississippi 0.296 ((-91.4152 31.496), (-91.3867 31.5437), (-91.3521 31.575… # … with 13 more rows ``` ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% * st_drop_geometry() ``` ] .panel2-q12-auto[ ``` # A tibble: 23 x 2 state_name tot * <chr> <dbl> 1 Arkansas 1.15 2 Colorado 0.324 3 Illinois 0.588 4 Indiana 0.453 5 Iowa 0.829 6 Kansas 1.06 7 Kentucky 1.78 8 Louisiana 2.51 9 Minnesota 5.87 10 Mississippi 0.296 # … with 13 more rows ``` ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% * ggplot() ``` ] .panel2-q12-auto[  ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% ggplot() + * geom_col(aes(x = reorder(state_name, -tot), y = tot)) ``` ] .panel2-q12-auto[  ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% ggplot() + geom_col(aes(x = reorder(state_name, -tot), y = tot)) + * theme_linedraw() ``` ] .panel2-q12-auto[  ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% ggplot() + geom_col(aes(x = reorder(state_name, -tot), y = tot)) + theme_linedraw() + * theme(axis.text.x = element_text(angle = 90) ) ``` ] .panel2-q12-auto[  ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% ggplot() + geom_col(aes(x = reorder(state_name, -tot), y = tot)) + theme_linedraw() + theme(axis.text.x = element_text(angle = 90) ) + * labs(title = "Population living along Mississippi River System", * x = "", * y = "Population (millions)") ``` ] .panel2-q12-auto[  ] --- count: false ##Intersecting Populations .panel1-q12-auto[ ```r st_filter(cities, misscount, .predicate = st_within) %>% group_by(state_name) %>% summarize(tot = sum(population)/1e6) %>% st_drop_geometry() %>% ggplot() + geom_col(aes(x = reorder(state_name, -tot), y = tot)) + theme_linedraw() + theme(axis.text.x = element_text(angle = 90) ) + labs(title = "Population living along Mississippi River System", x = "", y = "Population (millions)") *ggsave(filename = "lec-img/lecture-12-pop-count.png", height = 4) ``` ] .panel2-q12-auto[  ]  --- ## Assignment Identify all the states that touch a state of your choice: 1. Filter `us_states()` to a state of your choice 2. Use a spatial `filter` and the correct `predicate` to identify the states that **touch** Colorado 3. Make a map that includes: 1. all states 2. those states that touch Colorado in red with a **alpha** level of .5 3. make your map using `ggplot` and include themes and labels 4. Save your image with `ggsave` --- class: middle, center # Submission: Submit your R script and image to Gauchospace. --- class: middle, center, inverse # END


Alleged Footage of Mysterious Aircraft at US Top Secret Facility Near Area 51 Emerges Online
The Tonopah Test Range is a restricted military polygon located in the vicinity of the eponymous town in the state of Nevada. It is currently used for nuclear weapons stockpile reliability testing, research and development of fusing and firing systems, as well as testing nuclear weapon delivery systems.
A YouTube blogger nicknamed TheArea51Rider has uploaded a video in which he claims that he filmed an unidentified aircraft at a restricted test range southeast of Tonopah, Nevada.
In the video, the authenticity of which cannot be confirmed, the blogger recorded himself ostensibly nearby the military site, located in the vicinity of the notorious and highly-classified Area 51. The YouTuber showed images of an open hangar with what appeared to be an aircraft inside. However, he failed to identify the vehicle, pondering whether it is some sort of new secretive military plane.
The Tonopah military site is a hotspot for various conspiracy theories surrounding the use of experimental and classified aircraft.
However, it is less popular among conspiracy theorists than the nearby Area 51 that attracts UFO enthusiasts who are convinced that the government is hiding the existence of extraterrestrial technology.


Trigger Scrollposition Demo
Simple trigger
This element triggers a variable when reaching the top.
This element listens to the variable.
Scroll areas, multiple directions
This is the trigger
visible
top
right
bottom
left
Offsets
This is the trigger (offset: 20px)
visible
top
right
bottom
left
works with scrolling-offset
the trigger link is above this element (with scrolling-offset of 100px)
Navigation example (using stacks)
Entry 1
Entry 2
Entry 3
Entry #1
Entry #2
Entry #3


ReactJS
Tools we will use:
window
users, but the normal cmd terminal
is also fine.Check for installation using terminal, as long as a version
is visible - you are good:
NodeJS
node --version
Notice: NodeJS
should also provide you npm
and npx
.
npm --version
npx --version
In the terminal, in your desired working directory (run one by one):
npx create-react-app my-app
cd my-app
npm install
npm start
More info at ReactJS website
In your app's directory:
code .
or open the working directory in your VSCode.
Delete these 4 files
In index.js
, delete these lines, Remember: ctrl + s
to save, React will render any changes that you made:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker'; //<------Delete
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// If you want your app to work offline and load faster, you can change //<------Delete
// unregister() to register() below. Note this comes with some pitfalls. //<------Delete
// Learn more about service workers: https://bit.ly/CRA-PWA //<------Delete
serviceWorker.unregister(); //<------Delete
Expecting:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
In App.js
, delete these lines:
import React from 'react';
import logo from './logo.svg'; //<------Delete
import './App.css';
function App() {
return (

Edit src/App.js and save to reload.

Learn React

);
}
export default App;
Expecting:
import React from 'react';
import './App.css';
function App() {
return (

Edit src/App.js and save to reload.

Learn React

);
}
export default App;
Let's make a Profile Page. Create Profile.js
under src
, directory: src/Profile.js
In src/Profile.js
:
import React from 'react';
export default function Profile() {
//HTML goes into

return (

HTML IN HERE

Example:

HI! My name is THAI

BIO:

I like to breathe

I lost too much money in the stock market please help :(

IDK what to write here

);
}
Notes: ReactJS support HTML
within Javascript
files. I suggest familiarize yourself with HTML and JS.
If you notice, within this Profile
function (aka method), HTML
is written within the return
box. It is very common to return
a HTML component
in JS function
.
Let's install a new routing package for ReactJS. In shell:
`ctrl + c` to cancel react server
npm install react-router-dom
npm start
In src/index.js
, import react-router-dom
, Profile.js
and create routes
:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { Route, Link, BrowserRouter as Router } from 'react-router-dom'; //Import react-router-dom
import Profile from './Profile.js'; //Import our Profile.js page
//Generating routes
const routing = (
<Router>

<Route exact path="/" component={App} />
<Route path="/profile" component={Profile} />

</Router>
)
//Render "routing" from above
ReactDOM.render(
routing,
document.getElementById('root')
);
You just made your first react-page! Here is a great tutorial if you are interested.


This application and its components are available under MIT license. It is separated into two GitHub repositories:
- The FAIR Evaluator back-end: maintained by Mark D. Wilkinson
- The FAIR Evaluator font-end: maintained by Dominique Batista


--- layout: member-haha title: Patrick Leow category: member --- I am Patrick Leow.
Here are some suburban poverty things I'm working on.
Here is my dog, she's a husky, and her name is A.J.
Poverty has risen dramatically, and become increasingly concentrated, in suburban Virginian towns in like Dale City since the year 2000. In the same timeframe the average commute has increased by 84%. The mismatched geography of jobs intensifies the effects of inequality in these newly-poor suburbs.


Ourzobia PHP
Welcome to Ourzobia PHP
Configuration
User Features
Admin Features
Screenshots
Ourzobia PHP
Docs
»
Ourzobia PHP Documentation
Ourzobia PHP Documentation
¶
Welcome to Ourzobia PHP
Welcome to Ourzobia PHP
Server Requirements
How to install
License
Configuration
¶
Configuration
Contact Configuration
Control Configuration
Setting up Crone Jobs
Design Configuration
Display Features
Main Configuration
Payment Configuration
Generating Sitemaps
System Configuration
Features
¶
User Features
Account
Dashboard
Multi Level
Packages
Playground
Recommitments
Referrals
Shop
Maintenance
Testimonies
Timeline
Admin Features
Content
Dashboard
Integrations
Investments
Levels (User Hierarchy)
Manage User
Notice Board
Packages
Screenshots


Built with love by @daigz
Bring Bootstrap's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.


I’ve been in France for over a month now staying in Grenoble while riding my bike through the French alps. In my time here I’ve noticed a lot of small differences between our countries and cultures. These kind of differences and the circumstances that brought them about fascinates me.
Cars and Driving
90% of cars are hatchbacks, the other 10% are vans. I have seen one 4X4 and one ute in a month.
Traffic lights are minimal, not in frequency but in each installation. There is only one large set of lights and one small set of lights (for bicycles) for each direction of traffic. Each set is on the close side of the intersection so if cars roll too far into the intersection they can’t see the lights change.
Traffic lights have no buttons for pedestrians nor pressure sensors for cars. They cycle based on time and nothing else. From what I can tell the cycle timing never changes.
Taxis are luxury cars. The only BMW, Mercedes and Audis I’ve seen in France have been taxis. They’re also minimally branded, the only thing that distinguishes them as cabs from the outside is a small roof mounted sign.
Bicycle commuting is very popular here and bikes are treated as first class road users by cars. Bikes flaunt the road rules constantly yet are never treated in anger or frustration by motorists. Bikes are calmly given right of way in all situations whether they’re breaking the rules or not.
Supermarkets and Food
Supermarkets sell alcohol.
Cashiers have seats.

You won’t be given plastic bags unless you explicitly ask for them and often they cost a small amount. From what I’ve seen almost everyone has their own bags/trolley/basket.
Cafes rarely serve anything more than the most basic pre-prepared food, often not even that.
“American style” bread (i.e. non-baguette sliced bread loafs) come almost exclusively in half loaves (compared to Australian loaf size).
Drinks are measured in centilitres.
Coke cans come in 33cl, bottles come in 50cl and bottle caps are about 5mm shallower than bottles back home (tiny differences like that are interesting to me).
Other Stuff
ATMs dispense various denominations. For example, if you ask for €100 the default is usually 1 x 50, 2 x 20 and 1 x 10. Often you can specify the exact denominations, i.e. get €100 in ten 10s if you want.
French computer keyboards are frustratingly similar to the English qwerty layout. Numbers require the shift modifier!
Cigarette smoking is much more common here and heavily skews young. It seems everyone in their 20s here smokes and that’s rare back home.
Dogs are allowed everywhere: on buses, trains, in shops, in restaurants. A couple walked into a restaurant in Briançon with their beagle. They sat down, their beagle sat up on the third chair and stayed there while they ate their meals.


Package org.apache.cayenne.util
General utility classes.
-
Interface Summary Interface Description CayenneMapEntry Defining a double-linked named entry in CayenneMap.EntityMergeListener EntityMergeListener interface defines API useful for listening to EntityMergeSupport processing.PersistentObjectCollection<E> Simple interface to unify PersistentObject* collections in way of setting properties directlyXMLSerializable Interface for Cayenne objects that can be saved to XML. -
Class Summary Class Description ArrayUtil CompareToBuilder Assists in implementingComparable.compareTo(Object)
methods.ConversionUtil A collection of static conversion utility methods.DeepMergeOperation An operation that merges changes from an object graph, whose objects are registered in some ObjectContext, to peer objects in an ObjectConext that is a child of that context.DeleteRuleUpdater DeleteRuleUpdater is responsible for auto-setting delete rules for object relationshipsEqualsBuilder Assists in implementingObject.equals(Object)
methods.EventUtil Contains access stack events related utility methods.GenericQueryResult<T> Generic implementation of QueryResult using List as QueryResultItem storage.GenericResponse A simple serializable implementation of QueryResponse.HashCodeBuilder Assists in implementingObject.hashCode()
methods.IDUtil helper class to generate pseudo-GUID sequences.IncrementalListResponse A QueryResponse that contains a sublist of the query result.IndexPropertyList A List implementation that would maintain its internal ordering based on some object numeric "index" property.Invocation Invocation represents a dynamic method invocation bound to a specific target.ListResponse A QueryResponse optimized to hold a single object or data row list.LocalizedStringsHandler Provides access to various modeler resources (mainly strings) obtained via a ResourceBundle.MemoryBlob A Blob implementation that stores content in memory.MemoryClob A Clob implementation that stores contents in memory.ObjectContextGraphAction A base implementation of a helper class to handleObjectContext.propertyChanged(org.apache.cayenne.Persistent, String, Object, Object)
processing on behalf of an ObjectContext.ObjectContextQueryAction A helper class that implementsDataChannel.onQuery(ObjectContext, Query)
logic on behalf of an ObjectContext.ObjectDetachOperation An operation that creates a subgraph of detached objects, using the PrefetchTree to delineate the graph boundaries.PersistentObjectHolder<E> A ValueHolder implementation that holds a single Persistent object related to an object used to initialize PersistentObjectHolder.PersistentObjectList<E> A list of persistent objects lazily resolved on the first access.PersistentObjectMap PersistentObjectSet<E> ProcedureResultBuilder<T> QueryResultBuilder RelationshipFault<E> An abstract superclass of lazily faulted to-one and to-many relationships.ResultIteratorIterator<T> ShallowMergeOperation An operation that merges changes from a single object registered in some ObjectContext, to a peer object in an ObjectConext that is a child of that context.SingleEntryMap<K,V> Optimized mutable single-entry map.SoftValueMap<K,V> Map that stores values wrapped intoSoftReference
ToStringBuilder A utility class to simplify implementation of Object toString methods.Util Contains various unorganized static utility methods used across Cayenne.WeakValueMap<K,V> Map that stores values wrapped intoWeakReference
XMLEncoder A helper class to encode objects to XML.


Last Name
First Name
Address
City
State
Zip/Postal Code
Country
Bulgaria
Macedonia
Greece
Phone(country code,
area code,
number)
(+
)
E-Mail
Birth date
Gender
Male
Female
Starting Date
Spring 2015
Summer 2015
Comments/Questions


Acquiring memory using WinPmem is a very simple process:
F:\>winpmem.exe -o test.aff4 -dd
2019-05-17 02:26:22 I This is The WinPmem memory imager. version 3.3rc1
2019-05-17 02:26:22 I Extracted 45368 bytes into C:\Users\test\AppData\Local\Temp\pmeB5CC.tmp
2019-05-17 02:26:22 I Driver Unloaded.
2019-05-17 02:26:22 I Loaded Driver C:\Users\test\AppData\Local\Temp\pmeB5CC.tmp
2019-05-17 02:26:22 I Setting acquisition mode 2
2019-05-17 02:26:22 I CR3: 0x00001AA000
5 memory ranges:
Start 0x00001000 - Length 0x0009E000
Start 0x00100000 - Length 0x00002000
Start 0x00103000 - Length 0xBFDDD000
Start 0xBFF00000 - Length 0x00100000
Start 0x100000000 - Length 0x52400000
2019-05-17 02:26:22 W Output file test.aff4 will be truncated.
2019-05-17 02:26:22 I Setting acquisition mode 2
2019-05-17 02:26:22 I Setting acquisition mode 2
2019-05-17 02:26:22 I Dumping Range 0 (Starts at 0x001000, length 0x09e000
2019-05-17 02:26:22 I Dumping Range 1 (Starts at 0x100000, length 0x002000
2019-05-17 02:26:22 I Dumping Range 2 (Starts at 0x103000, length 0xbfddd000
2019-05-17 02:26:23 I Reading 2103000 32 MiB / 4387 (25 MiB/s)
2019-05-17 02:26:24 I Reading 4103000 64 MiB / 4387 (26 MiB/s)
2019-05-17 02:26:25 I Reading 6103000 96 MiB / 4387 (28 MiB/s)
The -o
flag instructs WinPmem to create a new AFF4 volume with the
name test.aff4
.
The -d flag instructs WinPmem to produce more vebose output (twice for progress reporting).
We see that WinPmem extracts the kernel driver into the temporary directory and loads it into the kernel. The driver provides access to raw memory via a number of acquisition methods but the default is usually the best.
WinPmem then displays the detected physical memory ranges and continues to dump each range.
By default WinPmem uses 2 threads to compress the image, however
most machines can use multiple cores. Using the --thread
flag you
may increase this number. Using more threads will result in quicker
compression, and therefore quicker imaging.
By default WinPmem will use an AFF4 image and will store the memory
image using an AFF4 Map object with a compressed backing stream. If
you want to produce a raw file format or an elf file, you may
specify the --format elf
or --format raw
to produce these image
formats. Note that due to limitations in these image formats it is
not possible to include additional streams. Neither of these formats
support compression either (but ELF format supports sparse data
runs).


A few people shared with me they never thought of accessibility until someone asked them about it. I believe this holds true for many people. We take for granted our basic abilities of sight and hearing. We then, unknowingly, neglect to consider the difficulties others who do not have the same abilities would encounter as they navigate through their everyday lives. As digital screen technology continue to gain prevalence in our daily activities, it is imperative for web developers and designers to take into consideration how someone without sight or hearing can use their website.
This week I evaluated for accessibility the same website I analyzed in my first post for usability, commonsensemedia.org. The site’s purpose is to provide parents and educators with information, reviews, and guidelines on the different types of media available. The website’s aim is to help parents and educators make informed decisions about the media kids encounter. They do this with reviews from adults and kids along with attributing different ratings on the media, such as age appropriateness, type of message, violence, sex, language, etc.
Accessibility Checker
I used the WCAG 2.1 at a Glance as reference standards for my evaluation. I then used a free accessibility checker from the University of Toronto. The Accessibility Checker is an open source web accessibility evaluation tool that was developed in 2009 by the Inclusive Design Research Centre of the University of Toronto. With this tool, the user can submit a web page via its URL or by uploading its HTML file. I used the tool to evaluate the commonsensemedia.org site against the WCAG 2.0 guidelines.
The report on potential problems listed the lack of text alternatives for non-text content as the majority of the problems. The website is image heavy with most images lacking alternative text descriptions. Another potential problem is distinguishability, namely is it easy for users to see and hear content? The checker recommends separating the foreground and backgrounds. The report also listed flashing images may cause seizures, it recommends using images that contain three or less flashes.
Conclusion
From the accessibility checker many problems and potential problems can be resolved through the addition of text help users. Because the site is image heavy, using the checker's recommendation to "Add text to the element or the title attribute of the element or, if an image is used within the anchor, add Alt text to the image." will solve the majority of problems. The checker also recommended that the site incorporate content that can be presented in different ways using a simpler layout. Again, this can be achieved through adding a label to the elements.
From this analysis, I find that it will take a conscious effort to make a website accessible. If the site relies on images, it will take time to add descriptions to each image. However, in the scope of web development, adding texts to elements is an easy task. Making accessibility a part of web design will open your site to a wider population of users. Ultimately, isn't that a desired goal of a website?


Let's get started: Organize your ideas.
BackLog
In Progress
Finished
All form fields are required.
Priority Level:
Progress:


Soccer
I also have a keen interest in soccer and often play football with my friends when the weather is nice.
I also really enjoy watching Champions League matches. i support Manchester United and I try to watch their games when I'm not working or caught up with college work.


FAITHFUL A film review by Clarissa Oon Copyright 1996 The Flying Inkpot
Directed by: Paul Mazursky Written by: Chazz Palminteri Cast: Cher (Margaret), Chazz Palminteri (Tony), Ryan O'Neal (Jack)
Produced by: Miramax International Length: 100 mins Rating: *** out of ***** Theatres: Shaw
'TILL DEATH DO US PART' COMEDY MISSES ITS MARK
There's something extremely unsatisfying about a movie that keeps its fingers on your pulse, but fails to push the right buttons. And FAITHFUL is a one of those movies that has its moments, but never quite takes off as a whole.
Actor Chazz Palminteri's comic thriller is an inspired tale of a wife who discovers that her husband has hired a hitman to dispose of her on their twentieth wedding anniversary. From its tantaliser of an opening, FAITHFUL throws up witty one-liners, sexual tension between repressed housewife Margaret and broodingly neurotic gunman Tony, as well as a potentially compelling debate on whether it's possible to remain faithful to the same person all your life.
For example, Margaret asks Tony, in the desperate curiosity of one about to die, whether he's ever slept with a whore. He replies, haughtily, "I only sleep with whores."
The key to Palminteri's script is the dialogue between Margaret and Tony, which deftly juggles that fine line between irreverent and seriousness. And director Paul Mazursky (ENEMIES, A LOVE STORY) gives the dialogue considerable attention, producing some classy moments. Cher turns in an excellent performance as Margaret, bringing to it inimitable comic timing and an unexpected poignance. Palminteri reprises his familiar hitman role, though with less panache than as the memorable Cheech in BULLETS OVER BROADWAY.
But the movie tries to be a bit too clever. The numerous flashbacks and cuts to Margaret's husband Jack are distracting and often ineffectual; Ryan O'Neal does nothing for the role of Jack with his wooden, humourless mug, and the flashbacks only serve to draw us away from the immediacy of the Margaret-Tony interplay. Worse of the lot are the cheesy slow-mo shots of Jack's mistress sashaying about.
The biggest culprit of the 'trying-too-hard' syndrome is the movie's attempt to moralize, it's insistence on Making A Point. Like the wide-angled shots of Jack and Margaret's opulent mansion; read: money can't buy happiness. Or the constant rehashing of the 'faithfulness' theme--why can't men be faithful, why women shouldn't bother to be faithful--which gets to be about as annoying as a fly buzzing about your head.
Like the intense, tough-talking Tony who can't bring himself to pull a trigger on any woman, FAITHFUL has a lot behind it, but manages to shoot itself in the foot. Which is why, despite its potential, despite actors the calibre of Cher and Palminteri, FAITHFUL won't win any critical acclaim. A pity.
Clarissa Oon has no qualms about being faithful--to her dog.
The Flying Inkpot Rating System: * Wait for the TV2 broadcast. ** A little creaky, but still better than staying at home with Gotcha! *** Pretty good, bring a friend. **** Amazing, potent stuff. ***** Perfection. See it twice.
____________________________________________________________
This movie review was written for THE FLYING INKPOT, the
Singaporean zine that dares to say "Bok." For a spanking
good time, visit THE FLYING INKPOT at <http://webvisions.com.sg/inkpot/>
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


--- layout: tagpage title: "Mirror Lab" tag: mirrorlab ---
Mirror Lab aims to be the most fun, easy to use and powerful photo-editing app to creatively enhance pictures, make mirror photos, kaleidoscope images and distort faces and scenery. Animation and 3D rendering capabilities make this app an extremely versatile piece of software.
Download Mirror Lab by Ilixa


Assefa B Woldu
Unafffiliated
Retired as of January 1, 2020 but worked for U.S. Bank as Operational Manager over 10 years and 25 years altogether.
Masters in Organizational Managements from University of Phoenix in Aurora Colorado Bachelors degree in Business and Technology from Metropolitan State University in Denver
80011
I spent most of my working life in financial institution. I managed different departments, by following polices and procedures of the company, I was able to successfully managed and met the goal of the departments and company by increasing the profitability for investors, stakeholders as well as for employees. As a leader of the departments I was able to successfully organize and communicate between the employees and higher management of the organization. That led a win win situation to both sides, the organization and the employees.
The only time I have been participating in political activities was in elections. I have been voting to whom I thought will do the job instead of political affiliations. When it comes to donation, I did receive emails and some letters from democratic parties asking for donations, and I was able to donate very little in 2020 but not sure if I did in 2015.
I didn't participate in any political and Civil organizations but participated in Wello Community in Colorado Association. I was a chairman for the association for over six years. The association was created to support / help, encourage the association members and to stand together during difficult and good times.
Recently, I was introduced to the Colorado Independent Redistricting Commission and became interested in participating to contribute to the community for the good of the state. I am retired as of January 1, 2020 but still able to do more work and would like to use the opportunity to contribute.
I practiced seeing things objectively and based on my analysis and understanding of a situation, I promote consensus. To be fair, I base my decisions on the assessments of the situation and what the outcome will be.
While working in the bank, I participated in many projects that involved changing, improving and modifying or solving problems. In order to accomplish any of those: research, data analysis or interpretation, looking at different reports, involving other department personnel that could be affected by the change to be made and clear communication with participating parties as what to be done is essential. Problem solving has its own steps: Defining the problem, brainstorming possible solutions, selecting the best possible solution, applying the solution, do follow up and get feedback and if it woks mission accomplished, if not go to the next possible solution and so on. That was how we were getting things accomplished.
Male