If the genesets that are imported by Ensembl Genomes include RNA genes as well as protein-coding genes, these RNA genes will be displayed without modification. However, often RNA genes are not provided, or only a subset of biotypes will have been annotated (e.g. tRNA genes). In the case of missing or partial RNA gene annotation, Ensembl Genomes performs RNA gene prediction.
Currently, we are in a transitional state between two versions of our RNA gene annotation pipeline. As of release 36, Ensembl Metazoa uses the "New" method below; the other divisions currently use the "Old" method, but are moving to the "New" method in subsequent releases.
The RNA gene annotation uses three sources:
For all ncRNA except tRNA and rRNA genes, models are predicted by aligning a genomic sequence against Rfam sequences [5] using BLASTN. The BLAST hits are then used to seed Infernal searches of the aligned regions with the corresponding Rfam covariance models. The purpose of this is to reduce the search space required, as to scan the entire genome with all the Rfam covariance models would be extremely CPU-intensive.
tRNA is predicted by using tRNAScan-SE software [2]. Version 1.23 of the program was used, configured for superregnum as appropriate.
rRNA is predicted by using RNAmmer software [6]. Version 1.2 of the program was used, configured for superregnum as appropriate.
Historically, RNA genes annotated by Ensembl Genomes have had identifiers that encoded the division and species name, e.g. EMBMOG00000000027, where "EM" means Ensembl Metazoa, "BMO" means Bombyx mori, and "G" indicates a gene (as opposed to "T" for a transcript). Starting with Ensembl Metazoa in release 36 (and other divisions in subsequent releases) we are switching to a simpler format, applicable across all divisions, with an "ENSRNA" prefix, where "ENS" is short for Ensembl, and "RNA" is, hopefully, self-explanatory. E.g. ENSRNA022711053 is a gene stable identifier, and transcripts of that gene have a suffix with "T" for transcript and a number, e.g. ENSRNA022711053-T1.
Stable identifiers have been mapped, such that ID History Converter tool can be used to find new IDs which correspond to old IDs (and vice versa). However, note that the new pipeline for RNA gene annotation is more rigorous in its filtering than the old pipeline, so old, unsupported genes may have been deleted and have no mapping to a new ID.
Kozomara A and Griffiths-Jones S (2014) miRBase: annotating high confidence microRNAs using deep sequencing data Nucl. Acids Res. 42 D68-73
Lowe TM and Eddy SR (1997) tRNAScan-SE: a program for improved detection of transfer RNA genes in genomic sequence Nucl. Acids Res. 25 955-964
Nawrocki EP et al. (2015) Rfam 12.0: updates to the RNA families database Nucl. Acids Res. 43 D130-37
Nawrocki EP and Eddy SR (2013) Infernal 1.1: 100-fold faster RNA homology searches Bioinformatics 29 2933-2935
Burge SW et al. (2013) Rfam 11.0: 10 years of RNA families Nucl. Acids Res. 41 D226-32
Lagesen K et al. (2007) RNammer: consistent annotation of rRNA genes in genomic sequences Nucl. Acids Res. 35 3100-3108


This converts a PyObject* to a D type. The template argument is the type to
convert to. The function argument is the PyObject* to convert. For instance:
PyObject* i = PyInt_FromLong(20);
int n = d_type!(int)(i);
assert(n == 20);
This throws a DPyConversionException if the PyObject can't be converted to
the given D type.


json2flot Example Dashboard
Comma separated list of URLs:
Time between updates:
milliseconds
Get API req/sec
Get API latency


I know it’s been a while since I posted (a typical excuse, right?) but I’ve been pretty busy lately. Let me fill you in…
This summer our company decide to create additional positions for the VP of consulting since we had grown to over 90 consultants and I was promoted to one of those positions. It was a great opportunity for me to better connect with a number of our folks but also for me to increase my involvement in the business aspects of the company. I enjoy meeting with everyone and talking, not only about what’s going on with their client or our company, but also helping them in figuring out what their career path looks like and where they want to go. It’s something that I’m really passionate about; the future.
So even more recently, our president, Barry Rogers, decided to semi-retire. He and his wife have always wanted to have a different work-life ratio than what they currently enjoyed and so are making a change. You can read a little more about their plans as well as their upcoming/on-going adventures at We Be Balanced. Given this decision, it was announced that I will be taking over as president beginning in 2013. I’m excited about the direction our company is heading and the opportunity to help shape and steer things. I realize this means I will have to prioritize my focus a little differently and, while I’m unlikely to give up on my late night coding sessions entirely, they will probably become a little less frequent.


Deals
Search
Catalog
Card
Account
My Bag
New
Tops
Bottoms
Dresses
Coats & Jackets
Accessories
Intimates
Sleepwear
Swimwear
Clearance
MY SHOPPING CART
Item
Qty
Subtotal
Fine Gauge Crewneck Shell
SIZE:
12
PRICE:
$44.99
1
$44.99
Order Summary
SUBTOTAL: $44.99
CHECK OUT


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Class Summary | |
| AsEvent | This class merely has utility methods to help deal with the AWT "feature" that you may only call some (many? most? all?) AWT methods from within the AWT event queue or face the dire consequences of difficult-to-debug deadlock problems. |
| JFrame | This is a replacement for (subclass of, actually)
javax.swing.JFrame , that knows about iconification. |
| TextOutputPanel | This is just a simple panel which shows any text spit at it through the streams it provides for such spitting. |
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Roses are red,
Violets blue,
Sugar is sweet...
and prehaps so are you?
But the roses have wilted,
the violets are dead
The sugar bowl's empty,
The wrists are stained red.
The sun isn't shining
the sky isn't clear;
there's no silver lining
cause you're no longer here
Rain keeps on pouring,
there's no end in sight,
you're laying there frozen,
so far from light.
Your beauty's unreal
your smile the sun,
but time cannot be unturned
nor your actions undone.
The words that you wrote that only I can read
'I love you so much; please don't cry when I'm dead.'
A bond that we formed,
a love that ran deep,
a pain that we shared;
a friend that I could keep.
I wanted to hold you,
wipe the tears from your eyes;
been there the moment you said your goodbye.
I want to forget but most times I don't
I want to let go,
but I know that I won't.
Tears on my face,
memories burned in my head;
the roses have wilt,
the violets are dead.
Use Scroll to Begin


Toggle drawing
Erase drawing
Noise multiplier
Flees
Frequencies around kick
Pulses
Path
Tonal Visualizer
No symmetry
Point in the middle
X line in the middle
Y line in the middle
XY lines in the middle
Log in with Spotify
Refresh Spotify


