ManageIQ Blog
Sprint 12 Demo Results and Video
We just finished up the Sprint 12 demo, ended September 9.
The ManageIQ Design Summit - a small intimate gathering of cloud experts
We’re happy to announce the preliminary agenda for the upcoming ManageIQ Design Summit, a 2-day event on October 7 & 8 in Montvale, NJ. Be sure to RSVP soon, as space is very limited. As mentioned in the title, it’s a small intimate gathering of cloud experts, those interested in pushing the limits of ManageIQ and setting the roadmap for development. If you’re a ManageIQ user who wants to learn how to make the most of its automation and orchestration capabilities, then there will be plenty for you, too:
Aaron Patterson (aka tenderlove) joins ManageIQ Team
We are thrilled to announce that Aaron Patterson (@tenderlove) has joined the ManageIQ team.
ManageIQ Anand Release Now Available
Wanted - Design Summit Volunteers
If you’d like to volunteer to put together the upcoming ManageIQ Design Summit, let it be known in the comments section of this blog post. We will start having weekly meetings for the purpose of putting together the agenda, and we need volunteers to review abstracts and potential speakers.
Blueprints for Botvinnik Due by September 15
The votes are in, and “Botvinnik” is the winner! In planning for Botvinnik (which we’ll sometimes shorten to “bot”) we’re now accepting blueprints for proposed features. Just submit your blueprint and make sure to categorize it properly. Next, you’ll need to propose an abstract for the ManageIQ Design Summit. Make sure to put your proposal in the Abstracts category.
First Ever ManageIQ Design Summit - Oct 7-8
As we wind down the Anand release cycle, the next one is winding up: a vote to determine the next release name, a call for feature blueprints, and a call for participation for the very first ManageIQ Design Summit.
Planning the "B" Release
Now that the Anand release is almost out the door, it’s the right time to turn our attention to the next release. Since we’re going alphabetically by chess world champions, we have a few choices:
Anand Release Candidate
Things have been rolling along here at the ManageIQ community, and we’re proud to announce that the first release candidate is now ready. The first release for ManageIQ is called “Anand”, named after world champion chess player Viswanathan Anand.
To download a release candidate build of Anand, proceed to the download page. To get the source for Anand, see the tagged GitHub repo.
To get an idea of what is included in Anand, see the results of the previous sprint. To see what is coming next, take a look at the roadmap.
Enjoy! Remember, if you find any issues, please report them.
-JM


Press n or j to go to the next uncovered block, b, p or k for the previous block.
| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| src | 74.44% | 5388/7238 | 60.32% | 491/814 | 53.21% | 730/1372 | 74.44% | 5388/7238 | |
| src/array | 82.79% | 510/616 | 84.38% | 54/64 | 55.86% | 62/111 | 82.79% | 510/616 | |
| src/extensions | 81.02% | 397/490 | 92.86% | 39/42 | 67.25% | 115/171 | 81.02% | 397/490 | |
| src/js | 76.6% | 275/359 | 66.18% | 45/68 | 50.72% | 70/138 | 76.82% | 275/358 | |
| src/list | 87.34% | 552/632 | 98.53% | 67/68 | 64.04% | 73/114 | 87.34% | 552/632 | |
| src/option | 90.91% | 290/319 | 88.24% | 30/34 | 72.5% | 29/40 | 90.91% | 290/319 |


Estimated time: 5 days
MCC is the exclusive dealer for 22PLE in the U.A.E. 22PLE is the latest technology in paint protection systems that goes above and beyond any past car wax, paint sealant, or paint coating. 22PLE Signature Glass Coating is a high silica-based paint coating that can be applied to clearcoat and non clear coated automobile paint to protect the paint from the harmful elements.
The high silica-content glass coatings are applied in a thin layer as a liquid, and once cured, 22PLE literally leaves a hardened glass barrier between the paint (or other protected areas) and the harmful elements industrial and environmental pollutants such as UV, acid rain etc. So not only does this glass barrier provide a brilliant gloss and shine, it offers a level of protection to your car that can’t be equaled by any wax or sealant. While most carnauba waxes last only for a few months and sealants upwards of 4-6 months, you can expect 24-36 months durability with 22PLE Glass Coating!
22PLE has developed an ultra-durable glass-based sealant with formulations for paintwork, metal and plastic. Their Signature Glass Coats are easy to work with, set as hard as glass and offer a tough barrier against the elements along with extreme shine.
22PLE products contain an extremely high percentage of silica and do not rely on elevated levels of alcohol as a curing agent. As a result 22PLE Glass Coats provide a truly scratch resistant coating and all products are extremely easy to apply. Expect deep, rich reflections after applying this product. And, your paint will literally be smooth like glass. Why, because it’s made from glass! So, whether you’re a professional detailer or a keen enthusiast, 22PLE is the perfect choice.
After the first application of protection, 22PLE needs 3-5 hours to cure. After this initial cure time, it will take 5 days for 22PLE to fully cure to its maximum hardness. You can wash your car with traditional soap and water, just keep in mind that between the 5th hour and 5th day, the product is still curing so you don’t want to expose the paint to anything extreme during that time.
One of the key features of this coating is that harmful and destructive contaminants won’t stick to the surface as easily…leaving your paint in much better condition for a longer period. And since there’s less “stick” on the surface, you’ll find that washing and drying is MUCH easier and quicker. Your wash mitt will glide across the surface like never before (creating a safer, mar-free wash process), and drying is near effort-less due to the hydrophobic properties of 22PLE.
When used on wheels and metal, the VM1 formula will prevent heavy brake dust buildup, and make subsequent cleanings much easier. And when used on plastic trim, the VR1 formula will create a deep, rich color that will last for well over a year…as opposed to just weeks for other trim products! The product that gives you the longest lasting paint protection is not a wax or a sealant…its 22PLE Glass Coating. When you are looking for paint protection systems for your car, contact MCC and set-up an appointment to get your car the paint protection it deserves so it stays looking like new! It’s perfect for new car detailing or for easy used car maintenance.


Toggle navigation
Data & Reports
Navigation
Bubble Chart
Efficiency Scale
Bubble Chart
Side by side metrics


Avengers Endgame was the most highly anticipated movie of the year, and it deserves every last drop of hype it received. This cinematic masterpiece didn’t break the box offices, earning the title of the highest grossing movie in history by that July, for no reason.
I vividly remember standing in the seemingly endless line on April 26th, to view the first screening of Avengers Endgame in my town on April 27th, which just so happened to be my birthday. My friends and I loaded up on snacks and took our seats, and what we saw blew us away. After years and years of careful planning, inconspicuous easter eggs, and dozens of movies, all of the work of the geniuses behind the Marvel Cinematic Universe (MCU) paid off.
The Russo brothers worked closely with Stan Lee, creator of the Marvel Comic books and father of the MCU, in order to ensure his creations were properly brought to life on the silver screen. The Marvel franchise has a culmination of different strategies and a very particular formula to its creations, so naturally many Marvel fans became very frightened when Disney took over the production of the Marvel movies. Many people were worried about the “Disneyfication” that would occur, as the Mouse is infamous for toning things down.
Little did we know that the Russo brothers and Disney were about to bring the heat.
In this installment of the Marvel legacy, we start off with a bang. Clint Barton, with the superhero alias Hawkeye, is not privy to the occurrences of Thanos arriving on Earth on his search for the infinity stones, and has no knowledge of the quest his friends are on to stop half of the universe from being extinguished. When he isn’t looking, his entire family is snapped out of existence, and the opening title rolls. The rest of the film entails the discovery of time travel, and our heroes attempt to recover the infinity stones to undo the snap.
When it was revealed that Avengers Endgame was going to be three hours long, most people were skeptical on the pacing of the film, thinking there was too much risk in having such a long feature. Some thought they wouldn’t be able to sit through the whole thing, but I believe those were probably the people who ended up going back time and time again.
Within the span of those three hours, we are given the pleasure of reliving some of our favorite memories throughout the decades of Marvel storytelling. The movie is full of funny quips, astounding crossovers, and heart-throbbing moments.
The movie harbored a combination of many different talents. Screenwriters, directors, artists, animators, actors, musicians, and so many wonderful people poured their efforts into the culmination of this masterpiece. One beautiful shot of the film is when—spoiler alert—Doctor Strange summons the forces of all the fighters, those both lost in the snap, and those from other parts of the world, such as Wakanda. At that moment, Captain America utters the iconic line, “Avengers, Assemble.”
The most jarring and emotionally impactful scene for me was the recovery process of retrieving the stones, when Natasha and Clint are sent to recover the soul stone. The two of them are not fighting anyone but each other, and in a cruel twist of fate, the winner receives the prize of death. Neither of them are scared to die for each other, or for the sake of the world. The most agitating part is Natasha and Clint both know that they cannot be brought back by the reversal snap. Their deaths will be permanent.
It was truly entertaining to see the unlikely heroes come together. The survivors of the snap left a team of people who were heavily burdened with the loss of their friends. Some pairings had worked alongside each other for their whole careers, like Natasha and Clint. Other pairings, like Thor and Rocket Raccoon, hadn’t met each other until the events of Infinity War unfolded.
Losing the many beloved heroes to the snap in Infinity War elicited such strong reactions from the audience, but some of us knew they would be brought back with the events of Endgame. What we did not know, however, was that the fate of the Avengers would never be the same again. Spoiler warning! Iron Man dies. The whole thing builds up to this one moment, and the rich playboy sacrifices himself for his family and friends. From a filmmaker’s perspective, it’s beautifully written, but the practical question so many audience members had was: why didn’t Captain Marvel perform the snap? If she’s capable of tearing through an entire space ship, and holding Thanos down single-handedly while he is in possession of the Infinity Gauntlet, surely she can snap and reverse the shenanigans Thanos pulled.
Many audience members were so sad coming out of Endgame, and distraught over the end of an era. But as the night ends, the dawn comes with a new era of entertainment. While the Infinity Saga ends, Phase Four promises eight new films and eight new TV shows, and Phase Five looks promising as well. I am so excited to see what these ingenious creators bring to life in the next decade, and to see how each character grows from their experiences in Endgame.


