There are a lot of binary file viewers in the world. A lot. So why one more? First of all, because I want to be able to view more than a hex dump. I want to be able to describe the rules of the file format and I want the application to show me semantic meaning in the output. Surely this exists as well? You betcha, in spades. But it is more fun to write the code when you have some time to kill at a conference. :)
Of course, this can all be done trivially until the rules get a little more complex. What if the fifth section of the file is only present if the third section had a particular value? What if the length of the sixth section was the value from the fourth section? What if our rules are so complex they require code to describe the relationships among the sections? Enter binpv.
Yeah, yeah, yeah, so the name ‘binpv’ is terrible. I know, but let’s take a look at binary file specification example:
1 2 3 4 5 6 7 8 |
|
That’s reasonably declarative! Let’s break it into pieces.
1
|
|
We have a binary protocol that reads a byte at a time. OK, so far so good.
1
|
|
Hmm, it looks like the file starts off with the key token id, which is a fixed length field. The field must be two bytes, because we know we’re reading bytes.
1
|
|
OK, it looks like our next section is the private key. It is a one byte enumerated value. That means we have a fixed set of possible values, but what could they be? Well, here we encounter the first place we have to provide some code.
We’re going to have to define a function that will take the value (a stream of 1 byte in this case) and return our value. A Clojure prototype has been defined just for this purpose. It looks like:
1 2 |
|
So we just have to extend the prototype.
1 2 3 4 5 6 7 8 9 10 11 |
|
There is a fair bit of boilerplate there for converting the stream of bytes to a character to find out if it is a ‘v’ or a ‘p’. This can undoubtedly be simplified, but like I said before, this is what you get from rushed conference driven development.
I won’t bore you going through the rest of the sections in detail, but suffice it to say that there are only a few places you have to plug in code.
- PrivateKeyPresent - extends DependentFun prototype
- PublicKeyLength - extends DependentLength prototype
- [\F \G] - the sequence that ends the section
- AllDone - extends AnEnumeration prototype
So once you have declared your binary specification and written a the logic that is custom to your format, all that there is left to do is to is parse the file and view it. Let’s parse it first.
1
|
|
Wait, you keep the parsed file in memory??? So this won’t work with large files!? Correct! Maybe I should have called this ‘can fit into memory binary file parser’ or something like that. Did I mention something about conference driven development yet? So why did I choose to do this? Laziness? Perhaps, but we also have rules that depend on the values of previous sections. If I went with a streaming model then that information would have been lost. Unless there was a filter that was smart enough to know which values really mattered and had to be kept and discarded the rest. Maybe someday I’ll add a compiler with these smarts, but for now the file has to fit into memory.
So last but not least, we have to display our parsed file.
1
|
|
What is going on there? Whoa nelly. Actually, each section can be viewed with its own visualizer. In my sample file specification I had seven sections, so I need 7 visualizers. Here is what the output of running our program looks like.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
And there you have it. The whole enchilada.
- It is pretty? No.
- Is it robust? No.
- Can the code be improved? Yes.
- Is it a solid starting point? Yes.

Thanks to Dave Sletten for the hex dump utility.


module Trello
Ruby wrapper around the Trello API
First, set up your key information. You can get this information by clicking here.
You can get the key by going to this url in your browser: trello.com/1/authorize?key=TRELLO_CONSUMER_KEY_FROM_ABOVE&name=MyApp&response_type=token&scope=read,write,account&expiration=never Only request the permissions you need; i.e., scope=read if you only need read, or scope=write if you only need write. Comma separate scopes you need. If you want your token to expire after 30 days, drop the &expiration=never. Then run the following code, where KEY denotes the key returned from the url above:
Trello.configure
do |config|
config.consumer_key = TRELLO_CONSUMER_KEY config.consumer_secret = TRELLO_CONSUMER_SECRET config.oauth_token = TRELLO_OAUTH_TOKEN config.oauth_token_secret = TRELLO_OAUTH_TOKEN_SECRET
end
All the calls this library make to Trello
require authentication using these keys. Be sure to protect them.
So lets say you want to get information about the user bobtester. We can do something like this:
bob = Member.find("bobtester") # Print out his name puts bob.full_name # "Bob Tester" # Print his bio puts bob.bio # A wonderfully delightful test user # How about a list of his boards? bob.boards
And so much more. Consult the rest of the documentation for more information.
Feel free to peruse and participate in our Trello board. It's completely open to the public.
Constants
- API_VERSION
Version of the
Trello
API that we use by default.- ConfigurationError
This error is thrown when your client has not been configured
- InvalidAccessToken
This specific error is thrown when your access token is invalid. You should get a new one.
- Request
- Response
Public Class Methods
# File lib/trello.rb, line 121 def self.auth_policy; client.auth_policy; end
# File lib/trello.rb, line 108 def self.client @client ||= Client.new end
# File lib/trello.rb, line 122 def self.configuration; client.configuration; end
# File lib/trello.rb, line 112 def self.configure(&block) reset! client.configure(&block) end
# File lib/trello.rb, line 100 def self.logger @logger ||= Logger.new(STDOUT) end
# File lib/trello.rb, line 104 def self.logger=(logger) @logger = logger end
# File spec/json_utils_spec.rb, line 36 def initialize(options = {}) @name = options['name'] @description = options['description'] end
Visit the Trello
API public key page
@see trello.com/app-key
# File lib/trello.rb, line 157 def self.open_public_key_url open_url public_key_url end
@private
# File lib/trello.rb, line 169 def self.open_url(url) require 'launchy' Launchy.open(url.to_s) rescue LoadError warn 'Please install the launchy gem to open the url automatically.' url end
Url to Trello
API public key page
# File lib/trello.rb, line 125 def self.public_key_url 'https://trello.com/app-key' end
# File lib/trello.rb, line 117 def self.reset! @client = nil end
Public Instance Methods
# File spec/json_utils_spec.rb, line 30 def example_class @example_class ||= Class.new do include Trello::JsonUtils attr_accessor :name, :description def initialize(options = {}) @name = options['name'] @description = options['description'] end end end
# File spec/integration/basic_data/many_spec.rb, line 24 def mock_client_and_association(klass:, resource:, id:, path:, params:) resources = double('resources') allow(FakeBoard).to receive(:client).and_return(client_double) allow_any_instance_of(FakeBoard).to receive(:client).and_return(client_double) allow(client_double).to receive(:find_many).with(klass, "/#{resource}/#{id}/#{path}", params).and_return(resources) allow(MultiAssociation).to receive(:new).with(FakeBoard, resources).and_return(double('association', proxy: cards)) end


Video: Heung-Min Son’s lovely gesture to young Tottenham fan after West Ham win
by Jaikuran RandhawaTottenham Hotspur superstar Heung-Min Son showed his class after Spurs’ 3-2 win in Jose Mourinho’s debut against London rivals West Ham today.
The 27-year-old forward went over to fans and decided to hand a young supporter his match shirt. The star scored the first goal of Mourinho’s reign in the 36th minute of the clash.
It is gestures like this from the attacker that make him loved by football fans across the whole world.
The South Korean’s wonderful gesture was captured by BT Sport a the 1.25 mark of this video:
Son is a class act.


Method: Peptide binding sites
Species/Target: Mouse
Detection limit for recombinant GST tagged ATF2 is approximately 3ng/ml as a capture antibody.
Submitter: Graham Chissolm
Approver: Walter Sobchak