Timers
State machine transitions can be triggered by the expiration of a timer. The corresponding transition simply declares a trigger with the name of the timer.
= {'source': 's0', trigger: 't0', target='s2'} t
Starting Timers
A timer can be started as part of a transition action:
= {'source': 'initial', trigger: 'm', target='s1', effect='start_timer("t0", "1000")'} t
Similarly, a timer can be started as part of the entry or exit action of a state:
= {'name': 's0',
s_0 'entry': 'start_timer("t0", "1000")'}
A state must have a name, for instance t0
. The duration is given in milliseconds. It is the minimum time until the timer’s expiration, but may vary due to the state of the event queue and the load of the system.
A timer can also be started from code, using the state machine method start_timer() directly. This has the advantage that the duration does not have to be hard-coded, and can depend on any calculation in code.
Restarting a Timer
If a timer is active and start_timer()
is called once again, the timer starts again with the new timeout.
Stopping Timers
Timers can be stopped using the action stop_timer()
, either using the method start_timer() or as part of a transition action:
= {'source': 's1', trigger: 't', target='s2', effect='stop_timer("t0")'} t
As an effect, the timer will be stopped. If it already expired, nothing will happen.
Checking Timer Status
In seldom cases, you may want to check in code the status of a timer. For that, use method start_timer(). It returns either the remaining time for that timer, or None
if the timer is not active or does not exist. Note that the most common patterns of accessing the status of a timer is via the state machine’s states and transitions, by letting the timer expire and then change the state of a state machine, which in turn changes how other events are handled.


As the Dursleys are falling asleep, Albus Dumbledore, a wizard and the head of the Hogwarts wizardry academy, appears on their street.
Read MoreMrs. Dursley had had a nice, normal day. She told him over dinner all about Mrs. Next Door’s problems with her daughter and how Dudley...
Read MoreProfessor McGonagall shot a sharp look at Dumbledore and said, “The owls are nothing next to the rumors that are flying around...
Read MoreNearly ten years had passed since the Dursleys had woken up to find their nephew on the front step...
Read MoreAunt Petunia obviously scented danger, too, because she said quickly...
Read MoreIt was a very sunny Saturday and the zoo was crowded with families. The Dursleys bought Dudley and Piers..
Read MoreThe escape of the Brazilian boa constrictor earned Harry his longest-ever punishment...
Read MoreThat evening when he got back from work, Uncle Vernon did something he’d never done before...
Read MoreOn Sunday morning, Uncle Vernon sat down at the breakfast table looking tired and rather ill, but happy...
Read MoreHarry Potter is a series of fantasy novels written by British author J. K. Rowling. The novels chronicle the life of a young wizard, Harry Potter, and his friends Hermione Granger and Ron Weasley, all of whom are students at Hogwarts School of Witchcraft and Wizardry.
The main story arc concerns Harry's struggle against Lord Voldemort, a dark wizard who intends to become immortal, overthrow the wizard governing body known as the Ministry of Magic, and subjugate all wizards and Muggles, a reference term that means non magical people.


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 113489newmembers/23264Reassignvariablevalue.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/113489-new-members/topic/Reassign.20variable.20value.html


CrimPapers
Articles published on 3 October 2018
On 3 October 2018, 10 new articles were published in 9 journals.
Promoting Pirate Prisons: Exploring the Intersections of Narratives, Media, and Criminal Justice Reform in East Africa
Review of A Politically Incorrect Feminist, By Phyllis Chesler
Corruption Intentions Among Prospective Elites in Ghana: An Economy of Esteem by Justice Tankebe, Susanne Karstedt, Sarah Adu-Poku
Diversity and Safety on Campus @ Western: Heterosexism and Cissexism in Higher Education by Nicole L. Asquith, Tania Ferfolia, Brooke Brady, Benjamin Hanckel
Narrating Rape: An Ethnographic Case-Study of Non-Consensual Sexual Debut in Tanzania by Erin Kenny
Breaking the Cycle of Child Maltreatment and Intimate Partner Violence: the Effects of Student Gender and Caring Relationships With Teachers by Jessica Vaughan-Jensen, Danielle M. Smith, Jamilia J. Blake, Verna M. Keith, Victor K. Willson
Intimate Partner Violence-Related Fractures in the United States: An 8 year Review
The Impact of Resilience Training on Occupational Stress, Resilience, Job Satisfaction, and Psychological Well-Being of Female Police Officers
How “Alone” Are Lone-Actors? Exploring the Ideological, Signaling, and Support Networks of Lone-Actor Terrorists by David C. Hofmann
Doing and Undoing Borders: the Multiplication of Citizenship, Citizenship Performances, and Migration As Social Movement by Nancy A Wonders, Lynn C Jones


class Doctor
HealthCareAbroad\InstitutionBundle\Entity\Doctor
Constants
| STATUS_ACTIVE |
Doctors that are active |
Methods
| __construct() | ||
| bigint |
getId()
Get id |
|
| Doctor |
setFirstName(string $firstName)
Set firstName |
|
| string |
getFirstName()
Get firstName |
|
| Doctor |
setMiddleName(string $middleName)
Set middleName |
|
| string |
getMiddleName()
Get middleName |
|
| Doctor |
setLastName(string $lastName)
Set lastName |
|
| string |
getLastName()
Get lastName |
|
| Doctor |
setDateCreated(datetime $dateCreated)
Set dateCreated |
|
| datetime |
getDateCreated()
Get dateCreated |
|
| Doctor |
setStatus(boolean $status)
Set status |
|
| boolean |
getStatus()
Get status |
|
| Doctor |
addInstitutionDoctor(InstitutionDoctor $institutionDoctors)
Add institutionDoctors |
|
|
removeInstitutionDoctor(InstitutionDoctor $institutionDoctors)
Remove institutionDoctors |
||
| Collection |
getInstitutionDoctors()
Get institutionDoctors |
Details
at line 51
public
__construct()
at line 61
public bigint
getId()
Get id
at line 72
public Doctor
setFirstName(string $firstName)
Set firstName
at line 83
public string
getFirstName()
Get firstName
at line 94
public Doctor
setMiddleName(string $middleName)
Set middleName
at line 105
public string
getMiddleName()
Get middleName
at line 116
public Doctor
setLastName(string $lastName)
Set lastName
at line 127
public string
getLastName()
Get lastName
at line 138
public Doctor
setDateCreated(datetime $dateCreated)
Set dateCreated
at line 149
public datetime
getDateCreated()
Get dateCreated
at line 160
public Doctor
setStatus(boolean $status)
Set status
at line 171
public boolean
getStatus()
Get status
at line 182
public Doctor
addInstitutionDoctor(InstitutionDoctor $institutionDoctors)
Add institutionDoctors
at line 193
public
removeInstitutionDoctor(InstitutionDoctor $institutionDoctors)
Remove institutionDoctors
at line 203
public Collection
getInstitutionDoctors()
Get institutionDoctors


FLY AWAY HOME A film review by Christopher Null Copyright 1996 Christopher Null
Anna Paquin's first starring role after stealing an Oscar for THE PIANO is the harmless family movie FLY AWAY HOME. Following in the footsteps of countless family movies before it, FLY AWAY HOME tries too hard to appeal to both children and their parents and ultimately loses much of its appeal to everybody.
In case you missed the movie's trailer, which provides a nice plot synopsis, FLY AWAY HOME is about a teenage girl (Paquin) from New Zealand who moves in with her Canadian father (Jeff Daniels) after her mother dies. The young girl is utterly bored and lonely until she finds a family of young goose eggs (eventually geese) to take care of. After she becomes the geese's mother, she finds happiness, and the whole family bands together to figure out how to take care of the geese. This ultimately leads to the decision to have young Anna fly the geese down south for the winter.
The first problem with this film comes in trying to understand why Anna's mother packed her up and moved to New Zealand of all places. The answer is of course that the studio execs wanted Anna in this picture, and everyone knows Anna Paquin is from New Zealand. Hence, the rewrite.
The second problem comes with trying to understand how important the death of Anna's mother actually is. Presumably since the filmmakers show us the whole car crash in the first scene, the mother's death is important, but after this scene she is not really discussed again for the next hour. Because of this, Anna's moping and whining for the first half of the film seems to have little motivation and Anna's character comes off as basically obnoxious. This is just about the kiss of death for a family movie, when the child star begins to become unlikable.
The rest of the characters, however, fit very well into the stereotypes they are trying to fill (and because they do, they help Anna's character fit into hers): Jeff Daniels plays the caring father trying to get through to his depressed child, Dana Delany is the terribly nice father's girlfriend who has an even harder time trying to make friends with Anna, and supporting characters fill out the various other good guy and bad guy roles. The character arches also fit nicely into the stereotypical family movie fare. Those being that as the story goes on, the bad guys get worse, forcing Anna to turn to the good guys for help, where she finds it. Of course, the story's development is not quite this simple, but it might as well be.
As I mentioned at the outset, FLY AWAY HOME is a family movie. This being the case, the filmmakers have thrown in plenty of cute things (baby geese) and silly things (Anna making funny faces) to keep the kids occupied. What hurts it though is that they have also tried to build rounded characters and a complex plot. In trying so hard to do both however, they have accomplished neither. The film jumps continuously from cute scene to mature scene resulting in 1) an emotional film that never quite lives up to its potential and 2) a lot of distracted children. FLY AWAY HOME is an on-and-off movie founded on the philosophy that it is better to please all of the people some of the time, which doesn't really work with children.
RATING: **1/2
|------------------------------| \ ***** Perfection \ \ **** Good, memorable film \ \ *** Average, hits and misses \ \ ** Sub-par on many levels \ \ * Unquestionably awful \ |------------------------------|
-Bradley Null is a filmmaker, guest critic, and brother of Christopher -Christopher Null /<EMAIL_ADDRESS>/ Writer-Producer -Visit the Movie Emporium at http://www.filmcritic.com/ -and Null Set Productions at http://www.filmcritic.com/nullset.htm
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


An infectious feeling of
rightness in the rhythm,
of being perfectly centered.
— Keb Mo'
I've had the pleasure
of playing with the
baddest Jazz cats on the planet.
— George Benson
hg clone https://hg.python.org/cpython
git clone https://github.com/python/cpython
My first relationship to any kind of musical situation is as a listener.
— Pat Metheny
pyvideo.org
python-ideas, python-docs, python-new-bugs-announce
OpenHatch, PyLadies, user groups
Along the way, mistakes WILL be made. Not all things tried will work out. But that impulse, the impulse to TRY THINGS, is perhaps the most attractive -- and sometimes the most underutilized.
— Pat Metheny
$cd Docs
$make html
I have won several prizes as the world's slowest alto player as well as a special award in 1961 for quietness.— Paul Desmond


At some point in our life, we all have been a fangirl for one TV series or the other. Be it some teenage drama, fiction, horror or just a romcom. TV series never fail to create a little escape to a light mood. Why do we feel so good after a binge, well, here's why The release of dopamine helps us feel good, and it results in a “high” similar to those induced by drugs and other substances.
“Welcome to the real world.  You’re gonna love it!”
Although there are many TV series we students fascinate about but here is a list
of few favourites of all times.
1. FŔIENDS- "Joey doesn't share his food"
An american sitcom according to a survey is liked by 95% of the people all over
the world. Follow the lives of six reckless adults living in Manhattan, as they
indulge in adventures which make their lives both troublesome and happening.
2. GAME OF THRONES-Winter is coming
Liked by 93%of the people from all over the world this TV series made it worth a
binge . Nine noble families wage war against each other in order to gain control
over the mythical land of Westeros. Meanwhile, a force is rising after
millenniums and threatens the existence of living men.
3. THE BREAKING BAD-“If you don’t know who I am, then maybe your best
course would be to tread lightly.”
- walter heisenberg
This TV series is liked by 96% people labelling it as all time favorite. Walter
White, a chemistry teacher, discovers that he has cancer and decides to get into
the meth-making business to repay his medical debts. His priorities begin to
change when he partners with Jesse.
4. THE STRANGER THINGS- "nobody normal ever accomplished anything
meaningful in this world"
- jonathan byers
This horror shows liked by 96% people is all about the time when it's the fall
of 1984, about a year after Will Byers was found, and he has been plagued by
seeing visions of the Upside Down featuring a more dangerous monster. That leads
the boy to see a suspiciously friendly new doctor, with the possibility that
Will's visions are the result of suffering from PTSD. Nancy deals with
survivor's remorse over the death of best friend Barb. Meanwhile, a new sinister
entity threatens the Hawkins residents who survived the year-earlier events. New
to the town is tomboy Max, who befriends the boys and attracts the romantic
interests of Dustin and Lucas.
5. DOCTOR WHO- "What's the point in two hearts if you can't be a bit
forgiving now and then?"
Liked by 93% people all over the world this drama is all about The deadliest
alien species gather around an unknown planet that emits a mysterious message.
The Doctor, along with Clara, tries to decipher that mysterious message.
It's the dream of every student to discover all the things that they were not...


Sir Mwas pizza cafe is located in Juja along Kenyatta avenue.We have six types
of different pizzas that
we offer,
where each pizza has three size.Which includes:small size, medium size
and large size.
Our customers are able to choose the type of pizza, size of pizza, kind of crust
pizza contain and topping(s) they want.
Our customers can place orders and have option to select pizza delivered at a cost or not.