iconic horror movie posters are reimagined using fuzzy felt and buttons
by AmyBoomdigital marketing agency, boom online, has teamed up with soft furnishings retailer, the mill shop, to recreate iconic horror movie posters using a not so scary medium – fuzzy felt. the series captures famous films and cult classics, from the dystopian crime drama a clockwork orange to the chilling psychological thriller the silence of the lambs.
jaws – original poster credit: roger kastel
upon approaching the project, boom online posed the question: ‘what if you took away all of the big budget CGI and photoshopping? do you think it’s possible to capture the essence of a film with a bit of simple crafting?’ reimagining some of the most well-recognized posters, the design team wanted to understand if they could still evoke the feelings viewers experience when seeing a movie poster – specifically for horror – in a not so scary medium.
the shining – original poster credit: saul bass
from this idea, the team set out to find the least frightening medium possible, which turned out to be soft, fuzzy felt. to form the compositions, which were actually all created as digital renderings using specialist computer software, the elements of the posters were first broken down into color layers. from here, the renderings were made, (with no actual sewing involved) applying the texture of the felt. the result is a series of images that gives the original, sinister posters a light-hearted, and almost childlike, appearance.
alien – original poster credit: steve frankfurt & philip gips
a clockwork orange – original poster credits: philip castle
jurassic park – original poster credit: sandra collora
the silence of the lambs – original poster credit: dawn baillie
terminator – original poster credit unknown
project info:
created by: boom online and the mill shop
designboom has received this project from our ‘ DIY submissions ‘ feature, where we welcome our readers to submit their own work for publication. see more project submissions from our readers here.
edited by: lynne myers | designboom


This document loads the worker Sass.js. Please open your browser's DevTools to use the API.
// when loading the worker api via script[src$="/sass.js"] it's a safe bet the worker // will be found relative to that file. In any other case you'd have to define where // the worker is located before initializing Sass: // Sass.setWorkerUrl('dist/sass.worker.js'); var sass = new Sass(); sass.writeFile('testfile.scss', '@import "sub/deeptest";\n.testfile { content: "loaded"; }', function() { console.log('wrote "testfile.scss"'); }); sass.writeFile('sub/deeptest.scss', '.deeptest { content: "loaded"; }', function() { console.log('wrote "sub/deeptest.scss"'); }); sass.options({ style: Sass.style.expanded }, function(result) { console.log("set options"); }); sass.compile('@import "testfile";', function(result) { console.log("compiled", result.text); });


Java Development Internship where I was responsible for the full life-cycle of multiple Java projects for use by hospital staff. Notable projects include a dashboard for patients with outstanding debts and an on-call scheduling applet.
During Cork Startup Weekend 2017, I worked with a team contructing a working demo of a balloting applicaiton that uses authenication from a mobile phone and logs votes in a blockchain. I wrote the tallying code in Go and and externally facing API to record the votes. Our team won 1st place for the weekend.
Client:
ElecChain
Date:
February 2017
Service:
Blockchain and API Development
Beacon
Bespoke helpdesk software to be used on the MakerSquare campus. Users can submit a ticket and location and recieve notifications when help is on the way. In this project, I was responsible for the server-side development as well as being the Product Owner in our Scrum team.
Travel site built using React and node.js. Uses Google Flights and other APIs to build a travel itinerary. Personally, I handled the events API and User Authentication


You can pass a CSS class by using the `className` propertly. Classes can be used with all other properties.
<Loading
shouldShow={this.state.loading}
className='loading-wrapper' />
Just pass the name font awesome classes through the `faIcon` property as per the example. This will not display any text.
<Loading
shouldShow={this.state.loading}
faIcon='fa fa-refresh fa-spin' />
Passing children to the component will override using properties like text & icon.
<Loading shouldShow={this.state.loading}>
Your content - images, text, whatever!
</Loading>
Want to only display text? Just use the `text` attribute to pass the text you would like.
<Loading
shouldShow={this.state.loading}
text='Checking your details...' />


WARNING: When synchronizing, all content in the chosen folder(s) will be removed before adding new content. If no folder name is entered, the folder name in the config file is used. If folder name is not entered and does not exist in the config file, no synchronization will be done.


A container of all Izhikevich neuron data. More...
#include "AllIZHNeurons.h"
#include "ParseParamError.h"
Go to the source code of this file.
A container of all Izhikevich neuron data.
/
Definition in file AllIZHNeurons.cpp.


WEEK 11 TUESDAY
Year 1 (Year 2)
FIRST READING 2 Corinthians 8:1-9
A reading from the second Letter of Saint Paul to the Corinthians
We want you to know, brethren, about the grace of
God which has been shown in the churches of
The word of the Lord
RESPONSORIAL PSALM Psalm 146:1b-2.5-6ab.6c-7.8-9a (R. 1b)
R. My soul, give praise to the Lord!
My soul, give praise to the LORD; I will praise the
LORD all my life, sing praise to my God while I live.
R. My soul, give praise to the Lord!
Blessed is he who is helped by Jacob's God, whose
hope is in the LORD his God, who made the heavens and the earth, the seas and
all they contain.
R. My soul, give praise to the Lord!
It is the LORD who preserves fidelity for ever, who
does justice to those who are oppressed. It is he who gives bread to the
hungry, the LORD who sets prisoners free.
R. My soul, give praise to the Lord!
It is the LORD who opens the eyes of the blind, the
LORD who raises up those who are bowed down. It is the
LORD who loves the just, the LORD who protects the stranger.
R. My soul, give praise to the Lord!
FIRST READING 1 Kings 21:17-29
A reading from the first Book of Kings
[After the death of Naboth,]
the word of the LORD came to Elijah the Tishbite,
saying, "Arise, go down to meet Ahab king of
The word of the Lord
RESPONSORIAL PSALM Psalm 51:3-4.5-6ab.11 and 16 (R. see 3a)
R. Have mercy, O Lord, for we have sinned.
Have mercy on me, O God, according to your merciful
love; according to your great compassion, blot out my transgressions. Wash me completely
from my iniquity, and cleanse me from my sin.
R. Have mercy, O Lord, for we have sinned.
My transgressions, truly I know them; my sin is
always before me.  Have mercy, O Lord, for we have sinned.
Turn away your face from my sins, and blot out all
my guilt. Rescue me from bloodshed, O God, God of my salvation, and then my
tongue shall ring out your justice.
R. Have mercy, O Lord, for we have sinned.
R. Alleluia. A new commandment I give to you, says the Lord, that you love one another, even as I have loved you. R. Alleluia.
GOSPEL Matthew 5:43-48
A reading from the holy Gospel according to Matthew
At that time: Jesus said to his disciples, "You
have heard that it was said, 'You shall love your neighbour and hate your
enemy.' But I say to you, Love your enemies and pray for those who persecute
you, so that you may be sons of your Father who is in heaven; for he makes his
sun rise on the evil and on the good, and sends rain on the just and on the
unjust. For if you love those who love you, what reward have
you? Do not even the tax collectors do the same?  Do not even the Gentiles do the
same? You, therefore, must be perfect, as your
heavenly Father is perfect.
The Gospel of the Lord.


2 writes to _pushedRunspace
System.Management.Automation (2)
engine\remoting\server\ServerRemoteHost.cs (2)
345
_pushedRunspace
= remoteRunspace;
370
_pushedRunspace
= null;
7 references to _pushedRunspace
System.Management.Automation (7)
engine\remoting\server\ServerRemoteHost.cs (7)
310
return (
_pushedRunspace
!= null);
325
if (
_pushedRunspace
!= null)
353
if (
_pushedRunspace
!= null)
362
RemovePSEditFromRunspace(
_pushedRunspace
);
365
if (
_pushedRunspace
.ShouldCloseOnPop)
367
_pushedRunspace
.Close();
393
get { return
_pushedRunspace
; }


Cong to boycott Constitution Day function in Parliament
by Sagar KulkarniCongress and few other parties have decided to boycott the Constitution Day celebrations in the Central Hall of Parliament on Tuesday which would be addressed by President Ram Nath Kovind.
Lawmakers of the Congress, Trinamool, Left parties and the DMK have decided to boycott the function, a senior Congress leader said.
He said the lawmakers of the Congress and other like-minded parties will protest at the same time as the function near the statue of Babasaheb Ambedkar in the Parliament premises.
Congress has accused the Modi government of "murdering democracy" by installing Devendra Fadnavis as the chief minister of Maharashtra by stealth after poaching a section of the NCP.
Congress and other like-minded parties stalled proceedings in both the Lok Sabha and the Rajya Sabha and forced repeated adjournments.


This relay is used by the BMS as a shutdown signal to the charger. This relay is strongly recommended to be enabled. If enabled, this relay will be driven low to allow charging until the BMS determines the charger should shut off (due to high voltage condition or the CCL dips to 0 for example) at which point it will float high (there is no pull-up resistor on the line). This relay can re-engage based on a timer condition.
NOTE: If this relay is enabled, the Charge Current Limit will latch at 0A once the relay output turns off to prevent any further charging. There are several conditions listed on this settings page for re-enabling the output. Once the output is re-enabled then the Charge Current Limit will go above 0A.
**Click here for a functional flowchart of how the relay works.
| < Relay Settings | Charger Safety Functional Flowchart > |


Dear @Name@, A new album has been added to your @USerNAme@ account
login to your account to access your Personla Gallery access here
- Powered by human06 < / >


Please connect Rinkeby Network
address: {{ userAccount }}
balance: {{ daiBalance }} DAI
balance: {{ cdaiBalance }} cDAI
Please connect Rinkeby Network
address: {{ userAccount }}
balance: {{ usdcBalance }} USDC
balance: {{ cusdcBalance }} cUSDC
step1: get Rinkeby ETH link
step2: get Rinkeby DAI link


Glossa-Interpreter
An interpreter for the 'ΓΛΩΣΣΑ' programming language developed using Antlr 3.2 and Java.
License
Copyright (c) Georgios Migdos
Source code is available under the terms of the MIT license.
Antlr 3 is copyright of Terence Parr and it is available under the terms of the BSD license.
jOpt Simple is copyright of Paul R. Holser and it is available under the terms of the MIT license.
Status
The interpreter can now execute all valid ΓΛΩΣΣΑ programs.
- Lexer/Parser: Errors/warnings in Greek ✔
- Static type analysis: Errors/warnings in Greek ✔
- Runtime errors/warnings in Greek ✔
- Lexer/Parser: Main program structure ✔
- Static type analysis: Main program structure ✔
- Statement execution: Main program structure ✔
- Built-in functions ✔
- Lexer/Parser: Functions ✔
- Static type analysis: Functions ✔
- Statement execution: Functions ✔
- Lexer/Parser: Procedures ✔
- Static type analysis: Procedures ✔
- Statement execution: Procedures ✔
- Command-line interface ✔
- Step-by-step execution ✔
(The GUI Swing components have been moved to a separate project.)
✔ = completed, ⟳ = in progress, ✘ = not implemented yet
Build instructions
To build the project’s code you will need :
- JDK (6.x+)
- Apache Ant (built-in in Netbeans)
- Antlr 3.2 (*)
(*) If you have an active internet connection antlr will be downloaded automatically to the correct directory during the first build, otherwise you have to copy antlr-3.2.jar to glossa-interpreter/lib/antlr-3.2.jar
Open a terminal and give:
git clone git://github.com/cyberpython/glossa-interpreter.git
cd glossa-interpreter
ant jar
How to run the interpreter
To run the interpreter you must have a JRE (6.x+) installed. Then you can give:
java -jar dist/glossa-interpreter.jar <input_file>
e.g.:
java -jar dist/glossa-interpreter.jar src/glossa/samples/PrintTest.gls
For more information give:
java -jar dist/glossa-interpreter.jar -h
Note for Windows users: If the Windows command line (cmd.exe) does not display correctly the interpreter output, you should change the command-line font from "Raster fonts" to "Lucida Console" and give the following command:
chcp 1253
After that all output should be displayed correctly.
Samples
There are some example input files in:
src/glossa/samples/
The project is developed using Netbeans 6.9.


{% extends 'layout-Welsh.html' %} {% set version = "v7-Welsh" %} {% set backLink = " " %} {% set heading = "You are in a waiting area" %} {% set mainClasses = "nhsuk-main-wrapper--s" %} {% block content %}
We are limiting the number of people who can sign up at the same time.
It may take a few minutes. Please wait.
If you leave this page, you will leave the waiting area.
You do not need to refresh this page. It will refresh automatically.


Role
My job was implement and fix bugs in their websites following their current front-end structure
Sundio websites allows the visitor to search and book through several winter sport deals, hotels and all inclusive holidays. Their network involves more than 10 websites such as Wintersports, Sunweb Holidays and other related travel brands in europe.
My job was implement and fix bugs in their websites following their current front-end structure
Under Microsoft .net technologies, the front-end relies on well structured and defined guidelines using sass, compass, angular, jquery, grunt and other technologies which helps high-level websites performance.


The little CPU that could ...
The PANTHER150 emulator is written in the Rust programming language. The machine is laid out as:
Once your machine is loaded you will see a table of 16x16 "memory cells."
This represents the 256-bytes of system memory. The first row is addresses
0x00-0x0F
, the second row is addresses 0x10-0x1F
, and
the last row is addresses 0xF0-0xFF
.
Upon clicking the LOAD
button your CPUs memory will be set to
the values you've entered in the table.
Some things to keep in mind:
0xFF
.
Programs can be run in two modes. You can either click the RUN
button
which will run your program until one of two things happens:
0xC000
)TICK
button, allows you to advance
the PC manually. Each tick runs through one complete fetch, decode, execute cycle.
If this cycle is a jump: the PC will be adjusted accordingly.
If you simply want to run the program from the beginning: you can
always click the LOAD button again.
Be careful that your program has not overwriten any memory locations
that are important to your program!
If you want to zero out all memory, or reset the registers, you will
simply have to refresh the page. This will fetch a pristine CPU.
| OP | INSTRUCTION | DESCRIPTION |
|---|---|---|
| 0x1 | MLOAD | Load (Indirect) |
| 0x2 | RSET | Load (Direct) |
| 0x3 | MSTOR | Store (Indirect) |
| 0x4 | RMOV | Register Move |
| 0x5 | ADDB | Adds two bytes using 2s complement addition. |
| 0x6 | ADDF | (Unimplmented!) |
| 0x7 | OR | Logically ORs two bytes |
| 0x8 | AND | Logically ANDs two bytes |
| 0x9 | XOR | Logically XORs two bytes |
| 0xA | ROT | Rotates bits off the right edge to the left edge. |
| 0xB | JMPEQ | Sets IP based on register 0 comparison. |
| 0xC | HLT | Causes the machine to stop execution. |
| 0xC-0xF | RESERVED |


This year’s New Angle Prize longlist features novels, short stories, architecture, poetry and biography.
The competition celebrates literature associated with or influenced by East Anglia. It is organised by the Ipswich Institute and sponsored by Gotelee Solicitors and Scrutton Bland accountants. The winner, who receives £2,500, will be announced at an awards dinner on Wednesday 6 September.
Fenn Halflin and the Fearzero, by Francesca Armour-Chelu
“In a world that has been ravaged by flooding, Fenn Halflin learns the truth about his past - a secret that forces him to flee the safety of his home as he is chased across the vast sea by the ruthless Terra Firma and their cold-blooded leader, Chilstone.
“Finding shelter on a decaying island, Fenn is taken in by child survivors in hiding, and he begins a deadly game of cat-and-mouse with the Terra Firma, who will stop at nothing to find him. But as Chilstone’s dreaded Fearzero ship appears on the horizon, and the water levels continue to rise, it seems that Fenn’s hopes of escape will be washed away for ever.”
Author Francesca Armour-Chelu is one of our very own librarians, and ran a story-writing class for children at last years Suffolk Libraries Bookfest. The judges described Fenn Halflin and the Fearzero as “a thought-provoking debut in which the threat from the east coast sea is not all there is to worry about.”
Murmurations of Love, Grief and Starlings, by Julia Blackburn
“A meditation by Julia Blackburn on the sudden death of her husband, accompanied by photographs of starlings in ‘sympathetic flight’.”
The judges said of Murmurations of Love, Grief and Starlings, “the swirl of starlings in the evening skies become a metaphor and celebration of the human spirit and a life lived to the full.”
Threads: the delicate life of John Craske, by Julia Blackburn
“John Craske, a Norfolk fisherman, was born in 1881, and in 1917, when he had just turned 36, he fell seriously ill. For the rest of his life he kept moving in and out of what was described as ‘a stuporous state’.
“In 1923 he started making paintings of the sea and boats and the coastline seen from the sea, and later, when he was too ill to stand and paint, he turned to embroidery, which he could do lying in bed. His embroideries were also the sea, including his masterpiece, a huge embroidery of The Evacuation of Dunkirk.
“Very few facts about Craske are known, and only a few scattered photographs have survived, together with accounts by the writer Sylvia Townsend Warner and her lover Valentine Ackland, who discovered Craske in 1937. So Julia Blackburn’s account of his life is far from a conventional biography.”
Julia Blackburn’s second title to make the longlist was described by the judges as “beautifully written, beautifully illustrated and beautifully produced – a life of rediscovered genius.”
The Crime Writer, by Jill Dawson
“In 1964, the eccentric American novelist Patricia Highsmith is hiding out in a cottage in Suffolk, to concentrate on her writing and escape her fans. She has another motive too - a secret romance with a married lover based in London.
“Unfortunately it soon becomes clear that all her demons have come with her.  After the arrival of Ginny, an enigmatic young journalist bent on interviewing her, events take a catastrophic turn.”
The judges called The Crime Writer “a destabilising book in which you’re never quite sure what’s real, imagined, or simply the result of madness.”
Fen, by Daisy Johnson
“Daisy Johnson’s Fen is a liminal land. Real people live their lives here. They wrestle with familiar instincts, with sex and desire, with everyday routine. But the wild is always close at hand, ready to erupt.
“This is a place where animals and people commingle and fuse, where curious metamorphoses take place, where myth and dark magic still linger. So here a teenager may starve herself into the shape of an eel. A house might fall in love with a girl. A woman might give birth to a - well what? English folklore and a contemporary eye, sexual honesty and combustible invention - in ‘Fen’, these elements have come together to create a singular, startling piece of modern fiction.”
The judges commented, “the flatlands of East Anglia are a setting for this gripping and refreshing debut collection of short stories.”
Midwinter, by Fiona Melrose
“Father and son, Landyn and Vale Midwinter, are men of the land. Suffolk farmers. Times are hard and they struggle to sustain their property, their livelihood and their heritage in the face of competition from big business.
“But an even bigger, more brutal fight is brewing: a fight between each other, about the horrible death of Cecelia, beloved wife and mother, in Zambia ten years earlier. A past they have both refused to confront until now. Over the course of a particularly mauling Suffolk winter, Landyn and Vale grapple with their memories and their pain, raking over what remains of their fragile family unit, constantly at odds and under threat of falling apart forever. While Vale makes increasingly desperate decisions, Landyn retreats, finding solace in the land, his animals - and a fox who haunts the farm and seems to bring with her both comfort and protection.”
The judges described Midwinter as “an incredibly-assured debut that explores the emotions of men of the land, which we don’t often see.”
The Stopped Heart, by Julie Myerson
“Some memories are too powerful to live only in the past. During a ferocious storm, a red-haired stranger appears in the garden of a small farming cottage. Eliza and her parents take him in. But very soon, it’s clear he has no intention of leaving.
“A century later, Mary and Graham have experienced every parent’s worst nightmare. Now, escaping their old London life, the memories and the headlines, they have found an idyllic new home in rural Suffolk. A cottage, a beautiful garden. The perfect place to forget. To move on. But in ‘The Stopped Heart’, the past never dies.”
The judges commended The Stopped Heart, as “an examination of deep loss that is a fine example of the author’s power to produce dark and scary material.”
The Essex Serpent, by Sarah Perry
“Set in Victorian London and an Essex village in the 1890s, and enlivened by the debates on scientific and medical discovery which defined the era, The Essex Serpent has at its heart the story of two extraordinary people who fall for each other, but not in the usual way. They are Cora Seaborne and Will Ransome.
“Cora is a well-to-do London widow who moves to the Essex parish of Aldwinter, and Will is the local vicar. They meet as their village is engulfed by rumours that the mythical Essex Serpent, once said to roam the marshes claiming human lives, has returned.”
Described by the judges as “a novel that has the power to surprise, genuinely – set amid the beauty and oppressive nature of the muddy Essex shores.”
The Angel Roofs of East Anglia: unseen masterpieces of the middle ages, by Michael Rimmer
“By the late middle ages English constructional and decorative woodworking had attained a level of skill and sophistication unrivalled in Europe. East Anglia’s churches are home to one of the most spectacular and distinctive products of this medieval expertise: the angel roof.
“Built mainly between 1400 and 1530, and overwhelmingly an East Anglian phenomenon, angel roofs were an expression of religious belief, wealth, status and regional skill. Using specialist lenses and techniques to capture distant and inaccessible detail, Michael Rimmer’s photographs reveal the unseen beauty of East Anglia’s angel roofs and the vision of the medieval craftsmen who made them, while his engaging and knowledgeable text brings to life the personalities, economics and power structures of 15th century East Anglia.”
According to the judges, The Angel Roofs of East Anglia is “a fine work which does a wonderful job explaining what’s on our doorsteps, how it got there, and why.”
Quennets, by Philip Terry
“In Quennets Philip Terry develops a sonnet-like form invented by the Oulipian poet Raymond Queneau. Across three sequences, the quennet is reworked and refigured in response to three perimeter landscapes.
“The first sequence, Elementary Estuaries, is inspired by a series of walks along the Essex estuary, the poems’ appearance on the page suggesting the landscape’s expansive estuarine vistas, its pink sail lofts and windswept gorse, beach huts and distant steeples.
“In the second sequence, written after a series of walks around the Berlin Wall Trail, or Mauerweg, the form changes to reflect the physical, almost bodily tension of the wall as an architectural and social obstruction.
“The final sequence, Waterlog, retraces the steps of W. G. Sebald through Suffolk, and here the quennet’s newely elongated shape and ragged margin evoke the region’s eroding coastline, its deserted piers and power stations, electric fences and waterlogged fields.”
The judges said, “sparse by design, this poetry is a strong reminder of the power of words when allied to our imagination, experience and emotions.”
Sandlands, by Rosy Thornton
“This short story collection is inspired by the ‘sandlings’ of coastal Suffolk, by the landscape and its flora and fauna, as well as by its folklore and historical and cultural heritage.”
The judges described Sandlands as a collection of “short stories that capture perfectly that the past and present are separated only by a thin screen.”
If I Could Tell You, by Elizabeth Wilhide
“Suffolk, 1939: Julia is a young wife and mother, whose husband Richard’s good looks mask his crashing conventionality. When she falls for the dashing but unreliable documentary filmmaker Dougie she gives up her staid, provincial life and moves to London to live a bohemian life with him, unwittingly and agonisingly losing the right to see her young son along the way.
“In London she quickly realises how useless and unskilled she is at anything, and the great romance is not all it seemed. But then the war intervenes, a new sense of purpose arrives, and Julia discovers she has a rare gift.”
According to the judges, If I Could Tell You is “a story that forces us to confront the uncomfortable questions we try to hide in the darkest corners of our minds.”


| Madmec | |
| JP NAGAR | |
| Mr Shakeel AHmed | |
| Receipt No. FY2015R-00006 | |
|
Received with thanks from: Mr. sanosh |
|
|
Residing at: no |
|
| A SUM OF RUPEES : one thousand one hundred & only. | |
|
Rs. 1,100.00
|
|
| FOR : etetetet ttr | |
|
Amount received by the mode of: CASH.
With warm Regards,
For, M.S DENTAIL CARE Signature. |
|
|
|


Peity (sounds like deity) is a simple jQuery
plugin that converts an element's content into a simple <canvas>
mini pie 2/5
line 5,3,9,6,5,9,7,3,5,2
or bar chart and is
compatible with any browser that supports <canvas>
:
Chrome, Firefox, IE9+, Opera, Safari.
Simply call peity("pie")
on a jQuery selection. You can also
pass colours
, diameter
and delimeter
options.
1/5 226/360 0.52/1.561
1/5
226/360
0.52/1.561
$("span.pie").peity("pie")
Line charts work on a comma-separated list of digits. Line charts can
take the following options: colour
, strokeColour
,
strokeWidth
, delimeter
, max
,
min
, width
and height
.
5,3,9,6,5,9,7,3,5,2 5,3,2,-1,-3,-2,2,3,5,2 0,-3,-6,-4,-5,-4,-7,-3,-5,-2
5,3,9,6,5,9,7,3,5,2
5,3,2,-1,-3,-2,2,3,5,2
0,-3,-6,-4,-5,-4,-7,-3,-5,-2
$(".line").peity("line")
Bar charts work in the same way as line charts and take the following
options: colour
, delimeter
, max
,
min
, width
and height
.
You can easily add your own custom chart by registering it with Peity with name, defaults and the draw function which receives an options object.
$.fn.peity.add("custom", {
colour: "#FFCC00"
}, function(opts) {
...
}
)
Peity adds a "change" event trigger to your graph elements, so if you
update their data your can regenerate one or more charts by triggering
change()
on them.
Nothing's happened yet.

<select>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4" selected>4</option>
<option value="5">5</option>
</select>

<select>
<option value="0">0</option>
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>

<select>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected>3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>

Nothing's happened yet.

$("select").change(function() {
$(this)
.siblings("span.graph")
.text($(this).val() + "/" + 5).change()
}).change()
var chartUpdate = function(event, value, max) {
$("#notice").text(
"Chart updated: " + value + "/" + max
)
}
$("span.graph")
.peity("pie")
.bind("chart:changed", chartUpdate)
Options can be passed a function that returns the actual value allowing you to do something like this where colours and diameter are derived from the element that Peity is working on.
1/7 2/7 3/7 4/7 5/7 6/7 7/7
1/7
2/7
3/7
4/7
5/7
6/7
7/7
$(".diameter span").peity("pie", {
colours: function() {
return ["#dddddd", this.getAttribute("data-colour")]
},
diameter: function() {
return this.getAttribute("data-diameter")
}
})
Defaults can be overridden globally like so:
$.fn.peity.defaults.pie = {
colours: ["#fff4dd", "#ff9900"],
delimeter: "/",
diameter: 16
}
$.fn.peity.defaults.line = {
colour: : "#c6d9fd",
strokeColour: "#4d89f9",
strokeWidth: 1,
delimeter: ",",
height: 16,
max: null,
min: 0,
width: 32
}
$.fn.peity.defaults.bar = {
colour: "#4d89f9",
delimeter: ",",
height: 16,
max: null,
min: 0,
width: 32
}


--- title: "If I have a goal to acheive an uncertain value, how hard should I look?" author: "Drew Tyre" date: "2021-08-23" output: word_document: default html_document: default og_image: /post/uncertain-goals_files/figure-html/featured_image-1.png draft: yes slug: uncertain-goals tags_include: - R - Monitoring - Power categories: Research ---
A colleague wrote:
I am working on a restoration monitoring protocol for [a grassland park] with one of my staff. I am struggling with determining an appropriate sample size, but more importantly, an appropriate statistical approach. What I think would be an appropriate approach is take enough samples that we can say with some level of confidence that our sample’s confidence interval includes our target. Does that sound reasonable to you?
For example, say the target for achieving restoration is <38% bare ground visible. We measure this attribute at 40 plots in a restoration field, and then we can calculate the mean, SD, SE, and 90% confidence intervals (testing for normality here and transforming if necessary). The result is mean 43% (LCI 37%, UCI 49%). Target met.
I have data from previous monitoring that I could plug into a power analysis to help with sample size, but I can’t seem to figure that out–in Program R, with the “pwr” package, I have tried the
pwr.t.test
with one-sample, but the Cohen’s D description doesn’t seem to make sense for a one-sample test.
I can think of two ways to go about doing this.
It is so common to use a null hypothesis of \(\bar{x} = 0\) with a two sided alternative that it is
easy to forget there are other possibilities! In this case I think the
appropriate null hypothesis is \(\bar{x} \geq 38\). This can be calculated with pwr.t.test()
using the options for a one sample test against the alternative of \(\bar{x} < 38\). The somewhat unusual bit is figuring out what effect size to specify.
In a “normal” power calculation, you specify Cohen’s d as the minimum difference between means. It is a minimum because larger differences will have greater power – the specified effect size will have the desired power for the specified sample size. In the current case, the effect size is the minimum value below the target that has the specified power. So if the effect size is 1, power is 0.8, then the function will tell me how big a sample is needed to reject the hypothesis \(\bar{x} \geq 38\). An effect size of 1 means that the calculated power will apply if \(\left|\bar{x}_{true}-38\right|/s_x = 1\). We get the value of \(s_x\) from pilot data.
library("tidyverse")
bareground <- read_csv(here::here("content/post/data/bareground.csv"))
(sd_bg <- sd(bareground$bareground))
## [1] 26.58041
To calculate the power of a given sample size, we need to choose two of sample size, effect size, and power. Of the three, I think it is simpler to specify sample size, because we can calculate the effort needed to measure 40 plots for example. In ecological work, the limitation is usually the budget, and we want to know how well a given budgeted effort will work. Given the sample size I want to calculate the power of rejecting the null for many different effect sizes.
library("pwr")
results <- crossing(n = c(20, 40, 60, 80, 100),
true_diff = -(1:10)) %>%
mutate(bg = true_diff + 38,
d = true_diff / sd_bg,
power = map2_dbl(n, d, ~pwr.t.test(n = .x,
d = .y,
power = NULL,
type = "one.sample",
alternative = "less")$power))
ggplot(data = results,
mapping = aes(x = bg, y = power, color = n, group = n)) +
geom_point() +
geom_line() +
xlab("True % Bare ground")
This graph gives the probability that an upper 95% one sided confidence limit will exclude the target, given a true value of average bare ground.
Now that I see this, and re-read the question, I think my correspondent is actually satisfied if the lower confidence limit includes the target. In other words, the goal is acheived if the test fails to reject a null of \(\bar{x} < 38\). This makes the question a bit tricky, because the best way to acheive the target is to take a small sample size, which will give large confidence limits! Also, if \(d = 0\) then the power is just \(\alpha = 0.05\), the value of a type I error.
results <- crossing(n = c(20, 40, 60, 80, 100),
true_diff = -10:10) %>%
mutate(bg = true_diff + 38,
d = true_diff / sd_bg,
power = map2_dbl(n, d, ~pwr.t.test(n = .x,
d = .y,
power = NULL,
type = "one.sample",
alternative = "greater")$power),
failure = 1 - power)
ggplot(data = results,
mapping = aes(x = bg, y = failure, color = n, group = n)) +
geom_point() +
geom_line() +
xlab("True % Bare ground") +
ylab("95% Confidence limit includes target")
This is very non-intuitive! By associating acheivement of the target with the failure to reject a given hypothesis, the probability of success goes down with increasing sample size, if the true amount of bare ground is bigger than the target. I’ve often blithely advised my wildlife management students to use the lower confidence limit to evaluate whether a target has been acheived or not, but this is actually a bad idea.
The point where all the lines cross is just the probability of a Type I error, \(\alpha = 0.05\) here. That happens at the point where the true amount of bare ground is equal to the target. This makes sense; a type I error is rejecting the null (confidence limits excluding the target) when it is in fact true. If the true amount of bare ground is less than the target (the desired condition), the situation flips around and increasing sample size increases the probability of success. I think that happens because a larger sample size decreases the probability that the estimated mean is above the target. The differences between sample sizes are very small in that case.
What if we say the estimated mean has to be below the target? If the true mean is equal to the target, this strategy has a 50% chance of success independent of the sample size! The probability of success rises if the true mean is less than the target, and that does depend on the sample size because the distribution of estimated means has \(s = s_{x}/ \sqrt{n}\).
results <- crossing(n = c(20, 40, 60, 80, 100),
true_diff = -10:10) %>%
mutate(bg = true_diff + 38,
p = pnorm(true_diff, sd = sd_bg/sqrt(n), lower.tail = FALSE))
ggplot(data = results,
mapping = aes(x = bg, y = p, color = n, group = n)) +
geom_point() +
geom_line() +
xlab("True % Bare ground") +
ylab("Probabilty estimate is below target")
That makes sense to me – if the truth is above the target, having an estimate below the target is an error, and more samples reduces the probability of that error. If the truth is below the target, then an estimate above the target is an error (1-probability on y axis). So I should redraw that like this:
results <- results %>%
mutate(error = if_else(true_diff < 0, 1-p, p))
ggplot(data = results,
mapping = aes(x = bg, y = error, color = n, group = n)) +
geom_point() +
geom_line() +
xlab("True % Bare ground") +
ylab("Probabilty of making an error")
Now we’re getting somewhere! More samples always reduces the probability of making an error. The probability of an error is highest when the true amount of bare ground is at the target, and at that point the error is independent of sample size. Additional sampling makes the biggest difference at intermediate deviations of truth from the target. So really, I ought to integrate over all possible values of the truth.
results <- crossing(n = seq(20,100, 5),
true_bg = 0:100) %>%
mutate(true_diff = true_bg - 38,
p = pnorm(true_diff, sd = sd_bg/sqrt(n), lower.tail = FALSE),
error = if_else(true_diff < 0, 1-p, p)) %>%
group_by(n) %>%
mutate(tpz = (lag(error,1) + error)/2) %>% # this step is wrong somehow
summarize(error = sum(tpz, na.rm = TRUE),
sump = sum(p))
ggplot(data = results,
mapping = aes(x = n, y = error)) +
geom_line() + geom_point()
So this is nearly there, but still not quite right. I’m missing a normalizing constant somewhere because these are all bigger than 1.
error_prob <- function(x, target = 38, sd = NULL, n = NULL){
pnorm(x-target, sd = sd/sqrt(n), lower.tail = FALSE)
}
test <- matrix(rnorm(20000, mean = 0, sd = sd_bg), nrow = 20, ncol = 1000) %>%
as.data.frame() %>%
summarize_all(mean) %>%
pivot_longer(cols = 1:1000)
ggplot(data = test) +
geom_histogram(mapping = aes(x = value, y = ..density..)) +
stat_function(data = data.frame(x = seq(-3,3,0.1)),
mapping = aes(x = x*sd_bg),
fun = dt, args = list(df = 20)) +
stat_function(data = data.frame(x = seq(-10,10,0.1)),
mapping = aes(x = x),
fun = dnorm, args = list(sd = sd_bg / sqrt(20)))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.


General Info
The information below reflects all profiles in
this browser process.
| Renderer Process Count: | This includes the total count of renderer processes, but not utility or plugin processes. | |
| Renderer Process Count for Limit: | The number of renderer processes considered against the limit below, possibly ignoring some of the total (e.g., to prevent extensions from using up the limit). | |
| Renderer Process Limit: | A soft limit to the number of renderer processes, after which same-site processes will be reused when possible. | |
| Over Process Limit? | Whether processes will be reused for new main-frame documents when possible. |
Site Isolation
Site Isolation mode:
unknown
Frame Trees
This page only contains information about the
current profile.
| Tab Count: | The number of WebContents objects in this profile. | |
| Frame Count: | The number of RenderFrameHosts in this profile. Note that this does not include RenderFrameHosts that are speculative or pending deletion. | |
| OOPIF Count: | The number of out-of-process iframes in this profile (as a subset of the Frame Count). | |
| Process Count: | The number of renderer processes in this profile. |
Legend: Frame[process_id:routing_id]:
SI:site_instance_id, SIG:site_instance_group_id,
is process locked to a site?, site: site_url | url:
last_committed_url


Basic react setup not using create react app.
Components
Class Components
- The traditional React component
- Write logic in a JS class
- Must include a render method
Function Components
- Historically used for simpler "dumb" components
- Write logic in a JS Function
- No render method needed, just return content
REACT SCRIPTS START HERE


keyboard_avoider
A lightweight alternative to the Scaffold
widget for avoiding the on-screen software keyboard. Automatically scrolls obscured TextField
child widgets into view on focus.
In the video above, every colored area is embedded in its own KeyboardAvoider
.
Example
import 'package:keyboard_avoider/keyboard_avoider.dart';
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return KeyboardAvoider(
child: Placeholder(),
);
}
}
Why not use a Scaffold?
The Scaffold
widget expects to be a full-screen widget. If the resizeToAvoidBottomPadding
property is set to true
(which is the default), it will adjust its bottom padding
by the full height of the on-screen keyboard when it appears. In contrast, the KeyboardAvoider
widget only insets its bottom padding
by the actual amount obscured by the keyboard. This is especially useful when working with complex layouts on tablet devices.
Auto Scroll
To auto-scroll to a focused widget such as a TextField
, set the autoScroll
property to true
. If child
is not a ScrollView
, it is automatically embedded in a SingleChildScrollView
to make it scrollable.


Frames
About
Login
Signup
Custom Template
Fill this form and one of our designers will contact you
Submit


 ---
I am a generalist Software Engineer. I started my career as a Java developer but learnt Ruby and other languages along the way. Now I am language-agnostic! I am currently working at ThoughtWorks inc. as a Consultant Developer, helping not only to solve our client's problems, but to develop the whole team in the process.
I like to see myself as someone deeply involved with the business, someone who tries to understand what is the big picture, the problem we are trying to solve and the context around it, so the team can walk in the direction of the best solution possible for that problem.
I am also really interested in challenging problems – problems that make me go that extra mile – that take me out of my comfort zone; I feel those are the experiences where I learn the most, so usually when there is a fire, I am the one not running away from it, but running in its direction.
As a problem solver, I am a very big fan of Data Science. I feel that understanding data and being able to get more information than the eyes can see with it – and also solving complex problems using a computer – are the future of Software. I worked a little bit on Machine Learning during college and I use my spare time to research more about it. I am also all about diversity.
I am myself a member of the LGBTQ community and I feel that the most diverse a team is, the most diverse and creative the solution we end up reaching is, as well.
As you can probably notice, english is not my native language. If you see something written wrong, please don't hesitate on contacting me. :)


In short, the perceptron is an algorithm. A very simple one at that.
The algorithm it performs, in machine learning lingo, is known as binary classification.
Binary classification is the task of classifying elements into two groups. Hence the word binary — meaning 2.
All the algorithm does, it take an input and produce an output. The method by which the perceptron produces an output is called the weighted sum. It takes some input X, multiplies it by some weight W, adds in a bias B and then runs that value through some step function which classifies the weighted sum as a 0 or 1 (most of the time).
If there are multiple inputs, then there is a single weight assigned to each input and all of the inputs are multiplied by their corresponding weight and then summed together and added to the bias before being passed through the step function.
Here is visual of what a simple perceptron with n inputs may look like:
This image depicts the inputs (represented as subscripts of X) each being multiplied by their corresponding weights, summed together, and passed through some step function that takes the weighted sum and produces either a 0 or a 1. Notice that there is a constant that is fed into the perceptron as well as the other inputs. This constant will always be 1 and when multiplied with the first weight, represents the bias. So, essentially, that weight is the bias — it is added to the sum of the weights without being multiplied first with an input.
A simple step function is depicted below:
This step function takes some value. If the value is greater than or equal to 0, then it outputs 1, otherwise, it outputs 0.
How is it useful at classifying things?
The perceptron is a subset of machine learning algorithms known as supervised learning. This means that when you teach a perceptron to learn to classify inputs into 2 categories, you give it the inputs and the labels that you want the perceptron to produce in the end (0 or 1 for binary classification, usually).
The perceptron initializes its weights randomly and get’s fed the inputs. It takes its final output from the step function and compares it to the label that you gave it for the specified set of inputs.
The perceptron can then see whether it was wrong at all and how wrong. It can quantify how wrong it is by producing a loss function which takes the perceptron’s output and the target label provided by you and produces a number. In essence, the loss function is saying, “this perceptron is 2.76 wrong” or “this perceptron is 8.92 wrong”, etc. Here is a common loss function for binary classification known as Squared Error:
$$Loss=(predicted-target)^2$$
So, in a simple example, if the perceptron was fed inputs and produced a 1, but the label assigned to the inputs was 0, then the loss of the perceptron would be:
$$Loss=(1-0)^2=1$$
The perceptron in this case was “1 wrong”.
It can then use this value to adjust the weights is various ways, one of which is known as Gradient Descent. In GD, you adjust the weights by subtracting the partial derivative of the loss function with respect to each weight. To actually figure out the derivatives, you would use the chain rule because the loss function is in actuality a composition of the weighted sum plus the bias, piped through the step function:
$$\frac{\partial Loss}{\partial w_i}=\frac{\partial Loss}{\partial y}\frac{\partial y}{\partial w_i}$$
If you are familiar with Calculus and derivatives, this concept shouldn’t be too difficult to understand and I am planning on writing an article on this soon. But it is beyond the scope of this high-level paper.
What is a Binary Classifier?
This means that the input entered is mapped to 2 different categories.
Another way to describe this is by saying that the information entered into a perceptron is linearly separable:
This means that the input entered can be separated by a single line.
A perceptron is just like a linear function
One thing to note about a perceptron is that it is functions kind of line a linear function. For example, here is a function in slope-intercept form:
$$y=mx+b$$
When comparing this to a perceptron you can see they are much alike. The X is the input, the m is the weight, and the b is the bias. Here is what the perceptron value before it is run through the step function would look like:
$$y=\sum_{i=0}^{n} X_{i} W_{i}+B$$
Looks pretty similar, huh?
This high level overview of a perceptron is a good prep for learning about Neural Networks which are just perceptrons stacked on top of each other and gathered into layers.
Just keep learning!


The proteins that make up photosystem II are highly diverse in both sequence and structure. Consequently, these proteins are placed in several different InterPro families, all of which are listed in the table of PSII proteins. The description below is for the PSII reaction centre protein D1 (also known as PsbA or QB).
InterPro Domain Architecture
InterPro Entry |
Method Accession |
Graphical Match |
Method Name |
|
IPR000484 |
PD000551 |
|
Photo_RC |
|
IPR000484 |
PF00124 |
|
Photo_RC |
|
IPR000484 |
PR00256
|
|
REACTNCENTRE |
|
IPR000484 |
PS00244
|
|
REACTION_CENTER |
|
IPR005867 |
TIGR01151 |
|
psbA |
From
the graphical match table above, you can see that the signatures (method
accession) are divided into two InterPro entries for spinach PSII protein
D1. These entries give information
about the family relationships of this protein. IPR000484
represents the family of photosynthetic reaction centre proteins. This is a large family that also contains
PSII protein D2 (PsbD), as well as other homologous reaction centre
proteins. Four signatures represent
this family: PD000551
from the PRODOM database (based on C-terminus that connects to Mn cluster), PF00124
from the PFAM database (based on the conserved core), PR00256
from the PRINTS database (based on the transmembrane helical motifs), and PS00244
from the PROSITE database (based on residues around two conserved histidines
that are ligands for the Mn and Fe atoms).
IPR005867
is a ‘child’ (subfamily) of IPR000484, representing more specifically the PSII
protein D1 family (the PSII protein D2 family is represented by IPR005868,
which is also a ‘child’ of IPR000484).
Only one signature represents this family, TIGR01151
from the TIGRFAM database. To find out
all the family relationships within IPR000484, you can either follow the
individual links to the different ‘children’ in the IPR000484 entry page, or
you can follow the link labelled ‘[tree]’ found directly underneath the
‘children’ tag (or follow the link provided here):
There are no separate domain entries for spinach PSII protein D1.
There are structures available for photosystem II from different organisms in the Protein Data Bank (PDB). A detailed description and visualisation of the structural features of photosystem II can be found at the PDB ‘Molecule of the Month’. The crystallographic and X-ray structures of photosystem II provide insight into the mechanism of action of this photosynthetic reaction centre.


{% extends "events/base.maps.html" %} {% import "events/map-setup.html" as map %} {% block page_title %}{{ country.name }} | {{ super() }}{% endblock %} {% block page_id %}events-map{% endblock %} {% block content %}
No events found in {{ country.name }}. Why don't you Create an Event
{% endif %}


Start Bootstrap
Menu
Signup
Login
Store Signup
Logout
Make a new card
Start your memorabilia journey here
Upload your cards to gain stats


Cases: {{country.cases | number}} | Today: {{country.todayCases | number}} | Active: {{country.active | number}}
Deaths: {{country.deaths | number}} | Today: {{country.todayDeaths | number}}
Recovered: {{country.recovered | number}} | Critical: {{country.critical | number}}
TotalTests: {{country.totalTests | number}}
Nb Cases: {{Data?.Nb_cas || 0 | number}} | Nb restored: {{Data?.Nb_retablis || 0 | number}}
Nb Deaths: {{Data?.Nb_deces || 0 | number}} | Nb quarantine: {{ Data?.Nb_quarantaine || 0 | number}}
Nb imported: {{Data?.Nb_importes || 0 | number}} | Nb local: {{ Data?.Nb_locaux || 0 | number}}


Inverse Deconvolution. More...
Functions | |
| AFAPI array | inverseDeconv (const array &in, const array &psf, const float gamma, const inverseDeconvAlgo algo) |
| C++ Interface for Tikhonov deconvolution algorithm. | |
| AFAPI af_err | af_inverse_deconv (af_array *out, const af_array in, const af_array psf, const float gamma, const af_inverse_deconv_algo algo) |
| C Interface for Tikhonov deconvolution algorithm. | |
Inverse Deconvolution.
Inverse deconvolution is an linear algorithm i.e. they are non-iterative in nature and usually faster than iterative deconvolution algorithms.
Depending on the values passed on to the enum af_inverse_deconv_algo, different equations are used to compute the final result.
The update equation for this algorithm is as follows:
\[ \hat{I}_{\omega} = \frac{ I_{\omega} * P^{*}_{\omega} } { |P_{\omega}|^2 + \gamma } \]
where
Inverse deconvolution function excepts af::array of the following types only:
| AFAPI af_err af_inverse_deconv | ( | af_array * | out, |
| const af_array | in, | ||
| const af_array | psf, | ||
| const float | gamma, | ||
| const af_inverse_deconv_algo | algo | ||
| ) |
C Interface for Tikhonov deconvolution algorithm.
| [out] | out | is the sharp estimate generated from the blurred input |
| [in] | in | is the blurred input image |
| [in] | psf | is the kernel(point spread function) known to have caused the blur in the system |
| [in] | gamma | takes different meaning depending on the algorithm chosen. If algo is AF_INVERSE_DECONV_TIKHONOV, then gamma is a user defined regularization constant. |
| [in] | algo | takes value of type enum af_inverse_deconv_algo indicating the inverse deconvolution algorithm to be used |
| AFAPI array inverseDeconv | ( | const array & | in, |
| const array & | psf, | ||
| const float | gamma, | ||
| const inverseDeconvAlgo | algo | ||
| ) |
C++ Interface for Tikhonov deconvolution algorithm.
| [in] | in | is the blurred input image |
| [in] | psf | is the kernel(point spread function) known to have caused the blur in the system |
| [in] | gamma | is a user defined regularization constant |
| [in] | algo | takes different meaning depending on the algorithm chosen. If algo is AF_INVERSE_DECONV_TIKHONOV, then gamma is a user defined regularization constant. |


Basic functions and operations using F2PY, NumPy and Python.
import numpy as np
F2PY is a native Fortran to Python interface generator from NumPy. Thus, the Installation command for anaconda and pip:
$ conda install numpy
or
$ pip install numpy
A Fortran source file can have the name of the module.
For example, given the source file
examples_f2py.f90
with a simple function which
returns a string in bytes.
function hello_f2py() result(output)
character(len=12) :: output
output = "Hello, F2PY!"
end function hello_f2py
The following step is the compilation, which is done by running the command:
$ f2py -m examples_f2py -c examples_f2py.f90
from examples_f2py import hello_f2py
print(hello_f2py())
The following example, we will try to approximate the value $\large\pi$ with the idea of $\\tan^{-1}1=\frac{\pi}{4}$ using the power series of arctan, defined by:
$$\large 4 \sum_{n=0}^{N}\frac{(-1)^n}{2n+1} \approx \pi $$where $N$ tends to the infinity.
def pi_py(N):
pi = 0
for n in range(N):
pi += (-1)**n/(2*n + 1)
return 4*pi
print(pi_py(1000000))
In the same Fortran source file
examples_f2py.f90
, lets include the function and
adapt it to be compiled.
function pi_f2py(N_) result(pi)
integer :: N_, n
real :: pi
pi = 0
do n=0,N_
pi = pi + (-1)**n/real(2*n + 1)
end do
pi = 4*pi
end function pi_f2py
p.s.: compile it again by running the command:
$ f2py -m examples_f2py -c examples_f2py.f90
from examples_f2py import pi_f2py
# Time measurement over the situations
print('[Python] pi_py |', end=' ')
%timeit -n 5 -r 5 pi_py(1000000)
print('[F2PY] pi_f2py |', end=' ')
%timeit -n 5 -r 5 pi_f2py(1000000)
fsource = '''
recursive function factorial(x) result(output)
integer :: x, output
if (x <= 1) then
output = 1
else
output = x*factorial(x - 1)
end if
end function factorial
'''
import numpy.f2py
numpy.f2py.compile(
fsource, modulename='example_f2py', extension='.f90', verbose=0
)
from example_f2py import factorial
print(factorial(10))


CodeCatatlyst promise-as3 Library
The tutorial I wish I'd had
CodeCatalyst’s promise-as3 Help I Wish I’d Had
For a project at work recently, we found the need to adapt a promise-driven Javascript file into AS3. After a little bit of research we settled on CodeCatalyst’s promise-as3 library. I say little bit of research because there’s really not very many libraries to look into. And the ones that do exist have little to no documentation. Because of that, I decided to put together things I’ve found useful for my own and others’ benefit.
Starting with promise-as3
One thing to note about promise-as3’s implementation of promises, is that you need to instantiate a Deferred object from which you will pull a Promise object. You can not create a promise directly.
var deferred : Deferred = new Deferred();
var promise : Promise = deferred.promise;
This is different from JS’s built-in promises, which bypass deferreds entirely. The reason for this separation of power is so that you are able to return the promise object and allow the promise to be passed around while maintaining control of when and how the Deferred
is resolved/rejected. Whatever function receives the promise can add then
and otherwise
callbacks/errbacks and you maintain control of deferred. Which leads me to the next topic.
Adding fulfill and reject functions (callback and errback)
In the new JS implementation of promises, the promise constructor takes a function as a parameter. That function itself takes fulfill
and reject
functions as arguments. It would look something like this:
function doSomethingAsync(url) {
var promise = new Promise( function (fulfill, reject) {
setTimeout(function () {
reject( new Error('Timeout' ));
}, 10000);
}
}
Here, doSomethingAsync
creates a new promise. On construction, the promise is passed the fulfill and reject functions (defined elsewhere).
This is not how it is done with the promise-as3 library. Instead, you instantiate a Deferred
, passing no arguments. You extract the promise associated with the deferred. That promise can then be returned and made available to outside functions/classes (the consumer).
public function doSomethingAsync(url) : Promise {
var deferred : Deferred = new Deferred();
var promise : Promise = deferred.promise;
setTimeout(function () {
deferred.reject("Of course it timed out");
}, 10000);
return promise;
}
At that point, it is up to the consumer to add callbacks and errbacks.
var myPromise = doSomethingAsync("www.url.com");
myPromise.then(callback, errback); // traces "Of course it timed out"
public function callback() : void {
trace("That promise must have worked!")
}
public function errback(reason) : void {
trace(reason)
}
In this example, the errback will always be called because doSomethingAsync
just waits 10 seconds and then calls deferred.reject()
.
I found the CodeCatalyst promise-as3 documentation a little light, especially with regards to extracting the promise from the deferred, yet still calling resolve/reject on the deferred object. The magic that passes this on to the associated promise is the Resolver
built into the promise-as3 library. As the GitHub page notes…
Each Deferred has an associated Resolver, and each Resolver has an associated Promise. A Deferred delegates resolve() and reject() calls to its Resolver’s resolve() and reject() methods. A Promise delegates then() calls to its Resolver’s then() method. In this way, access to Resolver operations are divided between producer (Deferred) and consumer (Promise) roles.


?Hi
III
0
1
234
5
678
9
10
^
1
v
The
New
York
?
???
cm
copyright
reserved
botanical
Garden
4
Ludvigia
sect.
Oligospermum
Determined
by
T.P.
Ramamoorthy
Missouri
Botanical
Garden
Ludwigia
peploides
(HBK.)
Raven
subsp.
peploides
Determined
by
Elsa
Zardini
1986
Missouri
Botanical
Garden
PLANTS
OF
JAMAICA
NEEWYORKBOTANICAL
GARDEN
01447619
REVISION
OF
JUSSIAEA
Orange
River
valley,
near
Montego
Bay
WILLIAM
R.
MAXON
\ã
ã
.
ELLSWORTH
P.
KILLIPj
ors
March
29
and
30,1920
Philip
A.
Munz
01447619
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Please enter a valid name.
Please enter a valid User Email.
Please enter a valid 10 Digit Mobile Number.
Please enter a valid shippingAddress.


The revolutionary Cybex 610A Total Body Arc Trainer offers an intense workout that blows away everyone who tries it. Club members and owners have given it rave reviews. In fact, the Arc Trainer has once again earned the prestigious Nova7 Best Product Award – that is two years in a row! The Arc Trainer packs a punch by combining elements of a climber, cross-trainer and cross- country skier. Like all Cybex fitness equipment, it’s designed to give the least amount of stress on joints while maintaining the highest level of performance. Add it all up and the Arc Trainer offers an effective workout that’s sure to cause an explosion in your facility.


PWD Pinus vulnerable regions species climate areas distribution pine change future Fig risk habitat forests wilt current RCP Europe spread disease forest PWN area North {border-style Asia data conditions px;} #ffffff;} Bursaphelenchus index categorized Research mean suitability natural susceptible Climate Forest Japan global used using Asia, Europe, Regions evaluated temperature temperatures trees Writing densiflora wood aimed damage northern European Pine change. degradation editing increase large model monthly occurrence potential review sylvestris xylophilus America East Plant Sciences areas. parts px; species. study total {font-family Data Ecology PWD. RCPs Table University affected despite effects font-size forests, growth important million models results thunbergii America, Distribution Environmental Forestry Japan, Japan. Methodology South Zhao according brown changes curation currently disease. double; epidemic however, koraiensis land mainland mortality native nematode, points present ratio regions, result risks set species, tree unsuitable vulnerability (., Changes China Conceptualization Development EPPO Ecol Futai GCMs However, Japanese Japanese. Korea Korea, Nakamura PWD-affected Tokyo: [], analysis approximately border-color border-width conditions. distributed distributions ecosystem expansion forestry grid habitats high identified increasing infected likely measures nematode old-growth outbreaks overlapped pinaster pinewood pp. precipitation previous products provinces scenarios scenarios. solid; southern spatial studies study, thought {font-style {font-weight (MB (TIF) (dark Agriculture, Areas Biology Click Institute, LINK Life Mamiya Maxent Pathol. Portugal Robinet Spain Takeuchi Thus, adaptation additional annual associated background bold calculated carbon changed climatic conditions, control countries courier; dataset determine determined difference drought ecological editors. em; environmental establishment evaluate evaluation file. forests. functions gas greenhouse high-risk impact increased indices introduced low map masked maximum meteorological new occurred pathways plantation projected pt;} range represents resistance resolution sum susceptibility threat threshold time valuable variables yellow


Menu
Having easy-to-use navigation is important for any web site
A form is made of elements, and the form header, let's talk about the form header first.
- actionthe file that will be loaded
- method: POST, more secure, no size limit and GET sizie limit of around 3000 characters and non-secure but can be bookmarked
- enctype="multipart/form-data": this is necessary if we're using input:file and method="POST"
- target: where will the action load on? This allows us to choose
from some options:
- _blank: the response is displayed in a new window or tab
- _self: the response is displayed in the same frame (this is default)
- _parent: the response is displayed in the parent frame
- _top: the response is displayed in the full body of the window
Elements
- input: specifies an input field where the user can enter data
- textarea: defines a multi-line text input control
- button: defines a clickable button, inside a button element you can put content, like text or images
- select: used to create a drop-down list
- option: defines an option in a select list
- optgroup: used to group related options in a drop-down list
- fieldset: used to group related elements in a form, such as inputs
- label: defines a label for a form element
- output: represents the result of a calculation (like one performed by a script)
Related pseudo-classes
Here's a list of some commonly used classes in form elements:
- :focus: when the input is focused
- :placeholder-shown: when the placeholder is shown
- :not(:placeholder-shown): when the placeholder is not shown because is focus or has text
- :active: on-click
- :checked: selects every checked input element
- :disabled: selects every disabled input element
- :enabled: selects every enabled input element
- :in-rangerange : selects input elements with a value within a specified range
- :invalid: selects all input elements with an invalid value
- :optional: selects input elements with no "required" attribute
- :out-of-range: selects input elements with a value outside a specified range
- :read-only: selects input elements with a "readonly" attribute specified
- :read-write: selects input elements with no "readonly" attribute
- :required: selects input elements with a "required" attribute specified
- :valid: selects all input elements with a valid value
Types of Input
You can style inputs of a certain type using CSS selectors to do something like input[type="submit"] so here's a list of every input in the HTML DOM reference:
- Input Button
- Input Checkbox
- Input Color
- Input Date
- Input Datetime
- Input DatetimeLocal
- Input Email
- Input FileUpload
- Input Hidden
- Input Image
- Input Month
- Input Number
- Input Password
- Input Range
- Input Radio
- Input Reset
- Input Search
- Input Submit
- Input Text
- Input Time
- Input URL
- Input Week


Win Percentage: {{player.winPercentage}}%
Games Played: {{player.gamesPlayed}}
MVP Count: {{player.mvpCount}}
LVP Count: {{player.lvpCount}}


{% if errormsg == 'own_submission_missing' %}
You cannot make peer-reviews before making your own original submission to the
exercise this peer-review is about. Complete that exercise first.
{% if lti %}
(Please note: there might be a one minute delay after you finish the exercise.
If you already finished it, wait a moment and refresh this page.)
{% endif %}
{% elif errormsg == 'reviews_done' %}
You have already submitted your peer-reviews to this exercise.
{% endif %}


The timer
, match
and regex
commands
may specify (by omission) the default set. This set is
exactly like any other set, except that it is automatically
cancelled after the occurrence of any event. It may be
explicitly named by using the empty string, (ie, ""
).
The timer
, match
and regex
commands
may also specify (by omission) the default target. This
target, whose name is also the empty string, has the special
propery that it always refers to ``the statement immediately
following the next wait statement.'' That is, if the target of
any event is the default target, the occurrence of that event
just causes execution to continue starting with the statement
following the wait statement.
Finally, when all
is used with the ``cancel''
command, all sets (i.e., all pending events) are cancelled.


Statistical Methods for Unraveling Large-scale Brain Dynamics
Xi (Rossi) LUO
Brown University Department of Biostatistics
Center for Statistical Sciences
Computation in Brain and Mind
Brown Institute for Brain Science
Brown Data Science Initiative
ABCD Research Group
UTHealth Biostatistics and Data Science, Houston, TX June 7, 2018
We allow $|C_{11} | \lt | C_{12} |$ or $C \prec 0$
Kmeans/HC leads to block-diagonal cor matrices (permutation)
Clustering based on $G$-Block patterns shown above
Generalizing $G$-Latent which requires $C\succ 0$
Minimum $G$ Partition
Theorem: $G^{\beta}(X)$ is the minimal partition induced by $a\stackrel{G^{\beta}}{\sim} b$
iff $\var(X_{a})=\var(X_{b})$ and $\cov(X_{a},X_{c})=\cov(X_{b},X_{c})$ for all $c\neq a,b$. Moreover, if the matrix of covariances $C$ corresponding to the partition $G(X)$ is positive-semidefinite, then this is the unique minimal partition according to which ${X}$ admits a latent decomposition.
The minimal partition is unique under regularity conditions.
Gaussian copula: Kendall's tau transformed, $R_{ab} = \sin (\frac{\pi}{2}\tau_{ab})$
Second, maximum difference of correlation distances $$\d(a,b) := \max_{c\neq a,b}|R_{ac}-R_{bc}|$$
Third, group variables $a$, $b$ together if $\d(a,b) = 0$
The enemy of my enemy is my friend!
Image credit: http://sutherland-careers.com/
Algorithm: Main Idea
Greedy: one cluster at a time, avoiding NP-hard
Cluster variables together if CORD metric $$ \max_{c\neq a,b}|\hat{R}_{ac}-\hat{R}_{bc}| \lt \alpha$$ where $\alpha$ is a tuning parameter
$\alpha$ is chosen by theory or CV
Theory: Condition
Let $\eta \geq 0$ be given. Let ${ X}$ be a zero mean random vector with a Gaussian copula distribution with parameter $R$. $$ \begin{multline} \mathcal{R}(\eta) := \{R: \ \d(a,b) := \max_{c\neq a,b}|R_{ac}-R_{bc}|>\eta\quad \\ \textrm{for all}\ a\stackrel{G(X)}{\nsim}b.\} \end{multline} $$ Group separation condition: $R \in \mathcal{R}(\eta)$.
The signal strength $\eta$ need to be large.
Theory: Consistency
Theorem: Define $\tau=|\widehat R-R|_{\infty}$ and we consider two parameters $(\alpha,\eta)$ fulfilling $$\begin{equation} \alpha\geq 2\tau\quad\textrm{and}\quad \eta\geq2\tau+\alpha. \end{equation}$$ Then, applying our algorithm we have $\widehat G=G(X)$ whp.
Ours recovers exact clustering with high probability.
Theory: Minimax
Theorem: $P_{\Sigma}$ the likelihood based on $n$ independent observations of ${ X} \stackrel{d}{=} \mathcal{N}(0,\Sigma)$. For any \begin{equation}\label{etamin} 0\leq \eta \lt \eta^{*}:={\sqrt{\log(p(p-1)/2)}\over \sqrt{(2+e^{-1})n} +\sqrt{\log(p(p-1)/2)}}\,, \end{equation} we have $$\inf_{\widehat G}\sup_{R \in \mathcal{R}(\eta)} P_{\Sigma}(\widehat G\neq G^{\beta}(X))\geq {1\over 2e+1}\geq {1\over 7} \,,$$ where the infimum is taken over all possible estimators.
Our method is minimax optimal.
Simulation: Exact Recovery
Different models for $C$="$\cov(Z)$" and $\alpha = 2 n^{-1/2} \log^{1/2} p$
Vertical lines: theoretical sample size based on our lower bound
HC and Kmeans fail even if inputting the true $K$.
fMRI Data: Test Prediction/Reproducibilty
Find partitions using the first session data
Average each block cor to improve estimation
Compare with the cor matrix from the second scan $$ \| Avg_{\hat{G}}(\hat{\Sigma}_1) - \hat{\Sigma}_2 \|$$
where we used $\hat{G}$ to do block-averaging.
Difference is
smaller if clustering $\hat{G}$ is
better
Vertical lines: fixed (solid) and data-driven (dashed) thresholds
Math Problem: Infer Causality from Observational Data Only
Many unmodeled factors: vascular, respiratory, mind wandering, ...
Stop/Go Task fMRI
Task fMRI: performs tasks under brain scanning
Randomized stop/go task:
press button if "go";
withhold pressing if "stop"
Not resting-state: "rest" in scanner
Goal: causal mechanisms from stimuli to motor cortex
Raw Data: Motor Region
Time (seconds)
Black: fMRI BOLD activity
Blue: stop onset times;
Red: go onset times
Network Model with Stimulus
Goal: quantify effects
stimuli →
preSMA → PMC regions Duann, Ide, Luo, Li (2009). J of Neurosci
Model: Mediation Analysis and SEM
$$\begin{align*}M &= Z a + \overbrace{U + \epsilon_1}^{E_1}\\ R &= Z c + M b + \underbrace{U g + \epsilon_2}_{E_2}, \quad \epsilon_1 \bot \epsilon_2\end{align*}$$
Mediation analysis (usually assuming $U=0$)Baron&Kenny, 86; Sobel, 82; Holland 88; Preacher&Hayes 08; Imai et al, 10; VanderWeele, 15;...
Parametric Wager et al, 09 and functional Lindquist, 12 mediation, under (approx.) independent errors
Stimulus $\rightarrow$ brain $\rightarrow$ user reported ratings, one brain mediator
Assuming $U=0$ between ratings and brain
Multiple mediator and multiple pathways
Dimension reduction by arXiv1511.09354Chen, Crainiceanu, Ogburn, Caffo, Wager, Lindquist, 15
Pathway Lasso penalization Zhao, Luo, 16
This talk: causal estimation under $U\ne 0$ (its effect size $\delta \ne 0$) when modeling two brain regions
New Pathway Measure =Activation+Connectivity
Activation: stimulus $\rightarrow$ brain region activity
Connectivity: one brain region $\rightarrow$ another region
Whether not two or more brain regions "correlate"
Pathway: stimulus $\rightarrow$ brain region A $\rightarrow$ region B
Strong path: strong activation
and strong conn
Zero path: zero activation
or zero conn, including
Zero activation + strong conn = zero
Strong activation + zero conn = zero
Scientific motivations for $\delta \ne 0$ or unmeasured confounding
Existing Approaches for $\delta \ne 0$
Assuming $\delta=0$
Assumption "too strong" for most cases Imai et al, 10
Sensitivity plot: "guessing" $\delta$
Simplify models: e.g. $c=0$ via instrumental variable
Adjust (e.g. motion) if possible Sobel, Lindquist, 14
Use Bayesian prior or regularization
We will introduce a data-driven framework to estimate $\delta$
Method: Multilevel Likelihood
Recall 3-level data: subjects, sessions, trials
Correlated mediation model for trials, mixed model for mediation effects among higher levels
We will optimize the multilevel likelihood $$ \underbrace{\sum_{\mbox{Sub }i} \sum_{\mbox{Sess }k}\ell(\mbox{brain activities in trials} | A_{ik}, B_{ik}, C_{ik}, \Theta_{ik})}_{\mbox{first level likelihood}} \\ + \underbrace{\sum_i \ell(A_{i1},\dotsc,A_{iK}, B_{i1},\dotsc | A, B, C, \Theta)}_{\mbox{second and third level likelihood}}$$
Challenges
Unmeasured confounding and causal inference
Usually impossible in many other statistical models
Prove our model is identifiable or our multilevel likelihood has a unique maximum
Usually the likelihood is mutlimodal in many other cases
Prove our MLE is unbiased and consistent under minimal assumptions
Causal Interpretation
We prove causal using potential outcomes Neyman, 23; Rubin, 74
Causal inference intuition $$Z \rightarrow \begin{pmatrix} M \\ R \end{pmatrix}$$
We do
not need this assumption when we can estimate $\delta$
Some Details about Our Model
Level-1 model for each sub and each sess
$$\begin{pmatrix}{M}_{ik} & {R}_{ik}\end{pmatrix}=\begin{pmatrix}{Z}_{ik} & {M}_{ik}\end{pmatrix}\begin{pmatrix}{a}_{ik} & {b}_{ik}\\ 0 & {c}_{ik} \end{pmatrix}+\begin{pmatrix}{E}_{1_{ik}} & {E}_{2_{ik}}\end{pmatrix}$$
Limited variability in $\delta$ across sub/sess
Random effect model cf AFNI, FSL, SPM, and etc $$\begin{pmatrix}{A}_{ik}\\ {B}_{ik}\\ {C}_{ik} \end{pmatrix}=\begin{pmatrix}{A}\\ {B}\\ {C} \end{pmatrix}+\begin{pmatrix}\alpha_{i}\\ \beta_{i}\\ \gamma_{i} \end{pmatrix}+\begin{pmatrix}\epsilon_{ik}^{{A}}\\ \epsilon_{ik}^{{B}}\\ \epsilon_{ik}^{{C}} \end{pmatrix}=b+u_{i}+\eta_{ik}$$
Algorithm 1: Two-stage Fitting
Stage 1: fit $(\hat{A}_{ik}(\delta), \hat{B}_{ik}(\delta), \hat{C}_{ik}(\delta))$ for each $i$ and $k$ for varying $\delta$ using our step 1 single-level model
Stage 2: Find $\hat{\delta}$ that $(\hat{A}_{ik}(\hat{\delta}), \hat{B}_{ik}(\hat{\delta}), \hat{C}_{ik}(\hat{\delta}))$ yields maximum likelihood for random effects model
Small-scale computing
Theory for SEM and Confounding
Theorem: Under certain regularity conditions, asymptotically, the joint
multilevel likelihood has a unique maximum and the maximizer is consistent for $\delta$.
Contributions: data-driven estimation of confounding and consistency proof for SEM
Alternative Likelihood under Our Framework
Optimize all parameters in joint likelihood $$\begin{align*} &\sum_{i=1}^{N}\sum_{k=1}^{K}\log\Pr\left(R_{ik},M_{ik}|Z_{ik},\delta,b_{ik},\sigma_{1_{ik}},\sigma_{2_{ik}}\right)\quad \mbox{Data}\\ & + \sum_{i=1}^{N}\sum_{k=1}^{K}\log\Pr\left(b_{ik}|u_{i},b,\boldsymbol{\Lambda}\right)\quad \mbox{Subject variation}\\ & +\sum_{i=1}^{N}\log\Pr\left(u_{i}|\boldsymbol{{\Psi}}\right) \quad \mbox{Prior}\end{align*}$$
Large computation: $5NK + 3N + 11 > 2000$ paras
Algorithm 2
Theorem: The joint likelihood is conditional convex for groups of parameters.
Algorithm: block coordinate descent with projections.
Leverage conditional convexity to reduce computation
details in our paper
Simulations
Low bias for $\delta$
Low bias for effects
Our large-scale multilevel model
(CMA) performs best;
Bias can be large (100%) without estimating $\delta$
Real Data: Identifiability and Bias
Unique $\delta$ for ML
Estimates doubled
Discussion
Leverage complex data for causal fMRI modeling
Approach:
large-scale causal SEM
big multilevel data
machine learning/optimization
Theory: identifiability, convergence, and computation
Result: reduced bias and causal interpretation
Extensions: functional, time series, multiple paths
CRAN pkgs:
macc, gma, cfma, references within
Causal Dynamic Network Modeling
ODE Modeling for fMRI
Hidden neuronal states: multivariate $Z_t$ across time $t$, following a network ODE model


Jacques Francois revives the c. 1760 Enschedé no. 811 type specimen by Jacques François Rosart (1714-1774), made for Enschedé Printing House. The concept was to create a contemporary webfont with an even typographic color while preserving the essential historic peculiarities and expanding the character set. Compared to the historic specimen the x-height is generously increased and contrast lowered.
Jacques Francois is designed for medium to small sizes. For this purpose its features were altered: contrast was lowered and x-height significantly increased. Designed by Manvel Shmavonyan, Alexei Vanyashin. Jacques Francois includes old style figures.
There is also Jacques Francois Shadow, an incised variant of the Jacques Francois font.
To contribute to the project contact Alexei Vanyashin.


Tcl_GetHostName - get the name of the local host
#include <tcl.h>
const char *
Tcl_GetHostName()
Tcl_GetHostName is a utility procedure used by some of the
Tcl commands. It returns a pointer to a string containing the name
for the current machine, or an empty string if the name cannot be
determined. The string is statically allocated, and the caller must
not modify of free it.
hostname
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 1998-2000 by Scriptics Corporation.