CovsirPhy: COVID-19 data with SIR model¶
CovsirPhy is a Python package for COVID-19 (Coronavirus disease 2019) data analysis with SIR-derived models. Please refer to “Method” part of COVID-19 data with SIR model notebook in Kaggle to understand the methods.
SIR-F is a customized SIR-derived ODE model. To evaluate the effect of measures, parameter estimation of SIR-F will be applied to subsets of time series data in each country. Parameter change points will be determined by S-R trend analysis.
Functionalities¶
Downloading and cleaning data
Epidemic data: the number of confirmed/fatal/recovered cases
Population data: raw data must include country, (province), values of population
Data visualization with Matplotlib
S-R Trend analysis with Optuna and scipy.optimize.curve_fit
Numerical simulation of ODE models with scipy.integrate.solve_ivp
Description of ODE models
Basic class of ODE models
SIR, SIR-D, SIR-F, SIR-FV and SEWIR-F model
Parameter Estimation of ODE models with Optuna and numerical simulation
Simulate the number of cases with user-defined parameter values
Inspiration¶
Monitor the spread of COVID-19
Keep track parameter values/reproductive number in each country/province
Find the relationship of reproductive number and measures taken in each country/province
Trying now¶
The author is trying to add the following functionalities. - Speed-up S-R trend analysis and hyperparameter estimation of ODE models - Keep track parameter values/reproductive number of all countries with a simple code - Find relationship of reproductive number and measures automatically
If you have ideas or need new functionalities, please join this project. Any suggestions with Github Issues are always welcomed.
Installation and dataset preparation¶
We have the following options to start analysis with CovsirPhy. Datasets
are not included in this package, but we can prepare them with
DataLoader
class.
Installation |
Dataset preparation |
|
|---|---|---|
Standard users |
pip/pipenv |
Automated with |
Developers |
git-cloning |
Automated with |
Kagglers (local environment) |
git-cloning |
Kaggle API and Python script |
Kagglers (Kaggle platform) |
pip |
Kaggle Datasets |
We will use the following datasets.
Descr iptio n |
URL |
|
|---|---|---|
The numbe r of cases (JHU) |
COVID -19 Data Repos itory by the Cente r for Syste ms Scien ce and Engin eerin g (CSSE ) at Johns Hopki ns Unive rsity . |
https ://gi thub. com/C SSEGI SandD ata/C OVID- 19 |
The numbe r of cases in Japan |
Lisph ilar (2020 ), COVID -19 datas et in Japan . |
https ://gi thub. com/l isphi lar/c ovid1 9-sir /tree /mast er/da ta |
Popul ation in each count ry |
The World Bank Group (2020 ), THE WORLD BANK, Popul ation , total . |
https ://da ta.wo rldba nk.or g/ind icato r/SP. POP.T OTL |
Gover nment Respo nse Track er (OxCG RT) |
Thoma s Hale, Sam Webst er, Anna Pethe rick, Toby Phill ips, and Beatr iz Kira. (2020 ). Oxfor d COVID -19 Gover nment Respo nse Track er. Blava tnik Schoo l of Gover nment . |
https ://gi thub. com/O xCGRT /covi d-pol icy-t racke r |
If you want to use a new dataset for your analysis, please kindly inform us via GitHub Issues with “Request new method of DataLoader class” template.
1. Standard users¶
Covsirphy is available at PyPI (The Python Package Index): covsirphy and supports Python 3.7 or newer versions.
pip install covsirphy
Then, download the datasets with the following codes, when you want to
save the data in input
directory.
import covsirphy as cs
data_loader = cs.DataLoader("input")
jhu_data = data_loader.jhu()
japan_data = data_loader.japan()
population_data = data_loader.population()
oxcgrt_data = data_loader.oxcgrt()
If input
directory has the datasets, DataLoader
will load the
local files. If the datasets were updated in remote servers,
DataLoader
will update the local files automatically.
We can get descriptions of the datasets and raw/cleaned datasets easily. As an example, JHU dataset will be used here.
# Description (string)
jhu_data.citation
# Raw data (pandas.DataFrame)
jhu_data.raw
# Cleaned data (pandas.DataFrame)
jhu_data.cleaned()
2. Developers¶
Developers will clone this repository with git clone
command and
install dependencies with pipenv.
git clone https://github.com/lisphilar/covid19-sir.git
cd covid19-sir
pip install wheel; pip install --upgrade pip; pip install pipenv
export PIPENV_VENV_IN_PROJECT=true
export PIPENV_TIMEOUT=7200
pipenv install --dev
Developers can perform tests with
pipenv run pytest -v --durations=0 --profile-svg
and call graph will
be saved as SVG file (prof/combined.svg).
Windows user need to install Graphviz for Windows in advance.
Debian/Ubuntu user need to install Graphviz with
sudo apt install graphviz
in advance.
If you can run make
command,
|
Install pipenv and the dependencies of CovsirPhy |
|
Run tests using Pytest |
|
Update sphinx document |
|
Run example codes |
|
Clean-up output files and pipenv environment |
We can prepare the dataset with the same codes as that was explained in “1.Preferred” subsection.
3. Kagglers (local environment)¶
As explained in “2. Developers” subsection, we need to git-clone this repository and install the dependencies when you want to uses this package with Kaggle API in your local environment.
Then, please move to account page and download “kaggle.json” by selecting “API > Create New API Token” button. Copy the json file to the top directory of the local repository. Please refer to How to Use Kaggle: Public API and stackoverflow: documentation for Kaggle API *within* python?
We can download datasets with pipenv run ./input.py
command.
Modification of environment variables is un-necessary. Files will be
saved in input
directory of your local repository.
input.py
scripts are different from that explained in the previous subsections.
URLs are shown in the next table.Descr iptio n |
URL |
|
|---|---|---|
The numbe r of cases (JHU) |
Novel Coron a Virus 2019 Datas et by SRK |
https ://ww w.kag gle.c om/su dalai rajku mar/n ovel- coron a-vir us-20 19-da taset |
The numbe r of cases in Japan |
COVID -19 datas et in Japan by Lisph ilar |
https ://ww w.kag gle.c om/li sphil ar/co vid19 -data set-i n-jap an |
Popul ation in each count ry |
covid 19 globa l forec astin g: locat ions popul ation by Dmitr y A. Grech ka |
https ://ww w.kag gle.c om/dg rechk a/cov id19- globa l-for ecast ing-l ocati ons-p opula tion |
Gover nment Respo nse Track er (OxCG RT) |
Thoma s Hale, Sam Webst er, Anna Pethe rick, Toby Phill ips, and Beatr iz Kira. (2020 ). Oxfor d COVID -19 Gover nment Respo nse Track er. Blava tnik Schoo l of Gover nment . |
https ://gi thub. com/O xCGRT /covi d-pol icy-t racke r |
Usage of DataLoader
class is as follows. Please specify
local_file
argument in the methods.
import covsirphy as cs
data_loader = cs.DataLoader("input")
jhu_data = data_loader.jhu(local_file="covid_19_data.csv")
japan_data = data_loader.japan(local_file="covid_jpn_total.csv")
population_data = data_loader.population(local_file="locations_population.csv")
oxcgrt_data = data_loader.oxcgrt(local_file="OxCGRT_latest.csv")
4. Kagglers (Kaggle platform)¶
When you want to use this package in Kaggle notebook, please turn on Internet option in notebook setting and download the datasets explained in the previous section.
Then, install this package with pip command.
!pip install covsirphy
Then, please load the datasets with the following codes, specifying the filenames.
import covsirphy as cs
# The number of cases (JHU)
jhu_data = cs.JHUData("/kaggle/input/novel-corona-virus-2019-dataset/covid_19_data.csv")
# (Optional) The number of cases in Japan
jpn_data = cs.CountryData("/kaggle/input/covid19-dataset-in-japan/covid_jpn_total.csv", country="Japan")
jpn_data.set_variables(
date="Date", confirmed="Positive", fatal="Fatal", recovered="Discharged", province=None
)
# Population in each country
pop_data = cs.Population(
"/kaggle/input/covid19-global-forecasting-locations-population/locations_population.csv"
)
Quick usage for analysis¶
Example Python codes are in example
directory. With Pipenv
environment, we can run the Python codes with Bash code example.sh
in the top directory of this repository.
Preparation¶
import covsirphy as cs
cs.__version__
Please load the datasets as explained in the previous section.
(Optional) We can replace a part of JHU data with country-specific datasets. As an example, we will the records in Japan, because values of JHU dataset sometimes differ from government-announced values as shown in COVID-19: Government/JHU data in Japan.
jhu_data.replace(japan_data)
ncov_df = jhu_data.cleaned()
Scenario analysis¶
As an example, use dataset in Italy. #### Check records
ita_scenario = cs.Scenario(jhu_data, population_data, country="Italy", province=None)
See the records as a figure.
ita_record_df = ita_scenario.records()
S-R trend analysis¶
Show S-R trend to determine the number of change points.
ita_scenario.trend()
As an example, set the number of change points as 4.
ita_scenario.trend(n_points=4, set_phases=True)
Start/end date of the four phase were automatically determined. Let’s see.
print(ita_scenario.summary())
Hyperparameter estimation of ODE models¶
As an example, use SIR-F model.
ita_scenario.estimate(cs.SIRF)
print(ita_scenario.summary())
We can check the accuracy of estimation with a figure.
# Table
ita_scenario.estimate_accuracy(phase="1st")
# Get a value
ita_scenario.get("Rt", phase="4th")
# Show parameter history as a figure
ita_scenario.param_history(targets=["Rt"], divide_by_first=False, box_plot=False)
ita_scenario.param_history(targets=["rho", "sigma"])
Prediction of the number of cases¶
we can add some future phases.
# if needed, clear the registered future phases
ita_scenario.clear(name="Main")
# Add future phase to main scenario
ita_scenario.add_phase(name="Main", end_date="01Aug2020")
# Get parameter value
sigma_4th = ita_scenario.get("sigma", name="Main", phase="4th")
# Add future phase with changed parameter value to new scenario
sigma_6th = sigma_4th * 2
ita_scenario.add_phase(end_date="31Dec2020", name="Medicine", sigma=sigma_6th)
ita_scenario.add_phase(days=30, name="Medicine")
print(ita_scenario.summary())
Then, we can predict the number of cases and get a figure.
# Prediction and show figure
sim_df = ita_scenario.simulate(name="Main")
# Describe representative values
print(ita_scenario.describe())
Citation¶
Lisphilar, 2020, Kaggle notebook, COVID-19 data with SIR model, https://www.kaggle.com/lisphilar/covid-19-data-with-sir-model
CovsirPhy development team, 2020, GitHub repository, CovsirPhy, Python package for COVID-19 data with SIR model, https://github.com/lisphilar/covid19-sir


F5 Debug Information Extension Settings
Send custom header on HTTP requests
Functionality enabled through this section requires the extension being enabled (i.e. discovering an F5 site)
Enabled
Header Name:
Header Value:
Hostname/Domain filtering
(comma separated)
:
(NOTE: Wildcards are not currently allowed. Allowed domains MUST match hostname exactly)
Add Report Link For Session
When enabled, the
MRHSession
cookie listed will contain a link to open the management gui to the corresponding session report page.
Enabled
BIG-IP Managment GUI Url:
List Known F5 Sites
({{getHosts().length}}
discovered)
The following list includes all sites that are known to be using F5 BigIP (based on where the user has gone and the extension has noticed).
{{host}}
Enable extension on specific response
Server
header value
Enabled
Expected
Server
Value:
Save
Cancel
Restore defaults
{{alert.message}}


To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video


name: main-template layout: true class: left, top, inverse --- class: center
# Implementing the IO Monad
## © 2019 Hermann Hueck
https://github.com/hermannhueck/implementing-io-monad --- # Abstract
With my simple implementation I demonstrate the basic ideas of the IO Monad. It also implements the basic cats-effect type classes (MonadError, Bracket, Sync). My impl of the IO Monad is just a feasibility study, not production code! When coding my impl of IO I was very much inspired by *cats.effect.IO* and *monix.eval.Task* which I studied at that time. Both are implementions of the IO Monad. The API of my IO is very similar to the basics of Monix *Task*. This IO implementation also helped me to understand the IO Monad (of *cats-effect*) and Monix *Task*. Interop with *Future* is also supported. You can convert *IO* to a *Future*. Vice versa you can convert a *Future* to an *IO*. The development of my impl can be followed step by step in the code files in package *iomonad*. --- # Agenda
1. [Referential Transparency](#ReferentialTransparency) 1. [Is Future referentially transparent?](#FutureReferentiallyTransparent) 1. [The IO Monad](#IOMonad) 1. [Resources](#Resources) --- class: middle, center name: ReferentialTransparency # 1. Referential Transparency
---
## Referential Transparency
An expression or function is called referentially transparent, if it can be replaced with its corresponding value without changing the program's behavior. Such an expression of function is: -
**total**
: It returns an output for every input. -
**deterministic**
: It returns the same output for the same input. -
**pure**
: It' only effect is computing the output. (no side effects) .footnote2[ https://en.wikipedia.org/wiki/Referential_transparency ] ---
## Referential Transparency Benefits
- (Equational) Reasoning about code - Refactoring is easier - Testing is easier - Separate pure code from impure code - Potential compiler optimizations (more in Haskell than in Scala)
(e.g. memoization, parallelisation, compute expressions at compile time) .footnote2[ "What Referential Transparency can do for you"
Talk by Luka Jacobowitz at ScalaIO 2017
https://www.youtube.com/watch?v=X-cEGEJMx_4 ] ---
## This function
is not
referentially transparent!
```scala def func(ioa1: Unit, ioa2: Unit): Unit = { ioa1 ioa2 } func(println("hi"), println("hi")) // prints "hi" twice //=> hi //=> hi println("-----") val x: Unit = println("hi") func(x, x) // prints "hi" once //=> hi ``` ---
## This function
is
referentially transparent!
```scala def putStrLn(line: String): IO[Unit] = IO.eval { println(line) } def func(ioa1: IO[Unit], ioa2: IO[Unit]): IO[Unit] = for { _ <- ioa1 _ <- ioa2 } yield () func(putStrLn("hi"), putStrLn("hi")).unsafeRun() // prints "hi" twice //=> hi //=> hi println("-----") val x: IO[Unit] = putStrLn("hi") func(x, x).unsafeRun() // prints "hi" twice //=> hi //=> hi ``` --- class: middle, center name: FutureReferentiallyTransparent # 2. Is *Future* referentially transparent?
--- ## Is *Future* referentially transparent?
```scala val future1: Future[(Int, Int)] = { val atomicInt = new AtomicInteger(0) val future: Future[Int] = Future { atomicInt.incrementAndGet } for { x <- future y <- future } yield (x, y) } future1 onComplete println // Success((1,1)) ``` ```scala val future2: Future[(Int, Int)] = { // same as future1, but inlined val atomicInt = new AtomicInteger(0) for { x <- Future { atomicInt.incrementAndGet } y <- Future { atomicInt.incrementAndGet } } yield (x, y) } future2 onComplete println // Success((1,2)) <-- not the same result ``` -- ## No! Inlining changes the meaning of the program. --- ## Is Monix *Task* referentially transparent?
```scala val task1: Task[(Int, Int)] = { val atomicInt = new AtomicInteger(0) val task: Task[Int] = Task { atomicInt.incrementAndGet } for { x <- task y <- task } yield (x, y) } task1 runAsync println // Success((1,2)) ``` ```scala val task2: Task[(Int, Int)] = { // same as task1, but inlined val atomicInt = new AtomicInteger(0) for { x <- Task { atomicInt.incrementAndGet } y <- Task { atomicInt.incrementAndGet } } yield (x, y) } task2 runAsync println // Success((1,2)) <-- same result ``` -- ## Yes! --- ## Is my IO Monad referentially transparent?
```scala val io1: IO[(Int, Int)] = { val atomicInt = new AtomicInteger(0) val io: IO[Int] = IO { atomicInt.incrementAndGet } for { x <- io y <- io } yield (x, y) } io1.unsafeRunToFuture onComplete println // Success((1,2)) ``` ```scala val io2: IO[(Int, Int)] = { // same as io1, but inlined val atomicInt = new AtomicInteger(0) for { x <- IO { atomicInt.incrementAndGet } y <- IO { atomicInt.incrementAndGet } } yield (x, y) } io2.unsafeRunToFuture onComplete println // Success((1,2)) <-- same result ``` -- ## Yes! --- class: middle, center name: IOMonad # 3. The IO Monad
--- ## 1. Impure IO Program
with
side effects
```scala // impure program def program(): Unit = { print("Welcome to Scala! What's your name? ") val name = scala.io.StdIn.readLine println(s"Hello, $name!") } ``` -- ```scala program() ```
-- - Whenever a method or a function returns *Unit* it is
***impure***
(or it is a noop). It's intension is to produce a side effect. - A
***pure***
function always returns a value of some type
(and doesn't produce a side effect inside). --- ## 2. Pure IO Program
without
side effects
```scala // pure program val program: () => Unit = // () => Unit is syntactic sugar for: Function0[Unit] () => { print("Welcome to Scala! What's your name? ") val name = scala.io.StdIn.readLine println(s"Hello, $name!") } ``` -- ```scala program() // producing the side effects "at the end of the world" ```
-- - Make the program a function returning *Unit*: *Function0[Unit]* - Free of side effects in it's definition - Produces side effects only when run (at the end of the world) - *program* is a
**val**
.
(It can be manipulated and passed around like an *Int* or *String*.) --- ## 3. Wrap Function0[A] in a case class
```scala final case class IO[A](unsafeRun: () => A) ``` -- ```scala // pure program val program: IO[Unit] = IO { () => { print("Welcome to Scala! What's your name? ") val name = scala.io.StdIn.readLine println(s"Hello, $name!") } } ``` -- ```scala program.unsafeRun() // producing the side effects "at the end of the world" ```
-- - *IO[A]* wraps a *Function0[A]* in a case class. - This is useful to implement further extensions on that case class. --- ## 4. *IO#map* and *IO#flatMap*
```scala final case class IO[A](unsafeRun: () => A) { def flatMap[B](f: A => IO[B]): IO[B] = IO { () => f(unsafeRun()).unsafeRun() } def map[B](f: A => B): IO[B] = IO { () => f(unsafeRun()) } def flatten[B](implicit ev: A <:< IO[B]): IO[B] = flatMap(a => a) } ``` -- ```scala val program: IO[Unit] = for { _ <- IO { () => print(s"Welcome to Scala! What's your name? ") } name <- IO { () => scala.io.StdIn.readLine } _ <- IO { () => println(s"Hello, $name!") } } yield () ``` -- ```scala program.unsafeRun() // producing the side effects "at the end of the world" ```
-- - With *map* and *flatMap* *IO[A]* is monadic (but not yet a Monad). - *IO* can now be used in for-comprehensions. - This allows the composition of programs from smaller components. --- ## 5. Companion object *IO* with *pure* and *eval* ```scala final case class IO[A](unsafeRun: () => A) { def flatMap[B](f: A => IO[B]): IO[B] = IO { () => f(unsafeRun()).unsafeRun() } def map[B](f: A => B): IO[B] = flatMap(a => pure(f(a))) def flatten[B](implicit ev: A <:< IO[B]): IO[B] = flatMap(a => a) } object IO { def pure[A](value: A): IO[A] = IO { () => value } // eager def eval[A](thunk: => A): IO[A] = IO { () => thunk } // lazy } ``` -- ```scala val program: IO[Unit] = for { welcome <- IO.pure("Welcome to Scala!") _ <- IO.eval { print(s"$welcome What's your name? ") } name <- IO.eval { scala.io.StdIn.readLine } // simpler with IO.eval _ <- IO.eval { println(s"Hello, $name!") } } yield () ``` -- ```scala program.unsafeRun() // producing the side effects "at the end of the world" ``` -- - *IO.pure* is
eager
and accepts a pure value. - *IO.eval* is
lazy
and accepts a computation. - *map* can be written in terms of *flatMap* and *pure*. --- ## 6. *IO* as ADT ```scala sealed trait IO[+A] extends Product with Serializable { def unsafeRun(): A def flatMap[B](f: A => IO[B]): IO[B] = IO { f(unsafeRun()).unsafeRun() } def map[B](f: A => B): IO[B] = flatMap(a => pure(f(a))) } ``` ```scala object IO { // ADT sub types private case class Pure[A](a: A) extends IO[A] { override def unsafeRun(): A = a } private case class Eval[A](thunk: () => A) extends IO[A] { override def unsafeRun(): A = thunk() } def pure[A](a: A): IO[A] = Pure(a) def now[A](a: A): IO[A] = pure(a) def eval[A](a: => A): IO[A] = Eval { () => a } def delay[A](a: => A): IO[A] = eval(a) def apply[A](a: => A): IO[A] = eval(a) } ``` ---
### *IO* as ADT
- To create an ADT the previos case class has been replaced by a sealed trait and a bunch of case classes derived from that trait. - *IO.apply* is an alias for *IO.eval*. (Simplifies the creation of *IO* instances.) - The app works as before. --- ## 7. ADT sub type *FlatMap*
```scala sealed trait IO[+A] extends Product with Serializable { def flatMap[B](f: A => IO[B]): IO[B] = FlatMap(this, f) def map[B](f: A => B): IO[B] = // flatMap(a => pure(f(a))) // is equivalent to: flatMap(f andThen pure) } ``` ```scala object IO { // ADT sub types private case class FlatMap[A, B](src: IO[A], f: A => IO[B]) extends IO[B] { override def unsafeRun(): B = f(src.unsafeRun()).unsafeRun() } } ```
-- - We gained stack-safety by trampolining. (*FlatMap* is a heap object.) - The app works as before. ---
## IO (not yet a Monad) - What we implemented:
- Using a function instead of a method, *val* instead of *def* - A *Function0* wrapped in a case class - Impl of *map* and *flatMap* (and flatten) - companion object with *pure* and other smart constructors - case class converted to ADT (sealed trait + derived case classes) ---
## IO Monad - What is to come?
- Sync and async unsafeRun methods - More smart constructors - Monad instance for *IO* - Create *IO* from *Try*, *Either*, *Future* - *MonadError* instance for *IO* (*IO.raiseError*, *IO#handleErrorWith*) - *Bracket* instance for *IO* (*IO#bracket*) - *Sync* instance for *IO* (*IO.delay*) --- ## 8. Sync *unsafeRun* methods
```scala sealed trait IO[+A] extends Product with Serializable { def unsafeRunToTry: Try[A] = Try { unsafeRun() } def unsafeRunToEither: Either[Throwable, A] = unsafeRunToTry.toEither } ``` Usage: ```scala // running the program synchronously ... val value: Unit = program.unsafeRun() // () val tryy: Try[Unit] = program.unsafeRunToTry // Success(()) val either: Either[Throwable, Unit] = program.unsafeRunToEither // Right(()) ```
-- - *unsafeRun* may throw an exception. - *unsafeRunToTry* and *unsafeRunToEither* catch any exception. --- ## 9. Other example: Authenticate Maggie
```scala def authenticate(username: String, password: String): IO[Boolean] = ??? val checkMaggie: IO[Boolean] = authenticate("maggie", "maggie-pw") // running checkMaggie synchronously ... val value: Boolean = checkMaggie.unsafeRun() // true val tryy: Try[Boolean] = checkMaggie.unsafeRunToTry // Success(true) val either: Either[Throwable, Boolean] = checkMaggie.unsafeRunToEither // Right(true) ```
-- - The previous example was interactive ... not well suited for async IO. - The *IO* impl remains unchanged in this step. --- ## 10. Async _unsafeRun*_ methods
```scala sealed trait IO[+A] extends Product with Serializable { def unsafeRunToFuture(implicit ec: ExecutionContext): Future[A] = Future { unsafeRun() } def unsafeRunOnComplete(callback: Try[A] => Unit) (implicit ec: ExecutionContext): Unit = unsafeRunToFuture onComplete callback def unsafeRunAsync(callback: Either[Throwable, A] => Unit) (implicit ec: ExecutionContext): Unit = unsafeRunOnComplete(tryy => callback(tryy.toEither)) } ```
-- - All async _unsafeRun*_ methods take an implicit EC. - Unlike *Future* the EC is not needed to create an *IO*, only to run it. ---
### Using the async _unsafeRun*_ methods
```scala def authenticate(username: String, password: String): IO[Boolean] = ??? val checkMaggie: IO[Boolean] = authenticate("maggie", "maggie-pw") ``` -- ```scala // running 'checkMaggie' asynchronously ... implicit val ec: ExecutionContext = ExecutionContext.global val future: Future[Boolean] = checkMaggie.unsafeRunToFuture future onComplete tryCallback //=> true checkMaggie unsafeRunOnComplete tryCallback //=> true checkMaggie unsafeRunAsync eitherCallback //=> true ``` -- ```scala def tryCallback[A]: Try[A] => Unit = tryy => println(tryy.fold(ex => ex.toString, value => value.toString)) def eitherCallback[A]: Either[Throwable, A] => Unit = either => println(either.fold(ex => ex.toString, value => value.toString)) ``` --- ## 11. Async method *foreach*
```scala sealed trait IO[+A] extends Product with Serializable { def foreach(f: A => Unit)(implicit ec: ExecutionContext): Unit = unsafeRunAsync { case Left(ex) => ec.reportFailure(ex) case Right(value) => f(value) } } ``` -- ```scala authenticate("maggie", "maggie-pw") foreach println //=> true authenticate("maggieXXX", "maggie-pw") foreach println //=> false authenticate("maggie", "maggie-pwXXX") foreach println //=> false ``` --
- *foreach* runs asynchronously. - It takes a callback for the successful result value. - *foreach* swallows exceptions. Prefer *unsafeRunAsync*! --- ## 12. *IO.raiseError*
```scala object IO { // ADT sub types private case class Error[A](exception: Throwable) extends IO[A] { override def unsafeRun(): A = throw exception } def raiseError[A](exception: Exception): IO[A] = Error[A](exception) def fail[A](t: Throwable): IO[A] = raiseError(t) } ```
-- - ADT sub type *Error* wraps a *Throwable*. --
```scala val ioError: IO[Int] = IO.raiseError[Int]( new IllegalStateException("illegal state")) println(ioError.unsafeRunToEither) //=> Left(java.lang.IllegalStateException: illegal state) ``` ---
## 13. *IO#failed* (failed projection of an IO).
```scala sealed trait IO[+A] extends Product with Serializable { def failed: IO[Throwable] = this.flatMap { case Error(t) => IO.pure(t) case _ => IO.raiseError(new NoSuchElementException("failed")) } } ```
The failed projection is an *IO* holding a value of type *Throwable*, emitting the error yielded by the source, in case the source fails, otherwise if the source succeeds the result will fail with a *NoSuchElementException*. ---
### Using *IO#failed*
```scala val ioError: IO[Int] = IO.raiseError[Int]( new IllegalStateException("illegal state")) println(ioError.unsafeRunToEither) //=> Left(java.lang.IllegalStateException: illegal state) val failed: IO[Throwable] = ioError.failed println(failed.unsafeRunToEither) //=> Right(java.lang.IllegalStateException: illegal state) val ioSuccess = IO.pure(5) println(ioSuccess.unsafeRunToEither) //=> Right(5) println(ioSuccess.failed.unsafeRunToEither) //=> Left(java.util.NoSuchElementException: failed) ``` --- ## 14. Other example: pure computations
```scala def sumIO(from: Int, to: Int): IO[Int] = IO { sumOfRange(from, to) } def fibonacciIO(num: Int): IO[BigInt] = IO { fibonacci(num) } def factorialIO(num: Int): IO[BigInt] = IO { factorial(num) } def computeIO(from: Int, to: Int): IO[BigInt] = for { x <- sumIO(from, to) y <- fibonacciIO(x) z <- factorialIO(y.intValue) } yield z val io: IO[BigInt] = computeIO(1, 4) implicit val ec: ExecutionContext = ExecutionContext.global io foreach { result => println(s"result = $result") } //=><PHONE_NUMBER> ``` --- ## 15. Monad instance for *IO*
```scala sealed trait IO[+A] { def flatMap[B](f: A => IO[B]): IO[B] = FlatMap(this, f) def map[B](f: A => B): IO[B] = flatMap(f andThen pure) } object IO { def pure[A](a: A): IO[A] = Pure { () => a } implicit val ioMonad: Monad[IO] = new Monad[IO] { override def pure[A](value: A): IO[A] = IO.pure(value) override def flatMap[A, B](fa: IO[A])(f: A => IO[B]): IO[B] = fa flatMap f } } ``` --
- Monad instance defined in companion object (implicit scope) ---
### Computations that abstract over HKT: *F[_]: Monad*
```scala import cats.syntax.flatMap._ import cats.syntax.functor._ def sumF[F[_]: Monad](from: Int, to: Int): F[Int] = Monad[F].pure { sumOfRange(from, to) } def fibonacciF[F[_]: Monad](num: Int): F[BigInt] = Monad[F].pure { fibonacci(num) } def factorialF[F[_]: Monad](num: Int): F[BigInt] = Monad[F].pure { factorial(num) } def computeF[F[_]: Monad](from: Int, to: Int): F[BigInt] = for { x <- sumF(from, to) y <- fibonacciF(x) z <- factorialF(y.intValue) } yield z ``` - This code can be used with *IO* or any other Monad. --- - **Reify *F[_] : Monad* with *IO*** ```scala import scala.concurrent.ExecutionContext.Implicits.global val io: IO[BigInt] = computeF[IO](1, 4) io foreach { result => println(s"result = $result") } //=><PHONE_NUMBER> ``` -- - **Reify *F[_] : Monad* with *cats.Id*** ```scala val result: cats.Id[BigInt] = computeF[cats.Id](1, 4) println(s"result = $result") //=><PHONE_NUMBER> ``` -- - **Reify *F[_] : Monad* with *Option*** ```scala import cats.instances.option._ val maybeResult: Option[BigInt] = computeF[Option](1, 4) maybeResult foreach { result => println(s"result = $result") } //=><PHONE_NUMBER> ``` -- - **Reify *F[_] : Monad* with *Future*** ```scala import scala.concurrent.{Future, ExecutionContext} import ExecutionContext.Implicits.global import cats.instances.future._ val future: Future[BigInt] = computeF[Future](1, 4) future foreach { result => println(s"result = $result") } //=><PHONE_NUMBER> ``` --- ## 16. *IO.defer* and *IO.suspend*
```scala object IO { // ADT sub types private case class Suspend[A](thunk: () => IO[A]) extends IO[A] { override def unsafeRun(): A = thunk().unsafeRun() } def suspend[A](ioa: => IO[A]): IO[A] = Suspend(() => ioa) def defer[A](ioa: => IO[A]): IO[A] = suspend(ioa) } ``` --
- These methods defer the (possibly immediate) side effect of the inner *IO*. - ADT sub type *Suspend* wraps another *IO*. ---
### Using *IO.defer*
*IO.pure(...)* // without *IO.defer* ```scala val io1 = IO.pure { println("immediate side effect"); 5 } //=> immediate side effect Thread sleep 2000L io1 foreach println //=> 5 ```
-- *IO.defer(IO.pure(...))* ```scala val io2 = IO.defer { IO.pure { println("deferred side effect"); 5 } } Thread sleep 2000L io2 foreach println //=> deferred side effect //=> 5 ``` --- ## 17. *IO.fromTry* and *IO.fromEither*
```scala object IO { def fromTry[A](tryy: Try[A]): IO[A] = tryy.fold(IO.raiseError, IO.pure) def fromEither[A](either: Either[Throwable, A]): IO[A] = either.fold(IO.raiseError, IO.pure) } ``` --
```scala val tryy: Try[Seq[User]] = Try { User.getUsers } val io1: IO[Seq[User]] = IO.fromTry(tryy) val either: Either[Throwable, Seq[User]] = tryy.toEither val io2: IO[Seq[User]] = IO.fromEither(either) ``` --- ## 18. *IO.fromFuture*
```scala object IO { // ADT sub types private case class FromFuture[A](fa: Future[A]) extends IO[A] { override def unsafeRun(): A = Await.result(fa, Duration.Inf) // BLOCKING!!! } def fromFuture[A](future: Future[A]): IO[A] = FromFuture(future) } ``` --
-
Attention
: The implementation of *fromFuture* is a bit simplistic. - Waiting for the *Future* to complete might
block a thread
! - (A solution of this problem would require a redesign of my simple IO Monad, which doesn't support non-blocking async computations.) --- ### Using *IO.fromFuture* ```scala def futureGetUsers(implicit ec: ExecutionContext): Future[Seq[User]] = Future { println("side effect") User.getUsers } ``` -- - *IO.fromFuture(f)* is
eager
. ```scala implicit val ec: ExecutionContext = ExecutionContext.global val io = IO.fromFuture { futureGetUsers } io foreach { users => users foreach println } //=> "side effect" io foreach { users => users foreach println } ``` -- - *IO.defer(IO.fromFuture(f))* is
lazy
. ```scala implicit val ec: ExecutionContext = ExecutionContext.global val io = IO.defer { IO.fromFuture { futureGetUsers } } io foreach { users => users foreach println } //=> "side effect" io foreach { users => users foreach println } //=> "side effect" ``` --- ## 19. *IO.deferFuture*
```scala object IO { def deferFuture[A](fa: => Future[A]): IO[A] = defer(IO.fromFuture(fa)) } ```
-- - *IO.deferFuture(f)* is an alias for *IO.defer(IO.fromFuture(f))*. - An *ExecutionContext* is still required to create the *Future*! --- ### Using *IO.deferFuture* ```scala def futureGetUsers(implicit ec: ExecutionContext): Future[Seq[User]] = Future { println("side effect") User.getUsers } ``` -- - *IO.defer(IO.fromFuture(f))* is lazy. ```scala implicit val ec: ExecutionContext = ExecutionContext.global val io = IO.defer { IO.fromFuture { futureGetUsers } } io foreach { users => users foreach println } //=> "side effect" io foreach { users => users foreach println } //=> "side effect" ``` -- - *IO.deferFuture(f)* is a shortcut for that. ```scala implicit val ec: ExecutionContext = ExecutionContext.global val io = IO.deferFuture { futureGetUsers } io foreach { users => users foreach println } //=> "side effect" io foreach { users => users foreach println } //=> "side effect" ``` --- class: middle, center name: Resources # 4. Resources
--- ## Resources - Code and Slides of this Talk:
https://github.com/hermannhueck/implementing-io-monad - Code and Slides for my Talk on: Future vs. Monix Task
https://github.com/hermannhueck/future-vs-monix-task - Monix Task 3.x Documentation (for comparison with IO)
https://monix.io/docs/3x/eval/task.html - Monix Task 3.x API Documentation (for comparison with IO)
https://monix.io/api/3.0/monix/eval/Task.html - Best Practice: "Should Not Block Threads"
https://monix.io/docs/3x/best-practices/blocking.html - What Referential Transparency can do for you
Talk by Luka Jacobowitz at ScalaIO 2017
https://www.youtube.com/watch?v=X-cEGEJMx_4 --- class: middle, center ## Thanks for Listening
# Q & A
https://github.com/hermannhueck/implementing-io-monad


Alain Caron discography, torrents, lyrics, covers | Music Web Navigator
Alain Caron resources: biography, discography, sites, torrents, mp3 online, videos, photos, . The Brecker Brothers · Chick Corea Elektric Band · Yellowjackets .
http://musicwn.com/browse.php?artist=Alain+Caron&mbid=7e4352ba-8337-4802-95e0-ec690c699ea8
Treatment for Herniated or Bulging Discs
n0b0dyh0me's Torrents
Feb 11, 2012 . A tremendously gifted guitarist but not only. As usual with my torrents I won't claim that this is his complete discography; anyway the 125 albums .
https://forum.suprbay.org/showthread.php?tid=57383&pid=775060
Randy Brecker
. award winner Randy Brecker's website features reviews, discography, sound bites, recordings, itinerary, biography, the Brecker Brothers, photogallery.
http://www.randybrecker.com/
the brecker brothers discography torrent Herniated or Bulging Discs
Gordon Goodwin's Big Phat Band discography, torrents, lyrics ...
Gordon Goodwin's Big Phat Band resources: biography, discography, sites, . Buddy Rich Big Band · Michael Brecker · Bobby Shew · The Brecker Brothers .
http://musicwn.com/browse.php?artist=Gordon+Goodwin's+Big+Phat+Band&mbid=443612b6-5180-4956-bad9-b81707f09973
Chet Baker Discography Project 5-5 Torrent Download
Jun 10, 2008 . Download Chet Baker Discography Project 5-5 from Torrent Reactor torrents database or choose analog in Music.
http://www.torrentreactor.net/torrents/1912282/Chet-Baker-Discography-Project-5-5
Official Impairment Listing for Spinal Disorders
Download brecker brothers Torrents - KickassTorrents
Results 1 - 12 . Come and download brecker brothers absolutely for free. Fast downloads. Direct download via HTTP available.
http://kat.ph/search/brecker%20brothers/
- crepaldi 2003 phpbb group (narrowing of the spine)
funk isoHunt Bit Torrent files
Active torrents indexed from websites and trackers across the internet, unique by info_hash . brecker brothers - sneakin' up behind you.mp3, 4.4 MB. cameo - candy.mp3, 5.2 . Planet Funk - Discography + Remixes (6CD), 571.32 MB, 48, 9 .
http://isohunt.com/torrent_details/182702325/?tab=summaryLarry Coryell discography (download torrent) - TPB
Sep 30, 2012 . (Problems with magnets links are fixed by upgrading your torrent client!) Larry Coryell Discography http://en.wikipedia.org/wiki/Larry_Coryell There's no need to spend many . with Brubeck Brothers . with Randy Brecker .
https://thepiratebay.se/torrent/7688839/Larry_Coryell_discography
Randy Brecker
. award winner Randy Brecker's website features reviews, discography, sound bites, recordings, itinerary, biography, the Brecker Brothers, photogallery.
http://www.randybrecker.com/
funk isoHunt Bit Torrent files
Active torrents indexed from websites and trackers across the internet, unique by info_hash . brecker brothers - sneakin' up behind you.mp3, 4.4 MB. cameo - candy.mp3, 5.2 . Planet Funk - Discography + Remixes (6CD), 571.32 MB, 48, 9 .
http://isohunt.com/torrent_details/182702325/?tab=summary
Medical-Vocational Allowance for Herniated Disc
Larry Coryell discography (download torrent) - TPB
Sep 30, 2012 . (Problems with magnets links are fixed by upgrading your torrent client!) Larry Coryell Discography http://en.wikipedia.org/wiki/Larry_Coryell There's no need to spend many . with Brubeck Brothers . with Randy Brecker .
https://thepiratebay.se/torrent/7688839/Larry_Coryell_discography
Chet Baker Discography Project 5-5 Torrent Download
Jun 10, 2008 . Download Chet Baker Discography Project 5-5 from Torrent Reactor torrents database or choose analog in Music.
http://www.torrentreactor.net/torrents/1912282/Chet-Baker-Discography-Project-5-5
Appealing a Denial of Benefits
Download the madden brothers-before volume one torrent
Sponsored Links for the madden brothers-before volume one .
http://torrentz.eu/th/the+madden+brothers-before+volume+one-q
Gordon Goodwin's Big Phat Band discography, torrents, lyrics ...
Gordon Goodwin's Big Phat Band resources: biography, discography, sites, . Buddy Rich Big Band · Michael Brecker · Bobby Shew · The Brecker Brothers .
http://musicwn.com/browse.php?artist=Gordon+Goodwin's+Big+Phat+Band&mbid=443612b6-5180-4956-bad9-b81707f09973


Vie privée
Cette page liste les données qui sont collectées et stockées, comment elles le sont, pourquoi elles sont stockées et comment vous pouvez controller ça. Nous sommes une petite entreprise qui prend pleinement en charge votre capacité à contrôler vos propres données
Ce que nous collectons et stockons
- Pour chaque utilisateur, les données suivantes sont stockées :
- ID d'utilisateur (nombre utilisé pour identifier chaque utilisateur en interne)
- Date et heure de la création du compte
- Nom d'utilisateur
- Adresse IP utilisé lors de la création du comtpe
- User Agent lors de la création du compte (navigateur et système d'exploitation)
- Pseudo d'affichage (choisi en Paramètre du profil)
- Information de validation du mot de passe (sel, mot de passe signé, numéro d'itération du hachage)
- Date et heure de la dernière connexion
- Adresse IP de la dernière connexion
- User Agent lors de la dernière connexion (navigateur et système d'exploitation)
- Adresse email (choisi en Paramètre du profil)
- Compte Twitter (choisi en Paramètre du profil)
- Bio (choisi en Paramètre du profil)
- Rôle actuel (utilisateur ou administrateur)
- Adresse IP lors de la dernière connexion
- For each suggested {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}}, the following user data is stored:
- Submission date and time
- IP Address and User Agent of user who suggested it
- Username of user who suggested it
- {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} text (user entered)
- For each suggested {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} vote, the following user data is stored:
- Date and time when vote was cast
- IP Address and User Agent of user who cast the vote
- Username of user who cast the vote
- {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} which was voted on
- Cast vote (-1, 0, +1)
- For each submitted {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} (sometimes called an entry), the following user data is stored:
- Date and time when the {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} was submitted
- IP Address and User Agent of user who submitted the {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}}
- Title of {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} (user entered)
- Description of {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} (user entered)
- Username of user who submitted the {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}}
- URLs to where the {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} is hosted (user entered; Web, Windows, Linux, Mac, Android, iOS, Source and Other)
- Screenshot image for {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} (uploaded by user)
- {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} color (selected by user)
- For each poll vote, the following user data is stored:
- The option which was voted for
- The username of the user who voted
- For each satisfaction vote, the following user data is stored:
- Date and time when the vote was cast
- IP Address and User Agent of user who cast the vote
- The question identifier which was voted on (for example JAM_160 when casting a satisfaction vote for {{CONFIG.VALUES.JAM_PHRASE_SINGULAR}} 160)
- The option which was voted for
- The username of the user who voted
- For each user session, the following user data is stored:
- The ID of the logged in user
- Date and time when the session started
- Hashed session ID
- For each administrative action (scheduling {{CONFIG.VALUES.JAM_PHRASE_PLURAL}}, changing user roles, deleting {{CONFIG.VALUES.THEME_PHRASE_PLURAL}}, etc.), the following user data is stored:
- Date and time when the log was created
- IP Address and User Agent of administrator who triggered the event
- The username of the administrator who triggered the event
- The username of the subject the event relates to
- A human readable descriptor of the event, which may include user data relevant to the event. The specific user data may be any of the following: User ID, Date and time of any kind, Username, IP Address, User Agent, User-entered content, Password hashes, Email address, Twitter handle, Role or anything else from this privacy document.
- For each administion candidate vote the following user data is stored:
- Date and time the vote was cast
- IP Address and User Agent of administrator who cast the vote
- The username of the administrator who cast the vote
- The username of the person being voted on
- The type of vote cast: Sponsor (administrator suggests the user as an admin candidate), for, neutral, against, veto
How data is transmitted and stored
All data is transmitted encrypted via HTTPS. This includes passwords and session IDs. Session IDs are stored in cookies.
All data is stored in plaintext, except passwords and session IDs. These are salted, peppered and hashed with SHA256 between 10000 and 20000 times (random number for each user). The result is stored. This same process is done again whenever a password or session ID is provided and the result is checked against the stored hashed values. As far as we're aware, this method means a breech of our database would not result in username/password combinations being obtainable through brute-forcing with current technology. Weak passwords are however easily obtainable no matter what encryption we use.
Why data is stored
-
User IDs and usernames are stored to determine which user is related to each bit of content.
-
Event dates and times, IP Addresses and User Agent information is stored to identify users in cases of abuse and user's level of activity.
-
Usernames, password validation information, session IDs and the user's role are stored to authenticate and authorize users.
-
Email addresses, Twitter handles, Bio, {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} text, Cast vote, {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} title, {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} description, {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} URLs, {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} image, {{CONFIG.VALUES.GAME_PHRASE_SINGULAR}} color, Voted for option and any other user-entered fields are considered voluntarily entered. Removing these fields (e.g. submitting them as blank) will (unless otherwise stated upon submission) remove them from public visibility, the old versions may however remain in logs or administrator-only tools. See "How can you control your data" for more details.
-
For {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} votes, poll votes and satisfaction votes, the cast votes are directly tied to the user who cast them. This is done to ensure each user can only cast one vote and to indicate to the user what they voted for. In the case of {{CONFIG.VALUES.THEME_PHRASE_SINGULAR}} votes, it is so we can color the currently-voted-for option. This is also done to mittigate cases of vote abuse or to check what different groups of users voted for - for example select only what recent participants voted for. This does mean that there is enough data available to check what each user individually has voted for ({{CONFIG.VALUES.THEME_PHRASE_PLURAL}}, polls and satisfaction).
-
The data in the administration log is stored to identify abuse, determine administrator activity and to reverse accidental or malicious changes.
-
The data in the administration candidate vote is stored to help determine which candidates should be given the administration role.
How you can control your data
If you wish to get a copy of all the data we have on you, please click the link labeled "User Data" in the menu, or visit us on Discord by clicking the button in the page's header and ask for an administrator. We'll need to authenticate you first though.
If you wish us to delete the data we have, please visit us on Discord by clicking the button in the page's header and ask for an administrator. We'll need to authenticate you first though.
Validate these claims
This software is open-source. Please feel free to validate these claims by examining the code for yourself. The code is linked in the page's footer.


A simplified version of the presentation is being displayed because your browser doesn't support all the features required or the page cannot find impress.js
Replace this slide by1) running cubes.py2) pasting the output into two_cubes.html


|
ITKMultigridAnisotropicDiffusion
1.0.0
Implementation of an Anisotropic Diffusion filter, using Multigrid techniques
|
Weighted Jacobi smoother implementation; it is a derived class of MultigridSmoother, and its constructor can optionally take the weight coefficient as an argument, which otherwise defaults to . More...
#include <itkMultigridWeightedJacobiSmoother.h>
Public Types | |
| typedef double | Precision |
|
typedef MultigridWeightedJacobiSmoother | Self |
|
typedef Image< Precision, VDimension > | ImageType |
|
typedef Neighborhood < Precision, VDimension > | StencilType |
|
typedef StencilImage < Precision, VDimension > | StencilImageType |
| typedef ImageRegion< VDimension > | ImageRegionType |
| typedef ImageType::SpacingType | SpacingType |
| typedef ImageType::SizeType | SizeType |
| typedef ImageType::IndexType | IndexType |
| typedef ImageType::OffsetType | OffsetType |
| typedef std::list< OffsetType > | OffsetListType |
| Public Types inherited from itk::mad::MultigridSmoother< VDimension > | |
| typedef double | Precision |
| typedef MultigridSmoother | Self |
|
typedef Image< Precision, VDimension > | ImageType |
|
typedef StencilImage < Precision, VDimension > | StencilImageType |
Public Member Functions | |
| ImageType::Pointer | SingleIteration (const ImageType *inputImage, const ImageType *rhsImage, const StencilImageType *matrixImage) const |
| ImageType::Pointer | ComputeResidual (const ImageType *inputImage, const ImageType *rhsImage, const StencilImageType *matrixImage) const |
| MultigridWeightedJacobiSmoother (Precision weight) | |
| MultigridWeightedJacobiSmoother () | |
| ~MultigridWeightedJacobiSmoother () | |
| Public Member Functions inherited from itk::mad::MultigridSmoother< VDimension > | |
| MultigridSmoother () | |
| virtual | ~MultigridSmoother () |
Weighted Jacobi smoother implementation; it is a derived class of MultigridSmoother, and its constructor can optionally take the weight coefficient as an argument, which otherwise defaults to .
Definition at line 43 of file itkMultigridWeightedJacobiSmoother.h.
| typedef double itk::mad::MultigridWeightedJacobiSmoother< VDimension >::Precision |
Standard class typedefs.
Definition at line 48 of file itkMultigridWeightedJacobiSmoother.h.
| itk::mad::MultigridWeightedJacobiSmoother< VDimension >::MultigridWeightedJacobiSmoother | ( | Precision | weight | ) |
Class constructor.
Definition at line 176 of file itkMultigridWeightedJacobiSmoother.hxx.
| itk::mad::MultigridWeightedJacobiSmoother< VDimension >::MultigridWeightedJacobiSmoother | ( | ) |
Class contructor, with default weight .
Definition at line 186 of file itkMultigridWeightedJacobiSmoother.hxx.
| itk::mad::MultigridWeightedJacobiSmoother< VDimension >::~MultigridWeightedJacobiSmoother | ( | ) |
Class destructor.
Definition at line 196 of file itkMultigridWeightedJacobiSmoother.hxx.
|
virtual |
Returns the residual , where inputImage is the term , rhsImage is , and matrixImage the matrix .
Implements itk::mad::MultigridSmoother< VDimension >.
Definition at line 108 of file itkMultigridWeightedJacobiSmoother.hxx.
|
virtual |
Returns the approximated solution to problem after one iteration of the smoother, starting with inputImage as initial guess, rhsImage as the right hand side , and matrixImage as matrix in StencilImageType format.
Implements itk::mad::MultigridSmoother< VDimension >.
Definition at line 36 of file itkMultigridWeightedJacobiSmoother.hxx.


Crime Details
Criminal Details
Details's Details
Upload Evidence
Crime Details
Choose Crime Type
Laptop Theft
Drug Abuse
Rape
Arson
Corruption
Theft
Fighting
Other
Crime Discription
Location of Occurance
Date of Occurance:
Date of Occurance:
"; ?>
Criminal Details
All known details of the perpetrator
Perpetrator's Name
Surname
Faculty
Arts
Commerce
College of Health
Computer Science
Law
Science
Social Studies
Position
Student
Lecturer
DACs Personnel
Security Personnel
Admin Personnel
Works Personnel
Other
Gender
Male:
Female:
Upload Picture
Reporter's Details
This is optional
You may submit this report anonymously if you do not wish to provide a name or other identifying information at this time. However, the nature of anonymous reports makes responsive actions more difficult and at times, impossible.
First Name
Surname
Position
Student
Lecturer
DACs Personnel
Security Personnel
Admin Personnel
Works Personnel
Other
Gender
Male:
Female:
Email
Phone Number
Witnesses
1st Witness
Phone Number
2nd Witness
Phone Number
UPLOAD EVIDENCE
Supporting evidence


Placebo Nursing Home offers 1 floor houses with 2 rooms and additional kitchen. Placebo Nursing Home provides 24 hours professional medical care for our residents.
Among all other great features we provide room service, housekeeping, television and internet access, telephone, walk-in closet, hairdresser, spa and recreational activities.

Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam nisi ut aliquid ex ea commodi conseq.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos.
Between 07:00 and 09:30, available for all residents
Socialize or attend one of the club meetings
Between 12:30 and 14:30, available for all residents
Hobby time - do your favorite things
Between 18:30 and 20:30, available for all residents
Meet your favorite actors and movie stars from the small screen. Every months we have awesome movie screenings. Come and join us!
In "The Book Club" you can meet new friends and exchange knowledge about your favorite books and stories.
Most of our residents are very artistic and the Karaoke night is the best way to show your talents. Jump on the stage and rock on!
Placebo is the most complete medical center in Europe. We are here from the beginning to the end, delivering Lifetime HealthCare.
Helping people since 1923, Placebo has won the Best Hospital Award in the past 7 years in almost any category.


mqtt request/response broker based on aedes
// production $ npm start // starts with debug $ npm run start:debug
make sure broker file is executable:
broker
$ chmod u+x index.js
$ npm start -- -h localhost -p 1883 // or $ ./broker start -h <IP_ADDRESS> -p 1883 // or debug $npm run start:debug
press Ctrl + c
Ctrl
c
$ ./broker start ^C $
runs mocha specs in /test
$ npm test // or $ npm run test:debug
see all npm tasks defined in package.json.
var MqttReqResBroker = require('mqtt-reqres-broker');
constructor
send a request to an other client.
options:
callback callback function called when initialization done. only arg is "err".
returns instance of MqttReqResBroker
options null required; currently takes no options
callback function required; callback
closes the broker websocket and http servers.
var broker = new MqttReqResBroker() broker.initialize( { hostname: '<IP_ADDRESS>', port: 9999 }, function (err) { broker.start(null, function (err) { // .. }); } );
create annotated source documentation in doc/ folder, uses groc
doc/
$ npm run build:docs
mqtt-reqres-broker
mqtt request/response broker based on aedes
start mqtt reqres websocket broker
make sure
broker
file is executable:start options
stop
press
Ctrl
+c
test
runs mocha specs in /test
see all npm tasks defined in package.json.
API
Methods
MqttReqResBroker()
constructor
initialize(options, callback)
send a request to an other client.
options:
callback callback function called when initialization done. only arg is "err".
returns instance of MqttReqResBroker
start(options, callback)
options null required; currently takes no options
callback function required; callback
close(callback)
closes the broker websocket and http servers.
Example
Build docs
create annotated source documentation in
doc/
folder, uses groc


Python OOPs ConceptsLike other general purpose languages, python is also an object-oriented language since its beginning. Python is an object-oriented programming language. It allows us to develop applications using an Object Oriented approach. In Python, we can easily create and use classes and objects. Major principles of object-oriented programming system are given below.
ObjectThe object is an entity that has state and behavior. It may be any real-world object like the mouse, keyboard, chair, table, pen, etc. Everything in Python is an object, and almost everything has attributes and methods. All functions have a built-in attribute __doc__, which returns the doc string defined in the function source code. ClassThe class can be defined as a collection of objects. It is a logical entity that has some specific attributes and methods. For example: if you have an employee class then it should contain an attribute and method, i.e. an email id, name, age, salary, etc. SyntaxMethodThe method is a function that is associated with an object. In Python, a method is not unique to class instances. Any object type can have methods. InheritanceInheritance is the most important aspect of object-oriented programming which simulates the real world concept of inheritance. It specifies that the child object acquires all the properties and behaviors of the parent object. By using inheritance, we can create a class which uses all the properties and behavior of another class. The new class is known as a derived class or child class, and the one whose properties are acquired is known as a base class or parent class. It provides re-usability of the code. PolymorphismPolymorphism contains two words "poly" and "morphs". Poly means many and Morphs means form, shape. By polymorphism, we understand that one task can be performed in different ways. For example You have a class animal, and all animals speak. But they speak differently. Here, the "speak" behavior is polymorphic in the sense and depends on the animal. So, the abstract "animal" concept does not actually "speak", but specific animals (like dogs and cats) have a concrete implementation of the action "speak". EncapsulationEncapsulation is also an important aspect of object-oriented programming. It is used to restrict access to methods and variables. In encapsulation, code and data are wrapped together within a single unit from being modified by accident. Data AbstractionData abstraction and encapsulation both are often used as synonyms. Both are nearly synonym because data abstraction is achieved through encapsulation. Abstraction is used to hide internal details and show only functionalities. Abstracting something means to give names to things so that the name captures the core of what a function or a whole program does. Object-oriented vs Procedure-oriented Programming languages
Next TopicPython Class and Objects
|
Python OOPs ConceptsLike other general purpose languages, python is also an object-oriented language since its beginning. Python is an object-oriented programming language. It allows us to develop applications using an Object Oriented approach. In Python, we can easily create and use classes and objects. Major principles of object-oriented programming system are given below.
ObjectThe object is an entity that has state and behavior. It may be any real-world object like the mouse, keyboard, chair, table, pen, etc. Everything in Python is an object, and almost everything has attributes and methods. All functions have a built-in attribute __doc__, which returns the doc string defined in the function source code. ClassThe class can be defined as a collection of objects. It is a logical entity that has some specific attributes and methods. For example: if you have an employee class then it should contain an attribute and method, i.e. an email id, name, age, salary, etc. SyntaxMethodThe method is a function that is associated with an object. In Python, a method is not unique to class instances. Any object type can have methods. InheritanceInheritance is the most important aspect of object-oriented programming which simulates the real world concept of inheritance. It specifies that the child object acquires all the properties and behaviors of the parent object. By using inheritance, we can create a class which uses all the properties and behavior of another class. The new class is known as a derived class or child class, and the one whose properties are acquired is known as a base class or parent class. It provides re-usability of the code. PolymorphismPolymorphism contains two words "poly" and "morphs". Poly means many and Morphs means form, shape. By polymorphism, we understand that one task can be performed in different ways. For example You have a class animal, and all animals speak. But they speak differently. Here, the "speak" behavior is polymorphic in the sense and depends on the animal. So, the abstract "animal" concept does not actually "speak", but specific animals (like dogs and cats) have a concrete implementation of the action "speak". EncapsulationEncapsulation is also an important aspect of object-oriented programming. It is used to restrict access to methods and variables. In encapsulation, code and data are wrapped together within a single unit from being modified by accident. Data AbstractionData abstraction and encapsulation both are often used as synonyms. Both are nearly synonym because data abstraction is achieved through encapsulation. Abstraction is used to hide internal details and show only functionalities. Abstracting something means to give names to things so that the name captures the core of what a function or a whole program does. Object-oriented vs Procedure-oriented Programming languages
Next TopicPython Class and Objects
|
Python OOPs ConceptsLike other general purpose languages, python is also an object-oriented language since its beginning. Python is an object-oriented programming language. It allows us to develop applications using an Object Oriented approach. In Python, we can easily create and use classes and objects. Major principles of object-oriented programming system are given below.
ObjectThe object is an entity that has state and behavior. It may be any real-world object like the mouse, keyboard, chair, table, pen, etc. Everything in Python is an object, and almost everything has attributes and methods. All functions have a built-in attribute __doc__, which returns the doc string defined in the function source code. ClassThe class can be defined as a collection of objects. It is a logical entity that has some specific attributes and methods. For example: if you have an employee class then it should contain an attribute and method, i.e. an email id, name, age, salary, etc. SyntaxMethodThe method is a function that is associated with an object. In Python, a method is not unique to class instances. Any object type can have methods. InheritanceInheritance is the most important aspect of object-oriented programming which simulates the real world concept of inheritance. It specifies that the child object acquires all the properties and behaviors of the parent object. By using inheritance, we can create a class which uses all the properties and behavior of another class. The new class is known as a derived class or child class, and the one whose properties are acquired is known as a base class or parent class. It provides re-usability of the code. PolymorphismPolymorphism contains two words "poly" and "morphs". Poly means many and Morphs means form, shape. By polymorphism, we understand that one task can be performed in different ways. For example You have a class animal, and all animals speak. But they speak differently. Here, the "speak" behavior is polymorphic in the sense and depends on the animal. So, the abstract "animal" concept does not actually "speak", but specific animals (like dogs and cats) have a concrete implementation of the action "speak". EncapsulationEncapsulation is also an important aspect of object-oriented programming. It is used to restrict access to methods and variables. In encapsulation, code and data are wrapped together within a single unit from being modified by accident. Data AbstractionData abstraction and encapsulation both are often used as synonyms. Both are nearly synonym because data abstraction is achieved through encapsulation. Abstraction is used to hide internal details and show only functionalities. Abstracting something means to give names to things so that the name captures the core of what a function or a whole program does. Object-oriented vs Procedure-oriented Programming languages
Next TopicPython Class and Objects
|
Python OOPs ConceptsLike other general purpose languages, python is also an object-oriented language since its beginning. Python is an object-oriented programming language. It allows us to develop applications using an Object Oriented approach. In Python, we can easily create and use classes and objects. Major principles of object-oriented programming system are given below.
ObjectThe object is an entity that has state and behavior. It may be any real-world object like the mouse, keyboard, chair, table, pen, etc. Everything in Python is an object, and almost everything has attributes and methods. All functions have a built-in attribute __doc__, which returns the doc string defined in the function source code. ClassThe class can be defined as a collection of objects. It is a logical entity that has some specific attributes and methods. For example: if you have an employee class then it should contain an attribute and method, i.e. an email id, name, age, salary, etc. SyntaxMethodThe method is a function that is associated with an object. In Python, a method is not unique to class instances. Any object type can have methods. InheritanceInheritance is the most important aspect of object-oriented programming which simulates the real world concept of inheritance. It specifies that the child object acquires all the properties and behaviors of the parent object. By using inheritance, we can create a class which uses all the properties and behavior of another class. The new class is known as a derived class or child class, and the one whose properties are acquired is known as a base class or parent class. It provides re-usability of the code. PolymorphismPolymorphism contains two words "poly" and "morphs". Poly means many and Morphs means form, shape. By polymorphism, we understand that one task can be performed in different ways. For example You have a class animal, and all animals speak. But they speak differently. Here, the "speak" behavior is polymorphic in the sense and depends on the animal. So, the abstract "animal" concept does not actually "speak", but specific animals (like dogs and cats) have a concrete implementation of the action "speak". EncapsulationEncapsulation is also an important aspect of object-oriented programming. It is used to restrict access to methods and variables. In encapsulation, code and data are wrapped together within a single unit from being modified by accident. Data AbstractionData abstraction and encapsulation both are often used as synonyms. Both are nearly synonym because data abstraction is achieved through encapsulation. Abstraction is used to hide internal details and show only functionalities. Abstracting something means to give names to things so that the name captures the core of what a function or a whole program does. Object-oriented vs Procedure-oriented Programming languages
Next TopicPython Class and Objects
|


Dr. Xing Tan, Program Manager<EMAIL_ADDRESS>ADERSIM NSERC CREATE 2003 TEL Building York University Toronto, Ontario M3J 1P3, Canada


Son: "Dad, Ben is mad at me."
Dad: "Uh oh. What happened?"
Son: "He tried to take my chips at lunch and I wouldn't let him."
Dad: "That doesn't sound like Ben. Do you think something changed in his life to make him do that?"
Son: "I don't know, but now he's mad at me and I don't like that."
Son: "Dad, am I sorry?"
Dad: "That's a great question. It's also a really tough one that only you can answer, but sometimes it's worth trying to put on the other person's shoes first."
Son: "Ben's feet are way bigger. His shoes won't fit."
Dad: "Ha, well, what I meant to say is it's not like Ben to try and take something from you and then be upset about it after, is it?"
Son: "No."
Dad: "Maybe before deciding if you're sorry, we should think about what Ben might've been feeling."


rotten > Library > Biographies > Presidents > Bill Clinton
Bill Clinton
America's First Black President
In a 1998 essay in the New Yorker, author Toni Morrison described Clinton as "our first black president. Blacker than any actual person who could ever be elected in our children's lifetime." She went on to say:
Clinton displays almost every trope of blackness: single-parent household, born poor, working-class, saxophone-playing, McDonald's-and-junk-food-loving boy from Arkansas.
This is just another reason that the Republicans absolutely hated Clinton.  He drove them utterly apeshit. The Republican leadership of the House could barely conceal their contempt for the man in their photo ops and press conferences. As far as they were concerned, Clinton was nothing more than a smarmy hick, the former governor of a backwater southern state, and corrupt as fuck. A guy that even had to lie about not inhaling.
In 1994, conservative religious whore Jerry Falwell released the straight-to-video documentary "The Clinton Chronicles: An Investigation into the Alleged Criminal Activities of Bill Clinton." The preacher aired excerpts from the tape on his weekly television show The Old Time Gospel Hour. The back of the box said:
|
|
For the first time on video, a documentary that puts together the whole story! -- The names and faces of the key players who Clinton used to build his Circle of Power... as well as those who got in his way and lost their jobs, reputations, virtue, and lives! From Whitewater to ADFA... From millions in drug smuggling in Mena, Arkansas, to money laundering with the BCCI... From Gennifer Flowers to Paula Jones... From Vince Foster's "suicide" to the gangland slaying of private investigator Jerry Parks.
THE CLINTON CHRONICLES uncovers the shocking truth the controlled media and Clintons don't want you to know!
Watch THE CLINTON CHRONICLES for the whole story. You won't find this anywhere else!
|
The 80-minute tape included footage of Jerry Falwell interviewing a silhouetted journalist who was afraid for his life. The journalist accused Clinton of orchestrating the deaths of several reporters and personal confidants who had gotten too close to his illegalities. All credibility evaporated when it was discovered that this "journalist" Falwell interviewed turned out to be the producer of the video. Not that it mattered. Falwell's fraudulent tape sold well anyway.
Soon Congress appointed Kenneth Starr as special prosecutor to investigate the President's involvement in the Whitewater real estate scandal. When the Starr Report was finally released, it contained almost nothing about Whitewater. Instead, it focused on Clinton's receipt of oral copulation in the Oval Office and subsequent lying about it under oath. The President had a difficult time trying to explain how his ejaculate encrusted itself on a dress belonging to plump White House intern Monica Lewinsky.
Clinton wound up impeached by the House of Representatives, although he was ultimately acquitted in the resulting Senate trial. Among the Congressmen who voted to impeach was Sonny Callahan (R-Alabama). One of the offending blowjobs in question had been performed during a telephone call between President Clinton and Callahan.
But what else could you expect from a guy whose personal hero was John F. Kennedy, himself known for frequently dipping the Presidential wick.
Clinton's legacy is survived by his wife Hillary Clinton (Senator, D-NY) and his Attorney General Janet Reno's failed attempt to run for Governor of Florida.
Member, Council on Foreign Relations.
In the movie Primary Colors, Clinton's character was played by John Travolta.
timeline
| 17 May 1946 |
William Jefferson Blythe II killed in automobile accident, near Sikeston MO. |
| 19 Aug 1946 |
William Jefferson Blythe III born, Hope AR. |
| 26 Oct 1947 |
Hillary Rodham born, Chicago IL. |
| 1968 |
B.A., International Affairs, Georgetown University. |
| 1973 |
Graduates Yale law school. |
| 11 Oct 1975 |
Marries Hillary Clinton. |
| 25 Apr 1978 |
Arkansas state attorney general Bill Clinton allegedly rapes 35-year-old nursing home proprietor Juanita Broaddrick at the Camelot Inn in Little Rock. Broaddrick does not come forward with her story until 1998. |
| 1978 |
Elected governor of Arkansas, age 32. |
| 27 Feb 1980 |
Daughter Chelsea Victoria Clinton born.  In her civil deposition, Jones will later claim to have witnessed certain "distinguishing characteristics" of the governor's genitalia, the precise nature of which soon becomes the subject of much speculation. For her trouble, Jones eventually receives an out-of-court settlement for $850,000 and a nude pictorial in Penthouse magazine. |
| 27 Jan 1992 |
Candidate Bill Clinton and Gennifer Flowers mutually accuse each other of lying about whether or not they had a 12-year adulterous relationship, between 1977 and 1989. Of course, from Clinton's 1998 testimony we know for a fact that they did. For her trouble, Flowers eventually receives an out-of-court settlement for $800,000 and a nude pictorial in Penthouse magazine. |
| 29 Mar 1992 |
Arkansas Governor and Presidential candidate Bill Clinton tells the New York Times: "When I was in England, I experimented with marijuana a time or two, and I didn't like it. I didn't inhale, and never tried it again." |
| 3 Nov 1992 |
Elected 42nd President of United States. |
| 11 Feb 1993 |
President Clinton nominates the beautiful Janet Reno to be US Attorney General. |
| 28 May 1993 |
After being interrupted by AIDS protesters during a speech in Philadelphia, President Clinton opines: "Let me tell you something -- Wait a minute. You know one things that's wrong with this country? Everybody gets a chance to have their fair say." |
| 19 Jul 1993 |
President Clinton unveils the universally-unpopular "Don't Ask, Don't Tell" rule. One person summarizes the policy: "the military now permits gays to remain in the military, provided they don't act like fairies." |
| 23 Dec 1993 |
On his television show The 700 Club, Pat Robertson declares: "God and morality, the Clinton administration wants out of the country." |
| 8 Feb 1994 |
President Bill Clinton shares part of his past with a bunch of General Motors employees: "When I was a younger man and had a life, I owned an El Camino pickup in the '70s. It was a real sort of Southern deal. I had Astroturf in the back. You don't want to know why, but I did." |
| 18 Feb 1994 |
On his television show The 700 Club, Pat Robertson declares: "These socialists, and they're in there now, starting with the President and his associates ... they want to squeeze out religion because if people read the Bible, they can't be enslaved. You'll never have a socialist government where everybody's Christian." |
| 19 Apr 1994 |
During an appearance on MTV's Enough is Enough, "When we got organized as a country and we wrote a fairly radical Constitution with a radical Bill of Rights, giving a radical amount of individual freedom to Americans... And so a lot of people say there's too much personal freedom. When personal freedom's being abused, you have to move to limit it." |
| 12 Sep 1994 |
After a night of boozing and smoking crack, Frank Corder steals a Cessna P150 and crashes it into the south lawn of the White House. The wreckage tumbles over a tree and a hedge before coming to rest against the West Wing of the Executive Mansion. Corder's flamboyant suicide attack never actually imperiled President Clinton's life, since the First Family was sleeping elsewhere at the time. |
| 29 Oct 1994 |
Armed with a semi-automatic rifle, Colorado upholsterer Francisco Duran fires 27 shots at the White House from the sidewalk on Pennsylvania Ave. Because he opted for Chinese-made SKS rifle, few of Duran's shots come anywhere near the building. Nevertheless, he receives a life sentence for attempting to assassinate President Clinton.
|
| 5 May 1995 |
During commencement at Michigan State University, President Clinton declares: "There is nothing patriotic about hating your country, or pretending that you can love your country but despise your government." |
| Jun 1995 |
Monica Lewinsky, 21, comes to the White House as an unpaid intern, working for the office of the Chief of Staff. Later, she'll come in the White House. |
| 15 Nov 1995 |
Bill Clinton gets a blowjob from Monica Lewinsky in a private study in the White House while on the phone with Reps. Jim Chapman and John Tanner. Duuude. |
| 8 Jun 1996 |
In his weekly radio address, President Bill Clinton reminisces: "I have vivid and painful memories of black churches being burned in my own state when I was a child." Two days later, after it became clear that no black churches were burned in Arkansas during that period, a deputy White House press secretary clarifies: "The President's recollection is that there were burnings of some black community buildings in the '50s when he was a child." |
| 29 Aug 1996 |
Dick Morris, the top political adviser to President Bill Clinton and also a married man, resigns abruptly after the Star reveals his long-term relationship with a Washington prostitute. Morris had divulged secret White House information to Sherry Rowlands, even allowing the hooker to secretly listen in on some of his telephone conversations with the President. |
| 8 Nov 1997 |
President Bill Clinton speaks at a dinner sponsored by the Human Rights Campaign, the nation's largest gay rights organization. It is the first time an American president has so addressed a gathering of sodomites. |
| 9 Nov 1997 |
On Meet the Press, President Bill Clinton declares: "It's funny, you know -- I haven't eaten at McDonald's a single time since I've been President." White House spokesman Joe Lockhart later clarifies that the President has enjoyed McDonald's coffee on a number of occasions. |
| 19 Jun 1998 |
The online scandal sheet Drudge Report breaks the story about Monica Lewinsky and her affair with Clinton, unexpectedly causing the peak in Internet Investigative Journalism for the forseeable future. |
| 6 Apr 1998 |
Discussing the assault weapons ban, President Clinton observes: "As everyone knows, you don't need an Uzi to go deer hunting. You don't need an AK-47 to go skeet shooting." |
| 1998 |
John Travolta plays Bill Clinton in Primary Colors. |
| 15 Mar 1998 |
White House aide Kathleen Willey claims on the trashy TV tabloid program 60 Minutes that President Bill Clinton kissed her, touched her breasts and made her touch his "no-no place." Clinton of course denies this version of events. |
| 9 Dec 1999 |
President Bill Clinton signs legislation outlawing "crush videos," which generally involve women stomping frogs, mice, or other small animals with high heels. This fetish is definitely a niche market. |
| 15 Feb 2000 |
During a White House conference on Internet security, Mudge becomes the first Cult of the Dead Cow member ever to brief the President of the United States. |
| 22 Oct 2003 |
On Crossfire, Jerry Falwell explains that God arranged for President Clinton to be elected (and re-elected) so that Americans would beg for somebody else: "I think that we needed Bill Clinton, because we turned our backs on the Lord and we needed a bad President to get our attention again. To pray for a good President. That's what I believe." |
| Oct 2003 |
During a trip to Spain, former President Bill Clinton tells reporters that British Prime Minister Tony Blair's recent heart arrhythmia didn't surprise him: "I've known about this for a long time. He told me about it quite a few years ago." For their part, Blair's people dispute the claim. |
Pornopolis |
Rotten |
Faces of Death |
Famous Nudes
|


Currently 4000 Danish sign-language speakers and decreasing
Benefactor to the decrease: Cochlear implant
People born without hearing nerve are left behind
No incitement from public schools in basic curriculum
Combines real and virtual
Interactive in realtime
Registered in 3D
Interactivity implies that the human–computer interface operates in a tightly coupled feedback loop
TaleTegn arguebly being in the mobile AR segment
| Pros | Cons |
|---|---|
| Cross-compatibility | Field-of-View: Operating area |
| Easy setup | Narrow appliances |
| In the field of opportunities | Too many technical flaws |
Linking of educational objectives and contextual information for
synchronization of learning
support in mobile AR applications is essential for understanding the underlying learning
processes and
the role of the augmentation for learning.
- Mark van ‘t Hooft (2011)
Support for immersion and exploration
Real time feedback & linking movements
List of available words/sentences
Video of the objective
VR has more options for immersion
VR simulations may instruct better


Toggle navigation
Kiana Hui
Home
About
Projects
What I Like
Eating
Sleeping
Netflix
Shopping
And coding and user experience and design and entrepreneurship and all that stuff..


Home > Overview > User Interface >
The keyboard interface has been designed for convenient data entry. The usual sequence when building up an XML fragment is to use INSERT to enter a new node of the same type as the current node, type in its name then hit TAB to enter its value, then repeat this process and soon you will have quickly built up a document from scratch.
Handy Keyboard short cuts include:
| TAB | TAB navigates from the tree view to the corresponding node value then to the next node in the tree view and so on. SHIFT-TAB does the reverse. |
| Arrow Keys | Up/Down/Left/Right do the usual things in the tree view. |
| CTRL+SHIFT+Arrow | Nudge the selected node up, down, left or right. |
| HOME/END | Navigate to first and last visible nodes in the tree view. |
| PAGE UP/DOWN | Scrolls the tree view up or down one page. |
| INSERT | Insert another node of the same type. |
| CTRL+INSERT | Insert a child element. |
| ALT+INSERT | Insert a child attribute. |
| ENTER | Enter and exit edit mode on a node name and/or node value. You can also enter edit mode by just typing in some non-navigational keystrokes and what you type will replace what was selected. |
| CTRL+D | Duplicate the current node, so you can quickly create similar fragments of XML and then just edit the values. |
| CTRL+F | Brings up the Find dialog. |
| CTRL+H | Brings up the Find/Replace dialog. |
| CTRL+I | Incremental search - as you type a sequence of letters, this search mode will match the next node that starts with that sequence. The more letters you type the more precise the match becomes. In a large document this is a convenient way to navigate around. |
| CTRL+C, CTRL+V, CTRL+X | Cut/Copy/Paste - see Clipboard support. |
| F2 | Edit the current node name or value. |
| F3 | After dismissing the find dialog, this keystroke repeats the last Find operation. SHIFT+F3 finds in the reverse direction. |
| F6 | Move focus to next panel (cycles between tree view, value view and error list). SHIFT+F6 cycles in the reverse order. |
| F4 | Move to the next error. |
| SHIFT+ENTER | Add a new line to a multi-line node value |
| CTRL+DRAG-DROP | Normally drag/drop is a move operation. If you hold down the Control key then it becomes a Copy operation. |
| Multiply (* on number pad) | Expand all nodes under the selected node. |
| Add (+ on number pad) | Expand the selected node. |
| Subtract (- on number pad) | Collapse the selected node. |


Gateway
BOT
11-Jul-18 07:59 AM
[dscrdeql] <KQweci> Morning
[dscrdeql] <KQweci> Decided to go the hard way this morning
[dscrdeql] <KQweci> Decided to go the hard way this morning
[dscrdeql] <x2maano> morning
[dscrdeql] <KQweci> How are u @x2maano
[dscrdeql] <jellysmash> morning @KQweci
[dscrdeql] <jellysmash> it's nightime for me
[dscrdeql] <jellysmash> just got home from work
[dscrdeql] <jellysmash> that's always good
[dscrdeql] <KQweci> Morning @jellysmash
[dscrdeql] <KQweci> Aww. It's 8am and just about to start my day
[dscrdeql] <jellysmash> what's the 'hard way' this morning?
[dscrdeql] <aFastHero> It's 3am here...I'm about to end my day!
[dscrdeql] <jellysmash> that's a late turn in @aFastHero
[dscrdeql] <jellysmash> won't you be shattered tomorrow
[dscrdeql] <aFastHero> nah, I do my best work at night.
[dscrdeql] <jellysmash> I'm more a morning person myself
[dscrdeql] <jellysmash> not too good at night
[dscrdeql] <aFastHero> I can function without issue on at least 4 hours of sleep.
[dscrdeql] <KQweci> Taking hamburger: instead of clients coffee
[dscrdeql] <aFastHero> But I've also been doing some selling tonight. Made a nice profit on DGB. Closed 50% of my position at 639 and the rest, just now, at 605.
[dscrdeql] <jellysmash> hamburger...breakfast of champions?
[dscrdeql] <x2maano> me fine what about you?
[dscrdeql] <jellysmash> 4 hours sleep isn't much
[dscrdeql] <aFastHero> Closed my MCO position as well. Looking forward to buying that back much lower.
[dscrdeql] <KQweci> I'm morning person too but I don't joke with work as long as am getting person. I don't mind doing 20hrs with 4 hrs break
[dscrdeql] <jellysmash> Why did you close your DGB position?
[dscrdeql] <jellysmash> just think it's going down?
[dscrdeql] <KQweci> Am good @x2maano
[dscrdeql] <jellysmash> did you sell for fiat or btc?
[dscrdeql] <x2maano> is this your health secret
[dscrdeql] <aFastHero> Hit significant resistance, RSI topped out, 5-wave count up complete.
[dscrdeql] <aFastHero> sold for BTC
[dscrdeql] <aFastHero> I trade for BTC
[dscrdeql] <x2maano> good
[dscrdeql] <jellysmash> ok, thought maybe fiat or USDT
[dscrdeql] <aFastHero> Not I, sir.
[dscrdeql] <jellysmash> BTC isn't looking too good at the moment either
[dscrdeql] <jellysmash> in downtrend
[dscrdeql] <aFastHero> The movements of BTC have become irrelevant to me.
[dscrdeql] <aFastHero> I've made it a point to learn how to make gains with the market going up OR down.
[dscrdeql] <aFastHero> Even if BTC drops lower, seems way too risky to short now. To me, at least.
[dscrdeql] <aFastHero> I guess I could, but I see that I'll do much better focusing on alts at the moment.
[dscrdeql] <aFastHero> For the record, I'm planning to buy back in to DGB at sub 500 levels.
[dscrdeql] <x2maano> nice
[dscrdeql] <jellysmash> ok, sounds like a plan
[dscrdeql] <aFastHero> not A plan...THE MOTHA FUCKIN plan
[dscrdeql] <jellysmash> haha...yep
[dscrdeql] <Podmaster> What up everyone
[dscrdeql] <aFastHero> Hard ****s and helicopters!
[dscrdeql] <jellysmash> cool
[dscrdeql] <aFastHero> Anything exciting going on for anyone?
[dscrdeql] <aFastHero> or eventful?


Encolumn elements component This columns are just one <ul> styled with multi column CSS3 feature. You can find the component ready to use in /src/scss/shared-components/_encolumn-content.scss


Please select from one of the above links.
Further projects not yet documented:
Spectrum +3 improved mono audio
Spectrum +2 four audio outputs
Timex Sinclair 1500 composite video
Universal Commodore 64 internal second SID board
Commodore VIC-20 S-video & improved audio
Commodore 16 64K expansion
Atari 800XL & 1200XL S-video
Atari 600XL 64K expansion
Toshiba HX-10 MSX S-video & six channel audio
Switchable Konami MSX SCC multi game cartridge
Tandy Colour Computer S-video (NTSC & PAL) & composite video (NTSC)
Nintendo NES stereo audio & Famicom three audio outputs


05 Testimonials
Using BestEssayService.net was possibly the best choice of my academic career. Even though I work full-time, I managed to submit all my assignments on time owing to the broad array of services on offer. No matter what written work I needed, help was available. I would give a full ten marks.
Lorna Grey
20 apr 2016 at 8:23
Using BestEssayService.net was possibly the best choice of my academic career. Even though I work full-time, I managed to submit all my assignments on time owing to the broad array of services on offer. No matter what written work I needed, help was available. I would give a full ten marks.
Lorna Grey
20 apr 2016 at 8:23
Using BestEssayService.net was possibly the best choice of my academic career. Even though I work full-time, I managed to submit all my assignments on time owing to the broad array of services on offer. No matter what written work I needed, help was available. I would give a full ten marks.
Lorna Grey
20 apr 2016 at 8:23