Amadeus 1984 Rated PG Starring: Tom Hulce, F. Murray Abraham, Elizabeth Berridge, Jeffrey Jones Director: Milos Forman 8 Time Oscar Winner: Picture, Actor F. Murray Abraham, Director Milos Forman, Screenplay Adaptation, Art Direction, Costume Design, Makeup, Sound Grade: A
Like the great musical pieces of Mozart himself, Amadeus is a true work of art. It is one of those few movies of the 80's that will be known for its class, its style, and its intelligence. Why is this such a good film? There are almost too many reasons to explain. The story: Court Composer Salieri (F. Murray Abraham) feels waves of different emotions going through his head as Wolfgang Amadeus Mozart (Tom Hulce) comes into his life as the young genius composer. Salieri feels envy, and jealousy, but at the same time is fascinated with Mozart's brilliance and ingenious. We travel through Mozart's life as a composer, through his struggles, his triumphs, and ultimately, his demise. The acting: Abraham is magnificient as Salieri; his acting range enables him to focus on each individual emotion and express it through his speech and body language. This performance earned him a well deserved Oscar.  He's strong, but weak at the same time, and must be aided by his wife (Elizabeth Berridge), who is good in her role, but lacks dramatic depth. Jeffrey Jones, in a smaller, more dignified role than such roles in Stay Tuned and Mom and Dad Save the World, is cast perfectly because of his noble charm. The Movie: Every element of this movie works. The costumes and makeup are very memorable, as well as its stunning art direction, and unforgettable scores (adapted from Mozart's original music). While Wolfgang Amadeus Mozart was a genius at music, Milos Forman proves with his film that he is a genius of filmmaking. This movie is a classic that will be remembered for years to come. Grade: A Ad2am "I almost lost my nose...and I like it. I like breathing through it." -Jack Nicholson, Chinatown
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


| 010:092 Khan | : |
So this day We shall deliver your (dead) body (out from the sea) that you may be a sign to those who come after you! And verily, many among mankind are heedless of Our Ayat (proofs, evidences, verses, lessons, signs, revelations, etc.). |
| 010:092 Maulana | : |
But this day We shall save thee in thy body that thou mayest be a sign to those after thee. And surely most of the people are heedless of Our signs. |
| 010:092 Pickthal | : |
But this day We save thee in thy body that thou mayst be a portent for those after thee. Lo! most of mankind are heedless of Our portents. |
| 010:092 Rashad | : |
"Today, we will preserve your body, to set you up as a lesson for future generations." Unfortunately, many people are totally oblivious to our signs. |
| 010:092 Sarwar | : |
We will save your body on this day so that you may become evidence (of Our existence) for the coming generations; many people are unaware of such evidence." |
| 010:092 Shakir | : |
But We will this day deliver you with your body that you may be a sign to those after you, and most surely the majority of the people are heedless to Our communications. |
| 010:092 Sherali | : |
So this day WE will save thee in thy body alone that thou mayest be a Sign to those who come after thee. And surely many of mankind are heedless of Our Signs. |
| 010:092 Yusufali | : |
"This day shall We save thee in the body, that thou mayest be a sign to those who come after thee! but verily, many among mankind are heedless of Our Signs!" |
Concepts/Themes Covered: الإنسان والعلاقات الأخلاقية > الأخلاق الذميمة > الغفلة Man and The Moral Relations>The Dispraised Morals>Inattention
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Falco
open Falco
open Falco.Routing
open Falco.HostBuilder
webHost [||] {
endpoints [
get "/" (Response.ofPlainText "Hello World")
]
}
Falco is a toolkit for building fast, functional-first and fault-tolerant web applications using F#.
- Built upon the high-performance primitives of ASP.NET Core.
- Optimized for building HTTP applications quickly.
- Seamlessly integrates with existing .NET Core middleware and frameworks.
Key Features
- Asynchronous request handling.
- Simple and powerful routing API.
- Fast, secure and configurable web server.
- Native F# view engine.
- Uniform API for model binding.
- Authentication and security utilities.
- Built-in support for large uploads.
Design Goals
- Aim to be very small and easily learnable.
- Should be extensible.
- Should provide a toolset to build a working end-to-end web application.
Table of Contents
- Getting Started
- Sample Applications
- Request Handling
- Routing
- Model Binding
- JSON
- Markup
- Host Builder
- Authentication
- Security
- Why "Falco"?
- Find a bug?
- License
Getting Started
Using dotnet new
The easiest way to get started with Falco is by installing the Falco.Template
package, which adds a new template to your dotnet new
command line tool:
dotnet new -i "Falco.Template::*"
Afterwards you can create a new Falco application by running:
dotnet new falco -o HelloWorldApp
Manually installing
Create a new F# web project:
dotnet new web -lang F# -o HelloWorldApp
Install the nuget package:
dotnet add package Falco
Remove the Startup.fs
file and save the following in Program.fs
(if following the manual install path):
module HelloWorld.Program
open Falco
open Falco.Routing
open Falco.HostBuilder
[<EntryPoint>]
let main args =
webHost args {
endpoints [
get "/" (Response.ofPlainText "Hello World")
]
}
0
Run the application:
dotnet run
There you have it, an industrial-strength Hello World web app, achieved using only base ASP.NET Core libraries. Pretty sweet!
Sample Applications
Code is always worth a thousand words, so for the most up-to-date usage, the /samples directory contains a few sample applications.
| Sample | Description |
|---|---|
| Hello World | A basic hello world app |
| Configure Host | Demonstrating how to configure the IHost instance using the webHost computation expression |
| Blog | A basic markdown (with YAML frontmatter) blog |
| Third-part View Engine | Demonstrating how to render with an external view engine, specifically Scriban |
| Falco Journal | A bullet journal built using Falco |
Request Handling
The HttpHandler
type is used to represent the processing of a request. It can be thought of as the eventual (i.e. asynchronous) completion and processing of an HTTP request, defined in F# as: HttpContext -> Task
. Handlers will typically involve some combination of: route inspection, form/query binding, business logic and finally response writing. With access to the HttpContext
you are able to inspect all components of the request, and manipulate the response in any way you choose.
Basic request/response handling is divided between the aptly named Request
and Response
modules, which offer a suite of continuation-passing style (CPS) HttpHandler
functions for common scenarios.
Plain Text responses
let textHandler : HttpHandler =
Response.ofPlainText "hello world"
HTML responses
let htmlHandler : HttpHandler =
let doc =
Elem.html [ Attr.lang "en" ] [
Elem.head [] []
Elem.body [] [
Elem.h1 [] [ Text.raw "Sample App" ]
]
]
doc
|> Response.ofHtml
Alternatively, if you're using an external view engine and want to return an HTML response from a string literal, then you can use Response.ofHtmlString
.
let htmlHandler : HttpHandler =
let html = "..."
html
|> Response.ofHtmlString
JSON responses
IMPORTANT: This handler uses the default
System.Text.Json.JsonSerializer
. See JSON section below for further information.
type Person =
{ First : string
Last : string }
let jsonHandler : HttpHandler =
{ First = "John"; Last = "Doe" }
|> Response.ofJson
Redirect (301/302) Response
let oldUrlHandler : HttpHandler =
Response.redirect "/new-url" true
Note: The trailing
bool
value is used to indicate permanency (i.e., true = 301 / false = 302)
Accessing Request Data
Falco exposes a uniform API to obtain typed values from the various sources of request data. Note, the similarity in the various binders below.
Route Collection
let helloHandler : HttpHandler =
let routeBinder (route : RouteCollectionReader) =
let name = route.GetString "name" "World"
sprintf "Hello %s" name
Request.mapRoute routeBinder Response.ofPlainText
Query Parameters
let helloHandler : HttpHandler =
let queryBinder (query : QueryCollectionReader) =
let name = query.GetString "name" "World"
sprintf "Hello %s" name
Request.mapQuery queryBinder Response.ofPlainText
Form Data
let helloHandler : HttpHandler =
let formBinder (query : FormCollectionReader) =
let name = query.GetString "name" "World"
sprintf "Hello %s" name
Request.mapForm formBinder Response.ofPlainText
To prevent XSS attacks it is often advisable to use a CSRF token during form submissions. In these situations, you'll want to validate the token before processing the form input using the Request.mapFormSecure
(or Request.bindFormSecure
). These functions will automatically validate the token for you before consuming input.
let secureHelloHandler : HttpHandler =
let formBinder (query : FormCollectionReader) =
let name = query.GetString "name" "World"
sprintf "Hello %s" name
let invalidTokenHandler : HttpHandler =
Response.withStatusCode 403
>> Resposne.ofEmpty
Request.mapFormSecure formBinder Response.ofPlainText invalidTokenHandler
Response Modifiers
Response modifiers can be thought of as the in-and-out modification of the HttpResponse
. A preamble to writing and returning. Since these functions receive the Httpcontext
as input and return it as the only output, they can take advantage of function compoistion.
Set the status code of the response
let notFoundHandler : HttpHandler =
Response.withStatusCode 404
>> Response.ofPlainText "Not found"
Add a header to the response
let handlerWithHeader : HttpHandler =
Response.withHeader "Content-Language" "en-us"
>> Response.ofPlainText "Hello world"
Add a cookie to the response
let handlerWithHeader : HttpHandler =
Response.withCookie "greeted" "1"
>> Response.ofPlainText "Hello world"
IMPORTANT: Do not use this for authentication. Instead use the
Auth.signIn
andAuth.signOut
functions found in the Authentication module.
Routing
The breakdown of Endpoint Routing is simple. Associate a specific route pattern (and optionally an HTTP verb) to an HttpHandler
which represents the ongoing processing (and eventual return) of a request.
Bearing this in mind, routing can practically be represented by a list of these "mappings" known in Falco as an HttpEndpoint
which bind together: a route, verb and handler.
let helloHandler : HttpHandler =
let getMessage (route : RouteCollectionReader) =
route.GetString "name" "World"
|> sprintf "Hello %s"
Request.mapRoute getMessage Response.ofPlainText
let loginHandler : HttpHandler = // ...
let loginSubmitHandler : HttpHandler = // ...
let endpoints : HttpEndpoint list =
[
// a basic GET handler
get "/hello/{name:alpha}" helloHandler
// multi-method endpoint
all "/login"
[
POST, loginSubmitHandler
GET, loginHandler
]
]
Model Binding
Reflection-based approaches to binding at IO boundaries work well for simple use cases. But as the complexity of the input rises it becomes error-prone and often involves tedious workarounds. This is especially true for an expressive, algebraic type system like F#. As such, it is often advisable to take back control of this process from the runtime. An added bonus of doing this is that it all but eliminates the need for [<CLIMutable>]
attributes.
We can make this simpler by creating a succinct API to obtain typed values from IFormCollection
, IQueryCollection
, RouteValueDictionary
and IHeaderCollection
. Readers for all four exist as derivatives of StringCollectionReader
which is an abstraction intended to make it easier to work with the string-based key/value collections.
The built-in model binding handlers come in two flavors, both of which are continuation-style handlers:
Request.mapXXX
- Signature:
(map: XXXCollectionReader -> 'a) (next : 'a -> HttpHandler) -> HttpHandler
- The "map" family of handlers are more commonly used and assume that binding will always succeed in one manner or another, either via default values or
Option<T>
.
- Signature:
Request.bindXXX
- Signature:
(bind: XXXCollectionReader -> Result<'a, 'b>) (handleOk : 'a -> HttpHandler) -> (handleError : 'b -> HttpHandler) -> HttpHandler
- The "bind" family of handlers are useful when you explicitly want to indicate errors during binding and return a different response when they occur.
- Signature:
Route Binding
let mapRouteHandler : HttpHandler =
let routeMap (r : RouteCollectionReader) =
r.GetString "Name" "John Doe"
Request.mapRoute routeMap Response.ofJson
let bindRouteHandler : HttpHandler =
let routeBind (r : RouteCollectionReader) =
match r.TryGetString "Name" with
| Some name -> Ok name
| _ -> Error {| Message = "Invalid route" |}
let handleOk = Response.ofJson
let handleError = Response.ofJson
Request.bindRoute routeBind handleOk handleError
let manualRouteHandler : HttpHandler =
fun ctx ->
let r : RouteCollectionReader = Request.getRoute ctx
let name = r.GetString "Name" "John Doe"
Response.ofJson name ctx
Query Binding
type Person = { FirstName : string; LastName : string }
let mapQueryHandler : HttpHandler =
let queryMap (q : QueryCollectionReader) =
let first = q.GetString "FirstName" "John" // Get value or return default value
let last = q.GetString "LastName" "Doe"
{ FirstName = first; LastName = last }
Request.mapQuery queryMap Response.ofJson
let bindQueryHandler : HttpHandler =
let queryBind (q : QueryCollectionReader) =
match q.TryGetString "FirstName", q.TryGetString "LastName" with
| Some f, Some l -> Ok { FirstName = f; LastName = l }
| _ -> Error {| Message = "Invalid query string" |}
let handleOk = Response.ofJson
let handleError = Response.ofJson
Request.bindQuery queryBind handleOk handleError
let manualQueryHandler : HttpHandler =
fun ctx ->
let q : QueryCollectionReader = Request.getQuery ctx
let person =
{ FirstName = q.GetString "FirstName" "John" // Get value or return default value
LastName = q.GetString "LastName" "Doe" }
Response.ofJson person ctx
Form Binding
The FormCollectionReader
has full access to the IFormFilesCollection
via the _.Files
member.
Note the addition of
Request.mapFormSecure
andRequest.bindFormSecure
which will automatically validate CSRF tokens for you.
type Person = { FirstName : string; LastName : string }
let mapFormHandler : HttpHandler =
let formMap (f : FormCollectionReader) =
let first = f.GetString "FirstName" "John" // Get value or return default value
let last = f.GetString "LastName" "Doe"
{ FirstName = first; LastName = last }
Request.mapForm formMap Response.ofJson
let mapFormSecureHandler : HttpHandler =
let formMap (f : FormCollectionReader) =
let first = f.GetString "FirstName" "John" // Get value or return default value
let last = f.GetString "LastName" "Doe"
{ FirstName = first; LastName = last }
let handleInvalidCsrf : HttpHandler =
Response.withStatusCode 400 >> Response.ofEmpty
Request.mapFormSecure formMap Response.ofJson handleInvalidCsrf
let bindFormHandler : HttpHandler =
let formBind (f : FormCollectionReader) =
match f.TryGetString "FirstName", f.TryGetString "LastName" with
| Some f, Some l -> Ok { FirstName = f; LastName = l }
| _ -> Error {| Message = "Invalid form data" |}
let handleOk = Response.ofJson
let handleError = Response.ofJson
Request.bindForm formBind handleOk handleError
let bindFormSecureHandler : HttpHandler =
let formBind (f : FormCollectionReader) =
match f.TryGetString "FirstName", f.TryGetString "LastName" with
| Some f, Some l -> Ok { FirstName = f; LastName = l }
| _ -> Error {| Message = "Invalid form data" |}
let handleOk = Response.ofJson
let handleError = Response.ofJson
let handleInvalidCsrf : HttpHandler =
Response.withStatusCode 400 >> Response.ofEmpty
Request.bindFormSecure formBind handleOk handleError handleInvalidCsrf
let manualFormHandler : HttpHandler =
fun ctx -> task {
let! f : FormCollectionReader = Request.getForm ctx
let person =
{ FirstName = f.GetString "FirstName" "John" // Get value or return default value
LastName = f.GetString "LastName" "Doe" }
return! Response.ofJson person ctx
}
multipart/form-data
Binding
Microsoft defines large uploads as anything > 64KB, which well... is most uploads. Anything beyond this size and they recommend streaming the multipart data to avoid excess memory consumption.
To make this process a lot easier Falco provides a set of four HttpHandler
's analogous to the form handlers above, which utilize an HttpContext
extension method called TryStreamFormAsync()
that will attempt to stream multipart form data, or return an error message indicating the likely problem.
Below is an example demonstrating the insecure map variant:
let imageUploadHandler : HttpHandler =
let formBinder (f : FormCollectionReader) : IFormFile option =
f.TryGetFormFile "profile_image"
let uploadImage (profileImage : IFormFile option) : HttpHandler =
// Process the uploaded file ...
// Safely buffer the multipart form submission
Request.mapFormStream formBinder uploadImage
JSON
Included in Falco are basic JSON in/out handlers, Request.bindJson
and Response.ofJson
respectively. Both rely on System.Text.Json
and thus have minimal support for F#'s algebraic types.
type Person = { FirstName : string; LastName : string }
let jsonHandler : HttpHandler =
{ FirstName = "John"; LastName = "Doe" }
|> Response.ofJson
let jsonBindHandler : HttpHandler =
let handleOk person : HttpHandler =
let message = sprintf "hello %s %s" person.First person.Last
Response.ofPlainText message
let handleError error : HttpHandler =
let message = sprintf "Invalid JSON: %s" error
Response.withStatusCode 400 >> Response.ofPlainText message
Request.bindJson handleOk handleError
Markup
A core feature of Falco is the XML markup module. It can be used to produce any form of angle-bracket markup (i.e. HTML, SVG, XML etc.).
For example, the module is easily extended since creating new tags is simple. An example to render <svg>
's:
let svg (width : float) (height : float) =
Elem.tag "svg" [
Attr.create "version" "1.0"
Attr.create "xmlns" "http://www.w3.org/2000/svg"
Attr.create "viewBox" (sprintf "0 0 %f %f" width height)
]
let path d = Elem.tag "path" [ Attr.create "d" d ] []
let bars =
svg 384.0 384.0 [
path "M368 154.668H16c-8.832 0-16-7.168-16-16s7.168-16 16-16h352c8.832 0 16 7.168 16 16s-7.168 16-16 16zm0 0M368 32H16C7.168 32 0 24.832 0 16S7.168 0 16 0h352c8.832 0 16 7.168 16 16s-7.168 16-16 16zm0 0M368 277.332H16c-8.832 0-16-7.168-16-16s7.168-16 16-16h352c8.832 0 16 7.168 16 16s-7.168 16-16 16zm0 0"
]
HTML View Engine
Most of the standard HTML tags & attributes have been built into the markup module and produce objects to represent the HTML node. Nodes are either:
Text
which representsstring
values. (Ex:Text.raw "hello"
,Text.rawf "hello %s" "world"
)SelfClosingNode
which represent self-closing tags (Ex:

).ParentNode
which represent typical tags with, optionally, other tags within it (Ex:
...

).
The benefits of using the Falco markup module as an HTML engine include:
- Writing your views in plain F#, directly in your assembly.
- Markup is compiled alongside the rest of your code, leading to improved performance and ultimately simpler deployments.
// Create an HTML5 document using built-in template
let doc =
Templates.html5 "en"
[ Elem.title [] [ Text.raw "Sample App" ] ] //
[ Elem.h1 [] [ Text.raw "Sample App" ] ] //
Since views are plain F# they can easily be made strongly-typed:
type Person = { FirstName : string; LastName : string }
let doc (person : Person) =
Elem.html [ Attr.lang "en" ] [
Elem.head [] [
Elem.title [] [ Text.raw "Sample App" ]
]
Elem.body [] [
Elem.main [] [
Elem.h1 [] [ Text.raw "Sample App" ]
Elem.p [] [ Text.rawf "%s %s" person.First person.Last ]
]
]
]
Views can also be combined to create more complex views and share output:
let master (title : string) (content : XmlNode list) =
Elem.html [ Attr.lang "en" ] [
Elem.head [] [
Elem.title [] [ Text.raw "Sample App" ]
]
Elem.body [] content
]
let divider =
Elem.hr [ Attr.class' "divider" ]
let homeView =
[
Elem.h1 [] [ Text.raw "Homepage" ]
divider
Elem.p [] [ Text.raw "Lorem ipsum dolor sit amet, consectetur adipiscing."]
]
|> master "Homepage"
let aboutView =
[
Elem.h1 [] [ Text.raw "About" ]
divider
Elem.p [] [ Text.raw "Lorem ipsum dolor sit amet, consectetur adipiscing."]
]
|> master "About Us"
Host Builder
Kestrel is the web server at the heart of ASP.NET. It's performant, secure, and maintained by incredibly smart people. Getting it up and running is usually done using Host.CreateDefaultBuilder(args)
, but it can grow verbose quickly.
To make things more expressive, Falco exposes an optional computation expression. Below is an example using the builder taken from the Configure Host sample.
[<EntryPoint>]
let main args =
webHost args {
use_ifnot FalcoExtensions.IsDevelopment HstsBuilderExtensions.UseHsts
use_https
use_compression
use_static_files
use_if FalcoExtensions.IsDevelopment DeveloperExceptionPageExtensions.UseDeveloperExceptionPage
use_ifnot FalcoExtensions.IsDevelopment (FalcoExtensions.UseFalcoExceptionHandler exceptionHandler)
endpoints [
get "/greet/{name:alpha}"
handleGreeting
get "/json"
handleJson
get "/html"
handleHtml
get "/"
handlePlainText
]
}
0
Fully Customizing the Host
To assume full control over configuring your IHost
use the configure
custom operation. It expects a function with the signature of HttpEndpoint list -> IWebHostBuilder -> IWebHostBuilder
and assumes you will register and activate Falco (i.e., AddFalco()
and UseFalco(endpoints)
).
[<EntryPoint>]
let main args =
let configureServices : IServiceCollection -> unit =
fun services -> services.AddFalco() |> ignore
let configureApp : HttpEndpoint list -> IApplicationBuilder -> unit =
fun endpoints app -> app.UseFalco(endpoints) |> ignore
let configureWebHost : HttpEndpoint list -> IWebHostBuilder =
fun endpoints webHost ->
webHost.ConfigureLogging(configureLogging)
.ConfigureServices(configureServices)
.Configure(configureApp endpoints)
webHost args {
configure configureWebHost
endpoints []
}
Authentication
ASP.NET Core has amazing built-in support for authentication. Review the docs for specific implementation details. Falco includes some authentication utilities.
To use the authentication helpers, ensure the service has been registered (
AddAuthentication()
) with theIServiceCollection
and activated (UseAuthentication()
) using theIApplicationBuilder
.
Prevent user from accessing secure endpoint:
open Falco.Security
let secureResourceHandler : HttpHandler =
let handleAuth : HttpHandler =
"hello authenticated user"
|> Response.ofPlainText
let handleInvalid : HttpHandler =
Response.withStatusCode 403
>> Response.ofPlainText "Forbidden"
Request.ifAuthenticated handleAuth handleInvalid
Prevent authenticated user from accessing anonymous-only end-point:
let anonResourceOnlyHandler : HttpHandler =
let handleAnon : HttpHandler =
Response.ofPlainText "hello anonymous"
let handleInvalid : HttpHandler =
Response.withStatusCode 403
>> Response.ofPlainText "Forbidden"
Request.ifNotAuthenticated handleAnon handleInvalid
Allow only user's from a certain group to access endpoint"
let secureResourceHandler : HttpHandler =
let handleAuthInRole : HttpHandler =
Response.ofPlainText "hello admin"
let handleInvalid : HttpHandler =
Response.withStatusCode 403
>> Response.ofPlainText "Forbidden"
let rolesAllowed = [ "Admin" ]
Request.ifAuthenticatedInRole rolesAllowed handleAuthInRole handleInvalid
Allow only user's with a certain scope to access endpoint"
let secureResourceHandler : HttpHandler =
let handleAuthHasScope : HttpHandler =
Response.ofPlainText "user1, user2, user3"
let handleInvalid : HttpHandler =
Response.withStatusCode 403
>> Response.ofPlainText "Forbidden"
let issuer = "https://oauth2issuer.com"
let scope = "read:users"
Request.ifAuthenticatedWithScope issuer scope handleAuthHasScope handleInvalid
End user session (sign out):
let logOut : HttpHandler =
let authScheme = "..."
let redirectTo = "/login"
Response.signOutAndRedirect authScheme redirectTo
Security
Cross-site scripting attacks are extremely common since they are quite simple to carry out. Fortunately, protecting against them is as easy as performing them.
The Microsoft.AspNetCore.Antiforgery package provides the required utilities to easily protect yourself against such attacks.
Falco provides a few handlers via Falco.Security.Xss
:
To use the Xss helpers, ensure the service has been registered (
AddAntiforgery()
) with theIServiceCollection
and activated (UseAntiforgery()
) using theIApplicationBuilder
.
open Falco.Markup
open Falco.Security
let formView token =
Elem.html [] [
Elem.body [] [
Elem.form [ Attr.method "post" ] [
Elem.input [ Attr.name "first_name" ]
Elem.input [ Attr.name "last_name" ]
// using the CSRF HTML helper
Xss.antiforgeryInput token
Elem.input [ Attr.type' "submit"; Attr.value "Submit" ]
]
]
]
// A handler that demonstrates obtaining a
// CSRF token and applying it to a view
let csrfViewHandler : HttpHandler =
formView
|> Response.ofHtmlCsrf
// A handler that demonstrates validating
// the request's CSRF token
let mapFormSecureHandler : HttpHandler =
let mapPerson (form : FormCollectionReader) =
{ FirstName = form.GetString "first_name" "John" // Get value or return default value
LastName = form.GetString "first_name" "Doe" }
let handleInvalid : HttpHandler =
Response.withStatusCode 400
>> Response.ofEmpty
Request.mapFormSecure mapPerson Response.ofJson handleInvalid
Crytography
Many sites have the requirement of a secure log in and sign up (i.e. registering and maintaining a user's database). Thus, generating strong hashes and random salts is important.
Falco helpers are accessed by importing Falco.Auth.Crypto
.
open Falco.Security
// Generating salt,
// using System.Security.Cryptography.RandomNumberGenerator,
// create a random 16 byte salt and base 64 encode
let salt = Crypto.createSalt 16
// Generate random int for iterations
let iterations = Crypto.randomInt 10000 50000
// Pbkdf2 Key derivation using HMAC algorithm with SHA256 hashing function
let password = "5upe45ecure"
let hashedPassword = password |> Crypto.sha256 iterations 32 salt
Why "Falco"?
Kestrel has been a game changer for the .NET web stack. In the animal kingdom, "Kestrel" is a name given to several members of the falcon genus. Also known as "Falco".
Find a bug?
There's an issue for that.
License
Built with ♥ by Pim Brouwers in Toronto, ON. Licensed under Apache License 2.0.


Tottenham: Jose Mourinho appointed after Mauricio Pochettino sacked
Jose Mourinho has been appointed Tottenham manager after the sacking of Mauricio Pochettino on Tuesday.
Former Chelsea and Manchester United boss Mourinho has signed a contract until the end of the 2022-23 season.
“The quality in both the squad and the academy excites me,” said the 56-year-old Portuguese. “Working with these players is what has attracted me.”
Spurs chairman Daniel Levy said: “In Jose we have one of the most successful managers in football.”
Related Articles
Jose Mourinho in talks to replace Mauricio Pochettino as…
Nov 20, 2019 9,279 1
Tottenham sack manager Mauricio Pochettino after five years…
Nov 19, 2019 15,940 37
Mauricio Pochettino holds crisis talks with Daniel Levy as…
Nov 19, 2019 9,494 0
Liverpool recover to beat Tottenham at Anfield
Oct 27, 2019 7,892 7
Tottenham reached the Champions League final last season under Pochettino, but lost 2-0 to Liverpool in Madrid.
The Argentine, who was appointed in May 2014, did not win a trophy in his time in charge of the north London club, with Spurs’ last silverware being the League Cup in 2008.
Levy said Mourinho has “a wealth of experience, can inspire teams and is a great tactician”.
“He has won honours at every club he has coached,” he added. “We believe he will bring energy and belief to the dressing room.”
Mourinho still has a home in London and won three Premier League titles – in 2005, 2006 and 2015 – as well as one FA Cup in two spells at Chelsea.
Having taken over at Manchester United in May 2016, he won the Europa League and Carabao Cup with them in 2017.
Mourinho was sacked by the Old Trafford club in December 2018, with the club 19 points behind league leaders Liverpool, and had not managed another side before joining Spurs.
He has also previously managed Portuguese side Porto, where he won the Champions League in 2004.
At Italian club Inter Milan, Mourinho won a league, cup and Champions League treble in 2010 and was named Fifa’s world coach of the year, while he led Spanish team Real Madrid to the La Liga title in 2012.
He takes over a Spurs side that are without a win in their past five games and have slipped to 14th in the Premier League, 20 points behind leaders Liverpool after just 12 matches.
Tottenham Hotspur Supporters’ Trust had said “many fans thought Poch had earned the right” to try to turn around the side’s form and that “there are questions that must be asked of the board”.
Following Mourinho’s appointment, it said it had “concerns about how Jose and our club’s executive board will work together”.
It added: “The club must ensure it does not find itself in the same position in two or three years’ time, and we need to hear from the executive board what the long-term thinking behind this appointment is.”
Mourinho’s first match in charge is a trip to West Ham United on Saturday (12:30 GMT kick-off).
Spurs go to Manchester United on 4 December, and host another of Mourinho’s former teams – Chelsea – on 22 December.
Mourinho has turned down a number of managerial opportunities, including in China, Spain and Portugal, since leaving Old Trafford. BBC Sports


I am a User Experience (UX) designer based in Lagos, Nigeria. I work @CcHUB where I lead a multidisciplinary team to guide product development for startups across diverse industries; ranging from smart infrastructure, community, e-commerce, health & fitness and civic engagement.
I also run USABLE, a community of people (designers, developers, enthusiasts) who are interested in designing usable products.
Truppr is a social tool that helps sport lovers organize and find team mates for their favorite sports in cities around the world.
UX & UI Design, Platform Design
SL OGP is a platform for tracking the progress of open government partnership commitments of the government of Sierra Leone.
UX & UI Design, Platform Design, App Development
Tracka enables people to collaborate and track capital projects in their community..
UX & UI Design, Platform Design
A visual story of the NEITI oil & gas extensive reports covering the Nigerian oil & gas sector.
UX & UI Design
BudgIT is a civic organization that applies technology to intersect citizen engagement with institutional improvement, to facilitate societal change.
UX & UI Design, Platform Design, Wordpress Theme Development
SEND ME AN EMAIL
me '@' udezekene.com


default <R> Single<R> |
Stream.collect(Callable<? extends R> factory,
BiConsumer<? super R,? super T> collector) |
default Stream<T> |
Stream.doWithIndex(BiConsumer<? super Long,? super T> consumer) |
default Stream<T> |
Stream.every(long n,
BiConsumer<Long,T> action) |
default <R> Stream<R> |
Stream.flatMap(BiConsumer<? super T,? super Consumer<R>> generator)
Using a consumer to report items to downstream is more performant (fewer
allocations) because a Stream object doesn't have to be created for each
upstream element.
|
default <R> Stream<R> |
Stream.flatMap(BiConsumer<? super T,? super Consumer<R>> generator,
Consumer<? super Consumer<R>> onFinish) |
static <T,R> Stream<T> |
Stream.generate(Callable<R> factory,
BiConsumer<R,Emitter<T>> consumer) |


Imgs
Sign up the FB way
Sign up with Facebook
Sign up the email way
Sign up with email
Already have an account?
Log In


@@include('app/partials/head.tpl', { "title": "About page", "description": "I am an about page" })
Link to Home page


Note that we can't use use allow="geolocation" here, as this will redirect to a different origin, and we don't know the port which will be used.


Our Beers
imageContentContainerProducts
twelveMile
12 MILELike the king of dinosaurs this IPA has a huge presence and refuses to be ignored thanks to its three complimentary hops. A golden hue greets the eyes while the nose is welcomed with citrus grapefruit & mango aromatics. Starts simple but becomes more complex with each sip. The body’s clean effervescence bubbles forth with juicy vibrant fruit tones and finishes crisp and clean
ambear
AMBEAREarly pioneers assembled for social gatherings at the gristmill on Twelve Mile Creek to enjoy food, drink and tell stories of their travels and adventures. This is our inspiration for a new, innovative style of beer that is adventurous and flavourful. A unique fusion of spirited new world hops balanced with a special lager yeast creates a cultured body with tropical fruit and citrus notes. This India Pale Lager is ideal for both IPA and Lager aficionados.
bamberg
BAMBERGIn the town of Bamberg, home of smoked beers, the Bishop would not grant
citizens any land to construct a town hall. The resourceful and crafty
townsfolk rallied and rammed piles into the river to createan island,
on which they built their castle.
Our German Rauchbier is equally ingenious. Made from pale barley smoked
with beech wood, this town hall of beverages has a smoky, sweet aroma
and hints of candied bacon.
captainsLog
CAPTAINS LOGSince 1836, many a Captain has used Oakville’s first lighthouse as a guiding light during their evening voyages. A true Oakville landmark, the first lighthouse keeper was also the town’s first tavern owner. Today, Captain’s Log is brewed with only the finest two-row malted barley and cold aged for a smooth, refreshing taste. Enjoy it while relaxing by the lake or after dark and make this day worth an entry in your logbook.
cosmic
COSMICOn clear nights, it seems as if you can reach out and touch the stars. Cosmic Cream Ale is the perfect companion for idyllic, curious nights beneath the constellations. Brewed with a cosmic blend of European hops for a fruity and floral backbone, this ale is fermented warm then laid to rest at a cold, lagering temperature. The result is an elegant golden ale which is crisp, balanced and refreshing.
darkNSticky
DARK & STICKYA delicious combination of two classic styles in one artfully crafted beer:
that’s Dark and Sticky. This India Brown Ale mixes a hop-filled IPA with a
well-balanced brown ale, combining the best of both worlds.
It packs an irresistible mix of crisp biscuit, sticky toffee and sweet coffee
cake malt flavours, and a sultry blend of Amercican Powerhouse Hops.
firstLight
FIRST LIGHTA delicious combination of two classic styles in one artfully crafted beer:
that’s Dark and Sticky. This India Brown Ale mixes a hop-filled IPA with a
well-balanced brown ale, combining the best of both worlds.
It packs an irresistible mix of crisp biscuit, sticky toffee and sweet coffee
cake malt flavours, and a sultry blend of Amercican Powerhouse Hops.
jurassic
JURASSICLike the king of dinosaurs this IPA has a huge presence and refuses to be ignored thanks to its three complimentary hops. A golden hue greets the eyes while the nose is welcomed with citrus grapefruit & mango aromatics. Starts simple but becomes more complex with each sip. The body’s clean effervescence bubbles forth with juicy vibrant fruit tones and finishes crisp and clean.
oneEyed
ONE EYEWandering the grounds of an abandoned farmstead or hiking through the stillness
of a spruce stand is where you’re most likely to spot this most elusive of birds.
Just as rare, our special edition One-Eyed Grouse ESA only emerges once a year in limited
quantities.
This English Style Ale, orange in colour, has a balanced malt character that delivers
hints of cereal and candied plum. Its initial fruity bitterness drives through to pleasant,
earthy, floral hop notes. Very quenching. Don’t miss your chance to enjoy it.