{{NHLTeamSeason
|Season=1944–45
|year=1944
|Team=Detroit Red Wings
|Record=31–14–5
|Division=NHL
|DivisionRank=2nd
|Coach=[[Jack Adams]]
|GoalsFor=218
|GoalsAgainst=161
}}
{{NHLSeasonTOC|year=1944}}
==Offseason==
==Regular season==
===Final standings===
{{1944–45 NHL standings|team=DET}}
===Game log===
{| border="1" cellpadding="2" cellspacing="0" class="wikitable" width="70%"
|-
! width="2%" | No.
! width="3%" | R
! width="10%" | Date
! width="5%" | Score
! width="20%" | Opponent
! width="10%" | Record
|- align="center" bgcolor="#CCFFCC"
|1||W||October 29, 1944||7–1 || align="left"| [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||1–0–0
|- align="center" bgcolor="#CCFFCC"
|2||W||November 2, 1944||10–3 || align="left"| [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||2–0–0
|- align="center" bgcolor="#FFBBBB"
|3||L||November 4, 1944||2–3 || align="left"| @ [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||2–1–0
|- align="center" bgcolor="#FFBBBB"
|4||L||November 5, 1944||2–3 || align="left"| [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||2–2–0
|- align="center" bgcolor="#FFBBBB"
|5||L||November 11, 1944||2–5 || align="left"| @ [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||2–3–0
|- align="center" bgcolor="#CCFFCC"
|6||W||November 12, 1944||4–2 || align="left"| [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||3–3–0
|- align="center" bgcolor="#CCFFCC"
|7||W||November 15, 1944||8–4 || align="left"| @ [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||4–3–0
|- align="center"
|8||T||November 18, 1944||2–2 || align="left"| @ [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||4–3–1
|- align="center" bgcolor="#CCFFCC"
|9||W||November 19, 1944||4–3 || align="left"| [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||5–3–1
|- align="center"
|10||T||November 23, 1944||3–3 || align="left"| [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||5–3–2
|- align="center" bgcolor="#CCFFCC"
|11||W||November 25, 1944||7–4 || align="left"| [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||6–3–2
|- align="center" bgcolor="#FFBBBB"
|12||L||November 26, 1944||5–6 || align="left"| @ [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||6–4–2
|- align="center" bgcolor="#CCFFCC"
|13||W||November 29, 1944||6–3 || align="left"| @ [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||7–4–2
|- align="center" bgcolor="#CCFFCC"
|14||W||December 7, 1944||3–2 || align="left"| @ [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||8–4–2
|- align="center" bgcolor="#CCFFCC"
|15||W||December 10, 1944||7–6 || align="left"| [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||9–4–2
|- align="center"
|16||T||December 16, 1944||1–1 || align="left"| @ [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||9–4–3
|- align="center" bgcolor="#FFBBBB"
|17||L||December 17, 1944||1–2 || align="left"| @ [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||9–5–3
|- align="center" bgcolor="#CCFFCC"
|18||W||December 19, 1944||6–3 || align="left"| @ [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||10–5–3
|- align="center" bgcolor="#CCFFCC"
|19||W||December 21, 1944||11–3 || align="left"| [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||11–5–3
|- align="center" bgcolor="#CCFFCC"
|20||W||December 23, 1944||5–4 || align="left"| @ [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||12–5–3
|- align="center" bgcolor="#CCFFCC"
|21||W||December 25, 1944||6–4 || align="left"| [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||13–5–3
|- align="center" bgcolor="#FFBBBB"
|22||L||December 28, 1944||1–9 || align="left"| @ [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||13–6–3
|- align="center" bgcolor="#CCFFCC"
|23||W||December 31, 1944||6–2 || align="left"| [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||14–6–3
|- align="center" bgcolor="#CCFFCC"
|24||W||January 1, 1945||4–2 || align="left"| @ [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||15–6–3
|- align="center"
|25||T||January 4, 1945||4–4 || align="left"| @ [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||15–6–4
|- align="center" bgcolor="#CCFFCC"
|26||W||January 6, 1945||5–2 || align="left"| @ [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||16–6–4
|- align="center" bgcolor="#CCFFCC"
|27||W||January 7, 1945||8–4 || align="left"| [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||17–6–4
|- align="center" bgcolor="#FFBBBB"
|28||L||January 13, 1945||3–8 || align="left"| @ [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||17–7–4
|- align="center" bgcolor="#CCFFCC"
|29||W||January 14, 1945||3–0 || align="left"| [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||18–7–4
|- align="center" bgcolor="#CCFFCC"
|30||W||January 18, 1945||7–3 || align="left"| [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||19–7–4
|- align="center" bgcolor="#FFBBBB"
|31||L||January 21, 1945||3–6 || align="left"| [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||19–8–4
|- align="center" bgcolor="#CCFFCC"
|32||W||January 23, 1945||5–4 || align="left"| @ [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||20–8–4
|- align="center" bgcolor="#CCFFCC"
|33||W||January 27, 1945||5–1 || align="left"| [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||21–8–4
|- align="center" bgcolor="#CCFFCC"
|34||W||January 28, 1945||4–2 || align="left"| @ [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||22–8–4
|- align="center" bgcolor="#FFBBBB"
|35||L||February 3, 1945||2–5 || align="left"| @ [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||22–9–4
|- align="center" bgcolor="#FFBBBB"
|36||L||February 4, 1945||1–3 || align="left"| [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||22–10–4
|- align="center" bgcolor="#FFBBBB"
|37||L||February 10, 1945||2–5 || align="left"| @ [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||22–11–4
|- align="center" bgcolor="#CCFFCC"
|38||W||February 11, 1945||3–2 || align="left"| @ [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||23–11–4
|- align="center" bgcolor="#CCFFCC"
|39||W||February 14, 1945||4–2 || align="left"| [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||24–11–4
|- align="center" bgcolor="#CCFFCC"
|40||W||February 18, 1945||6–1 || align="left"| [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||25–11–4
|- align="center" bgcolor="#FFBBBB"
|41||L||February 22, 1945||3–5 || align="left"| @ [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||25–12–4
|- align="center" bgcolor="#CCFFCC"
|42||W||February 24, 1945||4–2 || align="left"| [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||26–12–4
|- align="center" bgcolor="#CCFFCC"
|43||W||February 25, 1945||3–1 || align="left"| @ [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||27–12–4
|- align="center" bgcolor="#CCFFCC"
|44||W||March 4, 1945||10–4 || align="left"| [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||28–12–4
|- align="center" bgcolor="#CCFFCC"
|45||W||March 8, 1945||7–3 || align="left"| [[New York Rangers]] ([[1944–45 New York Rangers season|1944–45]]) ||29–12–4
|- align="center" bgcolor="#FFBBBB"
|46||L||March 11, 1945||2–3 || align="left"| [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||29–13–4
|- align="center"
|47||T||March 13, 1945||2–2 || align="left"| @ [[Boston Bruins]] ([[1944–45 Boston Bruins season|1944–45]]) ||29–13–5
|- align="center" bgcolor="#CCFFCC"
|48||W||March 15, 1945||2–1 || align="left"| [[Montreal Canadiens]] ([[1944–45 Montreal Canadiens season|1944–45]]) ||30–13–5
|- align="center" bgcolor="#CCFFCC"
|49||W||March 17, 1945||4–3 || align="left"| @ [[Toronto Maple Leafs]] ([[1944–45 Toronto Maple Leafs season|1944–45]]) ||31–13–5
|- align="center" bgcolor="#FFBBBB"
|50||L||March 18, 1945||3–5 || align="left"| [[Chicago Blackhawks|Chicago Black Hawks]] ([[1944–45 Chicago Black Hawks season|1944–45]]) ||31–14–5
|}
==Playoffs==
==Player stats==
==Awards and records==
==Transactions==
==Roster==
==See also==
*[[1944–45 NHL season]]
==References==
{{refs}}
==External links==
* {{cite web |url=http://www.hockey-reference.com/teams/DET/1945_games.html |publisher=Hockey-reference.com |accessdate=2009-05-07 |title=1944–45 Detroit Red Wings Games}}
{{Detroit Red Wings}}
{{Detroit Red Wings seasons}}
{{1944–45 NHL season by team}}
[[category:1944 in ice hockey|Detroit Red Wings season, 1944–45]]
[[category:1945 in ice hockey|Detroit Red Wings season, 1944–45]]


Caitlyn Jenner shares Nicole Brown Simpson's haunting words to friend days before murder
The I'm A Celebrity... Get Me Out Of Here! star shared a tragic story about Nicole Brown Simpson's final days in her book The Secrets Of My Life
by Irishmirror.ieCaitlyn Jenner shared a tragic story about the final days of Nicole Brown Simpson's life.
Nicole and her friend Ron Goldman were brutally murdered on the doorstep of her home in June 1994.
Her ex-husband OJ Simpson was arrested for the murders and taken to trial, where he was infamously acquitted.
OJ always - and still does - protested his innocence, but he was later found legally responsible for the murders in a civil trial and ordered to pay millions to the families, although they still to this day haven't seen a penny.
I'm A Celebrity star Caitlyn's ex-wife Kris was best friends with Nicole for years, and before her transition from Bruce, she knew Nicole well.
In her book, The Secrets Of My Life, Caitlyn revealed the haunting words Nicole said to her friend Faye Resnick just days before she was murdered.
Caitlyn says that one night she was at home with Kris when Nicole called, concerned about Faye's drug use and adamant that they had to stage an intervention that night and get her into rehab by the morning.
They met at Faye's house and tried to convince her to go to rehab, but it was Nicole's words that got through to her.
Caitlyn writes: "Over and over, Nicole kept saying the same thing to Faye: 'If you don't stop, you're going to die. And you don't want your daughter to grow up without a mother.'
"I was listening to the urgency and sincerity and love in Nicole's voice. She, more than anyone else in my mind, was the one who got her to rehab.
"Three or maybe four days afterward, Nicole was dead.
"Still to this day, I wish we had known that the person we needed to save in that room at that very moment was Nicole. As serious as Faye's situation was, Nicole's was even more life-threatening: It was her children who would grow up without a mother."
* I'm A Celebrity airs nightly at 9pm on ITV
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


Hong Kong police watchdog unequipped to probe protest response: Experts
HONG KONG: Hong Kong's police watchdog is currently unequipped to investigate the force's handling of months of anti-government protests, a panel of international experts appointed by the city's own government has found.
The international finance hub has been upended by five months of huge and increasingly violent rallies, but Beijing has refused to give in to most of the movement's demands.
One of the core demands, alongside fully free elections, is an independent inquiry into the police, who have been left to battle protesters for 24 consecutive weeks and are now loathed by large chunks of the deeply polarised population.
READ: Hong Kong police fire tear gas as violence breaks out in New Territories
READ: Hong Kong court grants interim injunction prohibiting public from disclosing police details
City leader Carrie Lam has repeatedly dismissed an independent probe, saying the current watchdog - the Independent Police Complaints Commission (IPCC) - is up to the job.
Protesters argue the IPCC lacks adequate investigatory powers, is stacked with pro-establishment figures and has previously been toothless when it comes to holding police to account.
In September, Lam appointed a panel of independent experts to advise the watchdog.
Chaired by Sir Dennis O'Connor - who was tasked by the UK government to look at police tactics following the 2011 London riots - it includes policing specialists from Britain, New Zealand and Canada.
It has now issued a damning assessment of the IPCC's ability to do the job it has been tasked with and suggested a fully independent inquiry would be better suited for the task.
The report, dated Nov 8, found "a shortfall in IPCC powers, capacity and independent investigative capability necessary to match the scale of events and the standards required of an international police watchdog operating in a city that values freedoms and rights".
The panel said if resources were enhanced, the IPCC might be able to issue an interim report "with limited, but sufficient facts" on the cause of the protests and the handling by authorities.
But it said there was "a compelling case" for a "deeper more comprehensive inquiry ... by an independent body with requisite powers".
The report was not available on the IPCC's website.
But it was posted on Twitter late Saturday by one of the panel members, UK-based academic Clifford Stott.
The Hong Kong government and police did not respond to a request for comment.
READ: Huge Hong Kong rally after student dies and lawmakers arrested
The panel's conclusion is an embarrassment for Lam as she battles record-low approval ratings and tries to face down calls for an independent inquiry.
"This panel of international experts was hand-picked by the government and presumably had been expected to endorse the IPCC's work," Antony Dapiran, a Hong Kong-based lawyer who wrote a book about the city's pro-democracy movement, told AFP.
"For them to come out with a statement effectively saying that IPCC is not up to the task is quite damning and only reinforces the urgency of an independent inquiry," he added.
Beijing and Lam appear determined to wait out the protests.
While crowd numbers are smaller than earlier this summer when millions marched, rallies and increasingly violent clashes are still happening on a weekly basis.
Tensions soared this week when a 22-year-old student died from a fall during clashes with police in unclear and disputed circumstances.
Tens of thousands of people attended a peaceful vigil on Saturday evening, one of the few large gatherings in recent months to be granted police permission.
READ: Our coverage of the Hong Kong protests
Follow us on Telegram for the latest on Hong Kong: https://cna.asia/telegram


This is the number of amps-per-SOC% at which the charge current limit (CCL) is reduced due to high State of Charge (SOC). EG: if the State of Charge increases by 1%, this value is the number of additional amps that the CCL is reduced by.
This value is related to the Start Derating Charge Limit At High SOC parameter.
| < Low SOC Discharge Limit Derating | Start Derating Limit At Low Temperature > |


Before Change
// Read many expected entries from the dataset and compare the data to reference
for _ in range(len(synthetic_dataset.data) * 3 + 2):
actual = dict(next(reader)._asdict())
expected = next(d for d in synthetic_dataset.data if d["id"] == actual["id"])
np.testing.assert_equal(expected, actual)
def test_num_epochs_value_error(synthetic_dataset):
After Change
with reader_factory(synthetic_dataset.url, num_epochs=None) as reader:
read_limit = len(synthetic_dataset.data) * 3 + 2
actual_ids = _readout_all_ids(reader, read_limit)
expected_ids = [d["id"] for d in synthetic_dataset.data]
assert len(actual_ids) > len(expected_ids)
assert set(actual_ids) == set(expected_ids)


SKINCARE
While a skin care routine may sound like high maintenance, in reality, the steps for healthy skin are not only necessary, they're easy to implement too. ... “The key to skin resiliency is knowing your skin and treating it well.” First, you'll want to take into account your skin type.


Save all your current tab sets to a file.
Import tab sets from a previous export.
Warning: this will overwrite any existing tab sets with the same name.


<track>
tag, and when should it be used?<track>
tag is used for specifying subtitles. It is typically applied as a child of the <audio>
and <video>
tags.<track>
tag is used for specifying subtitles. It is typically applied as a child of the <video>
tag.<track>
tag is used for specifying subtitles, captions, and other types of time-based text. It is typically applied as a child of the <video>
tag.<track>
tag is used for specifying subtitles, captions, and other types of time-based text. It is typically applied as a child of the <audio>
and <video>
tag.<link><meta><title>
<wbr><base><source>
<input>

<area><embed>
, <frame>, and <frameset>
<frame>

<frame> and <frameset>

and
tags typically occur?,
, , and

tags,
, and

tags,
, , , and

tags,
,
, and

tags
<bold>

<link>
tag used?<button><input><form>
<input><meter>
<input><option><textarea>

<input><option>
<address ______ _____>
6410 Via Real

Carpinteria,
CA
93013
</address>
itemscope
itemtype="http://schema.org/PostalAddress"
itemsref="http://schema.org/PostalAddress"
itemid="address"
itemscope
itemref="http://schema.org/PostalAddress"
itemid="address"
itemtype="http://schema.org/PostalAddress"

element?<source>
element associated?<svg>, <picture>, <audio>, and <video>
<picture>, <audio>, and <video>
src
attribute, so any element which uses src
may use <source>
<audio> and <video>
<textarea>
element?
Parmesan Deviled Eggs

These delectable little bites are made with organic eggs, fresh Parmesan, and chopped pine nuts.

▸ Parmesan Deviled Eggs

These delectable little bites are made with organic eggs, fresh Parmesan, and chopped pine nuts.

Parmesan Deviled Eggs

These delectable little bites are made with organic eggs, fresh Parmesan, and chopped pine nuts.

▸ Parmesan Deviled Eggs

These delectable little bites are made with organic eggs, fresh Parmesan, and chopped pine nuts.

<samp>
element?

and

elements?

when you want a bulleted list and

when you want a numbered list.

when you have a list of items in which the order of the items matters. Use

when you have a list of items that could go in any order.

when you want a bulleted list and

when you want a numbered list.

when you have a list of items in which the order of the items matters. Use

when you have a list of items that could go in any order.

and
tags?

is used where a generic block-level tag is needed, while
is used where a generic inline tag is needed.

is used for major divisions on a page, while
is used to span across columns.

is the industry-standard default tag, but you could use
if you prefer.

is used where a generic inline tag is needed, while
is used where a generic block-level tag is needed.alt
attribute of an image?

On <time datetime="1969-07-21">July 21, 1969</time>, Neil Armstrong said,
<q cite="https://www.hq.nasa.gov/alsj/a11l/a11.html"
>One small step for man, one giant leap for mankind.</q
>

On July 21, 1969, Neil Armstrong said,
<q cite="https://www.hq.nasa.gov/alsj/a11l/a11.html"
>One small step for man, one giant leap for mankind.</q
>

On July 21, 1969, Neil Armstrong said, <q>One small step for man, one giant leap for mankind.</q>

On <time datetime="07-21-1969">July 21, 1969</time>, Neil Armstrong said,
<q cite="https://www.hq.nasa.gov/alsj/a11l/a11.html"
>One small step for man, one giant leap for mankind.</q
>

Make a choice:
<datalist id="example">
<option value="Choice 1"></option>
<option value="Choice 2"></option>
<option value="Choice 3"></option>
</datalist>

Make a choice:

<input id="choices" name="example" />
<datalist value="choices">
<option value="Choice 1"></option>
<option value="Choice 2"></option>
<option value="Choice 3"></option>
</datalist>
Make a choice:
<input list="example" id="choices" name="choices" />
<datalist id="choices">
<option value="Choice 1">Choice 1</option>
<option value="Choice 2">Choice 2</option>
<option value="Choice 3">Choice 3</option>
</datalist>
Make a choice:
<input list="choices" id="example" name="example" />
<datalist id="choices">
<option value="Choice 1"></option>
<option value="Choice 2"></option>
<option value="Choice 3"></option>
</datalist>
<!DOCTYPE html>
declaration that starts the document.
tag.<picture>
<source srcset="image1.jpg" media="(min-width: 1000px)" />
<source srcset="image2.jpg" media="(min-width: 750px)" />

</picture>
<picture>
is not supported.<picture>
is not supported.

<scope cols="2" style="background-color: yellow">

Col 1
Col 2
Col 3

first
second
third

<colgroup span="2" style="background-color: yellow">

Col 1
Col 2
Col 3

first
second
third

<group cols="2" style="background-color: yellow">

Col 1
Col 2
Col 3

first
second
third

<columns colspan="2" style="background-color: yellow">

Col 1
Col 2
Col 3

first
second
third

tag typically used for?This is a confusing question and there can be an arguments for both the second and the third options being correct. From MDN: The HTML

element represents a thematic break between paragraph-level elements. Historically, this has been presented as a horizontal rule or line. While it may still be displayed as a horizontal rule in visual browsers, this element is now defined in semantic terms, rather than presentational terms, so if you wish to draw a horizontal line, you should do so using appropriate CSS.

Nadia's Garden

4.5 stars - based on
120 reviews

itemprop="aggregateRating" itemref="http://schema.org/AggregateRating"
itemprop="aggregateRating" itemtype="http://schema.org/AggregateRating
itemid="aggregateRating" itemtype="http://schema.org/AggregateRating
itemid="aggregateRating" itemref="http://schema.org/AggregateRating
<rb> <rp> <rt>
<acronym>  <wbr>
<hgroup> <q> <wbr>

**\_\_**
tag is used for marking up a short code snippet, while the **\_\_**
tag is used for marking up a longer block of code.<kdb>
,

,
<kdb>
,

,

tag do?**\_\_**
attribute._blank
_self
_new
_parent
We are fond of our TLAs in web design.
<acronym>
has been removed in HTML5 and shouldn't be used anymore. Instead web developers should use the
element.

office

staple

paper

groceries

milk

Office Supplies

Stapler

Paper clips

Groceries

Milk

"Making money is what you have to do to sustain a business—being driven to make something of value
and purpose is much more powerful."

Lynda Weinman

<q
>"Making money is what you have to do to sustain a business—being driven to make something of
value and purpose is much more powerful."</q
>
Lynda Weinman

"Making money is what you have to do to sustain a business—being driven to make something of
value and purpose is much more powerful."

Lynda Weinman

<q
>"Making money is what you have to do to sustain a business—being driven to make something of
value and purpose is much more powerful."</q
>
Lynda Weinman

info

?

, the element closer is

, and the element information is info.

, the end tag is

, and the enclosed HTML is info.

, the end tag is

, and the element content is info.

, the end element is

, and the tag content is info.<input type="submit" value="click me">
and <button type="submit">Click me</button>
?<button>
can have content other than text, like an image or nested HTML elements, while the <input>
cannot.<input type="button">
has been deprecated in HTML5. You should use the <button>
tag instead.<input>
can have content other than text, like an image or nested HTML elements, while the <button>
cannot.
Press the <tt>Enter</tt> key to proceed.

Press the Enter key to proceed.

Press the <samp>Enter</samp> key to proceed.

Press the Enter key to proceed.

<audio controls>
<source src="sound.mp3" type="audio/mpeg" />
<source src="sound.ogg" type="audio/ogg" />
<source src="sound.wav" type="audio/wav" />
</audio>
accesskey
shortcut
keyboard
access
<EMAIL_ADDRESS>with a subject of "Hello"?<a<EMAIL_ADDRESS>me
<a<EMAIL_ADDRESS>Click me
Click me
<DOCTYPE html>

<root>

and ending at

?<meta>
tag?<form>
<legend>Title</legend>
<fieldset>
Your name:
<input type="text" name="name" id="name" />
<button type="submit">Submit</button>
</fieldset>
</form>
<form>
<fieldset>
<legend>Title</legend>

Your name:

<input type="text" name="name" id="name" />
<input type="submit" value="Submit" />
</fieldset>
</form>
<form>
<fieldset>
<legend>Title</legend>
Your name:
<input type="text" name="name" id="name" />
<button type="submit">Submit</button>
</fieldset>
</form>
<form>
<legend>Title</legend>
Your name:
<input type="text" name="name" id="name" />
<input type="submit" value="Submit" />
</form>
<video>
tag?<canvas>
tag?

<canvas> <select>

http://www.linkedin.com/dir/page.html
page.html
http://www.linkedin.com/page.html
dir/page.html

of your document?
<link style="style.css">

, then use CSS to make single spacing.

tag to make the line spacing look exactly like you want.

tag.<wbr>
tag do?

<!a href="#">Link 1

<!a href="#">Link 2

<!a href="#">Link 2a

<!a href="#">Link 3

Link 1

Link 2

Link 2a

Link 3

Link 1

Link 2

Link 2a

Link 3

Link 1

Link 2

Link 2a

Link 3

Link 1

Link 2

Link 2a

Link 3

//this is a comment
/* this is a comment */
<! this is a comment ->

Steve Kruz Said: "He will Win"
<q>
<quote>

<notation>
<!DOCTYPE html>

<root>

tag?

.<video>
tag is used and the autoplay attribute is not set?


1D binomial filter (approximation to Gaussian filter) Creates a binomial filter of size 2*r+1 x 1. This can be used to approximate the Gaussian distribution with sigma=sqrt((2*r+1)/4). For large r, should give same output as: g = fspecial( 'Gaussian', [2*r+1,1],sqrt((2*r+1)/4) ); Given sigma, use r ~= 2*sigma^2. Use F = f*f' to get the equivalent 2d filter. USAGE f = filterBinomial1d( r, [show] ) INPUTS r - mask will have length 2r+1 and var=(2*r+1)/4 show - [0] figure to use for optional display OUTPUTS f - 1D binomial filter EXAMPLE r = 10; fbinom = filterBinomial1d( r, 1 ); fgauss = filterGauss( 2*r+1, [], (2*r+1)/4, 2); See also FILTERGAUSS Piotr's Computer Vision Matlab Toolbox Version 2.0 Copyright 2014 Piotr Dollar. [pdollar-at-gmail.com] Licensed under the Simplified BSD License [see external/bsd.txt]


GLOBAL DISTRIBUTED SOFTWARE DEVELOPMENT GDSD
Winter 2018
Team WS2018_FD#4
GROUP MEMBERS IN FULDA
Muhammad Ammar Hasan
Ameer Humza Cheema
Saqib Shehzad
Oluwaseun Alabi


Type the full title of the article, as it will appear in the published version.
Type the full name of the journal or publication in which the article will be published. Do not use abbreviated titles.
Type the full name (first name, middle initial, last name) of each author, as it will appear in the published version.
To add an additional author, click the + button.
Type the name of the publisher of the journal or publication in which the article will appear. This name can usually be found in the copyright assignment agreement provided by the publisher or on the masthead of the publication.
Please refer to the FAQ for more help selecting your addendum.


Complex Machinery:
The controls are still dark and unmovable.
(You must wait until the device becomes operational before attempting anything else.)


{% load static %} {% load staticfiles %}
Hi, {{ username }}
You have requested to reset your password, and so here we are to help you.
Click on the button below to set a new password.
This link will expire in {{password_expire}} days
The PC/device, which has requested this password reset, can be characterized as:
And what it it was not you?
Then, please, contact us immediately and we will take a look into it. We promise!


• Cardiac Arrest
• Shortness of breath
• Chest pain
• Abdominal pain
• Broken bones
• Pain in foot or hands


WUXUN
HOME
About
Dropdown
Action
Another action
Something else here
Disabled
Dropdown
Action
Another action
Something else here


This is an AI who is able to play checkers at a competitive level. It’s based on “Monte-Carlo Tree Search”, an AI algorithm which is used by the most powerful AI in games, AlphaZero. You can choose different game modes: Human vs Human, Human vs AI, AI vs AI and Sandbox. You can choose the difficult of the AI through the number of simulations of the MCTS algorithm (the more simulations, the more difficult). Also you can select the dimensions of the board, being able to play Checkers in a 20x20 board.
Defeat the emperor using your extraordinary abilities
Tale of Jade is a metroidvania set in medieval China. In the game you control Shui Qui, one of the rebels who has been blessed by the gods to defeat the emperor. You have different abilities, which will be unlocked during the game to complete this mission. Some of them are:
Push: You can use it to push enemies far away, throw stage elements at them or use it against a wall to make big jumps.
Pull: You can attract enemies, objects or use it against a wall to move in the scenario like using lianas in a jungle.
Raise: Use it for create a rock from the ground and combine it with other abilities to defeat your enemies.
Have you ever thought about playing a battle royale in the real life?
Snapped is a multiplayer location-based battle royale game for portable devices. They are two types of player: the one who is the “refree”, who is called the GameMaster(GM) and the “normal” player. The “normal” player has to play like in other battle royale games, hiding from other players and using the camera in his device to make photos to other players in order to kill them. These photos are sended to the GM, who decides if one player has killed the other one. The GM has to set up the game, delimite the battleground (wich is in the real world), control its size and when it will become smaller, send drops with ammo to the players and deciding if a photo wich has received is good enough to kill the other player.
If you want to play with your friends you can play it on the browser or download it here!
Project: Final project for “Web Videogames” subject
Job: multiplayer and Gameplay programmer
Platform: Mobile/Tablet/Web Browser
Neon Beat
Play a music game with any audio file you can imagine
Neon Beat is a procedural rythm game in which the level you play is the wave an audio’s frequencies generate. Even though there are three predefined songs, you can upload any mp3 file you have in your phone or comuter. That mp3 can be anything!  The player is blue ball who travels along the wave.  The player has to tap the screen (phone) or press the spacebar/left mouse click (pc) to score them. If the player taps too early or too late, he fails and he loose hp. The color of the player represents his current hp, if you are red you are in troubles.

Brainstein is a multiplayer cooperative game in wich you and your partner, the two greatest scientists on Earth, have to survive to infinite zombie waves. Every player has 3 weapons: the pistol, with unlimited ammo, the shotgun wich fires 3 shots in area, and the AK-47, wich has the biggest fire rate. Also the players have to protect the Einstein’s brain wich teleports randomnly every round. At the end of the round drops appear in the map so the players can have more ammo.
Brainstein is a web game and the comunication between players is by a server in STS.
Project: Final project for “Network Games” subject
Job: Gameplay programmer
Platform: PC
Environment AI Simulation
Experiment how a predator and his prey evolve in a procedural
Complete autonomus simulation of an envirorment where lives 2 species of animals, rabbits and foxes. These two species are programmed using the same behaviour tree, but producing different types of behaviours.  All of them can be hungry, thirsty, pregnant (if they are female) or running away from their predators (only rabbits have a predator, the foxes). Children are born with a random combination of the stats of their parents. Moreover the scenario is generated programmatically using parameters given by the user, so it produces an infinite map generator.
Project: Final project for “Character behaviour” subject
Job: AI programmer
Platform: PC
About me
I'm Daniel Davila, a 22 years old videogame developer and programmer from Spain. I just graduated in Videogame Development and Design, from Rey Juan Carlos University, Madrid.
I'm specialized in programming but I also have a lot of knowledge about art and design.
I'm a very hard-working person, with a lot of experience working in a team and always looking for new challenges to face.
Currently I'm a memeber of KEStudio, an indie videogame studio in Madrid.
Here you can check some of the projects I have worked on, feel free to contact me if you like it!


The container of both the visual elements and the interactions (events) that can occur on a single screen.
Image (80 x 80 Bitmap) that represents the area on the screen where the player (Ego) can explore.
The PAGE interpreter uses the color black to indicate a border (an area that the Ego cannot move through).
An image (8 x 16 Bitmap) that can represent an item (or character) in the game.
PINTBasic accepts a 8 x 16 bitmap image, where the color black is the "transparent" color.
This represents the interactive player character that can interact with elements in the room. The Pics that make up the ego are defined on the 'application' level (and not in the room).
A Hotspot is a non-visible screen location that can either trigger an event, or can return whether or not the Ego is within the hotspot boundaries.
The inventory contains items that the ego has collected, and can be used in interacting with the other game elements (such as "GIVE"ing to someone, or "USE"ing on/with something).
When a bitmap is being converted in the format used by the PAGE interpreter, the colors mapped to the Propeller palette are based on the first 16 colors that were the default palette in applications such as "Paint" in Windows 2000/XP/Vista. If you are using another application/OS, you can match the palette to the "palette.bmp" in this directory.
This has to do with the rendering of the display. The 80 x 96 image is being streched across a 192 x 96 display. This is a 2.4:1 distortion. Is this done to make it look more retro? Well, not really. It is to conserve resources, since there is only 32K to work with on the Propeller. Looking retro is a nice side effect. If you play some of the early Sierra Online games, you will see a similar sort of distortion on their early CGA/EGA games (first editions of Kings Quest I, Space Quest I, etc.).
In order to get an idea of what the room will look like when it runs under the PAGE interpreter on the Propeller, you can use the PINTRoomViewer.exe application (found in the /tools/bin sub-directory).
The PINT interpreter supports 8 "global" variables, and 8 "local" (room) variables. All the variables used in the PINT interpreter are bytes. There are some that are pre-defined, and some that can be user defined.
- The global/application variables will retain their values between rooms.
- The room variables only exist while the ego is in a particular room.
- Any of the variables will persist if a LOAD/SAVE action is used in a particular room.
The following global variables are pre-defined for use in the PINT interpreter:
global 0 = max score
global 1 = current score
global 2 = last room
global 3 = last item selected
These are defined as follows in the "global.bi"
-----------------
Dim g_varMaxScore As Byte
Dim g_varCurrentScore As Byte
Dim g_varLastRoom As Byte
Dim g_varLastItem As Byte
Room Object:
Events:
On_Load
Triggered when the Room resource is loaded in the PAGE interpreter.
On_Use
Triggered when the user initiates the "USE" action on the menu.
On_Take
Triggered when the user initiates the "TAKE" action on the menu.
On_Look
Triggered when the user initiates the "LOOK" action on the menu.
On_Talk
Triggered when the user initiates the "TALK" action on the menu.
On_Give
Triggered when the user initiates the "GIVE" action on the menu.
On_Hotspot1
Triggered when the Ego enters the boundaries defined for Hotspot #1
On_Hotspot2
Triggered when the Ego enters the boundaries defined for Hotspot #2
On_Hotspot3
Triggered when the Ego enters the boundaries defined for Hotspot #3
On_Hotspot4
Triggered when the Ego enters the boundaries defined for Hotspot #4
Methods:
Load ([room_no])
[room_no] = Room number, as defined in the Room declaration of the room being loaded.
----
Backdrop Object:
Constructor:
Backdrop([backdrop_filename])
[backdrop_filename] = Filename of the Backdrop resource. The Backdrop image must be an 80x80 bitmap
----
Pic Object:
Constructor:
Pic ([pic_filename])
[pic_filename] = Filename of the Pic resource. The Pic image must be an 8x16 bitmap
Methods:
Load ([x], [y])
[x] = x position (0-80) to load the Pic
[y] = y position (0-80) to load the Pic
Hide()
----
Ego Object:
Methods:
Load ([x], [y], [facing])
[x] = x position (0-80) to load the Ego
[y] = y position (0-80) to load the Ego
[facing] = direction facing (0-3)
NORTH = 0
SOUTH = 1
EAST = 2
WEST = 3
----
Inventory Object:
Methods:
Add ([item_ref])
[item_ref] = Item reference (instance of Item object)
Remove ([item_ref])
[item_ref] = Item reference (instance of Item object)
Contains ([item_ref])
[item_ref] = Item reference (instance of Item object)
----
Item Object:
Constructor:
Item([item_name])
[item_name] = Item name (short 4 character name of the item)
----
Hotspot Object:
Constructor:
Hotspot ([x], [y], [width], [height])
Methods:
ContainsEgo()
----
Music Object:
Constructor:
Music ([midi_filename])
- Must be MIDI 0 music.
Methods:
Play([music_id])


Taking the Syntax out of Distributed Systems Programming
Start learning LFE, sharpen your pattern-matching skills, or create your next highly concurrent, fault-tolerant system with LFE/OTP.
Learn LFE
New to LFE?
Reference
The LFE core reference materials is the right place to go when looking for the exact usage information you need.
Community
Want to talk with poeple who know and use LFE? Got a Question? Want to share the love? Come hang out with us!


Chapter 8 Bayesian Analysis
8.1 Baysian belief
Bayes Theorem deals with the impact of information update on current belief expresses in terms of probability. P(A|B) is the posterior probability of A given knowledge of B. P(A) is the prior probability. P(B|A) is the conditional probability of B given A. P(A|B)=P(B|A) x P(A)/P(B)
Bayes’ theorem can be expressed in terms of odds and post-test probabilities. This concept had been used in the analysis of the post-test probabilities of stroke related to the use of ABCD2. In this case the likelihood ratio and pretest probability of stroke in patients with TIA is used to calculate the post-test probability.
Table 13. 2 x 2 table Disease + Disease - Test + eg ABCD2≥4 TP FP Test – eg ABCD2<4 FN TN
The true positive rate (TPR) can be expressed as conditional probability P(T+|D+). TP is the joint distribution of T+ and D+ while TN is the joint distribution of T- and D-.
The true negative rate (TNR) can be expressed as conditional probability P(T-|D-).
In the setting of ABCD2, the pre-test odds is derived from cases of TIA and stroke outcome at 90 days.
The positive likelihood ratio (PLR) in this case is derived from the sensitivity of ABCD2 for stroke and the one minus specificity of ABCD for stroke. One can interpret the likelihood ratio in terms of Bayes theorem.
To derive the post-test odds, the PLR is multiplied by the pre-test odds at the voxel level. The post-test odds is given by the product of the pre-test odds and the likelihood ratio.
In turn, the post-test probabilities is calculated from the post-test odds by:
8.1.1 Conditional probability
Two events are independent if
Or
It follows that the events A and B occur simultaneously P(A∩B) is given by the probability of event A and probability of event B given that A has occurred.
If events A and B are independent then P(A∩B) is given by the probability of event A and probability of event B.
<IP_ADDRESS> Bayes Rule
For a sample space (A) containing n different subspaces (A1, A2..An) and A is a subset of the larger sample space B+ and B-, the probability that A is a member of B+an be given by P(A|B+). This can be divised as a tree structure with one branch given by the product of P(B+) and P(A|B+) and the other P(B-) and P(A|B-). The probability of B is given by the sum of P(B+)P(A|B+) and P(B-)P(A|B).
To make a decision on which of An events to choose, one evaluate the conditional probability of each subset e.g. P(A1∩B)/P(B), P(A2∩B)/P(B)…P(An∩B)/P(B). The probability of P(B) is given by the sum of P(A1∩B), P(A2∩B)…P(An∩B). Here P(An∩B) is the same as P(An)P(B|An). The subspace with the highest conditional probability may yield the optimal result.
<IP_ADDRESS> Conditional independence
The conditional distribution is given by
Conditional independence states that two events (A, B) are independent on a third set (C) if those two sets are independent in their conditional probability distribution given C782. This is stated as
8.2 Markov model
The Markov chain describes a chain of memoryless states which transit from one state to another without dependency on previous states. The Markov property The transition matrix describes the probabilities of changing from one state to another. A property of this Markov matrix is that the column data sum to one. An example is provided here \(\left[\begin{array}{cc}.8 & .7\\.2 &.3\end{array}\right]\). The column probabilities sum to 1. The PageRank method that we discuss in chapter on Graph Theory is a special form of Markov chain.
8.3 INLA, Stan and BUGS
In the example here, the GBD 2016 life time risk of stroke is re-used. The model is shown next to the simple linear regression. INLA is used to infer the probability of a set of data given the defined parameters. In the regression example below the linear regression return coefficient of 0.788 and the INLA version returns a mean value of 0.789 as well. Note that Bayesian methods do not provide p-values.
8.3.1 Linear regression
## Loading required package: Matrix
## Warning: package 'Matrix' was built under R version 4.0.5
## Loading required package: sp
## Loading required package: parallel
## Loading required package: foreach
## This is INLA_20.07.18-2 built 2020-07-18 12:21:38 UTC.
## - See www.r-inla.org/contact-us for how to get help.
## - Save 521.2Mb of storage running 'inla.prune()'
load("./Data-Use/world_stroke.Rda")
#perform ordinary linear regression for comparison
fit<-lm(LifeExpectancy~MeanLifetimeRisk, data =world_sfdf)
summary(fit)
##
## Call:
## lm(formula = LifeExpectancy ~ MeanLifetimeRisk, data = world_sfdf)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.5141 -4.8413 0.1315 5.3673 10.5146
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 56.27490 1.59843 35.21 <2e-16 ***
## MeanLifetimeRisk 0.78852 0.07655 10.30 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.223 on 173 degrees of freedom
## (71 observations deleted due to missingness)
## Multiple R-squared: 0.3802, Adjusted R-squared: 0.3766
## F-statistic: 106.1 on 1 and 173 DF, p-value: < 2.2e-16
Here the output of Bayesian analysis contrasts with the frequentist output above.
#need to subset data as world_sfdf is of class "sf" "tbl_df" "tbl" "data.frame"
fitINLA<-inla(LifeExpectancy~MeanLifetimeRisk, family = "gaussian", data =world_sfdf[,c(23,12)])
## Warning in .recacheSubclasses(def@className, def, env): undefined subclass
## "numericVector" of class "Mnumeric"; definition not updated
##
## Call:
## c("inla(formula = LifeExpectancy ~ MeanLifetimeRisk, family =
## \"gaussian\", ", " data = world_sfdf[, c(23, 12)])")
## Time used:
## Pre = 0.448, Running = 0.337, Post = 0.281, Total = 1.07
## Fixed effects:
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) 56.275 1.598 53.135 56.275 59.413 56.275 0
## MeanLifetimeRisk 0.789 0.077 0.638 0.789 0.939 0.789 0
##
## Model hyperparameters:
## mean sd 0.025quant 0.5quant
## Precision for the Gaussian observations 0.026 0.003 0.021 0.026
## 0.975quant mode
## Precision for the Gaussian observations 0.032 0.026
##
## Expected number of effective parameters(stdev): 2.00(0.00)
## Number of equivalent replicates : 87.50
##
## Marginal log-Likelihood: -588.00
Performing Bayesian analysis with rstan can be tricky as the text file for the stan code require an empty line at the end. The brms library contains the same precompiled stan code and is easier to run.
## Loading required package: Rcpp
## Warning: package 'Rcpp' was built under R version 4.0.5
## Loading 'brms' package (version 2.14.4). Useful instructions
## can be found by typing help('brms'). A more detailed introduction
## to the package is available through vignette('brms_overview').
##
## Attaching package: 'brms'
## The following object is masked from 'package:stats':
##
## ar
## Warning: Rows containing NAs were excluded from the model.
## Compiling Stan program...
## Start sampling
##
## SAMPLING FOR MODEL '6d6d026fdd62b36893c9210b3edc6eec' NOW (CHAIN 1).
## Chain 1:
## Chain 1: Gradient evaluation took 0 seconds
## Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 1: Adjust your expectations accordingly!
## Chain 1:
## Chain 1:
## Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 1:
## Chain 1: Elapsed Time: 0.071 seconds (Warm-up)
## Chain 1: 0.028 seconds (Sampling)
## Chain 1: 0.099 seconds (Total)
## Chain 1:
##
## SAMPLING FOR MODEL '6d6d026fdd62b36893c9210b3edc6eec' NOW (CHAIN 2).
## Chain 2:
## Chain 2: Gradient evaluation took 0 seconds
## Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 2: Adjust your expectations accordingly!
## Chain 2:
## Chain 2:
## Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 2:
## Chain 2: Elapsed Time: 0.04 seconds (Warm-up)
## Chain 2: 0.029 seconds (Sampling)
## Chain 2: 0.069 seconds (Total)
## Chain 2:
##
## SAMPLING FOR MODEL '6d6d026fdd62b36893c9210b3edc6eec' NOW (CHAIN 3).
## Chain 3:
## Chain 3: Gradient evaluation took 0 seconds
## Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 3: Adjust your expectations accordingly!
## Chain 3:
## Chain 3:
## Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 3:
## Chain 3: Elapsed Time: 0.033 seconds (Warm-up)
## Chain 3: 0.028 seconds (Sampling)
## Chain 3: 0.061 seconds (Total)
## Chain 3:
##
## SAMPLING FOR MODEL '6d6d026fdd62b36893c9210b3edc6eec' NOW (CHAIN 4).
## Chain 4:
## Chain 4: Gradient evaluation took 0 seconds
## Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 4: Adjust your expectations accordingly!
## Chain 4:
## Chain 4:
## Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 4:
## Chain 4: Elapsed Time: 0.048 seconds (Warm-up)
## Chain 4: 0.032 seconds (Sampling)
## Chain 4: 0.08 seconds (Total)
## Chain 4:
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: LifeExpectancy ~ MeanLifetimeRisk
## Data: world_sfdf[, c(23, 12)] (Number of observations: 175)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept 56.31 1.58 53.26 59.31 1.00 4055 2784
## MeanLifetimeRisk 0.79 0.08 0.64 0.94 1.00 4025 2496
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 6.25 0.33 5.65 6.93 1.00 4329 3090
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Extract the posterior samples for plotting.
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.1.4 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.0
## Warning: package 'ggplot2' was built under R version 4.0.5
## Warning: package 'tibble' was built under R version 4.0.5
## Warning: package 'tidyr' was built under R version 4.0.5
## Warning: package 'dplyr' was built under R version 4.0.5
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x purrr::accumulate() masks foreach::accumulate()
## x tidyr::expand() masks Matrix::expand()
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x tidyr::pack() masks Matrix::pack()
## x tidyr::unpack() masks Matrix::unpack()
## x purrr::when() masks foreach::when()
8.3.2 Logistic regression
This example illustrates the use of INLA for logistic regression.
## [1] "Id" "Cl.thickness" "Cell.size" "Cell.shape"
## [5] "Marg.adhesion" "Epith.c.size" "Bare.nuclei" "Bl.cromatin"
## [9] "Normal.nucleoli" "Mitoses" "Class"
#note Class is benign or malignant of class factor
#need to convert this to numeric values
#first convert to character
BreastCancer$Class<-as.character(BreastCancer$Class)
BreastCancer$Class[BreastCancer$Class=="benign"]<-0
BreastCancer$Class[BreastCancer$Class=="malignant"]<-1
#convert factors to numeric
BreastCancer2<-lapply(BreastCancer[,-c(1,7)], as.numeric)
BreastCancer2<-as.data.frame(BreastCancer2)
#return Class to data
#convert character back to numeric
BreastCancer2$Class<-as.numeric(BreastCancer$Class)
Dx<-inla(Class ~Epith.c.size+Cl.thickness+Cell.shape, family="binomial",
data = BreastCancer2)
summary(Dx)
##
## Call:
## c("inla(formula = Class ~ Epith.c.size + Cl.thickness + Cell.shape, ",
## " family = \"binomial\", data = BreastCancer2)")
## Time used:
## Pre = 0.74, Running = 0.227, Post = 0.295, Total = 1.26
## Fixed effects:
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) -8.405 0.708 -9.891 -8.371 -7.106 -8.304 0
## Epith.c.size 0.478 0.123 0.242 0.476 0.724 0.472 0
## Cl.thickness 0.635 0.094 0.460 0.632 0.830 0.625 0
## Cell.shape 0.929 0.121 0.704 0.924 1.179 0.914 0
##
## Expected number of effective parameters(stdev): 4.00(0.00)
## Number of equivalent replicates : 174.75
##
## Marginal log-Likelihood: -114.89
The same data is used for logistic regression with stan.
DxBRM<-brm(Class ~Epith.c.size+Cl.thickness+Cell.shape,
family=bernoulli(link = "logit"), data = BreastCancer2)
## Compiling Stan program...
## Start sampling
##
## SAMPLING FOR MODEL '266de4bd8199d4b1f9b8e7a6f02de83c' NOW (CHAIN 1).
## Chain 1:
## Chain 1: Gradient evaluation took 0 seconds
## Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 1: Adjust your expectations accordingly!
## Chain 1:
## Chain 1:
## Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 1:
## Chain 1: Elapsed Time: 0.231 seconds (Warm-up)
## Chain 1: 0.227 seconds (Sampling)
## Chain 1: 0.458 seconds (Total)
## Chain 1:
##
## SAMPLING FOR MODEL '266de4bd8199d4b1f9b8e7a6f02de83c' NOW (CHAIN 2).
## Chain 2:
## Chain 2: Gradient evaluation took 0 seconds
## Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 2: Adjust your expectations accordingly!
## Chain 2:
## Chain 2:
## Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 2:
## Chain 2: Elapsed Time: 0.3 seconds (Warm-up)
## Chain 2: 0.234 seconds (Sampling)
## Chain 2: 0.534 seconds (Total)
## Chain 2:
##
## SAMPLING FOR MODEL '266de4bd8199d4b1f9b8e7a6f02de83c' NOW (CHAIN 3).
## Chain 3:
## Chain 3: Gradient evaluation took 0 seconds
## Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 3: Adjust your expectations accordingly!
## Chain 3:
## Chain 3:
## Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 3:
## Chain 3: Elapsed Time: 0.236 seconds (Warm-up)
## Chain 3: 0.362 seconds (Sampling)
## Chain 3: 0.598 seconds (Total)
## Chain 3:
##
## SAMPLING FOR MODEL '266de4bd8199d4b1f9b8e7a6f02de83c' NOW (CHAIN 4).
## Chain 4:
## Chain 4: Gradient evaluation took 0 seconds
## Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 0 seconds.
## Chain 4: Adjust your expectations accordingly!
## Chain 4:
## Chain 4:
## Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 4:
## Chain 4: Elapsed Time: 0.315 seconds (Warm-up)
## Chain 4: 0.362 seconds (Sampling)
## Chain 4: 0.677 seconds (Total)
## Chain 4:
## Family: bernoulli
## Links: mu = logit
## Formula: Class ~ Epith.c.size + Cl.thickness + Cell.shape
## Data: BreastCancer2 (Number of observations: 699)
## Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup samples = 4000
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -8.46 0.73 -9.97 -7.14 1.00 3770 2974
## Epith.c.size 0.48 0.12 0.25 0.72 1.00 3258 2969
## Cl.thickness 0.64 0.10 0.47 0.84 1.00 3851 2838
## Cell.shape 0.94 0.12 0.70 1.19 1.00 3269 2616
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Extract the posterior sample from logistic regression.
8.3.3 Mixed model
Plotting world_sfdf to identify characteristics of the data
ggplot(data=world_sfdf, aes(x=LifeExpectancy, y=MeanLifetimeRisk,
color=Income, shape=Continent))+
geom_point()+
geom_jitter()
Intercept model with INLA
# Set prior on precision
prec.prior <- list(prec = list(param = c(0.001, 0.001)))
Inla_Income<-inla(MeanLifetimeRisk~1+LifeExpectancy+f(Income,
model = "iid",
hyper = prec.prior),
data =world_sfdf[,c(23,12, 15, 20)],
control.predictor = list(compute = TRUE))
summary(Inla_Income)
##
## Call:
## c("inla(formula = MeanLifetimeRisk ~ 1 + LifeExpectancy + f(Income, ",
## " model = \"iid\", hyper = prec.prior), data = world_sfdf[, c(23, ", "
## 12, 15, 20)], control.predictor = list(compute = TRUE))" )
## Time used:
## Pre = 0.686, Running = 1.23, Post = 0.659, Total = 2.58
## Fixed effects:
## mean sd 0.025quant 0.5quant 0.975quant mode kld
## (Intercept) 17.937 2.386 13.10 17.962 22.636 18.005 0.001
## LifeExpectancy 0.027 0.019 -0.01 0.027 0.064 0.027 0.000
##
## Random effects:
## Name Model
## Income IID model
##
## Model hyperparameters:
## mean sd 0.025quant 0.5quant
## Precision for the Gaussian observations 0.047 0.004 0.039 0.047
## Precision for Income 0.086 0.068 0.013 0.069
## 0.975quant mode
## Precision for the Gaussian observations 0.056 0.046
## Precision for Income 0.262 0.037
##
## Expected number of effective parameters(stdev): 5.75(0.177)
## Number of equivalent replicates : 42.81
##
## Marginal log-Likelihood: -760.71
## Posterior marginals for the linear predictor and
## the fitted values are computed
Intercept model with BRMS
BRMS_Income <- brm(MeanLifetimeRisk ~ 1 + LifeExpectancy+(1 | Income),
data = world_sfdf,
warmup = 100,
iter = 200,
chains = 2,
inits = "random",
cores = 2) #use 2 CPU cores simultaneously instead of just 1.
## Warning: Rows containing NAs were excluded from the model.
## Compiling Stan program...
## Start sampling
## Warning: The largest R-hat is 1.05, indicating chains have not mixed.
## Running the chains for more iterations may help. See
## http://mc-stan.org/misc/warnings.html#r-hat
## Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
## Running the chains for more iterations may help. See
## http://mc-stan.org/misc/warnings.html#bulk-ess
## Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable.
## Running the chains for more iterations may help. See
## http://mc-stan.org/misc/warnings.html#tail-ess
## Warning: Parts of the model have not converged (some Rhats are > 1.05). Be
## careful when analysing the results! We recommend running more iterations and/or
## setting stronger priors.
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: MeanLifetimeRisk ~ 1 + LifeExpectancy + (1 | Income)
## Data: world_sfdf (Number of observations: 175)
## Samples: 2 chains, each with iter = 200; warmup = 100; thin = 1;
## total post-warmup samples = 200
##
## Group-Level Effects:
## ~Income (Number of levels: 4)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 1.46 1.03 0.15 3.86 1.05 36 79
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## Intercept -13.51 4.84 -21.39 -3.27 1.01 166 181
## LifeExpectancy 0.46 0.07 0.33 0.56 1.01 164 169
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 4.91 0.28 4.35 5.43 1.00 259 131
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
8.3.4 Bayesian Metaanalysis
A Bayesian approach towards metaanalysis is provided below using the package meta4diag (Guo and Riebler 2015). This approach uses the Integrated Nested Laplacian Approximations (INLA). This package takes a has an advantage over the mada package which does not provide a bivariate method for performing summary sensitivity and specificity.
## Loading required package: grid
## Loading required package: shiny
## Loading required package: shinyBS
## Loading required package: caTools
library(INLA)
#data from spot sign metaanalysis
Dat<-read.csv("./Data-Use/ss150718.csv")
#remove duplicates
dat<-subset(Dat, Dat$retain=="yes")
#the data can be viewed under res$data
res <- meta4diag(data = dat)
#perform SROC
SROC(res, crShow = T)
Forest plot of sensitivity using the meta4diag package.
#sensitivity is specified under accuracy.type
#note that there are several different forest plot: mada, metafor, meta4diag
meta4diag::forest(res, accuracy.type="sens", est.type="mean", p.cex="scaled", p.pch=15, p.col="black",
nameShow="right", dataShow="center", estShow="left", text.cex=1,
shade.col="gray", arrow.col="black", arrow.lty=1, arrow.lwd=1,
cut=TRUE, intervals=c(0.025,0.975),
main="Forest plot of Sensitivity", main.cex=1.5, axis.cex=1)
Forest plot of specificity using the meta4diag package.
#specificity is specified under accuracy.type
#note that there are several different forest plot: mada, metafor, meta4diag
meta4diag::forest(res, accuracy.type="spec", est.type="mean", p.cex="scaled", p.pch=15, p.col="black",
nameShow="right", dataShow="center", estShow="left", text.cex=1,
shade.col="gray", arrow.col="black", arrow.lty=1, arrow.lwd=1,
cut=TRUE, intervals=c(0.025,0.975),
main="Forest plot of Specificity", main.cex=1.5, axis.cex=1)
8.3.5 Cost
The example below is provided by hesim.
##
## Attaching package: 'hesim'
## The following object is masked from 'package:tidyr':
##
## expand
## The following object is masked from 'package:Matrix':
##
## expand
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
## The following object is masked from 'package:purrr':
##
## transpose
strategies <- data.table(strategy_id = c(1, 2))
n_patients <- 1000
patients <- data.table(patient_id = 1:n_patients,
age = rnorm(n_patients, mean = 70, sd = 10),
female = rbinom(n_patients, size = 1, prob = .4))
states <- data.table(state_id = c(1, 2),
state_name = c("Healthy", "Sick"))
# Non-death health states
tmat <- rbind(c(NA, 1, 2),
c(3, NA, 4),
c(NA, NA, NA))
colnames(tmat) <- rownames(tmat) <- c("Healthy", "Sick", "Dead")
transitions <- create_trans_dt(tmat)
transitions[, trans := factor(transition_id)]
hesim_dat <- hesim_data(strategies = strategies,
patients = patients,
states = states,
transitions = transitions)
print(hesim_dat)
## $strategies
## strategy_id
## 1: 1
## 2: 2
##
## $patients
## patient_id age female
## 1: 1 51.45483 0
## 2: 2 70.95864 1
## 3: 3 72.20985 1
## 4: 4 59.58673 1
## 5: 5 54.59213 0
## ---
## 996: 996 72.66644 0
## 997: 997 66.76185 0
## 998: 998 60.36869 1
## 999: 999 74.98727 1
## 1000: 1000 79.45985 1
##
## $states
## state_id state_name
## 1: 1 Healthy
## 2: 2 Sick
##
## $transitions
## transition_id from to from_name to_name trans
## 1: 1 1 2 Healthy Sick 1
## 2: 2 1 3 Healthy Dead 2
## 3: 3 2 1 Sick Healthy 3
## 4: 4 2 3 Sick Dead 4
##
## attr(,"class")
## [1] "hesim_data"
References
Guo, Jingyi, and Andrea Riebler. 2015. “meta4diag: Bayesian Bivariate Meta-analysis of Diagnostic Test Studies for Routine Practice.” arXiv E-Prints, December, arXiv:1512.06220. http://arxiv.org/abs/1512.06220.


Test of Remotely-Loaded Pyodide in a Web Worker
def f(): for i in range(10): print(i) f()
Sample code:
def
input
files
numpy
matplotlib
pandas
Run
Stop
Clear
Dirty
Enter


What is there to see?
So far I have done a basic header/content/footer separation and a few navigation buttons, so nothing fancy yet...
What is this page actually?
Currently under construction, this website will soon be flooded with creative, refreshing and fun content for everyone to enjoy !
The first thing we will post is a few lines about us in the common section. Then we will probably make a short article on one of the most famous restaurants in New-Orleans: the Saint Charles Tavern. What a nice place to have 24/7 breakfast, nice salads, a fresh cup of Americano coffee and good music!
This is going to be a fun ride =)
When is all of this going to be online?
Well, we first have to figure out what kind of stylesheet we want right now but soon after that we will have a first meeting to discuss the agenda, and then we'll be off to the races.
You can expect content every other week, alternating authors, so that we have a full month to research or prepare stuff for articles while still have time to work on our actual research projects!
What more can you tell us?
Thank you for visiting this website and we hope you have a great day!


Before Change
medians, edges, xy = binned_statistic_dd([x, y], values, statistic,
bins, range)
return medians, edges[0], edges[1], xy
def binned_statistic_dd(sample, values, statistic="mean",
After Change
medians, edges, xy = binned_statistic_dd([x, y], values, statistic,
bins, range)
Binned_statistic_2dResult = namedtuple("Binned_statistic_2dResult",
("statistic", "x_edge", "y_edge",
"binnumber"))
return Binned_statistic_2dResult(medians, edges[0], edges[1], xy)
def binned_statistic_dd(sample, values, statistic="mean",


The average graduation rate in the US is 80%. Almost less than half of the states are under the average national graduation rate.
However one should not compare one state’s graduation rate to another as every state has different standards for education.
The states themselves are responsible for setting their own educational standard.
If one wishes to compare graduation rates across states, average freshman graduation rate (AFGR) or NAEP scores should be used.
Even then, comparisons should be made with caution as the state’s graduation rate does not reflect the academic abilities of the individual students.


I'm a Celebrity viewers claim Caitlyn Jenner and Kate Garraway's trial was 'rigged'
The pair struggled as they were subjected to thousands of critters on the ITV show
by Sophie McCoid, Jasper KingI'm a Celebrity Get Me Out of Here fans have slammed the latest trial, claiming it was unfair on the two contestants, Caitlyn Jenner and Kate Garraway, the Liverpool Echo reports.
During the trial on the ITV show, Kate and Caitlyn were placed in a box 20ft up in the air and were subjected to all kinds of horrors including rats and creepy crawlies.
The pair had to drop balls into a moving basket, but viewers slammed the trial, as several of the balls bounced out of the basket, with viewers saying they should have counted.
The two celebrities were strapped into their cages and raised above a lake. Dec gave Kate some words of encouragement, "Come on Kate. Positive mental attitude." Kate replied, "I'm concentrating on surviving" as she tried to get comfortable in the box.
The trial featured 30,000 cockroaches which were poured into each of the cages. The two celebrities then had to carefully aim and try and drop balls into the moving basket.
"I don't know what do do, I can't think. They're going up my noo-noo," screamed Kate.
After a few misses, Caitlyn managed to get a ball in the basket and so did Kate. The classics including crickets and mealworms joined the cockroaches and rats which were already in the cage.
Caitlyn carefully aimed during the trial and a number of balls narrowly missed the basket and hit the rim. Kate was less careful but by the end of the trial both women had managed to drop two balls into the basket making a total of four meals for camp.
Kate said: "Thank God, thank God," as the klaxon sounded and added: "That was so much more disturbing than I thought it would be.
"It's a confined box which I find really scary, it's up very high and then you've got everything you've ever been scared of out of place."
Many took to Twitter to express their outrage at the unfairness of the trial.
Michelle Mackintosh said: "ImACeleb that bounced out that's not fair!! #BushTuckerTrial "
@prabhzil_x said "Lowkey this challenge was rigged. Caitlyn got two in and they bounced out. Not fair. #ImACeleb "
Alicia said: "Caitlyn got at least 4 more there and they bounced back. Not fair!!!!!"
And Jack Walker said: "WHAT THE BALL JUMPED OUT THAT'S SO NOT FAIR."
For the latest news in and around Bristol, visit and bookmark Bristol Live's homepage.


Lot of companies use Facebook for marketing their products. Facebook is mainly built around images. In fact the whole ecosystem is fueled by images. In order to scale for the vast user base of Facebook, they have done a really good job.
So what if you don't want to use your own storage for uploading images and want to use Facebook for Images? It would be so cool, right? There are two benefits:
- You don't have to spend anytime setting up an app or service to deal with images. Believe me it is a real tough problem to solve given the size and count of images. You can't put a bar on either of these two.
- It gives your users a much user friendly way. They upload images just once on Facebook and it auto-magically appears on your website. Facebook almost never gets down so there is very good chance you will get a 99.9% uptime.
So, In order to fix this problem last year I created a Ajax based plugins to fetch images from Facebook album. It asked user to enter album URL and name. But there was an issue with this approach. In order to get access to Facebook graph database it has to get access tokens and each access token only last two months. Plus, it collapsed when it faced IE, since there is unsolvable CORS issue with IE < 9 (our 50% client base for that project).
It was a tough problem to solve. But i finally found some good articles and projects on Internet. One such project was django-fbgallery. It used a really neat approach to get the Facebook images server side and renders it the page purely server side. It not only solved the IE issue, but also the quality and speed of image loading became instant.
But there was an issue with this app, it used URLS to render the albums and spoiled the pretty URLS that you would like for pages in Django. So I took the core part of the app ( the Facebook interaction part) and made a sweet CMS plugin out of it.
Here is the code to make it all work:
```python Facebook.py from django.conf import settings from django.core.cache import cache import urllib2, urllib import django.utils.simplejson as json from django.template import defaultfilters
fqlurl = 'https://api.Facebook.com/method/fql.query' cacheexpires = getattr(settings, 'CACHE_EXPIRES', 30)
def getfqlresult(fql):
cachename = 'fbgallerycache' + defaultfilters.slugify(fql)
data = None
if cacheexpires > 0:
data = cache.get(cachename)
if data == None:
options = {
'query':fql,
'format':'json',
}
f = urllib2.urlopen(urllib2.Request(fqlurl, urllib.urlencode(options)))
response = f.read()
f.close()
data = json.loads(response)
if cacheexpires > 0:
cache.set(cachename, data, cacheexpires*60)
return data
def displayalbum(albumid): """Display a Facebook album
First check that the album id belongs to the page id specified
"""
fb_id = settings.FB_PAGE_ID
fql = "select aid, name from album where owner=%s and aid='%s'" % (fb_id, album_id)
valid_album = get_fql_result(fql)
if valid_album:
fql = "select pid, src, src_small, src_big, caption from photo where aid = '%s' order by created desc" % album_id
album = get_fql_result(fql)
#album_detail = [item for item in valid_album]
return album
I asked user to enter the album ID and name, then rendered the album using the plugin here:
```python cms_plugins.py
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import ugettext_lazy as _
from Facebook import display_album
from models import FacebookGallery
class FacebookGalleryPlugin(CMSPluginBase):
model = FacebookGallery
name = _("Facebook Album Gallery")
render_template = "cmsplugin_fbgallery/album.html"
def render(self, context, instance, placeholder):
album = display_album(instance.album_id)
context.update({
'object': instance,
'album': album,
})
return context
plugin_pool.register_plugin(FacebookGalleryPlugin)
You could choose whatever template you want. It's entirely upto you.
Here is the image of this plugin live in action:
The plugin is open sourced here: cmsplugin-fbgallery . Feel free to contribute and ask questions.


{% extends "base.html" %} {% load endless %} {% block main %}
You are currently following {{profile_user.get_profile.display_name}}
{% csrf_token %} {% else %} {% csrf_token %} {% endif %} {% else %}You need to log in to follow this user
{% endif %} {% else %}This is your pofile! Visit the profile of another user to follow them.
{% endif %} Recent comments: {% paginate num_comments comments %} {% for comment in comments %}
You didn't write any comments --- you should, it's fun!
{% endfor %} {% show_pages %} {% endblock %}


As a Microbiome consulting boutique, we offer a completely personalized and customized service. With your domain knowledge and our expertise in the field of Microbiome, together we turn your questions into values
Get Started!Put our elite resources in conversation with your top scientists. We provide experimental design and analysis roadmap to reach your biological question within your business objectives, so that together we discover more.
Use the state-of-the-art computational techniques we cut through the noise and identify microbial trends, characterize and predict its function.
Using your internal and external data integrated into the analysis, we empower your scientists to leverage data to make analytics-driven, data-based decisions for future studies.
There is a lot on microbiome research, we love the science more than the contract.
Ready to start your next project ? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
+45 60 85 62 87


prtKernelDirect Direct kernel
kernelObj = prtKernelDirect Generates a prtKernelDirect object implementing a
direct kernel function. Kernel objects are widely used in several
prt classifiers, such as prtClassRvm and prtClassSvm. Direct kernels
implement the following function for 1 x N vectors x1 and x2:
k(x1,x2) = x2;
Direct kernel functions can be used sparse machine learning contexts
to perform sparse linear feature selection.
prtKernelHyperbolicTangent objects inherit the TRAIN, RUN, and AND
methods from prtKernel.
% Example:
ds = prtDataGenUnimodal; % Load a data set
k1 = prtKernelDirect; % Create a prtKernelDirect object
k1 = k1.train(ds); % Train
g1 = k1.run(ds); % Run
% Plot the results
imagesc(g1.getObservations);


DUMB AND DUMBER A film review by Scott Renshaw Copyright 1995 Scott Renshaw
Starring: Jim Carrey, Jeff Daniels, Lauren Holly. Screenplay: Peter Farrelly, Bennett Yulin and Bobby Farrelly. Director: Peter Farrelly.
1994 at the movies had many stories, but none may be as unlikely as the emergence of Jim Carrey as one of the biggest box office draws in the country. The critically savaged ACE VENTURA: PET DETECTIVE made over $70 million, and THE MASK topped $100 million. I enjoyed both films on their own merits because they were made by directors who had the good sense to get out of the way and let Carrey do what he does best: be a walking cartoon. DUMB AND DUMBER is the kind of movie for which "sophomoric" would be a compliment, but it could have worked with Carrey's unique gifts at center stage. Instead, it's just plain stupid, and about as badly put together a movie as I saw all year.
 When he sees Mary leave a briefcase at the terminal, Lloyd decides that he must return it to her personally, even if it means driving from Providence, Rhode Island to Aspen, Colorado to do it.  What neither one knows is that the briefcase contains a ransom drop, and that the kidnappers are tailing them to get the money back.
We've all seen comedies where every funny moment was already in the previews, but DUMB AND DUMBER falls into an entirely new category. Not only is the preview funnier than the movie, but it contains different takes of the same scene than ended up in the final product, and in every case the take that was used in the preview was funnier. Among these are a scene where Carrey flips out an open jetway onto the tarmac, and one where Carrey and Daniels try to recall Mary's last name by checking the briefcase. In another scene, where Carrey rear-ends another car with his limo and ends up struggling with the air bag, the shot is chopped short before the air bag is even fully inflated. It looks like director Peter Farrelly turned all his raw footage over to a trailer production company, then promptly proved that he should have given them the final cut on his movie. Farrelly, quite simply put, does not appear to have the slightest clue about comic timing.
Jim Carrey knows plenty about comic timing, but he is really adrift here, particularly in the first hour. I have this feeling that somewhere on a cutting room floor is a very funny performance, but it's not on the screen in DUMB AND DUMBER. There are a few moments when Carrey gets to show off his talents, particularly an extended fantasy sequence which includes an exaggerated kung fu battle in a restaurant, but director Farrelly (working from a script co-written with brother Bobby and Bennett Yellin) appears determined not to let DUMB AND DUMBER become a Jim Carrey showcase. He wants a buddy picture, and it doesn't work because the buddy is played by Jeff Daniels. And while Daniels is a solid if unspectacular dramatic actor, he is way out of is element here. You've got to respect him for trying a part so far from his image, but only for brief flashes is he a convincing moron.
Once the twosome gets to Aspen, there are more laughs by far. The spectacle of Carrey and Daniels in gloriously hideous tuxedos, bright orange and powder blue respectively, is enough to prompt a laugh, and a hilariously gross scene finds Daniels suffering the effects of a massive dose of laxative. But for the majority of its running time, DUMB AND DUMBER cranks out gags so predictable I was minutes ahead of the punch lines. To be fair, I don't think I'm in the target audience for DUMB AND DUMBER; the fifty or so middle-schoolers at my showing laughed loud and often.
On the Renshaw scale of 0 to 10 urine jokes: 3.
-- Scott Renshaw Stanford University Office of the General Counsel
.
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


Diploma in Computer Engineering
Diploma in Computer Engineering course is all about the core concepts of computer science that includes the subjects such as networking, operation system, database, mobile computing etc.
These graduates are also applicable to other higher degree programs. Candidates also have broad choice of job opportunities in the public and private sectors. This include jobs in computer sale, installation and support for other business or set up own IT business and work with clients.


--- layout: post title: Scala to extract XML from SOAPUI-project file date: 2014-03-21 09:35:37.000000000 +01:00 type: post published: true status: publish categories: - Technology tags: - scala - xml meta: _wpas_skip_6463885: '1' _wpas_skip_6463889: '1' _edit_last: '2' _wpas_done_all: '1' _responsive_layout: default _wpas_skip_6463877: '1' _wp_old_slug: '627' _jetpack_related_posts_cache: a:0:{} author: login: admin email<EMAIL_ADDRESS>display_name: gerbrand first_name: Gerbrand last_name: van Dieijen ---
I've created a small scala-script to extract messages from SOAPUI. Writing this was surprisingly easy, and certainly faster and more pleasant then processing the SOAPUI manually.


contactVictoria Clark021 64<EMAIL_ADDRESS>about
read more.
work
UX/UI, graphic design
html, CSS, JavaScript, MVC, PHP, OOP, design
graphic design, brand
graphic design, offset print
graphic design, advertising


I am a graduate of George Mason University with a B.S. in Geography and a double minor in Geographic Information systems (GIS) and Intelligence Analysis. I have a strong passion for analyzing/displaying spatial data, as well as applying data analysis techniques to different problem areas. I am also very interested in the analysis and assessment of ongoing geopolitical trends.
This portfolio displays the various tools/skills I have in GIS and data analysis. Furthermore, several class/personal projects are included to demonstrate my capabilities in analyzing and displaying spatial data.
Regularly remote volunteer to digitize buildings, farmland and roads on various collaborative projects to aid with disaster and humanitarian relief.
Mason Mappers is a humanitarian mapping society club at George Mason University.
- Participated in project to improve GMU’s campus map by critiquing the current map and examining shapefiles to determine accuracy.
- Helped create outreach map for the Geography and Geoinformation Science Department at GMU by geocoding Excel list of GIS private sector employers using ArcGIS and assisting with final cartographic work.
- Helped create point shapefiles of fire hydrants located throughout GMU’s campus through field surveying with Trimble GPS.
- Volunteered in Mapathon session using Humanitarian OpenStreetMap to help digitize buildings, farmland and roads in the Philippines.
- Served as Vice President of Mason Mappers for the Fall 2019 Semester where I helped with duties such as presenting the meeting agendas and assisting with project planning sessions.
Provided customer support for health-related products. Worked as cashier and helped with restocking and cleaning of store’s facilities.
Started a dog boarding/walking service to provide 24-hour care for dogs.
Took orders, operated the cash register, and dealt with customer concerns. Assisted with pizza-making and keeping the store clean.
GPA: 3.58/4.0
Selected Geography/Analysis Topics: Geographic Information Systems (GIS), Digital Cartography, Air Photography Interpretation, Satellite Image Analysis, Web Mapping, Data Science/Analytics, Quantitative Methods in Spatial Analysis, Regional Geography (China, Africa, Middle East)
Selected Intelligence Analysis Topics: Intelligence Analysis Techniques, Homeland Security, Global Affairs
This web mapping application was my final project for GGS 462 (Web Mapping). This involved the use of layer functionalities such as dropdown boxes and click functionality to create an interactive map of crime incidents from 2017. Users can narrow crimes by offenses and click on points to display date of occurrence. The application retrieves crime data dynamically from a CartoDB database using an SQL API call.
View Live Demo      View Final PaperThis Esri Story Map was my final project for GGS 411 (Advanced Digital Cartography). It displays several cartographic projects that I created which visualize various aspects of the resource extraction industry in West Virginia. It is highly recommended that this Esri Story map be viewed in either Google Chrome or Mozilla Firefox.
View Live Demo     This group research project for GGS 463 (Applied Geographic Information Systems) was done by me, Yolani Martin, Adam Black, and Steven Alvarez. The objective was to test our hypothesis that tourism had a stronger effect on Utah’s economy as opposed to mining activities. This was done through producing reference maps, Getis-Ord and Multiple Regression analysis. The finished project was presented at GIS Day 2018 at George Mason University.
View ProjectThis was my final project for GGS 310 (Intro to Digital Cartography). This involved creating a map that displayed the correlation between household poverty and graduation rates in each neighborhood of Baltimore City, Maryland. A scatterplot was also created for this project, which demonstrated a slight negative correlation between the two variables.
View ProjectThis was my final project for GGS 412 (Air Photography Interpretation). I analyzed various images (Aerial Photography, Landsat, LiDAR, Google Earth) of McLean, Virginia that were taken over the past few decades. I used both photo-interpretation and classification (Spectral Angle Mapping) to separate urban centers in the images. This was done by using ENVI.
View ProjectThis side project was made by conducting a Getis-Ord hotspot analysis of obesity rates in each county of Illinois. Based on the results that were produced, there were major cold spots around the Chicago Metropolitan Area, indicating low rates of obesity in that region.
View Project
Ian Helm
<EMAIL_ADDRESS>(703) 600-9460


Patterns of relationships that connect individuals, institutions, or objects (or leave them unconnected)
Examples: family ties—vertical and horizontal; patronage—who pays whom for what services; shared membership in organizations; paterns of contracts among companies.
Main elements
Node (vertex, point, item)—person, organization, country, document, etc.
Edge (tie, link, line)—relationship, friendship, common attendance, co-occurance, kinship, membership
Directed and Undirected links: marriage—undirected; patronage—directed.
Graphs (Sociograms) / Matrices (pl. of matrix)
Graph properties
Density: number of edges / number of edges in a complete graph (example of complete and incomplete graph)
Centrality measures
Degree: Proportional to the number of other nodes to which a node is links – Number of links divided by (n-1). For example: it may measure exposure to what is flowing through the network (opportunity to influence directly; in-degree and out-degree).
Closeness – The sum of shortest paths to all other points in the graph. Divide by (n-1), then invert. For example: it may measure how quickly information can travel.
Betweenness – The extent to which a particular point lies ‘between’ other points in the graph; how many shortest paths (geodesics) is it on? A measure of brokerage or gatekeeping (How often a node lies on the shortest path between two other nodes)
Eigenvector – A weighted measure of centrality that takes into account the centrality of other nodes to which a node is connected. That is, being connect with other central nodes increases centrality. E.g., secretary of powerful person. Google’s page rank algorithm is based on a variation of this approach.
Modularity—interconnected clusters.
In Class
working through the worksheet.
Homework
Finish with the worksheet; email generated notebook.


First Name :
Last Name :
Reg No :
Date of birth:
Gender : Male Female
Favorite Subjects: English Personal Coaching Web Development Programming
Feedback: