--- layout: post title: "Second Sunday of Easter - Divine Mercy Sunday" date: 2021-04-11 09:00:00 categories: Sunday tags: featured image: /assets/article_images/2020-04-19-Divine-Mercy-Sunday/Divine-Mercy.jpg image2: /assets/article_images/2020-04-19-Divine-Mercy-Sunday/Divine-Mercy-mobile.jpg ---
Holy Mass is at the very core of our worship as a Catholic community. Nothing can ever be substituted for the celebration of the Eucharist. But in this exceptional time of difficulty for our communities, our nation, and the whole world, this order of prayer can be offered by individuals and families and engages us in our Sunday celebration of the Word of God. We can pray this prayer in our homes—the “domestic churches” which help build up the Body of Christ on earth—and thus be connected to the entire Church at prayer.
During this time of prayer, we include the opportunity to make a Spiritual Communion. Making a Spiritual Communion is a worthy practice, recommended by innumerable saints throughout the ages, which unites our whole selves to God and his Church.
Taken from the Mass and the Liturgy of the Hours
Leader: O God, ✠ come to my assistance.
Response: O Lord, make haste to help me.
Leader: Glory be to the Father, and to the Son, and to the Holy Spirit:
Response: as it was in the beginning, is now, and ever shall be, world without end. Amen.
We walk by faith, and not by sight:
No gracious words we hear
Of him who spoke as none e'er spoke,
But we believe him near.
We may not touch his hands and side,
Nor follow where he trod;
Yet in his promise we rejoice,
And cry “My Lord and God!”
Help then, O Lord, our unbelief,
And may our faith abound;
To call on you when you are near,
And seek where you are found:
That when our life of faith is done
In realms of clearer light
We may behold you as you are
In full and endless sight.
We walk by faith, and not by sight:
No gracious words we hear
Of him who spoke as none e'er spoke,
But we believe him near.
Leader: Let us acknowledge our sins, and seek the Lord’s pardon and peace.
Together: I confess to almighty God
and to you, my brothers and sisters,
that I have greatly sinned,
in my thoughts and in my words,
in what I have done and in what I have failed to do,
through my fault, through my fault,
through my most grievous fault;
therefore I ask blessed Mary ever-Virgin,
all the Angels and Saints,
and you, my brothers and sisters,
to pray for me to the Lord our God.
Leader: God of everlasting mercy,
who in the very recurrence of the paschal feast
kindle the faith of the people you have made your own,
increase, we pray, the grace you have bestowed,
that all may grasp and rightly understand
in what font they have been washed,
by whose Spirit they have been reborn,
by whose Blood they have been redeemed.
Through our Lord Jesus Christ, your Son,
who lives and reigns with you in the unity of the Holy Spirit,
God, for ever and ever.
Together: Amen.
USCCB Audio Recording of Sunday Readings
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. With great power the apostles bore witness to the resurrection of the Lord Jesus, and great favor was accorded them all. There was no needy person among them, for those who owned property or houses would sell them, bring the proceeds of the sale, and put them at the feet of the apostles,
and they were distributed to each according to need.
The Word of the Lord.
―Thanks be to God.
Reader: Give thanks to the LORD for he is good, his love is everlasting.
Together: Give thanks to the LORD for he is good, his love is everlasting.
Reader: Let the house of Israel say, “His mercy endures forever.”
Let the house of Aaron say, “His mercy endures forever.”
Let those who fear the LORD say, “His mercy endures forever.”
Together: Give thanks to the LORD for he is good, his love is everlasting.
Reader: I was hard pressed and was falling, but the LORD helped me.
My strength and my courage is the LORD, and he has been my savior.
The joyful shout of victory in the tents of the just:
Together: Give thanks to the LORD for he is good, his love is everlasting.
Reader: The stone which the builders rejected has become the cornerstone.
By the LORD has this been done; it is wonderful in our eyes.
This is the day the LORD has made; let us be glad and rejoice in it.
Together: Give thanks to the LORD for he is good, his love is everlasting.
Beloved: Everyone who believes that Jesus is the Christ is begotten by God, and everyone who loves the Father loves also the one begotten by him. In this way we know that we love the children of God when we love God and obey his commandments. For the love of God is this, that we keep his commandments. And his commandments are not burdensome, for whoever is begotten by God conquers the world. And the victory that conquers the world is our faith.
This is the one who came through water and blood, Jesus Christ, not by water alone, but by water and blood. The Spirit is the one that testifies,
and the Spirit is truth.
The word of the Lord.
―Thanks be to God.
On the evening of that first day of the week, when the doors were locked, where the disciples were, for fear of the Jews, Jesus came and stood in their midst and said to them, “Peace be with you.” When he had said this, he showed them his hands and his side. The disciples rejoiced when they saw the Lord. Jesus said to them again, “Peace be with you. As the Father has sent me, so I send you.” And when he had said this, he breathed on them and said to them, “Receive the Holy Spirit. Whose sins you forgive are forgiven them, and whose sins you retain are retained.”
Thomas, called Didymus, one of the Twelve, was not with them when Jesus came. So the other disciples said to him, “We have seen the Lord.” But he said to them, “Unless I see the mark of the nails in his hands and put my finger into the nailmarks
and put my hand into his side, I will not believe.”
Now a week later his disciples were again inside and Thomas was with them. Jesus came, although the doors were locked, and stood in their midst and said, “Peace be with you.” Then he said to Thomas, “Put your finger here and see my hands, and bring your hand and put it into my side, and do not be unbelieving, but believe.”
Thomas answered and said to him, “My Lord and my God!” Jesus said to him, “Have you come to believe because you have seen me?
Blessed are those who have not seen and have believed.”
Now Jesus did many other signs in the presence of his disciples that are not written in this book. But these are written that you may come to believe that Jesus is the Christ, the Son of God,
and that through this belief you may have life in his name.
The Gospel of the Lord.
―Praise to you, Lord Jesus Christ
Leader: This is the day the Lord has made;
Response: let us rejoice and be glad, alleluia.
Leader: God the almighty Father raised Jesus as the firstborn from the dead,
and made him our savior.

Response: Give us, Lord, the glory of your Son.
Leader: You have given us faith to save us, may we live today by the faith of our baptism.
Response: Give us, Lord, the glory of your Son.
Leader: You command us to seek the things that are above, where Christ is seated at
your right hand, do not let us be deceived by the allurements of sin.
Response: Give us, Lord, the glory of your Son.
Leader: May our life, hidden with Christ in you, our Father, shine before the world,
foreshadowing a new heaven and a new earth.
Response: Give us, Lord, the glory of your Son.
Leader: In your mercy, continue to sanctify all who are afflicted from the present pandemic,
and draw us all closer to you, and to one another, in this time of suffering.
Response: Give us, Lord, the glory of your Son.
Leader: Remember us, Lord, when you come to your kingdom and teach us how to pray:
Together: Our Father, who art in heaven …
Leader: You have given us bread from heaven, alleluia, alleluia.
Response: Containing in itself all delight, alleluia, alleluia.
Together: My Jesus,
I believe that you are present
in the Most Holy Sacrament of the Altar.
I love you above all things,
and I desire to receive you into my soul.
Since I cannot at this moment receive you sacramentally,
come at least spiritually into my heart.
I embrace you as if you were already there
and unite myself wholly to you.
Never permit me to be separated from you,
my Lord and my God!
Amen.
Canticle of Zechariah (Luke 1:68-79)
Together: ✠ Blessed be the Lord, the God of Israel;
he has come to his people and set them free.
He has raised up for us a mighty savior,
born of the house of his servant David.
Through his holy prophets he promised of old
that he would save us from our enemies,
from the hands of all who hate us.
He promised to show mercy to our fathers
and to remember his holy covenant.
This was the oath he swore to our father Abraham:
to set us free from the hands of our enemies,
free to worship him without fear,
holy and righteous in his sight
all the days of our life.
You, my child, shall be called the prophet of the Most High;
for you will go before the Lord to prepare his way,
to give his people knowledge of salvation
by the forgiveness of their sins.
In the tender compassion of our God
the dawn from on high shall break upon us,
to shine on those who dwell in darkness and the shadow of death,
and to guide our feet into the way of peace.
Glory be to the Father, and to the Son,
and to the Holy Spirit:
as it was in the beginning, is now, and ever shall be,
world without end. Amen.
Leader: ✠ May the Lord bless us, protect us from all evil,
and bring us to everlasting life.
Together: Amen.
Hymn: “We Walk By Faith” – Text: Henry Alford, 1810-1871, alt. Tune: SHANTI, CM; Marty Haugen, b. 1950, © 1984, GIA Publications. All rights reserved. Recorded by Dan Klocke. Music streamed with permission granted by OneLicense.net podcast/streaming/reprint license A-705112.Excerpts from The Roman Missal © 2010, ICEL; excerpts from The Liturgy of the Hours © 1994, ICEL. All rights reserved.
Excerpts from The Roman Missal © 2010, ICEL; excerpts from The Liturgy of the Hours © 1994, ICEL. All rights reserved.
Lectionary for Mass for Use in the Dioceses of the United States, second typical edition, Copyright © 2001, 1998, 1997, 1986, 1970 Confraternity of Christian Doctrine; Psalm refrain © 1968, 1981, 1997, International Committee on English in the Liturgy, Inc. All rights reserved. Neither this work nor any part of it may be reproduced, distributed, performed or displayed in any medium, including electronic or digital, without permission in writing from the copyright owner.


Hello World this is my First Flexbox test
1
2
3
4
5
and now a dynamic numbering, press add
1
+
another example for dynamic alignment
flex start
flex end
center
stretch
space between
space around
1
2
3
4


API Reference¶
Operators¶
Operators allow for generation of certain types of tasks that become nodes in
the DAG when instantiated. All operators derive from BaseOperator
and
inherit many attributes and methods that way.
There are 3 main types of operators:
Operators that performs an action, or tell another system to perform an action
Transfer operators move data from one system to another
Sensors are a certain type of operator that will keep running until a certain criterion is met. Examples include a specific file landing in HDFS or S3, a partition appearing in Hive, or a specific time of the day. Sensors are derived from
BaseSensorOperator
and run a poke method at a specifiedpoke_interval
until it returnsTrue
.
BaseOperator¶
All operators are derived from BaseOperator
and acquire much
functionality through inheritance. Since this is the core of the engine,
it’s worth taking the time to understand the parameters of BaseOperator
to understand the primitive features that can be leveraged in your
DAGs.
BaseSensorOperator¶
All sensors are derived from BaseSensorOperator
. All sensors inherit
the timeout
and poke_interval
on top of the BaseOperator
attributes.
Operators packages¶
All operators are in the following packages:
Hooks¶
Hooks are interfaces to external platforms and databases, implementing a common
interface when possible and acting as building blocks for operators. All hooks
are derived from BaseHook
.
Executors¶
Executors are the mechanism by which task instances get run. All executors are
derived from BaseExecutor
.
Executors packages¶
All executors are in the following packages:
Models¶
Models are built on top of the SQLAlchemy ORM Base class, and instances are persisted in the database.
Core and community package¶
Formerly the core code was maintained by the original creators - Airbnb. The code that was in the contrib package was supported by the community. The project was passed to the Apache community and currently the entire code is maintained by the community, so now the division has no justification, and it is only due to historical reasons. Currently, all new classes are added only to the contrib package.


public abstract class TabSwitcherDecorator
extends de.mrapp.android.util.view.AbstractViewHolderAdapter
TabSwitcher
.| Constructor and Description |
|---|
TabSwitcherDecorator() |
| Modifier and Type | Method and Description |
|---|---|
void |
applyDecorator(android.content.Context context,
TabSwitcher tabSwitcher,
android.view.View view,
Tab tab,
int index,
android.os.Bundle savedInstanceState,
boolean inflated)
The method, which is invoked by a
TabSwitcher to apply the decorator. |
int |
getViewType(Tab tab,
int index)
Returns the view type, which corresponds to a specific tab.
|
int |
getViewTypeCount()
Returns the number of view types, which are used by the decorator.
|
android.view.View |
inflateView(android.view.LayoutInflater inflater,
android.view.ViewGroup parent,
Tab tab,
int index)
The method, which is invoked by a
TabSwitcher to inflate the view, which should be
used to visualize a specific tab. |
abstract android.view.View |
onInflateView(android.view.LayoutInflater inflater,
android.view.ViewGroup parent,
int viewType)
The method which is invoked, when a view, which is used to visualize a tab, should be
inflated.
|
void |
onRecycleView(android.content.Context context,
TabSwitcher tabSwitcher,
android.view.View view,
Tab tab,
int index,
int viewType,
android.os.Bundle savedInstanceState)
The method, which is invoked, when the view, which is used to visualize a tab has been
recycled.
|
void |
onSaveInstanceState(android.view.View view,
Tab tab,
int index,
int viewType,
android.os.Bundle outState)
The method, which is invoked, when the view, which is used to visualize a tab, is removed.
|
abstract void |
onShowTab(android.content.Context context,
TabSwitcher tabSwitcher,
android.view.View view,
Tab tab,
int index,
int viewType,
android.os.Bundle savedInstanceState)
The method which is invoked, when the view, which is used to visualize a tab, should be
shown, respectively when it should be refreshed.
|
android.os.Bundle |
saveInstanceState(android.view.View view,
Tab tab,
int index)
The method, which is invoked by a
TabSwitcher to save the current state of a tab. |
@NonNull public abstract android.view.View onInflateView(@NonNull android.view.LayoutInflater inflater, @Nullable android.view.ViewGroup parent, int viewType)
inflater
- The inflater, which should be used to inflate the view, as an instance of the class
LayoutInflater
. The inflater may not be nullparent
- The parent view of the view, which should be inflated, as an instance of the class
ViewGroup
or null, if no parent view is availableviewType
- The view type of the tab, which should be visualized, as an Integer
valueView
. The view
may not be nullpublic abstract void onShowTab(@NonNull android.content.Context context, @NonNull TabSwitcher tabSwitcher, @NonNull android.view.View view, @NonNull Tab tab, int index, int viewType, @Nullable android.os.Bundle savedInstanceState)
context
- The context, the tab switcher belongs to, as an instance of the class Context
. The context may not be nulltabSwitcher
- The tab switcher, whose tabs are visualized by the decorator, as an instance of the
type TabSwitcher
. The tab switcher may not be nullview
- The view, which is used to visualize the tab, as an instance of the class View
. The view may not be nulltab
- The tab, which should be visualized, as an instance of the class Tab
. The tab
may not be nullindex
- The index of the tab, which should be visualized, as an Integer
valueviewType
- The view type of the tab, which should be visualized, as an Integer
valuesavedInstanceState
- The bundle, which has previously been used to save the state of the view as an
instance of the class Bundle
or null, if no saved state is availablepublic void onRecycleView(@NonNull android.content.Context context, @NonNull TabSwitcher tabSwitcher, @NonNull android.view.View view, @NonNull Tab tab, int index, int viewType, @Nullable android.os.Bundle savedInstanceState)
onShowTab(Context, TabSwitcher, View,
Tab, int, int, Bundle)
.context
- The context, the tab switcher belongs to, as an instance of the class Context
. The context may not be nulltabSwitcher
- The tab switcher, whose tabs are visualized by the decorator, as an instance of the
type TabSwitcher
. The tab switcher may not be nullview
- The view, which is used to visualize the tab, as an instance of the class View
. The view may not be nulltab
- The tab, which should be visualized, as an instance of the class Tab
. The tab
may not be nullindex
- The index of the tab, which should be visualized, as an Integer
valueviewType
- The view type of the tab, which should be visualized, as an Integer
valuesavedInstanceState
- The bundle, which has previously been used to save the state of the view as an
instance of the class Bundle
or null, if no saved state is availablepublic void onSaveInstanceState(@NonNull android.view.View view, @NonNull Tab tab, int index, int viewType, @NonNull android.os.Bundle outState)
view
- The view, which is used to visualize the tab, as an instance of the class View
tab
- The tab, whose state should be saved, as an instance of the class Tab
. The
tab may not be nullindex
- The index of the tab, whose state should be saved, as an Integer
valueviewType
- The view type of the tab, whose state should be saved, as an Integer
valueoutState
- The bundle, the state of the tab should be saved to, as an instance of the class
Bundle
. The bundle may not be nullpublic int getViewType(@NonNull Tab tab, int index)
onInflateView
-method, a distinct view type must be returned.tab
- The tab, whose view type should be returned, as an instance of the class Tab
.
The tab may not be nullindex
- The index of the tab, whose view type should be returned, as an Integer
valueInteger
valuepublic int getViewTypeCount()
Integer
value. The number of view types must correspond to the number of distinct values, which are
returned by the getViewType
-method@NonNull public final android.view.View inflateView(@NonNull android.view.LayoutInflater inflater, @Nullable android.view.ViewGroup parent, @NonNull Tab tab, int index)
TabSwitcher
to inflate the view, which should be
used to visualize a specific tab.inflater
- The inflater, which should be used to inflate the view, as an instance of the class
LayoutInflater
. The inflater may not be nullparent
- The parent view of the view, which should be inflated, as an instance of the class
ViewGroup
or null, if no parent view is availabletab
- The tab, which should be visualized, as an instance of the class Tab
. The tab
may not be nullindex
- The index of the tab, which should be visualized, as an Integer
valueView
. The view
may not be nullpublic final void applyDecorator(@NonNull android.content.Context context, @NonNull TabSwitcher tabSwitcher, @NonNull android.view.View view, @NonNull Tab tab, int index, @Nullable android.os.Bundle savedInstanceState, boolean inflated)
TabSwitcher
to apply the decorator. It initializes
the view holder pattern, which is provided by the decorator and then delegates the method
call to the decorator's custom implementation of the method onShowTab(...):void
.context
- The context, the tab switcher belongs to, as an instance of the class Context
. The context may not be nulltabSwitcher
- The tab switcher, whose tabs are visualized by the decorator, as an instance of the
class TabSwitcher
. The tab switcher may not be nullview
- The view, which is used to visualize the tab, as an instance of the class View
. The view may not be nulltab
- The tab, which should be visualized, as an instance of the class Tab
. The tab
may not be nullindex
- The index of the tab, which should be visualized, as an Integer
valuesavedInstanceState
- The bundle, which has previously been used to save the state of the view as an
instance of the class Bundle
or null, if no saved state is availableinflated
- True, if the view has been inflated, false, if it has been reused@NonNull public final android.os.Bundle saveInstanceState(@NonNull android.view.View view, @NonNull Tab tab, int index)
TabSwitcher
to save the current state of a tab. It
initializes the view holder pattern, which is provided by the decorator and then delegates
the method call to the decorator's custom implementation of the method
onSaveInstanceState(...):void
.view
- The view, which is used to visualize the tab, as an instance of the class View
tab
- The tab, whose state should be saved, as an instance of the class Tab
. The
tab may not be nullindex
- The index of the tab, whose state should be saved, as an Integer
valueBundle
. The bundle may not be null


Experiments with displacement mapping 2012 Bigpoint Inc.
DX11 Test
With Tessellation
Base Mesh
With Tessellation
Base Mesh
With Tessellation
Base Mesh
Screenshots


NEON Acquires Bong Joon-ho’s 2003 Film ‘Memories of Murder’ for Theatrical and Blu-ray Release
by John SquiresMany years before The Host and this year’s Parasite, Bong Joon-ho co-wrote and directed 2003’s crime-drama Memories of Murder, a critically acclaimed film based on Korea’s first serial murders. The award-winning film is now set for big screen and home video re-release courtesy of NEON, Variety reports, in the wake of Parasite‘s box office success.
The site notes, “NEON recently bought the rights to Memories of Murder, one of Bong’s early works, and plans to re-release it in theaters and on Blu-ray.”
In Bong Joon-ho’s Memories of Murder…
“In a small Korean province in 1986, three detectives struggle with the case of multiple young women being found raped and murdered by an unknown culprit.”
Kang-ho Song, Sang-kyung Kim and Roe-ha Kim star.


General philosophy
Since you're reading this, you're probably already familiar with the framework, but here is a reminder of the things you absolutely need to know:
Play is stateless. As far as the framework is concerned, nothing gets stored on the server between requests. Of course a typical web app has some sort of persistence engine (SQL, NoSQL, files etc.), but that's not part of the framework. Stateless is opposed to stateful (thank you captain obvious!), where the framework keeps data about the user between request. Play has something called a session, but it's actually just a cookie, which explains why you can only store Strings in there.
Play is reactive. Behind the buzzword, it means play will use as few threads as possible, and therefore, threads are "shared" between clients. That's very important for long lived connections like Server Sent Events, or Websockets. A typical JEE application is giving a thread to each HTTP connection (at least until JSR 315: Servlet 3.0), play does not. It has HUGE impacts on both the framework design and the way you're supposed to use it (especially the things you're NOT supposed to do).
Version 2 is a complete rewrite, and a completely different beast. The (java) user API is meant to feel familiar to a play 1 user thought.
Much more focus is put on type safety, which should not come as a surprise since play is backed by a company called Typesafe.
The internals are designed in a mix of functional programming and object orientation. Most of it is written in Scala, and the framework has a Java "translation" layer on top of it. Generally, the code is fairly simple, and you don't need to be a Scala expert to understand what's going on. It avoids mutable states as much as possible (Which is preferred in Scala).
It's open source! Hopefully you'll find everything you need to know to contribute here. The community is waiting for your pull requests. Contributions to the docs or bugfixes are always welcome.
Let's get started!
Launching a play app
So, you typed play start
, what happened ?
Well actually, You've just called sbt, the default Scala Build Tool (yes, 'S' stands for Scala not for Simple) with a bunch of specific parameters.
Sbt "reads" your application build definition, and finds out that it's using a plugin called play % sbt-plugin
.
You can see it in project/plugins.sbt
( here in the HelloWorld sample).
This plugin has a config key telling sbt where the entry point (the main) of the application is. I won't cover sbt here (play build alone could use a pretty big article), but it says here that main lives in play.core.server.NettyServer
In play, and contrary to standard JEE, there's no "application server" hosting applications. The application you've created using play new
just is the server, and Play is just one of it's dependencies (precisely, several dependencies since play is split in modules).
As you guessed, Play is simply currently based on the very famous (and java based) Netty. Sbt will look into this object to find a main. You probably noticed a method called mainDev
, obviously this one is called in dev mode (when you use play run
). We'll just focus on main
for now.
As you can tell reading the code, it just parses the arguments, creates a file containing the PID (in case you want to stop the app at some point), and does some other boring initialization boilerplate. Let's skip it to the interesting bits:
Ah! There it is.  But first, since scala is not lazy, it's evaluates new StaticApplication(applicationPath)
.
Bootstrap
First thing first, a Play application needs to be initialized. Let's have a look at that StaticApplication
.  you may ask. Simply because it won't hot redeploy code changes (We're in prod mode remember? Sensible people don't hot redeploy in production).
So we get there. We create a DefaultApplication
, which is basically just a case class containing general info about the current app, like app folder, configuration, classloader, etc. (code here), and we call Play.start(application)
.
What it's going to do is fairly simple:
Just call onStart
on each plugin, one by one, making sure they're using the correct classloader.
Those plugins will, for example, create a connection pools to a DB.
At that point, if a plugin throws an exception, the application will just be stopped.
So we know the application configuration, we have started our plugins successfully. We're now ready to start listening for HTTP requests.
Listening for Http Requests.
It's now time to create a NettyServer
. As we've seen, we create an instance of the NettyServer
class (not to be confused with the NettyServer
object).
This class will create an instance of Server
, configuring it's threads pools, the pipeline encoder and decoder, bind the server to an adress and port, configure SSL, but more importantly this: newPipeline.addLast("handler", defaultUpStreamHandler)
which is:
So each time an HTTP or HTTPS request is received, Netty will call messageReceived
of this instance of PlayDefaultUpstreamHandler
.
This method does a few things:
- It create play a
play.api.mvc.RequestHeader
from Netty's HttpRequest. Basically filling it with headers values, parsing the query string, etc. But it does NOT try to parse the request body (not yet). - It manages the flash cookie, making sure it only lives for 1 request.
- It can "tag" the request, adding metadata in the request object about routing.
- It uses the application
Global
object to find out what to do with this request:
What it does here is handling exceptions and parameters parsing. If something fail,
onBadRequest(rh, e.getMessage)
is called on the application Global
object (if no global is provided, it's using the default Global) which should render an Error page with status 500. Otherwise, it calls server.getHandlerFor(rh)
which return Either[Result, (Handler, Application)]
.
getHandlerFor
is there to resolve the Handler
to be called.
The two main types of Handlers are:
- EssentialAction: Basically that's what you defined in your Controllers by writing
Action { request => ... }
- WebSocket
All this code does is finding the Handler
to be invoked by calling Global.onRouteRequest
OR it returns the appropriate Response if an error occurred. If something failed, it will return a Left
containing a Response (for example a HTML page with status 500), otherwise it returns a Right
containing the Handler defined in your app (for example, an Action defined in a controller).
Dealing with the request body
Alright. So far we've somehow discovered the code that needs to be called. You may have noticed that we are only working with a RequestHeader
, that's a request without a body. Using pattern matching, we'll decide what to do with the value returned by getHandlerFor
.
The most common case by far is EssentialAction
:
Fundamentally, an EssentialAction
is just a function (RequestHeader) => Iteratee[Array[Byte], Result]
.
You give that function a RequestHeader
and it gives you an Iteratee
that consumes the request body reactively, and eventually "returns" a Result
.
The next step is now pretty obvious, since we have something to consume the request body, all we need to do is to feed it with Bytes, and we get our Result. That's exactly what handleAction
does. It will get bytes from the client, deal with chunking if necessary, and feed the Iteratee
to eventually get a Result
, but first it calls the Filters defined in your Global
. (val filteredAction = app.map(_.global).getOrElse(DefaultGlobal).doFilter(action)
).
In order to feed the Iteratee
, you need to create an Enumerator[Array[Bytes]]
:
Play creates an Enumerator
enumerating the chunks from the client, and compose it with a BodyParser
.

And that's it!
TL;DR
play
is actually just an alias for sbt (+ funky options)- Each application is a server.
- Starting up an app means:
- Reading params + config
- Calling
onStart
on each plugin - Creating a Netty server and listening for HTTP requests
When a HTTP request gets into Play:
- The server calls
Global.onRouteRequest(rh: RequestHeader): Handler
- Most of the Time this
Handler
is actually anEssentialAction
- An
EssentialAction
is just a function(RequestHeader) => Iteratee[Array[Byte], Result]
. - This functions is called, and the resulting
Iteratee
is feed with chunks (Array[Byte]) from the request body. - Eventually, you get a
Result
, which is sent back to the client.
Next time, I'll write about DEV mode, hot reloading, and the relationship between Play and SBT.
Stay tuned!


1. About how long do you want your next friendship to last?
2. Do you smoke?
3. Are you currently employed?
4. How frequently do you drink alcohol?
5. Which event sounds most appealing?
Your answer will predict your favorite type


Seattle's Best Salmon Cookies
Home
Sales
Our locations & addresses
Find us
Seattle
Tokyo
Dubai
Paris
Lima
Contact us at:
Seattle's Best Salmon Cookies


Flirting
Summary A young man is caned with a thick stick to his backside and he should be in more pain or distress than he appears, but apparently it is more or less a common ritual for him and the boys living with him. His name is Danny Embling (Noah Taylor) a teenager living in a boarding school in Australia in the mid- 1960's.  He is not much of an athlete, does not have many friends and he has an unfortunate slight stutter for which he is given the nickname "Bird" (it is actually more like "B-B-B-Bird"). It seems like it should be a tough time for him, but he is actually doing rather well. He keeps with his studies, sees his hazing as more of a petty nuisance, and has one good friend who he confides with. His life is about to get better. Her name is Thandiwe (Thandie Newton), a pretty girl from the school across the river. It is an all-girls school that shares many social events with Danny's, and their eyes meet at a Rugby match. They do not speak until their next encounter, at a debate between the schools and it is obvious they like each other. They make a date for an upcoming dance, which almost becomes a disaster as Danny is informed that he cannot go, but the two of them sneak away from their perspective groups and spend time together. Their relationship starts out with playful flirting. The relationship develops as the couple attempt to spend as much time together as possible, usually by sneaking out of their dormitories to meet in the early morning hours, risking possible expulsion. They talk about their families a great deal, flirt and experiment with sex. They also have some difficulties, including misunderstandings regarding a letter written by Thandiwe that gets into the wrong hands, and the constant threat of other students reporting them to school officials. Danny also risks physical harm as he foolishly tries to defend his dignity and fight the school boxing champ in the ring. Of all possible events to threaten Danny and Thandiwes' relationship, it is the most unlikely that strikes a mortal blow. The political unrest in Uganda, Africa (where Thandiwe comes from) threatens her parents, who are writers that speak out against injustice. Their lives are in danger, and Thandiwe must return home to help the family in a time of need. She may not return, and Danny must deal with losing his first love.
Commentary I am a fan of most John Hughes films, but the teenagers in his films do not always act and behave like most teenagers in the real world. His films are more like teenage fantasy, and they are entertaining, but the teenagers in "Flirting" seem so real it is an absolute pleasure to watch them. The relationship between Danny and Thandiwe is very honest, sweet and well written. Dare I say that the chemistry between these two young actors was more powerful then many films concerning adult relationships? I do. One of the strengths of the movie is that not much is made of the racial differences between the teenagers. Thandiwe is African American, but the only racial stereotypes present are the occasional crude comments about the color of her skin by Danny's schoolmates. There is also an uncomfortable moment when the parents meet each other for the first time after a school play and are clearly surprised. The scene is a great example of the wonderful writing and directing, and is one of the films' best moments. Another strength is the inclusion of the political uprising in Uganda. There could have been many different ways for the relationship between the teens to be threatened, but by making it such an important event on such a large scale (and beyond their control), it makes it much more poignant and sad. Few movies about teenage love are as effective as this one. The characters seem absolutely real, as if they were in a documentary about Australian boarding schools. The two lead actors were relatively unknown this time, adding to this effect. The only recognizable face is that of Nicole Kidman, playing an upperclassman looking over Thandiwe. I could almost see this film be rewritten into a John Hughes type film, but that one would have popular young actors, a pop music soundtrack, a predictable romance and a typical Hollywood ending. You will see that watching "Flirting", and it is a real treat.
Flirting **** (out of five) Directed by John Duigan
Danny Embling....................Noah Taylor Thandiwe Adjewa.................Thandie Newton Nicola Radcliffe...................Nicole Kidman Jock Blair...........................Felix Nobis
Written by Randy Turgeon, April 9, 1998.
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


Manual annotation of Aerial Images is extremely time consuming.
In this work, we follow the idea of Achilles is to produce polygonal annotations of objects interactively using humans-in-the-loop.
Development Tracker:- This module performs a time series analysis on a set of segmented images. For eg: we will be providing two images one which is the present image of a particular area and another will be the image of the same area but 10 years back, by doing so we will easily track down how much growth has been done in that particular area in terms of infrastructural development, deforestation, etc.
QGIS Support:- This module takes a segmented image as an input and returns various files through which users can add vector layers of different segmented classes in various GIS softwares. Mainly for QGIS as it is the tool used by the institute but we have also verified it’s functionalities for ArcGIS.
LabelMe Support:- LabelMe is also an open-source available tool which helps people annotate data manually. This support helps the user in correcting some errors that might occasionally occur results generated by our deep learning techniques. It saves a lot of time as the user doesn't have to label the entire image instead he/she just have to make amendments.


Move Up was my team's submission at HackDuke. The app uses an interactive county map of the United States to help search for areas with the highest social mobility. The app also displays information on affordable housing options in the area. It was built using Esri API, React, and Leaflet.JS.
We won best use of the Esri Platform.
This application helps users allocate safe and clean water resources within their local communities through crowdsourcing. This app was written in Android using the Google Maps and GraphView API, complete with login system and manager/worker support tools.
I loved this app so much it was also made into a desktop application. Source code can be found here!
I worked as a project leader/manager for one of our new recruit projects for Humani-Tech. I acquainted new members and managed them through their first project. I worked on redesigning the front-end of the site and managing the site through Georgia Tech servers.
I researched and worked alongside a team at Kennesaw State University where we developed a unique solar tracking system. I was in charge of designing, modeling, and building the mechanical mechanism that would drive the solar tracker.
During my time I also assisted Dr. Kevin McFall publish his work on a lane detection alogorithm for autonomous vehicles. Read the manuscript
here!


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Collection
This collection explains what we are currently doing to deal with problems at the organisations we regulate, and selected recent actions.
When one of the organisations we regulate does something wrong, or has a problem that impacts on its qualifications, then we may need to take action to put things right.
There are several different things we can do. We might:
Our policy document Taking Regulatory Action describes these options - and how we will use them - in more detail.
We also use special conditions for new regulated organisations, or organisations that have started offering new regulated qualifications. This might be because we want to check the organisation can produce valid qualifications, or that it follows through on commitments it made in its application.


The ScriptEnginePlugin provides an easy to use and easy to implement framework that makes scripting.dev.java.net ScriptEngines usable inside of jEdit.
It provides a ScriptEngineService which allows this plugin to pick up any ScriptEngines (installed separately) that are in other plugins.
This plugin allows the evaluation of scripts from within jEdit's buffer, as well as using other scripting languages besides Beanshell to create jEdit Macros.


Not connected
tribeca
Target Base Position:
Submit order
{{ pair_name }}
{{ exch_name }}
mode
fv
apMode
width
size
tbp
pDiv
ewma?
apr?
trds
/sec
Applied
Pending
Not Connected


Javadoc Themer
How to
Github
Javadoc Themer
Javadoc Themer
Give your boooring javadocs a splash of colors!
Border
Toolbar
Sub-Nav
Subheader
Text with background
Standard Text
Selected Tab
Link:Hover
Link:Visited
Generate


I am highly dedicated and focused Backend Engineer. I am always ready to share my knowledge and work experience and learnings with others. I love to enjoy life to its fullest and make others smile.
I love building tech stuffs and enjoy coding. My area of interest is Backend stuffs and currently focusing on system design. With growing tech, Currently I am focused on Spring boot and Big Data. Previously, I have worked as Full Stack Android Developer. I adapt new languages quicky as per their use in modules.


Set up your job alerts now, so we can notify you of our vacancies as soon as we’ve received them!
OUR SECTORS
Our recruitment consultants have years of experience candidates in placing candidates in IT jobs across the entire sector, in a range of roles including software development, management & UX/UI


Iran, Russia launch new phase of nuclear power reactor construction
by AFPBUSHEHR: Tehran and Moscow inaugurated on Sunday a new phase of construction for a second reactor at Iran’s sole nuclear power plant in Bushehr on the Gulf coast.
Ali Akbar Salehi, head of the Atomic Energy Organisation of Iran (AEOI), and deputy chief of Russia’s nuclear agency Rosatom, Alexander Lokshin, launched the new stage at a ceremony where concrete was poured for the reactor base.
The reactor is one of two officially under construction since 2017 at the Bushehr site that is around 750 kilometres south of Tehran.
The landmark 2015 nuclear deal Iran signed with six major powers, including Russia, placed restrictions on the sort of nuclear reactor Tehran could develop and its production of nuclear fuel but it did not require Iran to halt its use of nuclear energy for power generation.
“In a long term vision until 2027-2028, when these projects are finished, we will have 3,000 megawatts of nuclear plant-generated electricity,” Salehi said at the ceremony.
The Islamic republic has been seeking to reduce its reliance on oil and gas through the development of nuclear power facilities.
Russia built the existing 1,000 megawatt reactor at Bushehr that came online in September 2011 and is expected to undertake construction of a a third in future, according to the AEOI.
As part of the 2015 agreement, Moscow provides Tehran with the fuel it needs for its electricity-generating nuclear reactors.
Intended to guarantee that Iran’s long-controversial nuclear programme would never be used for military purposes, the survival of the deal has been under threat since the United States unilaterally withdrew from the agreement in May 2018, reimposing biting sanctions.
In response to the sanctions, which deprive Iran of anticipated benefits from the deal, Tehran began walking back on its commitments from May this year.


Being uni students ourselves, we know how little cash money you may have on hand - so we'll supply the parts, courtesy of funding from the USU and faculty.
You can check out our parts here.
Don't know where to start? Our kits come with step-by-step instructions for you to learn from the ground up.
Come in and meet our staff for questions and help.
Note - our in-person sessions don't run during lockdown.


Aldi is launching a mac and cheese burger this week
It will be available on November 14
by Rebecca CarterAldi is going to delight shoppers as it's launching a mac and cheese burger this week.
The burger is made with a steak patty and is topped with a cheddar mac and cheese that melts over the top of the burger.
Aldi has described the burger as a "flavour fusion" and revealed customers can buy the treat on November 14.
Read more: Aldi launches halloumi burgers after shoppers went wild for its sell-out fries
The supermarket adds: "A fusion of classic American dishes, the Specially Selected Mac & Cheese Burger combines two delicious favourites to create a flavour sensation with every mouthful.
"The burger is made with a Scotch steak patty, topped with a scrumptious macaroni and mature cheddar cheese melt that oozes evenly over the patty during cooking. What’s more, this heavenly dish is completely gluten free, so everyone can enjoy it!"
The burgers will cost £2.49 for a 440g pack. However, once the product sells out, it won't be restocked.
The burgers won't be sold online, so you'll have to pop to your local Aldi to pick a pack up.
Earlier this month, Aldi launched a halloumi burger after shoppers raved about its sell-out cheese fries.
The supermarket is also bringing back its halloumi fries, which were a hit with shoppers and sold out last year.
The new halloumi burgers are priced at £2.29 each in a 190g pack.
Last year, the newly-launched halloumi fries sent shoppers wild and they took to Twitter to praise the delicious treats.
Aldi says about the fries: "Inspired by a similar offering from popular Portuguese chicken eatery, Nando’s; Aldi’s Specially Selected Haloumi Fries are made with scrumptiously soft - and salty - halloumi cheese from Cyprus and a lightly seasoned crispy coating making them the perfect side or snack for sharing."
One person said: "Halloumi fries from Aldi are the real deal."
Another wrote: "Late to the party but the halloumi fries from Aldi are 10/10."
Read more: Kevin the Carrot is back and he's got a new nemesis in the Aldi Christmas ad
Meanwhile, Aldi is selling halloumi pigs in blankets as part of its Christmas menu for 2019.
Instead of having traditional pigs in blankets, which is pork sausage wrapped in bacon, the bitesize treat features grilled halloumi wrapped in a streak of bacon.
Aldi confirmed these bad boys will be available in stores from December 5.
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think of the mac and cheese burger.


A couple posts have got me thinking about cultural imperialism lately: a post by Guido van Rossum about "missionaries" and OLPC not about OLPC at all, a post by Chris Hardie and a speech by Wade Davis.
Some of the questions raised: are we destroying cultures? If so, what can we do about it? Must we be hands off? I will add these questions: is it patronizing to make these choices for other people, no matter how enlightened we try to be? How much change is inevitable? Can we help make the change positive instead of resisting change?
More specifically: what is the effect of OLPC on cultures where it is introduced? Especially small cultures, cultures that have been relatively isolated, cultures that are vulnerable. The internet Quechua community is pretty slim, for example. Introducing the internet into a community will lead the children to favor Spanish more strongly, and identify with that more dominant culture over their family and community culture.
Criticisms like Guido’s are common:
I’m not surprised that the pope is pleased by the OLPC program. The mentality from which it springs is the same mentality which in past centuries created the missionary programs. The idea is that we, the west, know what’s good for the rest of the world, and that we therefore must push our ideas onto the "third world" by means of the most advanced technology available. In past centuries, that was arguably the printing press, so we sent missionaries armed with stacks of bibles. These days, we have computers, so we send modern missionaries (of our western lifestyle, including consumerism, global warming, and credit default swaps) armed with computers.
This kind of criticism is easy, because it doesn’t have any counterproposal. It’s not saying much more than "you all suck" to the people involved.
Cultural imperialism is a genuine phenomena. In an attempt to subjugate or assimilate, the dominant culture may explicitly and cynically enforce its cultural norms, through its religion, requiring all schools to operate in the dominant language, even going as far as suggesting how we arrange ourselves during sex.
But it’s not clear to me that what’s happening now is cultural imperialism. It’s more market-oriented homogenization.  Similarly I think the way culture is spread currently encourages homogeneity, without explicit attempting to destroy culture.
This is where I think a protectionist stance — the idea we should just be hands-off — is patronizing.  People make decisions, what they think is the best decision for themself and their families. These decisions lead them to leave rural areas, learn the dominant language, try to conform through education, and even just lead them to enjoy a dominant culture which is often far more entertaining than a smaller and more traditional culture.
The irony is that once they’ve done this they’ve traded their position for a place in the bottom rung of the dominant society. And it’s true that in many cases they’ve made these decisions because they’ve been forced out of their traditional life by political and legal systems they don’t understand. But to blame it all on oppression is to be blind to the many concrete benefits of our modern world. Corrugated metal roofs are simply superior to thatched roofs, and we can get all romantic about traditional building processes and material independence, but we do so from homes with roofs that don’t leak. Leaking roofs are just objectively unpleasant.
So I believe that assimilation pressure is natural and inevitable in our times.
What then of technology, of the internet and laptops?
I believe OLPC takes an important stance when it selects open source and open licensing for its content. It is valuing freedom, but more importantly encouraging self-determination, trying to build up a user base that can act as peers in this project, not as simply receivers of first-world largess. But it will be culturally disruptive. And I’m okay with that. In a patriarchal culture, giving girls access to this technology will be destructive to that power structure. Yay! I believe in the moral rightness of that one girl making her own choices, finding her own truths, more than I believe in the validity of the culture she was born into. If you believe people should be able to make their own choices (so long as they are aware of the real consequence of their choices), then you must allow for them to choose to abandon their own cultures for something they find more appealing. They might know better than you if that’s a good choice. I think we all hope that instead they transform their own cultures, but that’s not our choice to make.
What I find unpleasant is if they leave a true identity to find themselves in a place of cultural subservience. If they feel they can’t preserve the part of their culture they most value. Perhaps because of discrimination they feel they must hide their past, or they build up a sense of self-loathing. Perhaps they become isolated, unable to find peers that understand where they come from. And perhaps there is no higher culture at all that they can use to exalt their understanding of the world — do they have a literature? Do they have non-traditional music forms of their own? Do they have a forum where people who share their perspective can have serious discussions? Cultures aren’t destroyed so much as they are starved out of existence.
I think assimilation is inevitable, and can be positive. If we were all able to speak to each other, with some shared second or third language, I think the world would be a better place. I’m not a Christian, but I’m not afraid of anyone knowing The Bible. There’s no piece of culture that I would want to deny from anyone. Each new song, each new book, each new idea… I believe they will all make you a better person, if only in a small way.
And on the internet our culture is cumulative. There’s only so many hours of programming on TV or the radio, only so many pages in a newspaper. On the internet the presence of one kind of culture does not exclude any other. There’s room for a Quechua community as much of any other. But the online Quechua community won’t have exclusive rights to its members like a traditional culture claims — children will live between cultures.
Cumulative culture is not a promise that anyone will care. Languages can still die, cultures can still die, identities become forgotten. If these smaller cultures are going to be preserved, they must adapt to the partially-assimilated status of their members. There must be new art and new ideas and new identities. This is why I believe in the laptop project, because it can enable the creation and sharing of these new ideas. I think it will give smaller cultures a chance to survive — there’s no promises, literature doesn’t write itself, but maybe there is at least a chance.
This is also why I am more skeptical of mobile phones, audio devices, and any device that doesn’t actively enable content creation. Mobile phones are not how culture is made. It let’s people chat, consume information, communicate in a 12-key pidgin. But the mobile phone user is not a peer in a world wide web of information. The mobile phone user lives on a proprietary network, with a proprietary device, and while it perhaps it breaks down some hierarchies through disintermediation, it does so in a transient way. The uptake is certainly faster, but the potential seems so much lower.
I don’t know if OLPC will be successful. That’s as unclear now as ever. But it’s trying to do the right thing, and I think it’s a better chance than most for maintaining or improving the richness of the worlds’ culture.
No related posts.
I think it is too easy to take for granted the basic quality of life we have and the immense mental freedom of having most information at our finger tips and having the time to use it. However, this seems to bring with it the disgust at what our own culture, what we ourselves are doing with it.
I can see Guido point in this regard, but I think he confuses the “religion” of consumerism and void this brings with the basics of what can make an individuals life better. Very few are lucky enough to sit down and enjoy making a programming language.
Poor countries need very very boring things like infrastructure, auditing and a civil service so people can have these freedoms. These things normally require a “logical head” to do, which you can find people anywhere if given the opportunity. However these things are rarely encouraged. I believe these things go with any culture also. But having a “logical head” normally equates with money and money on to consumerism and consumerism to our homogeneous culture. However, these things do not equate in any way. They only equate because our culture seems to be failing, not necessarily others given the same opportunities.
We need them to be able to share theirs to make ours better.
A while ago (several years) I saw a show on TV where this guy (researcher or maybe a linguist?) was going around the UK and Ireland and making recordings of old myths and stories in the original languages, specifically Welsh and Gaelic. The reason was that even though the stories were “known”, the original oral traditions were dieing. I believe several native american tribes have been doing the same thing.
A good example of technology helping to preserve culture.
Note: I believe this was part of the “Joseph Campbell and the Power of Myth” series with Joesph Campbell and Bill Moyers. Though it may have been in his earlier work “Mythos”, or it could have been someone completely different ;-)
Ian: “In a patriarchal culture, giving girls access to this technology will be destructive to that power structure. Yay! I believe in the moral rightness of that one girl making her own choices, finding her own truths, more than I believe in the validity of the culture she was born into.”
I believe that statement alone forms a succinct and sufficient reply to Guido. I’ll go further and say that “destruction of culture” is almost universally a positive thing. Look at the precious culture that’s been lost by the widespread removal of monarchies. Or the lost culture in northern India if dowry-related killings and burnings became a thing of the past. Or the culture America would lose if it stopped turning a blind eye to the (profitable) incarceration of millions of non-violent citizens, let alone their subsequent disenfranchising in some areas. What proportion of living native Americans think it’s okay to murder members of other tribes, compared to 300 years ago?
I think, under sufficient examination and with a couple exceptions, cultural norms tend to be horrifying to a degree roughly proportional to their age.
 That culture is like parents, and even bad parents are better than no parents at all (except perhaps very very bad parents). To abandon culture is to abandon just one one upbringing, but to abandon upbringing itself; that is not a context in which a person can thrive.
Of course, each generation should aspire to be better than their parents, and people with bad parents most of all.
I disagree that culture and parents are comparable in this context. As far as I’m aware, it is nigh impossible for a human to mature into anything the slightest bit functional in the modern world without parents of some kind. I doubt the same can be said of culture without introducing a huge amount of additional subjectivity into the evaluation of “functional”.
Beyond that, I suspect we may have different notions of culture. My working definition is roughly the set of social norms not directly decided by necessity. I dislike unnecessary social norms. I think they restrict and bias personal and social growth, clutter and confuse nascent minds, discourage creativity, and occasionally contribute directly or indirectly to horrible ignorance and violence. Not to mention make the world a tad more boring. For what?
> What proportion of living native Americans think it’s okay to murder members of other tribes, compared to 300 years ago?
About the same proportion, along with a similar proportion of everyone else. The “other tribes” now tend to live further away and we now murder them in much more massive numbers. Cultural improvement at work?
> I think, under sufficient examination and with a couple exceptions, cultural norms tend to be horrifying to a degree roughly proportional to their age.
Horrifying to a degree roughly proportional to how different they are from your cultural norms.
> My working definition is roughly the set of social norms not directly decided by necessity.
Of course, since what is “necessary” is at least in part culturally determined, that’s a nonsensical definition. One unambiguous necessity for human survival is for humans to be able to coexist with some modicum of harmony. Culture is how we agree to do that.

These beings are “behind” technologically, but not in terms of potential, and the humans basically pull a prime-directive to try and “keep them pure”. There was another reason to start doing this, but the real reason became the same as this discussion’s:
You know, because they were just so darn cute in their rustic and backward and authentic ways.
Card eventually makes the point (through the characters) that if they are indeed equal, they damn-well should get to make that choice themselves. To “preserve” them automatically means that we think we are better than them, and that we are the scientist and they are the specimen.
Its a pretty fascinating bit of sociology, really. He goes on to categorize all life into categories:
that which is “less than us”: like rocks and plants and maybe chickens
that which is the same as us: we can communicate with them, so consensus COULD be reached, therefore we are morally obligated to try
that with is fundamentally other: we cannot communicate, so we are destined to go to war with them
I’m probably not doing justice with my summary.
Another anecdote: Years ago, I made a website for the Rainforest Foundation. Their guiding principle was to protect the people living in the forests of the world so that those people would protect the forests themselves.
Nice, right. I always wondered though, what is it about these people that makes us believe that they don’t want to have clean drinking water, air conditioning, and Harvard?
> Another anecdote: Years ago, I made a website for the Rainforest Foundation. Their guiding principle was to protect the people living in the forests of the world so that those people would protect the forests themselves.
> Nice, right. I always wondered though, what is it about these people that makes us believe that they don’t want to have clean drinking water, air conditioning, and Harvard?
I’m not familiar with the Rainforest Foundation or their work, but nothing you describe here implies that the Rainforest Foundation does anything to prevent them from choosing those things.
What is it about you that makes you assume they would naturally prefer those things to living in the rainforest? (Which may have advantages you are unable to evaluate, having never experienced them.)
Thank you Ian… this is insightful and well-explained. I agree with loqi: that one statement is a succinct but meaningful reply to the issue Guido raised.
This is a great example of uninformed modernist hubris. Have you ever actually lived under a thatched roof? Oddly enough, I have. For six years in a village in Lesotho (southern Africa) my family and I lived in two buildings, one with a thatched roof and one with a corrugated metal roof, and the thatched roof was far superior in pretty much every way. It never leaked once in six years, required only a single routine repair in that entire time, and provided far better insulation; it was the metal-roofed building that became uninhabitable on hot summer days. And that’s without even considering the additional cost of the corrugated metal, the problems with disposing of it after its useful lifetime, etc.
The point being that if you’ve only experienced one way of life (and you’re speaking to readers who are largely likely to share your biases and lack of experience), it’s pretty easy to glibly claim its obvious superiority. But that doesn’t make it true.
Much of this discussion just misses the point, in my opinion. Of course it’s patronizing to tell someone they shouldn’t want computers, or TV, or air-conditioning. Of course that should be their choice. Who’s saying they shouldn’t have that choice, except your straw man? But people should also have the choice to maintain valuable parts of their own way of life that are missing from modern homogenous Western culture, and in real history most have not (forcibly assimilated indigenous people all around the globe), and many still do not, due to powerful economic and political forces aimed at breaking down communal economies to make resources available for corporate use. Advocating against those forces is not patronizing. Glib assertions of the “obvious” superiority of modern amenities, such as this thread is full of, are patronizing.
The real point is, who is setting the agenda? When I look at OLPC, I see a bunch of North Americans running the show and setting the agenda, essentially saying “THIS is what all you poor people need.” That right there is a sufficient red flag in my mind. If privileged people really want to work with marginalized people in a way that isn’t patronizing, you start by listening to what THEY say they most need, and then you place your resources and skills at the disposal of THEIR agenda. Consider this a counterproposal; it’s markedly different from the missionary approach that Guido is criticizing.
I think many critiques only advocate disengagement. Or, at least, disengagement from certain aspects of modernity and technology.  Sure, this choice is offered from an external source, but it is for me too — I’m no more capable of building a computer from raw materials than any of the people OLPC targets. This engages these people in an social, economic, and intellectual structure much larger than them, one that spans the world, but this is also what we North Americans have done to ourselves. Because this isn’t a “North American” effort anyway, it’s far larger than that — the components that go into a computer, materials, manufacturing, software, content, are international.
 There is no one thing that they want. And what anyone asks for concretely is based on the solutions they understand and are familiar with. What people ask for abstractly generally better represents their true desires. They might ask for books, but they really want education. I can’t speak to what the priorities are for various marginalized persons (though I’m sure I don’t agree with every individual, anymore than I do for every privileged person’s assessment of what they need). Ultimately OLPC seeks to create not an answer to any need, but a tool to answer needs. They may be successful, or they might not, but I don’t think the project is structured in a way that is more enabling than directive. And of course it’s also imaginative, which is to say: neither we nor they know what it will achieve. Also: there is no one thing that everyone will ask for, but there are tools that anyone can potentially benefit from. OLPC is working at a certain scale and generality that must assert a benefit rather than asking individually.
In the most general sense, I also think the people who critique OLPC for not giving people what they need don’t know any more about what people need than the OLPC group does. “Why give people computers when they need clean water?” Well, lots of people have clean water, what do they need next? We obsess over the most marginalized people, and are often blind to other tiers.
I’ll also add: people can contribute according to their ability and skills. If someone comes to me asking about software, I can help. If they ask for eyeglasses, I can’t help. There’s this idea that somehow there’s this free energy out there that can be directed to anything, and by directing it to OLPC that it detracts from the most ideal activity each person can think of. That’s not how it works. When people say “OLPC isn’t the right thing” they are basically saying “all the people working on OLPC should stop and not do anything for these people” because frankly I haven’t heard much in the way of related counterproposals.
Though, come to think about it, none of this thread has anything to do with culture…
Thanks Ian for the thoughtful reply.
> I think many critiques only advocate disengagement.
As far as I can see, this is only true if one postulates a single binary choice: “engagement” vs “disengagement”, rather than an array of possible modes of engagement, and then presumes that any critic of a particular mode of engagement must therefore be advocating disengagement if they don’t explicitly lay out an alternative.
My point is that when you have the upper hand in a relationship in terms of resources available, your proposals carry undue weight. And if your interest is in developing a really mutual relationship, you will strive to develop awareness of that dynamic, and strive especially hard to listen carefully and extensively before proposing anything. The listening piece is of course complex because, as you point out, no group is monolithic, and the larger the scale you try to work on the more difficult it gets (which is why I tend to be more interested in the potential of small-scale grassroots efforts).
My initial criticism of OLPC was overblown. I really don’t know that much about OLPC. Specifically, I would want to know much more about how OLPC engages in specific countries and locations, and I’m sure that varies. All I can really say is that the language on the OLPC website is too missionary, and the model too one-size-fits-all, for me to have interest in contributing to the project. I certainly wouldn’t be surprised if in some locations the XO laptop is welcome and needed.
The connection to culture here goes back to “modernist hubris” and the fact of thatched roofs vs your presumptions about them. Post-Enlightenment Western culture has a tendency to believe that there’s only one valid way to see the world, and essentially one valid set of values to apply to it; coincidentally, those happen to be our worldview and our values. We are very quick to presume, even when lacking evidence, that our way of life represents the pinnacle of human development thus far, and discard the notion (again, without evidence) that we may have lost some valuable, specific areas of knowledge relevant to long-term sustainable life on earth. I don’t advocate some romantic (and equally dehumanizing) idea of the “purity” of “unchanged” cultures; simply the idea that we could benefit from a large dose of humility and openness to learning in our interactions with other cultures.
In a side note:
> Because this isn’t a “North American” effort anyway, it’s far larger than that — the components that go into a computer, materials, manufacturing, software, content, are international.
That seems like an odd (and not very useful) criterion. By the same logic my locally-owned computer store is also an “international effort” because the computers it sells are assembled from internationally-manufactured parts. I’d consider it more revealing to evaluate whether something is (primarily) a “North American effort” based on where the majority of the funding support comes from, and where most of the leadership are located. In other words, what cultural worldview is essentially driving the project?
Well most laptops are sold to governments. If the governments want them then that IS their choice. You may argue that governments do not know whats best for their people. If this is your argument then giving government tools to help learning seems a good bet. It is much better then giving them money (or arms).
In giving aid, giving the people what they ask for is always the best. However, practically this is impossible. If the infrastructure in those countries was good enough to communicate a consensus of their own wishes then I doubt the countries (or regions) would be on the radar to receive them. There is nothing wrong with making and developing an offer of some new form of aid, based on your own best judgment. It is better then sitting by and not doing anything, and waiting for a mythical time when a solution arises. No proposal will fit all peoples needs, sometimes a proposal will be destructive. However in the case of a laptop I very much doubt it will be destructive (I cant see why it would be?). It may be that there will be no take up, which is fine, but at least they tried. The world in this regard is deeply lacking innovation. The other main solution is helping people to set up their own businesses (normally in western model) but doing that is more dangerous.
I don’t think OLPC proclaims to know what people actually want, but it is another option, and options are good. I am sure some (maybe not all) teachers in these places, if asked if they could have wikipedia, would opt to have it.
If one thinks idea of a laptop and the internet are bad. Then they should stop using them themselves. The only way you can truly teach is by exemplifying your ideas with your own action. What you do and are as an individual, you should be proud of showing to EVERY other person on the planet.
Hi David,
In large part, I agree with you. As I said above, that paragraph on OLPC was hastily worded and overblown. What I can really say is that I am more interested in engaging with development or activism efforts that are initiated and driven by marginalized people themselves (and make no mistake, such efforts exist all around the globe, they just have a much harder time getting attention than something like OLPC). I am wary of a project like OLPC when I see so many American/British names on the lists even of local OLPC coordinators in various parts of the globe.
I’m reminded of the words of Australian Aboriginal leader Lilla Watson: “If you have come to help us, you are wasting your time. But, if you have come because your liberation is bound up with our liberation, let us work together.”
The above message was posted before I saw Ians response and was in response to Carl Meyer
Carl Meyer: “But people should also have the choice to maintain valuable parts of their own way of life that are missing from modern homogenous Western culture, and in real history most have not (forcibly assimilated indigenous people all around the globe), and many still do not, due to powerful economic and political forces aimed at breaking down communal economies to make resources available for corporate use. Advocating against those forces is not patronizing. Glib assertions of the “obvious” superiority of modern amenities, such as this thread is full of, are patronizing.”
On this I completely agree with you, except to nitpick that “Western culture” is actually anything but homogeneous, unless you restrict your definition to the portions of it given coverage by Hollywood and CNN. But I fail to see the connect between the above and your complaints against OLPC:
“When I look at OLPC, I see a bunch of North Americans running the show and setting the agenda, essentially saying “THIS is what all you poor people need.” That right there is a sufficient red flag in my mind.”
Perhaps you should look more closely. OLPC originated from “constructionist learning” theory. It’s an educational project, so a more accurate placement of words into their collective mouths might be “THIS is what all you children need.” Or maybe, “THIS is a faithful implementation of our findings.”
 If their research leads them to the conclusion that something like OLPC can be hugely beneficial to children in developing (and developed!) nations, should they just sit on it and pretend they don’t know? Should they, before providing a remarkable opportunity to millions of children, backtrack all the way to “generic charity”, spend all the time and money needed to figure out what’s “purely best” for each and every culture they intend to contribute to with their work, lest they rock any boats?
I’ll just notice that:
http://en.wikipedia.org/wiki/Missionary_position
We don’t want high-fructose corn syrup: we want sucrose — that’s why Jolt tastes better than Coke.
But the (wildly uncompetitive) US sugar growers captured the regulators in DC, and imposed tariffs, quotas, and price floors to protect their business from Caribbean competition. Once cane sugar was made about twice as expensive as it otherwise would be, substitutes arose: beet sugar and high-fructose corn syrup.
(For all the damage it’s done to American palates, the biggest harm is to Caribbean sugar producers; Haiti would be much better off if they could sell us their sugar.)
Most of what you put in your mouth in America is a product of distinctly non-free markets.
Another good example is hydrogenated fats, which tend to contain lots of trans fats: the companies that produce them leaned on the Federal government in the fifties and sixties to push them as a replacement for unhealthy saturated (cis) fats, while simultaneously convincing the government not to actually test the health effects of trans fats. Decades later, it turns out that, oops, trans fats are much worse for you than even saturated fats.
I know this is tangential to your main points, but it’s useful to get even tangential facts right.
You focus a very interesting point.
Recently I tried to understand (by joining forums and talking to nationalists) why is so many people paranoid with the Nation and “Our culture” concepts, whatever those mean. I was talking about the pros/cons of nations, what does it really mean with the communications and transports keeping us tied anywhere in the world, to be Danish or American or Portuguese. The same way we don’t want to be judged by our fathers crimes, our culture should just be what we make of it and not “tagged”. In a question, What is so wrong with the “Citizen of the World” thing? I got a lot of “noise”, flaming and some few interesting points on the problems of the Globalization. Culture “destruction”, the way you talk about it, was one of them.
My conclusion is that there is no such thing as “our culture” independent from the time. Our cultures evolve, receives and shares influence with other cultures and tends to mix what people find good in one another. In the past, that process was slow. Today, with comms and transps. its fast. That’s why it doesn’t make sense to compare one century of history 1000 years ago side by side with present century.
Letting this process go in the wild is a good idea? probably not, but can we fully control it? Definitely not, there will be wars, we are very likely to die soon in a WW3,… so why do something about it if we know that it will bring problems? Because, that’s our nature. In the past we wrote it for the first time. Now with some knowledge we can predict but still we can’t fully control it.
Pretending that we can’t ear someone shouting into our ears will never make us ignore it and we will always be influenced by each other. It’s not an artificial concept like “country border” that can stop that, just delay it as much… History doesn’t repeat itself… It makes us think yes but every time we see something we think we have seen in the past there is always something a little different. For the good and for the bad, that’s called Evolution.
“There’s no piece of culture that I would want to deny from anyone.”
I love that. All culture belongs to all people.
I agree that assimilation is inevitable. Homogenization, even, to a certain extent. Even movements to preserve cultural artifacts end up turning them into fetish versions, not the “real thing.” But that has to be okay, cause it’s not like we can stop it.
What I’m saying is that it’s a necessary fact of the way systems scale that details and nuance get lost. It’s abstraction.
Yeah, it’s a pity cultures die:
I remember talking with Miguel de La Cuadra and other explorers about things like that. You know there were people that killed each other in Africa, and that was ok, because it was your enemy.
 If you ask the elders(one on them had killed 45 men) those were the days.

In a lot places in Africa and America people were afraid(really really afraid) of devils, Voodoo an do, someone could kill you if for example urinated on a sacred tree or excavate a hole on sacred terrain without noticing(I know an european engineer that disappeared after doing that).
In America there was a time you could take your enemies-prisoners heart out of their chest in live. It must be an interesting spectacle.

We should preserve cultures, we should not tell anybody that options exist. We are richer when people ignore those options and not change.
A pity the world is unifying. We should make walls and forbid communication between them.


Home
To get started, click Add Account. You can double click a file to download or drag a file into the tree/browser to upload.
To get started, click Add Account. You can double click a file to download or drag a file into the tree/browser to upload.


Hosea 4:19
The wind hath bound her up in her wings, and they shall be ashamed because of their sacrifices.


UKCloud Limited (“UKC”) and Virtual Infrastructure Group Limited (“VIG”) (together “the Companies”) – in Compulsory Liquidation
On 25 October 2022, the Companies were placed into Liquidation with the Official Receiver appointed as Liquidator and J Robinson and A M Hudson simultaneously appointed as Special Managers to manage the liquidation process on behalf of the Official Receiver.
Further information regarding the Liquidations can be found here: https://www.gov.uk/government/news/virtual-infrastructure-group-limited-and-ukcloud-limited-information-for-creditors-and-interested-parties
Contact details:
For any general queries relating to the Liquidations please email<EMAIL_ADDRESS>For customer related queries please email<EMAIL_ADDRESS>For supplier related queries please email<EMAIL_ADDRESS>Tip
Azure Stack Hub has built-in Azure Monitor capabilities; however, they are limited. Therefore, if you are looking for a more feature rich solution, you should use public Azure Monitor.
You can find out more about Azure Stack Hub's built-in Azure Monitor capabilities in the following article Use Azure Monitor on Azure Stack Hub.
Overview
This article explain how to utilise public Azure Monitor with Azure Stack Hub instead of the built-in Azure Monitor.
Azure Monitor is the platform service that provides a single source for monitoring Azure resources. With Azure Monitor, you can visualise, query, route, archive and otherwise take action on the metrics and logs coming from resources in Azure.
In this article we'll enable the following solutions for Azure Stack Hub VMs:
Prerequisites
To complete the steps in this article, you must have appropriate access to a subscription in the Azure and Azure Stack Hub portals.
Enabling Azure Monitor for VMs
Warning
Before proceeding, check here that your VMs' OS version is supported.
Creating the Log Analytics Workspace
Log in to the public Azure portal.
Create a Log Analytics Workspace in your Azure subscription:
Click Create a resource
In the search bar, search for log analytics
Click Log Analytics Workspace
Click Create
Provide the following:
A Subscription to link the workspace to
A Resource group to host the workspace in
A unique Name for the Log Analytics Workspace
A Region to host the workspace in
Note
Azure Monitor for VMs supports Log Analytics Workspace in the following regions.
Click Review + Create once finished, then click Create. The Log Analytics Workspace will now begin deploying. A notification will appear in the top right of the portal.
Once deployment is complete, navigate to the resource group you placed the Log Analytics Workspace in.
Click the newly created workspace.
On the new blade, under Settings, select Agents management.
Note down the Workspace ID and Primary Key values.
(Optional) Configure additional data sources
- Under Settings, select Agents configuration.
Windows event logs
Click Add windows event log
Select an event log from the dropdown and use the checkboxes to determine the severities that you want to collect for this log type.
Note
If the log type you want to add does not appear in the list, you can add it by typing in the full name. You can find the full name of the log type in Event Viewer. Open the Properties page for the log type and copy the string from the Full Name field.
Repeat for each event log you require, then click Apply
Click Add performance counter
Select a counter from the dropdown. You can adjust the sample rate to increase or decrease the amount of data collected for this counter.
Repeat for each performance counter you require, then click Apply
Syslog
Click Add facility
Select a facility from the dropdown and use the checkboxes to determine the severities that you want to collect for this facility.
Repeat for each facility you require, then click Apply
Click Add performance counter
Select a counter from the dropdown. You can adjust the sample rate to increase or decrease the amount of data collected for this counter.
Repeat for each performance counter you require, then click Apply
Execute the following PowerShell script to create the log analytics workspace.
| Variable name |
Variable description |
Input |
| $WorkspaceName |
The name of the log analytics workspace |
|
| $WorkspaceResourceGroupName |
The name of the resource group which the log analytics workspace resides in |
|
| $WorkspaceLocation |
The region to deploy the log analytics workspace and resource group in |
|
# Install module
Install-Module -Name "Az.OperationalInsights" -Scope AllUsers -Verbose -Force
# Initialise environment and variables
## Login to public Azure
Connect-AzAccount -Environment "AzureCloud"
## Create workspace analytics specific resources
# Input variables
$LogAnalyticsWorkspaceName = ""
$LogAnalyticsWorkspaceResourceGroupName = ""
$LogAnalyticsWorkspaceLocation = ""
# Check if the Log Analytics resource group exists, if it doesn't exist then create it
try {
$LogAnalyticsWorkspaceResourceGroup = Get-AzResourceGroup -Name $LogAnalyticsWorkspaceResourceGroupName -Location $LogAnalyticsWorkspaceLocation -Verbose -ErrorAction Stop
}
catch {
Write-Warning -Message "Log Analytics Workspace resource group ""$($LogAnalyticsWorkspaceResourceGroupName)"" in location ""$($LogAnalyticsWorkspaceLocation)"" doesn't exist. Creating now..."
try {
$LogAnalyticsWorkspaceResourceGroup = New-AzResourceGroup -Name $LogAnalyticsWorkspaceResourceGroupName -Location $LogAnalyticsWorkspaceLocation -Verbose -ErrorAction Stop
}
catch {
Write-Error -Message "Failed to create Log Analytics Workspace resource group ""$($LogAnalyticsWorkspaceResourceGroupName)"" in location ""$($LogAnalyticsWorkspaceLocation)"":`n$($_.Exception.Message)"
throw
}
}
# Check if the Log Analytics Workspace exists, if it doesn't exist then create it
try {
Write-Verbose "Attempting to retrieve Log Analytics Workspace ""$($LogAnalyticsWorkspaceName)"" in resource group ""$($LogAnalyticsWorkspaceResourceGroupName)"" and location ""$($LogAnalyticsWorkspaceLocation)""."
$LogAnalyticsWorkspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $LogAnalyticsWorkspaceResourceGroup.ResourceGroupName -Name $LogAnalyticsWorkspaceName -Verbose -ErrorAction Stop
}
catch {
try {
Write-Warning -Message "Log Analytics Workspace ""$($LogAnalyticsWorkspaceName)"" in location ""$($LogAnalyticsWorkspaceLocation)"" doesn't exist. Creating now..."
$LogAnalyticsWorkspace = New-AzOperationalInsightsWorkspace -ResourceGroupName $LogAnalyticsWorkspaceResourceGroup.ResourceGroupName -Name $LogAnalyticsWorkspaceName -Location $LogAnalyticsWorkspaceLocation -Verbose -ErrorAction Stop
}
catch {
Write-Error -Message "Failed to create Log Analytics Workspace ""$($LogAnalyticsWorkspaceName)"" in resource group ""$($LogAnalyticsWorkspaceResourceGroupName)"" and location ""$($LogAnalyticsWorkspaceLocation)"":`n$($_.Exception.Message)"
throw
}
}
try {
# Get Log Analytics Workspace GUID and primary key
Write-Verbose -Message "Attempting to retrieve Log Analytics Workspace ""$($LogAnalyticsWorkspace.Name)"" GUID, primary key and base64 encode them."
$EncodedWorkspaceGuid = [System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes(($LogAnalyticsWorkspace.CustomerId).GUID))
$WorkspaceKey = (Get-AzOperationalInsightsWorkspaceSharedKey -ResourceGroupName $LogAnalyticsWorkspace.ResourceGroupName -Name $LogAnalyticsWorkspace.Name -Verbose -ErrorAction Stop).PrimarySharedKey
$EncodedWorkspaceKey = [System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes($WorkspaceKey))
}
catch {
Write-Error -Message "Failed to obtain Log Analytics Workspace ""$($LogAnalyticsWorkspace.Name)"" GUID or primary key:`n$($_.Exception.Message)"
throw
}
(Optional) Configure data sources for additional logs
# Windows event logs
## The below example will create data sources for the event logs "System", "Application" and "Setup", with all severities being collected
$EventLogNames = @("System", "Application", "Setup")
foreach ($EventLogName in $EventLogNames) {
New-AzOperationalInsightsWindowsEventDataSource `
-ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName `
-WorkspaceName $LogAnalyticsWorkspaceName `
-Name "$($EventLogName) Event Log" `
-EventLogName $EventLogName `
-CollectErrors `
-CollectWarnings `
-CollectInformation
}
<# ---- Performance counter format ----
To select all instances of a counter, add (*) after the object name:
Object name(*)\Counter name
To select a specific instance of a counter, add (Instance name) after the object name:
Object name(Instance name)\Counter name
#>
# Windows performance counters
## The below example will create the counter "Memory(*)\Available MBytes"
New-AzOperationalInsightsWindowsPerformanceCounterDataSource -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName -ObjectName "Memory" -InstanceName "*" -CounterName "Available MBytes" -IntervalSeconds 20 -Name "Example Windows Performance Counter"
# Enable IIS Log Collection using agent
Enable-AzOperationalInsightsIISLogCollection -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName
# Linux performance counters
## The below example will create multiple counters "% Used Inodes", "Free Megabytes", "% Used Space", "Disk Transfers/sec", "Disk Reads/sec" and "Disk Writes/sec", all under the parent counter "Logical Disk"
New-AzOperationalInsightsLinuxPerformanceObjectDataSource -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName -ObjectName "Logical Disk" -InstanceName "*" -CounterNames @("% Used Inodes", "Free Megabytes", "% Used Space", "Disk Transfers/sec", "Disk Reads/sec", "Disk Writes/sec") -IntervalSeconds 20 -Name "Example Linux Disk Performance Counters"
## Enable the collection of performance counters from Linux computers
Enable-AzOperationalInsightsLinuxPerformanceCollection -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName
# Linux Syslog
## The below example will create a data source for the "kern" facility, with all severities being collected
New-AzOperationalInsightsLinuxSyslogDataSource -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName -Facility "kern" -CollectEmergency -CollectAlert -CollectCritical -CollectError -CollectWarning -CollectNotice -CollectInfo -CollectDebug -Name "Example kernel Syslog collection"
## Enable the collection of Syslog data from Linux computers
Enable-AzOperationalInsightsLinuxSyslogCollection -ResourceGroupName $LogAnalyticsWorkspaceResourceGroupName -WorkspaceName $LogAnalyticsWorkspaceName
Installing the extensions
Log in to the Azure Stack Hub portal.
Navigate to the VM that you want to enable Azure Monitor on and under Settings, select the Extensions blade.
Warning
For any monitoring to work correctly, the VM must have HTTPS (port 443) enabled in the Network Security Group rules.
Click Add at the top, select the extension Azure Monitor Dependency Agent, click Create and then OK.
Warning
Wait for the deployment to finish before continuing.
Click Add at the top, select the extension Azure Monitor, Update and Configuration Management and then click Create.
Execute the following PowerShell script to setup the Azure Monitor Dependency Agent and Azure Monitor, Update and Configuration Management extensions.
Declare variables
Enter details below to provide values for the variables in the following script in this article:
| Variable name |
Variable description |
Input |
| $VMName |
The name of the virtual machine |
|
| $ResourceGroupName |
The name of the resource group which the VM resides in |
|
| $NetworkSecurityGroupName |
The name of the network security group to apply the inbound port 443 rule to |
|
| $WorkspaceKey |
The log analytics workspace primary key |
|
| $WorkspaceId |
The log analytics workspace ID |
|
# Declare variables
$VMName = ""
$ResourceGroupName = ""
$NetworkSecurityGroupName = ""
$WorkspaceKey = ""
$WorkspaceId = ""
$PublicSettings = "{'workspaceId': `'$WorkspaceId`'}"
$ProtectedSettings = "{'workspaceKey': `'$WorkspaceKey`'}"
$Location = (Get-AzLocation).Location
# Get the virtual machine to apply the custom script extensions to
$VM = Get-AzVM -ResourceGroupName $ResourceGroupName -VMName $VMName
# Obtain network security group, create the port 443 inbound network security group rule and apply the rule to it
Get-AzNetworkSecurityGroup -Name $NetworkSecurityGroupName -ResourceGroupName $ResourceGroupName | New-AzNetworkSecurityRuleConfig -Name "Port443-Rule" -Description "Allow port 443" -Access "Allow" -Protocol "TCP" -Direction "Inbound" -Priority 100 -DestinationPortRange 443 -SourceAddressPrefix "*" -SourcePortRange "*" -DestinationAddressPrefix "*" | Set-AzNetworkSecurityGroup
# Determine if VM is Windows or Linux based
if ($VM.OsProfile.WindowsConfiguration) {
$DependencyAgentType = "DependencyAgentWindows"
$DependencyAgentVersion = "9.10"
$MonitoringAgentType = "MicrosoftMonitoringAgent"
$MonitoringAgentVersion = "1.0"
}
else {
$DependencyAgentType = "DependencyAgentLinux"
$DependencyAgentVersion = "9.10"
$MonitoringAgentType = "OmsAgentForLinux"
$MonitoringAgentVersion = "1.13"
}
# Deploy DependencyAgent extension
Set-AzVMExtension -ExtensionName "DependencyAgent" `
-ResourceGroupName $VM.ResourceGroupName `
-VMName $VM.Name `
-Location $Location `
-Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
-ExtensionType $DependencyAgentType `
-TypeHandlerVersion $DependencyAgentVersion `
-Verbose
# Deploy Microsoft.EnterpriseCloud.Monitoring extension
Set-AzVMExtension -ExtensionName "Microsoft.EnterpriseCloud.Monitoring" `
-ResourceGroupName $VM.ResourceGroupName `
-VMName $VM.Name `
-Location $Location `
-Publisher "Microsoft.EnterpriseCloud.Monitoring" `
-ExtensionType $MonitoringAgentType `
-TypeHandlerVersion $MonitoringAgentVersion `
-SettingString $PublicSettings `
-ProtectedSettingString $ProtectedSettings `
-Verbose
Configuring the Log Analytics Workspace
In public Azure, select Monitor from the favourites menu on the left.
In the new blade under Insights, click Virtual Machines.
You will see three usage analytics tabs (Get Started, Performance and Map) for the VMs you have enabled Azure Monitor for VMs on.
Caution
The Get Started tab does not show Azure Stack Hub VMs.
At the top, click the Performance tab, then on the right, move the switch from Azure to Hybrid:
A prompt will appear to upgrade the workspace, click Upgrade. In the new blade, click Upgrade again.
Upon refreshing the page, the prompt will disappear and the workspace will begin showing usage analytics for the VMs you've enabled Azure Monitor for VMs on.
Note
It can take between 30 minutes and 6 hours for the dashboard to display updated data from Azure Monitor enabled VMs.
Executing Kusto Query Language (KQL) queries to retrieve data from the Log Analytics Workspace
Navigate to the Log Analytics Workspace you created.
Under General, click Logs.
Enter the KQL query in the New Query 1 tab, then click Run.
The below example will select data from the event log table Event
, filtering for events of type System
and containing the phrase was unexpected
, then sorted by the TimeGenerated
field in descending order.
# Declare KQL query
## The below example will select data from the event log table "Event", filtering for events of type "System" and containing the phrase "was unexpected", then sorted by the "TimeGenerated" field in descending order
$Query = 'Event | where EventLog == "System" | search "was unexpected" | sort by TimeGenerated desc'
# Execute the KQL query and obtain the results
$QueryResults = Invoke-AzOperationalInsightsQuery -WorkspaceId $WorkspaceId -Query $Query -Timespan "$(New-TimeSpan -Hours 48)"
# Convert the results to a PowerShell array object
$ResultsArray = [System.Linq.Enumerable]::ToArray($QueryResults.Results)
# Print the array
$ResultsArray
Feedback
If you find a problem with this article, click Improve this Doc to make the change yourself or raise an issue in GitHub. If you have an idea for how we could improve any of our services, send an email to feedback@ukcloud.com.


Creating, maintaining and using forms for health data capture is vital, and FHIRForm is a framework for that. FHIRFormJS is one of its components (an npm module) that helps create input forms corresponding to a FHIR questionnaire. FHIRFormJS does not render forms but converts FHIR questionnaire into a schema and lets other libraries (such as react-jsonschema-form ) do the heavy lifting. An output mapper that maps the output from a react-jsonschema-form to a QuestionnaireResponse is also available. Checkout this example React app to see how it is used. This is a modern alternative to LHC-Forms
FHIRFormJS is WIP (not production ready). Pull requests are welcome (See CONTRIBUTING.md) and add issues and feature requests by clicking on the 'issues' tab. :point_up:
npm i --save fhirformjs
import { FhirJsonForm, FhirJsonResp } from 'fhirformjs'
import Form from "@rjsf/core"
const resp = FhirJsonForm(Testq1)
let formData = {}
let respData = {}
function handleSubmit(data){
respData = FhirJsonResp(resp.model, data)
console.log(JSON.stringify(respData))
}
return (
<div className="App">
<header className="App-header">
<Form schema={resp.schema}
uiSchema={resp.uiSchema}
formData={formData}
onSubmit={e => handleSubmit(e.formData)}
/>
</header>
</div>
);
Generated using TypeDoc