No, this is not about the 2016 U.S. election. Not just that, anyway.
First, I need to explain a weird glitch in our voting system. Let's say there's two candidates, Steven Square and Tracy Triangle , on a couple political axes. (for example, “left vs. right” and “globalist vs. nationalist”) Let's also say there's a voter who simply votes for whoever's political position is closest. What would that look like?
It's a tough choice. Triangle's got some sharp points, but Square understands more sides! Alas, in the end, you can only vote for one.
Of course, there's more than just one voter in an election. Let's simulate what an election would look like with 100+ voters.
Now let's consider a different election. Say Tracy Triangle is already beating Steven Square in the polls, and a third candidate, Henry Hexagon , sees this. (Hexagon's supporters like how he tackles problems from more angles) Inspired by her success, Hexagon swoops in and takes a political position close to Triangle's.
Now, you'd think giving the voters more of what they want should result in a better choice, or at least, not result in a worse choice, right? Well...
That's right. Steven Square, our least popular candidate, now wins! This is because when you have two good candidates, they "steal" votes from each other, letting a bad third candidate win.
This is called the spoiler effect. The most famous real-world example of this was in 2000, when Ralph Nader "stole" votes from Al Gore, letting George Bush win. And though the spoiler effect didn't play a big role in 2016, its impact could still be felt.
In the Republican primary, one anti-establishment nominee, Trump, ran against sixteen GOP establishment nominees, who all "stole" votes from each other, letting Trump grab the nomination, easily. As for the Democratic primary, fear of splitting the vote prevented Sanders from running as independent. And to cap it all off, there was always the worry that other candidates like Johnson, Stein, and McMullin could spoil the election.
But again, this is not about the 2016 U.S. election.
This is about designing a democracy that people can trust.
Despite so much hoopla around the 2016 election, a full half of Americans did not vote. Even of those who voted for Clinton/Trump, 20% of them said their candidates were untrustworthy, and voted for them anyway. And around the world, people's trust in their governments – or the trustworthiness of their governments – has never been lower. It's more than America at stake. It's every democracy in the world.
...so yeah, no pressure.
Rebuilding trust is a complex problem with no easy solutions. But I think there is an easy first step. It's a step that could get rid of our “lesser of two evils” problem, and give us citizens more choices, better choices. And yet, it won't be as daunting as fixing campaign finance or gerrymandering or lack of proportional representation, no, it'd just require changing a piece of paper, and how we count those pieces of paper.
This idea is not the most important issue. It won't solve everything. But as a first step? It'd give us the biggest bang-for-buck.
Let's talk about how to build a better ballot.
Now, some of you may have a couple objections!
First objection. Why would the people in power change the voting system that got them in power? Well, the spoiler effect has cost both Dems & Reps a major election before. Getting rid of that glitch would be a win-win for major and minor parties! Also, voting reform is already picking up steam. Just last month, Maine adopted Instant Runoff, and
Justin Trudeau, Canada's Cutie-In-Chief, will be moving his nation towards a better voting system in 2017.
(UPDATE: ha ha nope)
Second objection. Didn't some guy once prove that all voting systems will be unfair? Not quite. You're thinking of the infamous Impossibility Theorem by Kenneth Arrow, the mathematician in the 1950's who founded the whole study of voting systems.
Two answers to that: 1) some voting systems can still be more fair than others, even if none are perfect. And 2) Kenneth Arrow's proof doesn't apply to all voting systems! That's a misconception. It only applies to voting systems where you rank candidates. Later, we'll see some voting systems where you don't rank candidates – along with other alternatives to our current, glitchy voting system.
But first, let's take a closer look at the voting system we do have:
FIRST PAST THE POST (FPTP)
How To Count: Simply add up the votes. Whoever gets the most votes, wins.
Sounds logical enough. But as you saw earlier, it can lead to a weird glitch, where having two good candidates can make the election go to a third bad candidate. This is why some people vote "strategically", voting not for their actual honest favorite, but voting for the lesser of two evils. And strategic voting is fine – but! – ask yourself this: how can we expect our elected officials to be honest, when our voting system itself doesn't let us be honest?
So, to fix the spoiler effect, other voting systems have been suggested. Such as...
RANKED VOTING
How To Count: There's actually several different ways to count these kinds of ballots. Here, I'll just show you the top three:
Instant Runoff Voting (IRV):
This one is the most popular alternative to First Past The Post (FPTP).
Australia and Ireland use it in national elections.
San Francisco, Minneapolis, and Portland, Maine use it in local elections.
And Justin Trudeau, Prime Man-ister of Canada,
is leaning towards Instant Runoff, too. (UPDATE: nevermind)
(Note: Instant Runoff Voting is also called “Ranked Choice Voting”, even though there's other ways to count ranked ballots. IRV is also often just called “Alternative Vote”, even though there's a flippin' dozen other voting methods. Such selfish naming! Sheesh!)
IRV is a bit more complicated than FPTP, but here's how it works:
- Count up the #1 choices.
- If someone has more than 50%, they win! END.
- If not, eliminate the last-place loser.
- Run a new "round" of the election, minus that loser.
- Repeat until someone has 50% or more.
If that seems like too much, there is a much simpler method of counting ranked ballots...
Borda Count: Simply add up the rank numbers. Like in golf, whoever has the lowest score, wins. Borda count is used in Slovenia and a bunch of tiny islands in Micronesia.
But if you want an even nerdier way of voting, you could try...
Condorcet Method: Run a simulated "election" between every pair of candidates, using the info on voters' ballots. IF there's a candidate who beats all other candidates in one-on-one "elections", that candidate wins the real election. However, that's a very big "IF". (as we'll see later...) The upside is, when this method does pick a winner, it's always the “theoretically best” candidate! Currently, this method is not being used by any governments, and is only being used by neeerrrrrds.
So, those are the voting systems where you rank candidates – the ones that Kenneth Arrow proved would always be unfair in some big way! But what of voting systems where you don't rank candidates? They're less well-known, but now, at least you'll know 'em:
APPROVAL VOTING
How To Count: Simply add up the approvals. Whoever gets the most approvals, wins.
Wait, picking more than one candidate? Doesn't that violate the one-vote-per-person rule? I hear you ask. Well, your vote was never a single check mark, your vote was always the whole ballot. And on this ballot, you get to honestly express all the candidates you approve of, not just your favorite or strategic second-favorite.
But if you want a more expressive voting system, why not try...
SCORE VOTING
How To Count: Simply add up the ratings. Whoever has the highest average score, wins. Kind of like Amazon reviews, but with democracy. (Note: this is not a ranking system, because two candidates can have the same score.)
So there's our top 6 voting systems: the one we use, and five popular alternatives. But how can we tell if these alternatives are actually better? What glitches might they have? And which voting system – if any – can we say is "the best"?
Like before, let's simulate 'em.
Remember that simulation of the spoiler effect from earlier? Well, here it is again, but now you can switch between the six different voting systems! Here's the "spoiler effect" simulation again. See how different voting systems deal with potential spoilers:
As you could see, every voting system except First Past The Post is immune to the spoiler effect. So, that's it, right? Ding dong, the glitch is dead? Just pick any other alternative voting system and be done with it?
But, alas. In getting rid of one glitch, some of these alternative voting systems create other glitches – for some, the cure is even worse than the disease.
For example, here's a sim of Instant Runoff Voting. In the beginning, Tracy Triangle is already winning, and you're going to move the voters even closer to her. Obviously, if a candidate is already winning an election, and becomes even more popular, they should still win afterwards, right?
You can probably guess where this is going...
What happened? Originally, is eliminated in the first round, so goes against a weaker , and wins. But when you move the voters closer to , the loser changes! So now, is eliminated in the first round, which means goes against a stronger , and loses.
Under Instant Runoff, it's possible for a winning candidate to lose, by becoming more popular. What a glitch!
How often does this actually happen in real life? There's a couple confirmed examples, and mathematicians estimate this glitch would happen about 14.5% of the time. But sadly, we can't know for sure, because governments usually don't release enough info about the ballots to reconstruct an IRV election & double-check the results.
So, not only is Instant Runoff's glitch as undemocratic as First Past The Post's glitch, it's possibly worse – because while FPTP's counting method is simple and transparent, Instant Runoff is anything but. And a lack of transparency is an even deadlier sin nowadays, when our trust in government is already so low.
(But wait! We'll be talking about the risk of strategic voting later. Can IRV make a comeback? Stay tuned...)
So much for the most popular alternative. What about the second-most popular, Borda Count? In this next simulation, you move a losing candidate closer to another losing candidate. Under FPTP, the spoiler effect would split their votes, making both of them lose even more. But watch what happens under Borda Count instead...
Yup. Borda Count has a reverse spoiler effect. Instead of one good candidate hurting another good candidate by moving closer, with Borda Count, one bad candidate can help another bad candidate by moving closer.
Here's what happened: at first, some voters ranked >>, but when you moved closer to , those voters then swung to ranking >>, hurting enough to make her lose to .
Still, Borda's not the worst, and at least it's simpler and more transparent than Instant Runoff. But how does Condorcet Method compare? When Condorcet picks a winner, it's always the “theoretically best” winner – but that's when it picks a winner.
So far, I've just been simulating voters as a single group, with a center and some spread. But seeing how polarized politics is nowadays, one could imagine several groups of voters, with totally different centers. Now, Condorcet tries to pick the candidate who beats all other candidates in one-on-one races. But with polarized voters, you could end up with a Rock-Paper-Scissors-like loop, where a majority of voters prefer A to B, B to C, and C to A.
In certain situations, the other voting systems just had glitches. In Condorcet, the voting system crashes. Try it out for yourself:
Now, in actual practice – not that any government actually uses this voting system – when Condorcet fails to find a winner, the election falls back to another method like Borda Count. But if you do that, it'll get the glitches of its backup method. So it goes.
First Past The Post. Instant Runoff. Borda Count. Condorcet Method. Those were all the voting systems that use ranking – the ones that our math boy, Kenneth Arrow, proved would always be unfair or glitchy in some big way. What about the voting systems that don't use ranking, like Approval & Score voting? Well...
...I couldn't come up with a simulation to show their flaws. Because, in theory, they don't have many big flaws.
But that's a really, really, really big “in theory!” It may be that, in practice, strategic voters use Approval & Score Voting exactly like First Past The Post – only approving or giving 5 stars to their top candidate, and disapproving or giving 1 star to all others, even if they actually like the others. (See FairVote's critique of Approval Voting, and defense of Instant Runoff)
Then again, even if Approval & Score Voting disincentivize you from expressing an honest second choice, FPTP and IRV punish you for expressing an honest first choice. Besides, if Approval can be "gamed", then that goes double for IRV. (See this mathematician's critique of FairVote's critique, and defense of Approval) So, in the end... [confused shrugging sounds]
We're gonna need a hecka lot more simulations.
So, below is a chart (source), showing the results of 2.2 million simulations. A huge variety of scenarios were tested. All-honest voters. All-strategic voters. Half-honest, half-strategic. Voters who know each others' preferences. Voters who don't know each others' preferences. Voters who only sorta-know each others' preferences. And so on. You can tell that a real mathematician made this chart, because it's makin' my eyes bleed:
Each voting method's results is shown as an ugly-blue bar. The further to the right a voting method is, the more it "maximizes happiness" for the voters. The higher up a voting method is, the simpler it is. And a bar's width shows the range of a voting system's performance, given different ratios of honest-to-strategic voters.
The first thing to note is that strategic voting makes voters less happy than honest voting – in all voting systems! I was very surprised when I first learnt that. (But it makes sense, if you think about, say, a crowded room full of people trying to talk. Any one person can be "strategic" by shouting over others, but if everybody is "strategic", nobody can hear anybody, and all you're left with is sore throats and sad peeps.)
The other thing to note is which voting systems make people the happiest. If you have mostly honest voters, Score Voting is best. (with Borda Count a close second) And if you have mostly strategic voters, then both Approval & Score Voting are best. (and with strategic voters, IRV does just as bad as FPTP)
However, those are still computer simulations. How would these different voting systems play out in real life? Well, we can't just get the DeLorean up to 88, go back in time before the 2016 election, change the voting system, and see what would happen...
...or can we?!
No, no we can't. But last month, researchers did something close enough. A polling study asked 1,000+ U.S. registered voters to rank & rate the six presidential candidates, to simulate who would've won the (popular) vote under different voting systems! (But keep in mind that if we had a different voting system in the primaries, we'd have different candidates entirely. So take this study with a pillar of salt.) The results: under Instant Runoff, Condorcet, and Approval Voting, the winner would've been Hillary Clinton. But under Score Voting, the winner would've been Donald Trump. And under Borda Count, the winner would've been... uh... Gary Johnson?
?????
Anyway.
Before we wrap all this up – remember Kenneth Arrow? The infamous mathematician who founded the study of voting systems in the 1950's? Well, in an interview 60 years later, Kenneth Arrow had this to say, about which voting method he likes most now:
“Well, I’m a little inclined to think that score systems [like Approval & Score Voting] where you categorize in maybe three or four classes [so, giving a score out of 3 or 4, not 10 or 100] probably – in spite of what I said about manipulation [strategic voting] – is probably the best.”
That's as strong an endorsement as you'll ever squeeze out of a math-head.
ahem
DEAR JUSTIN “TOTES ADORBZ” TRUDEAU
(UPDATE: okay, dear everyone else around the world pushing for voting reform)
Thank you for taking this small but powerful first step! We've known for way too long that our current voting system – First Past The Post – forces voters to be dishonest, creates a polarizing "lesser of two evils" scenario, and screws over both major and minor candidates.
However, you're probably only considering Instant Runoff Voting. Which, to be fair, is better than than First Past The Post, and if it's a choice between just those two, definitely go for Instant Runoff. But IRV still has a glitch as undemocratic as FPTP's – and worse, in our age of distrust, Instant Runoff's lack of transparency may be deadly for democracy. Yes, sure, IRV was the best voting system we could come up with... in 1870. And since then, IRV has dominated the conversation, unwittingly framing the whole voting reform debate as “simple vs expressive”.
But that is a false choice. Thanks to computer simulations, real-life studies, and a bunch of math nerds, we now know of voting systems that are both simple and expressive.
Personally, I'm leaning towards Score Voting. It's simple, very expressive, and already familiar to anyone who's seen Amazon's or Yelp's “five star” review system. But that's just my humble opinion. You could also make the case that Approval Voting is more practical, because it's even simpler, and would already work with existing voting machines! All you'd need to do is change the instructions from “vote for the candidate you like” to “vote for the candidates you like”.
Or maybe I'm completely wrong about Instant Runoff Voting, and it's actually pretty okay. Heck, you could even go for Borda Count, as a hilarious prank.
I won't claim to know which voting system is The Best™. I shall keep open this discussion, just as long as we have this discussion. For three reasons:
1) If I claim one voting system is the best, end of story, all the social-choice-theory nerds will be on my butt, yelling, BUT NICKY WHAT ABOUT QUADRATIC VOTE BUYING
2) We still need to test these alternative voting systems with actual experience, not just annoying internet flame wars between IRV advocates and Score Voting advocates theory. All the more reason for small towns, local states, and nations like Canada to be pioneers, to bravely experiment!
3) Keeping the discussion going is what democracy is.
A recent study found that in many Western countries – from Sweden to Australia to the United States – support for democracy has plummeted over the last several generations. In 2011, almost a full quarter of young Americans said democracy was a "bad" or "very bad" way to run a country. And today, one in six Americans say it'd be "good" or "very good" to be under actual military rule.
Our age of distrust goes a lot deeper than the technical details of a voting system. There isn't gonna be One Weird Trick to fix democracy. But as a first step, a low-hanging fruit, a way to show that, yes, you will make the system respond to the needs and wants and pains and hopes and dreams of your people – well, fixing our voting system's a good start as any.
Because, this isn't just about trying to build a better ballot.
This is about trying to build a better democracy.
<3,
~ Nicky Case
P.S: Since you've read & played this all the way, here, have a bonus! A “Sandbox Mode” of the election simulator, with up to five candidates. You can also save & share your very own custom election scenario with others. Happy simulating!
SANDBOX MODE! (link to just this)
One hope for Sandbox Mode is that readers can debate with me and each other using this tool! Not just telling me I'm wrong, but showing me I'm wrong. For example – here's a model I made in Sandbox Mode, showing an interesting argument against Approval & Score Voting. Granted, this tool is very limited – it doesn't handle strategic voting or imperfect information – but I think it's a start, and may help improve our Democratic Discourse™
For citizens: Remember, think global, but act local. Change from the bottom-up lasts longer. If you're in the US, find your representative and badger 'em. If you're in Canada, find your Member of Parliament and badger 'em. Also if you're Canadian, fill out the MyDemocracy.ca survey before the end of 2016! This survey has a few questions specifically about voting reform! (sadly, the question is still framed as "simple vs expressive". that is why i've been so gung-ho about Approval & Score, and maybe a bit too mean towards IRV)
For learners: Watch CGP Grey's Politics in the Animal Kingdom series! It's charming, and covers more ground than I did here – it explains gerrymandering, proportional representation, and more. Also, read Gaming The Vote by William Poundstone. It's a thrilling read, with dramatic human stories of crooks & conmen trying to game our glitchy voting systems – and sometimes, succeeding.
For teachers: This entire "explorable explanation" is public domain, copyright-free, meaning you already have permission to use this freely in your classes! You can even use the Sandbox Mode to create your own material, or as a tool for students to make something on their own.
For coders: This is all open source! So you can get my code on GitHub, and remix it to your heart's content. (sorry in advance for my messy code)
Check out these organizations: Though they may differ on what voting system they like best, they all have a common goal: to reform the one we have. Electology likes Approval Voting most, FairVote likes Instant Runoff most, and RangeVoting.org likes Score Voting most.
This "explorable explanation" was directly inspired by these two projects:
Voting Sim Visualization by Ka-Ping Yee (2005) was a real eye-opener. (hat tip to Bret Victor for sharing it with me!) I've heard lots of written debate over FPTP vs IRV vs Condorcet vs Approval vs blah blah blah, but I'd never seen their difference visualized so clearly! It gave me instant insight. And it actually changed my mind – I used to think IRV was pretty good, but after seeing IRV's messiness (as shown above), I realized it's actually kinda stinky cheese.
However, even this brilliant visualization was still too abstract. And since it wasn't interactive, I couldn't test the many questions & scenarios that came to mind. So that's why my second inspiration was...
Up and Down the Ladder of Abstraction by Bret Victor (2011). It's one of the web's earliest "explorable explanations" (also a term Bret coined) and it is gorgeous. Obviously, I borrowed the format of mixing words & "games" to explain things, but I also followed the formula of starting concrete – one voter – then moving up to the more abstract – a whole election.
You can learn more about Explorable Explanations here.
And last but not least, thank you to all the math & policy nerds who spent way too much time thinking about all this.
Every once in a while, I'll fall into an endless rabbithole – like this one on voting systems – and slowly crawl my way out, bloodied and bruised, with a new interactive thing for you! If you wanna find out when I finally get around to making new shtuff, you can...
And if you wanna see more of my past projects, check out my wobsite!
See you again soon! Have a Happy New Year 2017, or try to, anyway.
Alex Jaffe
Brian Bucklew
Chris Walker
Christine Zhang
Dan Zajdband
Daniel Cook
Droqen
Jason Grinblat
Lisa Charlotte Rost
Martin Shelton
Patrick Dubroy
Pietro Passarelli
Sandhya Kambhampati
Tanya Short


s6
Software
skarnet.org
Service directories
A service directory is a directory containing all the information
related to a service, i.e. a long-running process maintained and
supervised by s6-supervise.
(Strictly speaking, a service is not always equivalent to a
long-running process. Things like Ethernet interfaces fit the definition
of services one may want to supervise; however, s6 does not
provide service supervision; it provides process supervision,
and it is impractical to use the s6 architecture as is to supervise
services that are not equivalent to one long-running process. However,
we still use the terms service and service directory
for historical and compatibility reasons.)
Contents
A service directory foo may contain the following elements:
Stability
With the evolution of s6, it is possible that
s6-supervise configuration uses more and more
files in the service directory. The
notification-fd and timeout-finish files, for
instance, have appeared in 2015; users who previously had files
with the same name had to change them. There is no guarantee that
s6-supervise will not use additional
names in the service directory in the same fashion in the future.
There is, however, a guarantee that
s6-supervise will never touch
subdirectories named data or env. So if you
need to store user information in the service directory with
the guarantee that it will never be mistaken for a configuration
file, no matter the version of s6, you should store that information in
the data or env subdirectories of the service
directory.
Where should I store my service directories?
Service directories describe the way services are launched. Once they are
designed, they have little reason to change on a given machine. They can
theoretically reside on a read-only filesystem - for instance, the root
filesystem, to avoid problems with mounting failures.
However, two subdirectories - namely supervise and event -
of every service directory need to be writable. So it has to be a bit more
complex. Here are a few possibilities.
- The laziest option: you're not using s6-svscan
as process 1, you're only using it to start a collection of services, and
your booting process is already handled by another init system. Then you can
just store your service directories and your scan
directory on some read-write filesystem such as /var; and you
tell your init system to launch (and, if possible, maintain) s6-svscan on
the scan directory after that filesystem is mounted.
- The almost-as-lazy option: just have the service directories on the
root filesystem. Then your service directory collection is for instance in
/etc/services and you have a /service
scan directory containing symlinks to that
collection. This is the easy setup, not requiring an external init system
to mount your filesystems - however, it requires your root filesystem to be
read-write, which is unacceptable if you are concerned with reliability - if
you are, for instance, designing an embedded platform.
- Some people like to have
their service directories in a read-only filesystem, with supervise
symlinks pointing to various places in writable filesystems. This setup looks
a bit complex to me: it requires careful handling of the writable
filesystems, with not much room for error if the directory structure does not
match the symlinks (which are then dangling). But it works.
- Service directories are usually small; most daemons store their
information elsewhere. Even a complete set of service directories often
amounts to less than a megabyte of data - sometimes much less. Knowing this,
it makes sense to have an image of your service directories in the
(possibly read-only) root filesystem, and copy it all
to a scan directory located on a RAM filesystem that is mounted at boot time.
This is the setup I recommend, and the one used by the
s6-rc service manager.
It has several advantages:
- Your service directories reside on the root filesystem and are not
modified during the lifetime of the system. If your root filesystem is
read-only and you have a working set of service directories, you have the
guarantee that a reboot will set your system in a working state.
- Every boot system requires an early writeable filesystem, and many
create it in RAM. You can take advantage of this to copy your service
directories early and run s6-svscan early.
- No dangling symlinks or potential problems with unmounted
filesystems: this setup is robust. A simple /bin/cp -a or
tar -x is all it takes to get a working service infrastructure.
- You can make temporary modifications to your service directories
without affecting the main ones, safely stored on the disk. Conversely,
every boot ensures clean service directories - including freshly created
supervise and event subdirectories. No stale files can
make your system unstable.


What languages do you speak?
Right click on the website and select "Inspect Element"
(Discuss and experiement with Dev tools
We use tags to make elements.
There are many types of tags and elements, they make up the entire web page.
There are two main parts to a CSS rule
Selector and Declaration
Also show exmaples of font-family, font-weight, color (trick them), letter-spacing
Property and Value
In the last slide there were several properties and values
CSS chooses the most specific one
Also, rules that you write near the beggining of your CSS are applied to other elements on the page
Let's take a look at an example and see if we can find all of the CSS that has been applied to the HTML
Someone suggest a website!
Time to play a little game! (Basket game!)
We use selectors to target certain elements on the web page
The most basic kind of selector is to target all elements on a page
Notice how you use the same HTML selector, but take away the < >
Well, you would use classes or spans!
A class lets you select a certain chunk of HTML code and change it, (like a whole paragraph!)
A span lets you select one word in a sentence and just change that word.
Here's an example
Look at your HTML file and find a span and a class on the page
Since we know that CSS listens to rules in order, we'll start with some general styles and then do more specific ones later.
In chrome, go to www.colorpicker.com
Which element to target body?
Widths and Heights
Who can explain what a font is?
I'm an example of font!
Pixels - measurment unit, our monitors are measured in pixels
Discuss font family, (backup font)
font-weight
font-size
font-color?
letter-spacing
letter-height
Remember to mention paddingTRBL and maringTRBL
Remember to set pixels, color, and type.
Other than solid, there is also dotted, dashed, and groove
Floats are an important part of CSS that help you align your elements to either the right or the left
What if we want elements to be side by side?
Border-radius allows you to create rounded corners with CSS!
We can even make a circle from a square image
Let's apply some style to the lists


In general, a speaker detector can output (as a function of the input speech) a real number known as the score. The sense of the score is that more positive scores favour the target hypothesis and more negative scores favour the non-target hypothesis. A calibration stage may be added to a speaker detector to map the score to a detection log-likelihood-ratio. The act of designing or optimizing this calibration mapping is also known as calibration.
There are very many ways to do this. The simpler calibration strategies simply define a function from the score to the log-likelihood-ratio. More complex strategies may use, in addition to the score, also other side information. It is also possible to combine calibration and fusion (of several sub-systems) into one stage.
For calibration one can use generative models of the score that explicitly define the log-likelihood-ratios, or one can use discriminative methods to optimize some parametric form, with for example Cllr as optimization objective. Below, we make available some MATLAB code for two such discriminative calibrators. These are just examples. There are many other ways to calibrate.
../../ back to FoCal Toolkit Home.


Big Bang's Taeyang tries out a 'mature' look with a photo app, CL shows sisterly reaction
by beansssOn November 14, Big Bang's Taeyang shared some interesting selcas via his personal Instagram!
In the photos, Taeyang uses a photo app to wear a fake beard and mustache, writing, "Mature Bae". Then, Taeyang's good friend CL soon came across his latest Instagram posts, and couldn't help but react in the most sisterly way!
CL commented, "Ah, this is not okay!!!!!!!!!!!" She added on, "Hurry up and delete it," causing laughter among fans.
What do you think of "Mature Bae"?


Input Data
Previously Infected
Fill in data
Vaccinated
Fill in data
Tested (RAT)
Fill in data
Tested (NAA)
Fill in data
Certificate Generation
Input Data
[[${vaccinatedJson}]]
Other links
Testsuite
Trust List V2 Content (binary)
Trust List V2 Signature (binary)
Sample QR code content, tested
Sample QR code content, vaccinated
Sample QR code content, recovered
Document Signing Certificate
Trust List Signing Certificate


I am a Boise Idaho based Full Stack Designer who is also uniquly skilled at design, prototyping, and developing my own concepts into functional applications.
I am proficient as a Full Stack Developer, especially the Ruby on Rails framework, and currently I am focused on becoming a Full Stack Javascript Developer capable of working end to end on the MEAN/MERN stack.
I have over 10 years experience as a designer and developer, and a lifetime of experience creating and building solutions to solve complex problems with modern and not so modern tools.
In another life I'm an internationally recognized electronic music producer addicted to modular synths, music technology, baseball, and a horrible fly fishing obsession.
Fun Fact: One day I decided to teach myself Objective-C and Xcode just for the fun of it. I created my own iOS app that interacted with a Rails API to stream my original music. I built it and delivered it to the iTunes Store successfully. I decided that day I also needed to roll up my sleaves and build things instead of just make them look pretty, I was hooked on code... again. Here's the code.
UX Design, UI Design, Front End Development, Responsive/Mobile Development, Rapid Prototyping, Concept to Implementation. PSD/Sketch to HTML.


Eos.io dawn v1.0 pre Release
EOS.IO Dawn v1.0 - Pre-Release EOS.IO 破晓 v1.0 - 预览版
本文翻译自：https://github.com/EOSIO/eos/releases
译者：区块链中文字幕组 鱼
翻译时间：2017-09-20
EOS.IO Dawn 1.0 is the first pre-release of the EOS.IO SDK (Software Development Kit).
EOS.IO 破晓 1.0 版是 EOS.IO SDK (软件开发工具包) 的首个预发布版。
The Dawn series of EOS.IO software releases represent early alpha-quality software suitable for use by those looking to get a head start on the EOS.IO ecosystem.
EOS.IO 破晓系列产品代表早期的 alpha 版本，适合那些希望在EOS.IO系统上进行早期开发的人员。
Table of Contents
- Who This Release is For
- Phase 1 Features Included in this Release
-
Phase 2 Features Included in this Release
Phase 2 Features Not Included in this Release
-
Known Open Issues
Benchmarking
- History of Issues
目录
-
使用人员
-
第一阶段的功能
-
第二阶段的功能
不包含在第二阶段的功能
-
存在的问题说明
性能测试
-
问题日志
Who This Release is For 使用人员
Whether you are an experienced C++ developer interested in blockchain or a seasoned blockchain expert you are welcome to experiment with the first pre-release. Some familiarity with Linux/C++ helps.
无论您是对区块链开发感兴趣的有经验的 C++
开发者还是经验丰富的区块链专家，都欢迎你尝试使用我们的第一个预发行版。
熟悉Linux/C++
将有助于您的开发。
If you are unfamiliar with both Linux and C++, please wait for a more end-user friendly release. The current release is for experienced developers.
如果您不熟悉 Linux
和 C++
，请等待我们以后更多的用户友好版本。目前的版本只是为经验丰富的开发人员准备。
Currently EOS.IO has been tested on Ubuntu 16.10 and Mac OS Sierra. EOS.IO nodes should be able to run on a minimum hardware requirement of Core i7 CPU, 16GB RAM.
目前EOS.IO已经在Ubuntu 16.10
和Mac OS Sierra
上测试通过。EOS.IO节点运行的最低硬件要求是Core i7 CPU，16GB RAM
。
Phase 1 Features Included in this Release 第一阶段功能
Per the EOS.IO Roadmap, this release represents Phase 1, the Minimal Viable Testing Environment.
根据EOS.IO路线图，此版本拥有第一阶段的功能，最小的开发测试环境。
Programs
- a standalone node eosd that produces blocks and adds them to the blockchain
- a client eosc that provides a command line interface
- eos-walletd provides a client wallet server
- a utility launcher that creates a local testnet
应用程序
eosd
一个独立运行的节点，具有生成区块并将它们添加到块链的功能eosc
一个提供命令行界面的客户端eos-walletd
提供客户端钱包服务- 一个创建本地测试网络的实用程序启动器
Scripts 脚本
- build.sh to install dependencies and build eos
-
eoscpp for smart contract developers to build contracts
build.sh
用于安装依赖项并自动构建eoseoscpp
为智能合约开发者创建合约
Example Contracts 智能合约示例
native contracts
- native currency
- staking
- producer voting
- code updating
- permission updating
原生智能合约
- 原生虚拟货币
- 对赌合约
- 生产者投票
- 代码更新
- 权限更新
example contracts 示例合约
- dice 底册
- exchange 交换
- simpledb
- social 社会
Documentation
- virtual machine API
- deferred / inline messaging
- user-local storage for contracts
- 3 built in database types
- basic developer documentation
- installation and setup
- build and deployment
- tutorial for trying out blockchain commands
- Doxygen based API reference
文档
- 虚拟机API
- 延迟/内联消息传递
- 用户本地存储的合约
- 3内置数据库类型
- 基本开发人员文档
- 安装和设置
- 构建和部署
- 块链接命令使用教程
- 基于Doxygen的API参考
Phase 2 Features Included in this Release 第2阶段功能
In addition, we are releasing these features of Phase 2 ahead of schedule:
functional distributed networks and first complete rewrite of networking code since BitShares 1.0 virtual machine sandboxing contracts are limited to about 10 ms execution time contracts are rejected if they contain floating point operations contracts are restricted to 64KB of RAM contracts are restricted to reading database tables in scope
此外，我们提前发布了第二阶段的这些功能：
-
分布式网络功能和
首次完成了自BitShares 1.0以来的网络代码重写
- 虚拟机沙箱
- 限制合约的执行时间约为10 ms
- 拒绝包含浮点运算的合约
- 合约内存限制为最大64KB
- 合约限制只能在范围内读取数据库表
Phase 2 Features Not Included in this Release 本版本不包括的第2阶段功能
Not included in this release are these features of Phase 2:
- resource usage and rate limiting (Dawn 1.2)
- genesis snapshot of ERC20 (Dawn 1.1)
- inter blockchain communication (Dawn 2.0)
-
these native contracts:
- producer proxy voting (Dawn 1.2)
- EOS.IO Storage (Dawn 2.0)
- feature upgrade voting (hard forks) . (Dawn 1.2)
- stake delegation (renting) (Dawn 2.0)
本新闻稿不包括第2阶段的这些功能：
- 资源使用率和速率限制（Dawn 1.2）
- ERC20的起源快照（Dawn 1.1）
- 块间通信（Dawn 2.0）
-
这些本地合约：
- 生产者代理投票（Dawn 1.2）
- EOS.IO存储（Dawn 2.0）
- 功能升级投票（硬分叉）。（破晓1.2）
- 利益代理（租赁）（破晓 2.0）
Known Open Issues 存在的问题说明
APIs incomplete API 尚末完整
The APIs are known to be incomplete and are not expected to be stable throughout the 1.x releases.
API尚不完整，预计在整个1.x版本中都不会稳定。
In v1.0 there is no API exposed for Accounts. P2P code may become unstable when stressed due to lack of rate limiting a. work around - keep all producers on a single node
在v1.0中，没有有关帐户功能的API。 由于缺乏速率限制，P2P代码可能会变得不稳定 a.解决问题 - 将所有生产者保留在单个节点上
Benchmarking 性能测试
We have tools that have enabled us to benchmark the code at over 10,000 TPS per second under certain controlled conditions, but it remains too early for anyone to reliably reproduce benchmarks and/or interpret the results for a number of reasons:
you must operate a multi-node network and push transactions to multiple different nodes block production algorithm does not currently time-bound generation which means benchmarks do not properly capture “backlog” or generation bottlenecks the HTTP interface is currently a bottleneck in submitting transactions to the network the signature verification is not yet multi-threaded This release is designed to help developers build their applications. It does not provide a benchmarking toolkit.
我们已经有一些工具，让我们能够在某些受控条件下以每秒超过10,000 TPS的速度对代码进行基准测试，但是基于以下多种原因，能够可靠地再现测试和得到一致的结果仍然为时过早：
- 您必须操作多节点网络并将事务推送到多个不同的节点
- 块生成算法当前没有时间限制，意味着测试不能正确形成“积压”效果或生成瓶颈
- HTTP接口当前是向网络提交事务的瓶颈
- 签名验证功能还没有实现多线程
此版本旨在帮助开发人员构建其应用程序。它不提供基准测试工具包。
Downloads 下载
- Source code (zip)
- Source code (tar.gz)


CCONJ
: coordinating conjunction
This document is a placeholder for the language-specific documentation
for CCONJ
.
Treebank Statistics (UD_Galician)
There are 8 CCONJ
lemmas (0%), 8 CCONJ
types (0%) and 3349 CCONJ
tokens (3%).
Out of 16 observed tags, the rank of CCONJ
is: 13 in number of lemmas, 14 in number of types and 8 in number of tokens.
The 10 most frequent CCONJ
lemmas: e, ou, pero, nin, senón, mais, quer, emporiso
The 10 most frequent CCONJ
types: e, ou, pero, nin, senón, mais, quer, Emporiso
The 10 most frequent ambiguous lemmas: e (CCONJ 2648, NOUN 6), nin (CCONJ 35, ADV 1)
The 10 most frequent ambiguous types: e (CCONJ 2617, NOUN 2), nin (CCONJ 34, ADV 1), mais (CCONJ 15, NOUN 1)
- e
- CCONJ 2617: E agora retomamos a pregunta de o principio : son nova e teño unha idea ¿ e agora que ?
- NOUN 2: Así mesmo , entenderá se acreditado o cumprimento de estas circunstancias cando a Administración pública competente lle ceda a a Administración pública contratante a información que acredite que a empresa cumpre as circunstancias de as alíneas b ) a e ) .
- nin
- CCONJ 34: Non son púlpitos , nin plataformas de predicación , nin axentes didácticos , aínda que ás veces algo teñen de todo isto .
- ADV 1: O noso minifundismo portuario só ten a excepción de a Coruña , que nin chega a selo cando nos centramos en as decisivas cargas xerais ( excluídos graneis líquidos e sólidos ) .
- mais
Morphology
The form / lemma ratio of CCONJ
is 1.000000 (the average of all parts of speech is 1.508250).
The 1st highest number of forms (1) was observed with the lemma “e”: e.
The 2nd highest number of forms (1) was observed with the lemma “emporiso”: Emporiso.
The 3rd highest number of forms (1) was observed with the lemma “mais”: mais.
CCONJ
does not occur with any features.
Relations
CCONJ
nodes are attached to their parents using 4 different relations: gl-dep/cc (3346; 100% instances), gl-dep/case (1; 0% instances), gl-dep/mark (1; 0% instances), gl-dep/obj (1; 0% instances)
Parents of CCONJ
nodes belong to 12 different parts of speech: NOUN (1745; 52% instances), VERB (858; 26% instances), ADJ (472; 14% instances), PROPN (87; 3% instances), NUM (86; 3% instances), ADP (44; 1% instances), DET (28; 1% instances), ADV (15; 0% instances), PRON (10; 0% instances), SCONJ (2; 0% instances), CCONJ (1; 0% instances), PART (1; 0% instances)
3336 (100%) CCONJ
nodes are leaves.
10 (0%) CCONJ
nodes have one child.
2 (0%) CCONJ
nodes have two children.
1 (0%) CCONJ
nodes have three or more children.
The highest child degree of a CCONJ
node is 4.
Children of CCONJ
nodes are attached using 10 different relations: gl-dep/case (4; 22% instances), gl-dep/nmod (3; 17% instances), gl-dep/advmod (2; 11% instances), gl-dep/dep (2; 11% instances), gl-dep/punct (2; 11% instances), gl-dep/amod (1; 6% instances), gl-dep/cc (1; 6% instances), gl-dep/ccomp (1; 6% instances), gl-dep/nummod (1; 6% instances), gl-dep/obj (1; 6% instances)
Children of CCONJ
nodes belong to 9 different parts of speech: ADP (4; 22% instances), ADJ (2; 11% instances), ADV (2; 11% instances), NOUN (2; 11% instances), NUM (2; 11% instances), PART (2; 11% instances), PUNCT (2; 11% instances), CCONJ (1; 6% instances), PRON (1; 6% instances)
Treebank Statistics (UD_Galician-TreeGal)
There are 3 CCONJ
lemmas (0%), 3 CCONJ
types (0%) and 422 CCONJ
tokens (3%).
Out of 16 observed tags, the rank of CCONJ
is: 13 in number of lemmas, 13 in number of types and 10 in number of tokens.
The 10 most frequent CCONJ
lemmas: e, ou, nin
The 10 most frequent CCONJ
types: e, ou, nin
The 10 most frequent ambiguous lemmas:
The 10 most frequent ambiguous types: e (CCONJ 342, AUX 1)
- e
- CCONJ 342: Emilio P. Touriño e Anxo Quintana en unha xuntanza de o pasado verán .
- AUX 1: Emilio Cagiao , secretario de a CIG en Ferrol , di que “ e unha verdadeira vergonza que se estea xogando con os traballadores por non dar lle solución a o que eles chaman “ flecos “ , cando a verdadeira realidade é por que os de Comisións queren prexubilar tamén algúns traballadores de as compañias auxiliares con o pretexto de que poden ter garantía de emprego .
Morphology
The form / lemma ratio of CCONJ
is 1.000000 (the average of all parts of speech is 1.306739).
The 1st highest number of forms (1) was observed with the lemma “e”: e.
The 2nd highest number of forms (1) was observed with the lemma “nin”: nin.
The 3rd highest number of forms (1) was observed with the lemma “ou”: ou.
CCONJ
occurs with 1 features: gl-feat/Polarity (8; 2% instances)
CCONJ
occurs with 1 feature-value pairs: Polarity=Neg
CCONJ
occurs with 2 feature combinations.
The most frequent feature combination is _
(414 tokens).
Examples: e, ou
Relations
CCONJ
nodes are attached to their parents using 5 different relations: gl-dep/cc (404; 96% instances), gl-dep/mark (14; 3% instances), gl-dep/advmod (2; 0% instances), gl-dep/conj (1; 0% instances), gl-dep/flat (1; 0% instances)
Parents of CCONJ
nodes belong to 8 different parts of speech: NOUN (169; 40% instances), VERB (135; 32% instances), ADJ (50; 12% instances), PROPN (37; 9% instances), NUM (11; 3% instances), ADV (10; 2% instances), PRON (7; 2% instances), DET (3; 1% instances)
415 (98%) CCONJ
nodes are leaves.
7 (2%) CCONJ
nodes have one child.
The highest child degree of a CCONJ
node is 1.
Children of CCONJ
nodes are attached using 3 different relations: gl-dep/fixed (5; 71% instances), gl-dep/nmod (1; 14% instances), gl-dep/obl (1; 14% instances)
Children of CCONJ
nodes belong to 3 different parts of speech: ADV (5; 71% instances), NOUN (1; 14% instances), PROPN (1; 14% instances)
CCONJ in other languages: [u]


Product price$399
Expected revenue$69.9
Share this product
Learn more about
This week
This week
This week
This week
From 12-2019 to 10-03-2020 14:23:20
there are over 170 new products waiting for your proposals.

Start a campaign today for Free!
Download our awesome app from the App Store now!


--- layout: post title: Dr. Runner’s World and Mr. Hyde date: 2010-05-18 16:22:30.000000000 +01:00 tags: - quickie - link - Runners World - Christopher McDougall type: post published: true ---
A great post from Christopher McDougall pointing out the wakening Runner's World seems to be showing signs of in the world of barefoot and minimalist running. Lets hope this rubs off on the UK guys - they weren't too favorable in a recent article.


The following changes have been incorporated
into the core 6.5.13 overlay CDs and the Applications CD.
New Software Features - Feature Stream
Only:
Filesystems
-
With 6.5.13, the structure of the CXFS
filesystem configuration has been changed. CXFS filesystems can now be
defined, modified, managed and deleted independently of each other, and
of the cluster definition. (Previously, the CXFS filesystems were
defined as attributes to the cluster definition.) To accommodate
clusters mixing nodes running 6.5.12 and 6.5.13, backwards
compatibility is enforced by default in 6.5.13. For more information,
see the CXFS Software Installation and Administration Guide.
-
The XVM Volume Manager can be used
when layered with the CXFS filesystem. The XVM Volume Manager can also
be used as a standalone volume manager; this requires that you be
running the 6.5.13f release leg of the IRIX operating system. The
6.5.13m leg does not support XVM as a standalone volume manager; this
support will be added in a later release. For information on CXFS
filesystems, see CXFS Software Installation and Administration
Guide.
-
Added support for the use of mirrors
in XVM logical volumes. The mirroring feature of XVM requires the XFS
Volume Plexing software option. Customers running CXFS and who want to
run mirrors will need to purchase this license. XLV customers with
plexing licenses can upgrade to XVM without having to acquire a new
license.
New Software Enhancements - Maintenance
and Feature Stream:
Filesystems
-
The xfsrestore command returns an
incorrect exit code when it encounters a media error; improving this
process lets a system administrator intelligently react to these
conditions.
-
Improved exit codes for the xfsrestore
and xfsdump commands. This lets a system administrator correctly
respond to end-of-media or operator interrupt conditions.
-
Changed the mkfs command to allow you
to specify the size of an XFS allocation group, as an alternative to
specifying the total number of allocation groups. You use the -d
agsize= option for this. For information, see the mkfs_xfs man page and IRIX
Admin: Disks and Filesystems.
-
Changed the mkfs command to allow you
to specify the size of a stripe unit and the size of a stripe width in
bytes or in filesystem blocks, as an alternative to specifying these
values in 512-byte block units. You use the -d su= and the -d sw=
options for this. For information, see the mkfs_xfs man page and IRIX
Admin: Disks and Filesystems.
-
Changed the default size of an XFS
allocation group; larger filesystems will result in larger default
allocation group sizes.
-
The xfsdump and xfsrestore commands
will provide the VSN of the tape that reached its end-of-volume (or the
VSN of a new tape that needs to be mounted) and pass this VSN to the
media_change_alert_program specified with the -c option. This lets
system administrators send commands to a tape jukebox to mount the next
tape.
-
Changed the default size of an XFS
log. The default log size grows with the size of the filesystem up to
the maximum log size, 128 megabytes, on a 1 terabyte filesystem. For
information on the default values of XFS allocation groups and XFS log
sizes, see IRIX Admin: Disks and Filesystems.
Scalability
-
Added cpusetAttachPID() and
cpusetDetachPID() functions to the Cpuset System library. The
cpusetAttachPID() function allows a programmer to attach a currently
running program to an existing cpuset. The cpusetDetachPID() function
allows a programmer to detach a currently running program to an
existing cpuset. Any programmer that uses the cpuset API from Irix
6.5.13, and later, can use these functions. For information, see
chapter 4, "Cpuset System", in the IRIX Admin:
Resource Administration manual and the cpusetAttachPID(3x)and
cpusetDetachPID(3x) man pages.
Networking
Graphics workstations
-
VPro for Octane/OpenGL performance
improvements have been added as follows:
-
Improved X window performance by
25 percent based on x11perf
-
Iproved performance of OpenGL
glCopypixel() function
SGI Origin 3000 servers
-
The following new system controller
features have been implemented for the SGI Origin 3000 server series:
-
Enabled router port security,
which prevents unauthorized enabling of additional router ports on
router bricks in the SGI Origin/Onyx 3400 server series
-
Enabled system serial number
security, which prevents unauthorized changes to the system serial
number
-
Completely redesigned the
graphical interface for the front-panel display of the SGI 3400 and
3800 servers
-
Added hotplug attach feature that
allows Gigabit Ethernet cards to be installed on a running system. A
system administrator can use the pciconfig command to add cards to an
Origin 3000 system and the ifconfig command to configure the cards for
networking. For more information, see the pciconfig and ifconfig man
pages.
-
Added Origin 3000 system partitioning
support in the eoe.sw.partition software package. This feature improves
how system partitioning software is installed, enabled, and disabled.
It also eliminates the need to manually edit configuration files.
System performance
-
Efficiency improvements have been made
to the BTE driver layer to reduce both latency and contention. This
feature is a performance improvement to the existing functionality that
is used internally by the system.
-
The tools that report CPU utilization
have been modified to correct the sampling of %WIO to omit idle time in
line with industry standards. See the sar(1) man page for details.
Licensing software
-
Updated FLEXlm v7.2f support from
GLOBEtrotter Software, Inc. The license manager daemon and the floating
license server are built in V5 compatibility mode. For backwards
compatibility, the client libraries and header files are still based on
FLEXlm v6.1g. For more information, see the FLEXlm End User
Manual and the associated man pages.
Applications CD:
The following products were updated with
bug fixes only:
-
SGI Web Server, based on the Apache
1.3.20
For details on how to change your
default web server and configure and administer the SGI Web Server, see Caveats to Read After You Upgrade.
-
IRIX Interactive Desktop System
Administration
-
Information Searching Execution
Environment
-
InSight Online Doc Viewer 4.4
-
Netscape Communicator 4.77
By default, version 4.77 will install
the new N32 version of the browser. Any existing third-party plugins
for the browser that are O32 will no longer function. Support for the
Macromedia Flash plugin is also included. For more information, see http://home.netscape.com/communicator/v4.5/tour/index.html.
The following products contain
enhancements or new features:
-
WebSetup 3.3 has been updated to
support the SGI web server based on Apache 1.3.20 and an administration
GUI has been added.
-
Impressario 2.9.5 to supports a new
HP6300 Scanner driver and an Epson PPD bug fix.
Other IRIX Software Changes
IRIX OS Bundled Software:
-
Removed Out of Box Experience (OOBE) CD
-
Removed Hot Mix CD
For more information about the bundled
software that is included with this release, see CD Contents and the Bundled Software and
Licenses web page that you can access from the Welcome web page.
System Platform Bundles
No changes have been made to the demonstration software CDs developed
for the specific system platforms.
Freeware CDs:
The following changes have been incorporated for the IRIX 6.5.13
release time frame.
-
New freeware list
-
cyrus-sasl
-
db3
-
junkbuster
-
Updated
-
apache
-
groff
-
mpg123
-
mutt
-
ntp (formerly called fw_xntp)
-
OpenLDAP
-
procmail
-
proftpd
-
sox
-
texinfo
-
vim
-
zsh
-
Omitted
For more information about the freeware
that is included with this release, including a complete list of the
freeware packages, see http://freeware.sgi.com/ .
Documentation
The following manuals have been revised
for the significant new features incorporated into this release. See
the front of each manual for a description of the new features and
major documentation changes covered in these revised manuals.
-
IRIX operating system
-
007-2825-008, IRIX Admin: Disks
and Filesystems
-
007-2859-016, IRIX Admin:
System Configuration and Operation
-
07-3700-008, IRIX Admin:
Resource Administration
-
Filesystems and Volume Managers
-
007-4003-007, XVM Volume
Manager Administrator's Guide
-
007-4016-009, CXFS Software
Installation and Administration Guide
The following manuals were revised in
conjunction with the IRIX 6.5.13 release. See the front of each manual
for a description of the new features and major documentation changes
covered in these revised manuals.
-
Trusted IRIX
-
007-3299-005, Trusted IRIX/CMW
Security Administrator's Guide
-
Origin and Onyx servers
-
007-3430-003, Origin2000 and
Onyx2 Performance Tuning and Optimization Guide
-
System Support
-
007-4065-006, Embedded Support
Partner User Guide


Hong Kong's pride parade downgraded to 'public meeting' as protests swirl
HONG KONG: Police have downgraded Hong Kong's annual gay pride parade to a stationary rally, organisers said Thursday (Nov 14), after police banned the traditionally boisterous and colourful march through the territory as protests engulf the city.
Police allowed the Saturday afternoon event on condition it takes the "form of a public meeting" and not a march, Hong Kong Pride Parade said in a statement on Facebook.
The event will be held across the afternoon at a public square on Hong Kong island.
The move comes with violence spiking as protests enter a sixth month, with protesters bringing much of Hong Kong to a standstill since Monday.
Prominent LGBT lawmaker Ray Chan decried the ban on the parade through the city's commercial heart - the key element to a global tradition celebrating equality.
"The pride parade has always been orderly, peaceful and well-disciplined," he said.
"There is no reason for the police to reject the pride parade application ... It has nothing to do with the recent protests."
The event has previously been held in a carnival-like atmosphere with members of the lesbian, gay, bisexual and transgender community and supporters parading through the city centre.
Foreign embassy officials, tourists and city's lawmakers have participated in parades in recent years in an Asian city renowned for its relatively progressive values.
The parade is the latest casualty in a growing list of banned, cancelled or postponed events in Hong Kong's normally packed social calendar.
The WTA Hong Kong Open, Oxfam's annual trail run fundraiser as well as concerts by acclaimed K-Pop acts and comedians have been pulled as the city reels from the protests.
Organisers of others such as music festival Clockenflap, which starts next Friday, have vowed to press ahead despite the political crisis.
MORE: Our coverage of the Hong Kong protests
Follow us on Telegram for the latest on Hong Kong: https://cna.asia/telegram


public class AllPairsShortestPaths
extends java.lang.Object
| Constructor and Description |
|---|
AllPairsShortestPaths() |
| Modifier and Type | Method and Description |
|---|---|
static double[][] |
FloydWarshall(double[][] W)
The Floyd-Warshall algorithm relies on the following observation.
|
static void |
main(java.lang.String[] args) |
public static void main(java.lang.String[] args)
public static double[][] FloydWarshall(double[][] W)
The Floyd-Warshall algorithm relies on the following observation. Under our assumption that the vertices of G are V = {1, 2, ..., n}, let us consider a subset {1, 2, ..., k} of vertices for some k. For any pair of vertices i, j \in V , consider all paths from i to j whose intermediate vertices are all drawn from {1, 2, ..., k}, and let p be a minimum-weight path from among them. (Path p is simple.) The Floyd-Warshall algorithm exploits a relationship between path p and shortest paths from i to j with all intermediate vertices in the set {1, 2, ..., k-1}. The relationship depends on whether or not k is an intermediate vertex of path p.
The recursion is d_ij(k) = min(d_ij(k-1), d_ik(k-1) + d_kj(k-1)). Assume that there are no negative cycles. Let j = k, we have d_ik(k) = d_ik(k-1). Let i = k, we have d_kj(k) = d_kj(k-1). Now when i < k, d_ij(k) = min(d_ij(k-1), d_ik(k-1) + d_kj(k-1)), we just use old entries of k-th row: d_kj(k-1). Now when i = k, d_ij(k) = min(d_ij(k-1), d_ik(k-1) + d_kj(k-1)), we don't need to update. Even we compute, the result will always be the same: d_ij(k) = d_ij(k-1). Now when i > k, d_ij(k) = min(d_ij(k-1), d_ik(k-1) + d_kj(k)), we just use new entries of k-th row: d_kj(k). When j is traversed from 1 to n, since d_ik(k) = d_ik(k-1) is unchanged and d_ij(k) = min(d_ij(k-1), ...), we use old entries of i-th row: d_ij(k-1).
When there is at lease one negative cycle, we cannot simply drop all the superscripts.
Since π_ij(k) = π_kj(k-1) if d_ij(k-1) > d_ik(k-1) + d_kj(k-1), π_kj(k-1) = π_kj(k), when i < k, we use old entries π_kj(k-1), when i = k, π_kj(k) is always π_kj(k-1) no matter if there're negative cycles (d_kk(k-1) < 0 or not), when i > k, we use new entries π_kj(k).
Note that π_ij is the predecessor of j in the shortest simple from i to j.
W[i][j] = 0 if i == j or w(i, j) if i -> j \in E or +\infty otherwise.
W
-


The format of fields when writing or reading the status is determined by the string field State storage format, which is set when creating a smart contract. It should contain a string of JSON type with description of “key:type”fields. The following designations are allowed as a type:
{} - object
[] - array
uint - 6-byte unsigned integer
uint32 - unsigned integer 4 bytes long
uint16 - unsigned integer 2 bytes long
byte - unsigned integer 1 bytes long
double - double precision number (8 bytes long)
str - the variable-length string
strxx - string with fixed length of xx long
arrxx - byte array with fixed-length of xx long


This Site is Coming Soon
Sign up to Receive Updates
Get both our special offers and our web design tips directly to your inbox!
send


Description
This document describes how to write custom scripts to run in a
glidein. Glidein Factory administrators may want to write them to
implement features specific to their clients. Two examples are worker
node validation, and discovery and setup of VO-specific software.
PS:
The "scripts" can be any executable, also compiled binaries.
Script inclusion
A script is a file that was listed in the Glidein Factory or Frontend configuration file as being executable (see the attributes description):
executable="True"
By default the files listed are non executable, so an administrator needs explicitly list the executable ones.
Scripts are all executed once before starting the HTCondor glidein. Periodic scripts are invoked also later, repeatedly according to the period specified (in seconds):
period="3600"
Script API
A script is provided with exactly 2 arguments:
- The name of the glidein configuration file
- An entry id; this can be either main or the name of the entry point
All other input comes from the glidein configuration file that is used as a dashboard between different scripts.
If the script provides any output to be used by other scripts, it should write it in the glidein configuration file. If the values need to be published by the condor_startd or visible by the user jobs, the condor vars file should also be modified.
NOTE that periodic scripts provide an additional output mechanism: since they run via HTCondor startd_cron and the output is not masked, anything sent to standard output is added by HTCondor to the machine classad after adding a prefix (see the periodic scripts section below). If you want to be more compatible though, we recommend to use the the glidein configuration file and the condor vars file to specify if the variable needs to be published to the startd.
The script must return with exit code 0 if successful; a non-zero return value on the first invocation will stop the execution of the glidein with a validation error. A non-zero return value on following invocations of periodic scripts will notify the startd setting GLIDEIN_PS_OK to False (see below)
The glidein configuration file
The glidein configuration file acts as a dashboard between different scripts.
It is a simple ASCII file, with one value per line; the first column
represents the attribute name, while the rest is the attribute value.
If the value does not contain any spaces, the easiest way to extract a
value in bash is:
attr_val=`grep "^$attr_name " $glidein_config | awk '{print $2}'`
Several attributes are added by the default glidein scripts, the most interesting being:
- ADD_CONFIG_LINE_SOURCE – Script that can be used to add new attributes to the glidein configuration file (see below).
- GLIDEIN_Name – Name of the glidein branch
- GLIDEIN_Entry_Name – name of the glidein entry point
- TMP_DIR – The path to the temporary dir
- PROXY_URL – The URL of the Web proxy
All attributes of the glidein Factory (both the common and the entry specific) are also loaded into this file.
To write into the glidein configuration file, the best approach in bash is to use the add_config_line support script. Just source the provided script and use it. Here is an example:
# get the glidein configuration file name
# must use glidein_config, it is used as global variable
glidein_config=$1
# import add_config_line function
add_config_line_source=`grep '^ADD_CONFIG_LINE_SOURCE ' $glidein_config | awk '{print $2}'`
source $add_config_line_source
# add an attributes
add_config_line myattribute myvalue
HTCondor vars file
The GlideinWMS uses a so called condor vars file to decide which attributes are going to be inserted into the condor configuration file, which are going to be published by the glidein condor_startd to the collector, and which attributes are going to be put into the job environment.
The condor vars file can be found from the glidein configuration file as
CONDOR_VARS_FILE
It is an ASCII file, with one entry per row. Each non comment line must have 7 columns. Each column has a specific meaning:
- Attribute name (will be extracted from the glidein configuration file)
- Attribute type
- I – integer
- S – quoted string
- C – unquoted string (i.e. HTCondor keyword or expression)
- Default value, use – if no default
- HTCondor name, i.e. under which name should this attribute be known in the condor configuration
- Is a value required for this attribute?
Must be Y or N. If Y and the attribute is not defined, the glidein will fail. - Will condor_startd publish this attribute to the
collector?
Must be Y or N. - Will the attribute be exported to the user job environment?
- - - Do not export
- + - Export using the original attribute name
- @ - Export using the HTCondor name
The GlideinWMS defines several attributes in the default condor var files
glideinWMS/creation/web_base/condor_vars.lst
glideinWMS/creation/web_base/condor_vars.lst.entry
Here below, you can see a short extract. For all the options, look at dedicated configuration variables page.
# VarName Type Default CondorName Req. Export UserJobEnvName # S=Quote - = No Default + = VarName HTCondor - = Do not export # + = Use VarName # @ = Use CondorName ################################################################################################################# X509_USER_PROXY C - GSI_DAEMON_PROXY Y N - USE_MATCH_AUTH C - SEC_ENABLE_MATCH_PASSWORD_AUTHENTICATION N N - GLIDEIN_Factory S - + Y Y @ GLIDEIN_Name S - + Y Y @ GLIDEIN_Collector C - HEAD_NODE Y N - GLIDEIN_Expose_Grid_Env C False JOB_INHERITS_STARTER_ENVIRONMENT N Y + TMP_DIR S - GLIDEIN_Tmp_Dir Y Y @ CONDORG_CLUSTER I - GLIDEIN_ClusterId Y Y @ CONDORG_SUBCLUSTER I - GLIDEIN_ProcId Y Y @ CONDORG_SCHEDD S - GLIDEIN_Schedd Y Y @ SEC_DEFAULT_ENCRYPTION C OPTIONAL + N N - SEC_DEFAULT_INTEGRITY C REQUIRED + N N - MAX_MASTER_LOG I 1000000 + N N - MAX_STARTD_LOG I 10000000 + N N -
If you need to add anything to a condor vars file, the best approach in bash is to use the add_condor_vars_line support script. Just source the provided script and use it. Here is an example:
# get the condor vars file name
# must use condor_vars_file, it is used as global variable
condor_vars_file=`grep -i "^CONDOR_VARS_FILE " $glidein_config | awk '{print $2}'`
# import add_condor_vars_line function
add_config_line_source=`grep '^ADD_CONFIG_LINE_SOURCE ' $glidein_config | awk '{print $2}'`
source $add_config_line_source
# add an attribute
add_condor_vars_line myattribute type def condor_name req publish jobid
Reporting script exit status
GlideinWMS Factory can receive and interpret a detailed exit status report, if provided by the validation script.
The script should write the exit status report in the following file:
otrb_output.xml
The Factory provides a helper script to properly generate such a file. A detailed description of the format can be found in the dedicated description page.
To use the helper script, first discover its location with:
# find error reporting helper script
error_gen=`grep '^ERROR_GEN_PATH ' $glidein_config | awk '{print $2}'`
If the validation script succeeded, report the success by using:
# Everything worked out fine
"$error_gen" -ok <script name> [<key> <value>]*
You can specify any number of (key,value) pairs, representing any metrics you verified during your valudation run, if any.
If the validation script instead failed, report the failure by using:
# Uh oh, we hit an error
"$error_gen" -error <script name> <error type> "<detailed description>" [<key> <value>]*
The script should use one of the
standard error types.
It should also provide a human readable detailed description.
It is perfectly fine if it extends over multiple lines;
just make sure you properly pass it to the script.
You can also specify any number of (key,value) pairs,
representing any metrics that failed during the test.
Proviind at least one metric is recommended, but not strictly necessary.
Note: The reported status MUST match the script exit code. E.g. if you claim the script succeeded, you must also exit with a 0 exit code.
Periodic scripts
Scripts by default have period=0 and are invoked only once. The Factory/Frontend administrator can specify an integer number of seconds to make a script periodic. Periodic scripts are invoked a first time at the beginning, according to their order, like all other scripts, then they are invoked using the HTCondor damon ClassAd hook mechanism (aka schedd_cron) and a wrapper script that allows them to maintain the same API.
The Periodic scripts wrapper defines some additional variables in glidein_config and in the schedd ClassAds:
- GLIDEIN_PS_FAILED_LIST - List of scripts that failed at least once
- GLIDEIN_PS_FAILING_LIST - List of scripts that failed the last execution
- GLIDEIN_PS_OK - True is no script failed its last execution (GLIDEIN_PS_FAILING_LIST is empty) At the beginning is published to schedd then directly
- GLIDEIN_PS_FAILED_LAST - Name of the last script that failed execution
- GLIDEIN_PS_FAILED_LAST_REASON - String describing the last failure
- GLIDEIN_PS_FAILED_LAST_END - End time (seconds from Epoch) of the last failure
- GLIDEIN_PS_LAST - File path of the last script
- GLIDEIN_PS_LAST_END - end time of the last script execution (0 for script_wrapper.sh invoked at startup)
All these attributes can be used in the startd (e.g. start or shutdown expressions: start_expr="GLIDEIN_PS_OK =!= FALSE") or in other scripts.
Periodic scripts run via
HTCondor startd_cron,
the output is not masked, so anything sent to standard output is added by HTCondor to the machine ClassAd. To protect form
clashes a prefix is added (via STARTD_CRON_
Loading order
During the first invocation scripts are loaded and executed one at a time in order. Later, periodic scripts are re-executed one at the time according to the period. System scripts are coming with the framework, user scripts are the ones listed in the Factory and Frontend configuration files. First all files are downloaded, then the scripts are executed. Both the download and the first invocation follow the same order in six distinct stages:
Global attributes are loaded and global system scripts executed.
The user provided global files are loaded and user scripts are executed. First the Factory ones, then the Frontend ones (i.e. all the ones that have after_entry="False". False is the default for the Factory scripts, True for the Frontend ones). The (pre-entry) Frontend scripts are executed in the following order: pre-group scripts (in global config with after_group="False", which is the default), group scripts and after-group (i.e. after_group="True").
The entry specific attributes are loaded and entry specific system scripts executed.
The user provided entry specific files are loaded and entry specific user scripts are executed.
The after_entry user provided global files are loaded and after_entry user scripts are executed. First the Frontend ones, then the Factory ones (i.e. all the ones that have set after_entry="True"). The (after-entry) Frontend scripts are executed in the following order: pre-group scripts (in global config with after_group="False", which is the default), group scripts and after-group (i.e. after_group="True").
Final global system scripts are executed and the HTCondor daemons are launched.
The Glidein Factory configuration allows an administrator to
specify the files/scripts mentioned in points 2, 4 and 5.
after_entry and after_group allow to set the belonging to one group or the other.
Within a group the files/scripts are loaded/executed in the order in which they are
specified in the configuration file.
All scripts, periodic and not, are executed a first time according to the order above. Note that the wrapper scripts are not mentioned, because those are executed only right before the job.
Examples
The above documentation is hopefully providing enough information to write the scripts that will customize the glideins to your needs. Below are a few examples you can use as templates.
Test that a certain library exists
#!/bin/sh glidein_config="$1" # find error reporting helper script error_gen=`grep '^ERROR_GEN_PATH ' $glidein_config | awk '{print $2}'` if [ -z "/usr/lib/libcrypto.so.0.9.8" ]; then "$error_gen" -error "libtest.sh" "WN_Resource" "Crypto library not found." "file" "/usr/lib/libcrypto.so.0.9.8" exit 1 fi echo "Crypto library found" "$error_gen" -ok "libtest.sh" "file" "/usr/lib/libcrypto.so.0.9.8" exit 0
Find, test and advertise a software distribution
#!/bin/sh glidein_config="$1" ############### # Get the data # find error reporting helper script error_gen=`grep '^ERROR_GEN_PATH ' $glidein_config | awk '{print $2}'` if [ -f "$VO_SW_DIR/setup.sh" ]; then source "$VO_SW_DIR/setup.sh" else "$error_gen" -error "swfind.sh" "WN_Resource" "Could not find $VO_SW_DIR/setup.sh" \ "file" "$VO_SW_DIR/setup.sh" "base_dir_attr" "VO_SW_DIR" exit 1 fi tmpname=$PWD/installed_software_tmp_$$.tmp software_list> $tmpname ########################################################### # import add_config_line and add_condor_vars_line functions add_config_line_source=`grep '^ADD_CONFIG_LINE_SOURCE ' $glidein_config | awk '{print $2}'` source $add_config_line_source condor_vars_file=`grep -i "^CONDOR_VARS_FILE " $glidein_config | awk '{print $2}'` ################## # Format the data sw_list=`cat $tmpname | awk '{if (length(a)!=0) {a=a "," $0} else {a=$0}}END{print a}'` if [ -z "$sw_list" ]; then ERRSTR="No SW found. But the setup script was present at $VO_SW_DIR/setup.sh." "$error_gen" -error "swfind.sh" "WN_Resource" "$ERRSTR" \ "source_file" "$VO_SW_DIR/setup.sh" exit 1 fi ################# # Export the data add_config_line GLIDEIN_SW_LIST "$sw_list" add_condor_vars_line GLIDEIN_SW_LIST "S" "-" "+" "Y" "Y" "+" "$error_gen" -ok "swfind.sh" "sw_list" "$sw_list" exit 0
Change an existing value based on conditions found
#!/bin/bash glidein_config=$1 entry_dir=$2 # find error reporting helper script error_gen=`grep '^ERROR_GEN_PATH ' $glidein_config | awk '{print $2}'` # import add_config_line function, will use glidein_config add_config_line_source=`grep '^ADD_CONFIG_LINE_SOURCE ' $glidein_config | awk '{print $2}'` source $add_config_line_source vo_scalability=`grep '^VO_SCALABILITY ' $glidein_config | awk '{print $2}'` if [ -z "$vo_scalability" ]; then # set a reasonable default vo_scalability=5000 fi tot_mem=`grep MemTotal /proc/meminfo |awk '{print $2}'` if [ "$tot_mem" -lt 500000 ]; then if [ "$entry_dir" == "main" ]; then # all glideins need to scale down if low on memory let vo_scalability=vo_scalability/2 elif [ "$entry_dir" == "florida23" ]; then # but florida23 can use a little more let vo_scalability=vo_scalability*5/4 fi # write it back add_config_line VO_SCALABILITY $vo_scalability "$error_gen" -ok "memset.sh" "vo_scalability" "$vo_scalability" exit 0 fi "$error_gen" -ok "memset.sh" exit 0


BATMAN FOREVER A film review by Stephen Rafferty Copyright 1995 Stephen Rafferty
* - Very Poor ** - Bad, not much here. *** - Good. **** - Very good, see this. ***** - Excellent, a must see. One of the years best
** Directed by Joel Schumacher Starring: Val Kilmer, Jim Carrey, Tommy Lee-Jones, Nicole Kidman, Chris O'Donnell.
Produced by Tim Burton & Peter MacGregor-Scott Written by Lee Batchler, Janet Scott Batchler, and Akiva Goldsman Cinematography by Stephen Goldblatt
Yes, the third installment of the caped crusader series is more colorful and has probably more action than the other two. It has two red hot actors in Jim Carrey and Tommy Lee Jones. It has a new, younger, more popular hero in Val Kilmer. Above all this it even has another red hot young actor portraying Batman's lovable side-kick Robin; Chris O'Donnell, and a new love interest in Nicole Kidman's shrink Chase Meridian. However, what the film doesn't have is a strong central character, any decent dialogue, or much of a reason to care about any of the aforementioned characters.
Val Kilmer, in surprisingly stiff portrayal, plays Bruce Wayne and his alter-ego Batman. Again we are involved in depiction's of Wayne's unfortunate childhood experience and his reason for donning the the black, rubber suit. Without any back story at all, we are plunged into Batman's personal and on-going struggle with former District Attorney Harvey Dent, now known as "Two-Face." Jones, simply copying his character from NATURAL BORN KILLERS, sleeps his way through this film. >From the first second we see him to the last, he maintains a one note performance with nothing memorable to mention. Kilmer, who we first see as Wayne, is shockingly dry and bland. When Kilmer was announced as the new Batman many thought he would bring a flare to the character that he has to many other performances. Unfortunately, I am here to say he doesn't. In fact, he made Michael Keaton look like a virtual glowing barrel of fun in comparison. Batman has still not entered the building.
The rest of the film takes on the cliched by now Batman theme: someone feels burned by our hero and then decides to seek revenge. Along with Two-Face now is the Riddler played by Carrey. At the start of the film he is simply an electronics geek working at Wayne's factory, but after his idea is shot down by Wayne, he is now a madman who is after his old boss. Teaming up with Two-Face, Carrey's Riddler wreaks havoc on Batman with his new mind probing invention along with hypnotizing the entire city. On top of this of-course is Batman's love interest, this time played by Nicole Kidman as Dr. Chase Meridian. A shrink who seems less interested in Batman's psyche than his cod-piece, Kidman's character is less than a card-board cut out. Kidman does okay, but with what she was given I doubt many actresses could ignite a match let alone the screen. The only twist to this second sequel is the addition of Dick Grayson played by O'Donnell. Grayson's family are taken care of by Two-Face and leaves Dick with a burning desire to himself achieve revenge. Grayson therefore becomes Robin, Batman's trusted side-kick. In all of this, someone forgot to write a good character. Carrey plays the same schtick he's been doing for years, and O'Donnell like Kidman simply is given very little to mold. He is out for revenge and a young acrobatic kid- that's it! Flashy and more colorful than anything in all three films, the climax somehow leaves you wondering when something is going to happen that will make you really care about anyone. Too late, the final credits are rolling!
Technically there are some nice moments in the film, with great visuals. Stephen Goldblatt's cinematography is very eye catching, and in obvious contrast to the other two films makes great use of color.
What is most disappointing about this film is it again is written for the villain, and not the hero. Sure the first BATMAN was great in that respect, but that was because of intelligent writing and well, Jack Nicholson. But here, as with the abominable first sequel, the nemeses are so bland and repetitive that we have no emotion involved with them. If the Riddler decides to kill everyone or become a bank teller, you don't really care. When will someone write a film for Batman! The character is full of so many possibilities, to waste on "I'll get drive-thru" is absurd and simply a let down. Along with some juicier writing, is going to have to be a director who can make Batman come alive. I don't mean he has to be a goof-ball, but a director who can tell the difference between the lighter moments and the darker ones. Kilmer may be able to do it with a better director, but if this film is anything to go by, we'll be waiting a long time.
Stephen Rafferty
Stephen Rafferty, FSU<EMAIL_ADDRESS>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


GmDETa GmDETb steroid soybean Arabidopsis Figure Plant Atdet- brassinosteroid genes growth expression reductase {border-style px;} #ffffff;} leaves plant Wang reductases development higher lines root Physiol. transcripts < biosynthesis mutant regulated roots signaling used BRox- BZR Chory DET Glycine Soybean function gene hypocotyl kinase lateral levels plants BRI Brassinosteroid Brassinosteroids data negatively primary responses roots, seedlings Analysis CPD, Cell DWF, Yoshida amino light px; results transgenic {font-family Asami EBL Glyma.g GmDETh Mol. PCR apical det- font-size grouped identified insensitive involved leaves, protein purifying seeds selection shown transcript ./pp.. AtDET, BRox-, Based Biol. DETs DWF Fujioka GmDETc Sci. abundance acid analyzed biosynthesis-related cell days double; encodes genome important max qRT-PCR receptor role roles sequences tips total ./S-()- ./j.-X...x Atdet-, BIN Genes GmDETb, GmDETd Growth Ka/Ks Oryza Phylogenetic RNA Table Takatsuto Z.Y. analysis border-color border-width brassinosteroids buds, chromosome compared dark darkness defects downregulated evolutionary functions height including increased length mutants nutrient open overexpressing phosphate previous putative receptors reduced rescued rice showed significantly solid; species starvation study, subjected using {font-style {font-weight AtDET B). BRs Col-, DET, Development Ectopic G.J. Gendron Glyma.G, GmDETg K.H. Nam Physcomitrella Science Selaginella Steroid Sun Vafeados Yang Yokota background binding bold coding conserved contain containing conversion cotton courier; crucial deficiency different domain dwarf elongation em; employed encoding functionally indicating model moellendorffii, molecular overexpression pathway promote pt;} real-time reported revealed sativa, search selected similar step stress studies study subgroups sulfate transcription tree


A KID IN KING ARTHUR'S COURT A film review by Steve Rhodes Copyright 1997 Steve Rhodes
RATING (0 TO ****): * 1/2
Is there a market for bland and predictable children's films? Given the dearth of kids' movies, the answer has to be yes. Grown-ups get half a dozen new movies opening every week, but kids are lucky to get two in a month. With millions of kids hungry for movies, this means it is hard for kids' films to flop unless the producers are profligate spenders.
Into this tradition of non-offensive fare for our youngsters, Walt Disney Productions in 1995 gave them a present called A KID IN KING ARTHUR'S COURT. Although it sounds like something from the great Mark Twain and they even give him a mention in the credits, the film is merely movie mush. It will fill the kids up, but little more. Do not get me wrong, there are the occasional good moments in the picture, but most of it is sleep inducing.
Things are not going well in Camelot. Our hero, Calvin Fuller, played as a wisecracking kid by Thomas Ian Nicholas, has been pulled out of his Little League game to be transported back in time to save the mythical kingdom. He has been summoned by Merlin (Ron Moody) to defeat the evil Lord Belasco, played with the requisite sneering by Art Malik. With that defeat will come the love of Princess Katey (Paloma Baeza).
Joss Ackland plays his part the same way in every movie only the character's name changes. Here he is called King Arthur. Calvin laments to him about all of the changes to Camelot. There isn't even a round table.
The only real acting interest in the film is Kate Winslet playing Princess Katey's older sister Princess Sarah. Winslet took the part before her fame spread from her roles in SENSE AND SENSIBILITY, JUDE, and HAMLET. In everyone of these films as well as in HEAVENLY CREATURES she performed brilliantly. Although she does the best she can in this kids' movie, her part is hopelessly dull.
The movie comes alive periodically from some of the lines in script by Michael Part and Robert L. Levy. Most of the script however is leaden. Take for example the King's musing, "Camelot rots, and I play at being king. I want her great again."
The best line in the film happens as the king wanders among his people dressed in peasant's clothes. "Look your Majesty," explains Calvin to the king when the king tries to pick a fight with one of his subjects. "I don't want to insult you or anything, but are you nuts? This isn't the castle. This is the real, in-your-face, carjacking, drive-by-shooting, kill-you-for-your-Reeboks street life."
Back at the baseball field the interaction between Calvin and his sister Maya (Catherine Blake) has a natural funniness. She kids with him at the baseball game, "I get your room if you get killed." Although it sounds awful, it comes across as sweet humored sibling rivalry.
The best parts of the movie are a few of the surprises at the end. Are they worth waiting for? Hardly. The show proves to be an hour and a half video aquarium for the kids and little more.
A KID IN KING ARTHUR'S COURT runs 1:38. It is rated PG, but consider it a G. The film is unlikely to offend or scare anyone of any age. This show is not worth your time. I give it * 1/2, but just barely.
My son, Jeffrey, age 7 1/2, said:
"I liked it a lot. My favorite parts were when Calvin played the rock tape and when the king went outside the castle." He mentioned Calvin's long quote about carjacking as the best line.
**** = A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show. Don't waste your money. 0 = Totally and painfully unbearable picture.
REVIEW WRITTEN ON: January 18, 1997
Opinions expressed are mine and not meant to reflect my employer's.
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


Hi, I'm Daniel A passionate programmer dedicated to making amazing web applications!
Using Node, Express, and MongoDB I built an application to replace Google Sheets and Forms at TitanHouse. I used Passport.js local strategy to build an authentication system. The application passes data between controllers to reduce the number of times a user has to input data and makes it possible for a user to send data along with many other features to another user.
< Node, Express, Mongoose />
At my work, TitanHouse, we needed a faster way to search for executive so I built a website using Googles Custom Search API. I also built the QuickSearch application that generates advanced Google search queries with minimal input from the user. TitanSearch is currently being used by my colleagues and has been used thousands of times.
< JavaScript Bootstrap />
< HTML5 CSS3 Bootstrap />
< HTML5 CSS3 Javascript />


Employees will learn:
- How to come out of autopilot so they are more able to respond to what is needed in the moment rather than react automatically in ways that might be harmful.
- Breathing practices to help them become more aware of their thoughts, emotions, physical sensations and impulses. This will help to bring them back to responding clearly, effectively and in accordance with their values.
- To recognise what triggers and maintains stress and to respond in ways that support greater self-compassion and well-being, rather than self-criticism and agitation.
- Ways of responding skilfully to difficulties, such as conflicts or tricky relationships in ways that support understanding and care.


Actions, Resources, and Condition Keys for Amazon Glacier
Amazon Glacier (service prefix: glacier
) provides the following service-specific resources, actions, and condition context
keys for use in IAM permission policies.
References:
-
Learn how to configure this service.
-
View a list of the API operations available for this service.
-
Learn how to secure this service and its resources by using IAM permission policies.
Topics
Actions Defined by Amazon Glacier
You can specify the following actions in the Action
element of an IAM policy statement. Use policies to grant permissions to perform
an operation in AWS. When you use an action in a policy, you usually allow or
deny access to the API operation or CLI command with the same name. However,
in some cases, a single action controls access to more than one operation. Alternatively,
some operations require several different actions.
The Resource column indicates whether each action supports resource-level permissions. If
there is no value for this column, you must specify all resources ("*") in the
Resource
element of your policy statement. If the column includes a resource type, then
you can specify an ARN of that type in a statement with that action. Required
resources are indicated in the table with an asterisk (*). If you specify a resource-level
permission ARN in a statement using this action, then it must be of this type.
Some actions support multiple resource types. If the resource type is optional (not
indicated as required), then you can choose to use one but not the other.
For details about the columns in the following table, see The Actions Table.
| Actions | Description | Access Level | Resource Types (*required) | Condition Keys | Dependent Actions |
|---|---|---|---|---|---|
| AbortMultipartUpload | Aborts a multipart upload identified by the upload ID | Write | |||
| AbortVaultLock | Aborts the vault locking process if the vault lock is not in the Locked state | Permissions management | |||
| AddTagsToVault | Adds the specified tags to a vault | Tagging | |||
| CompleteMultipartUpload | Completes a multipart upload process | Write | |||
| CompleteVaultLock | Completes the vault locking process | Permissions management | |||
| CreateVault | Creates a new vault with the specified name | Write | |||
| DeleteArchive | Deletes an archive from a vault | Write | |||
| DeleteVault | Deletes a vault | Write | |||
| DeleteVaultAccessPolicy | Deletes the access policy associated with the specified vault | Permissions management | |||
| DeleteVaultNotifications | Deletes the notification configuration set for a vault | Write | |||
| DescribeJob | Returns information about a job you previously initiated | Read | |||
| DescribeVault | Returns information about a vault | Read | |||
| GetDataRetrievalPolicy | Returns the current data retrieval policy for the account and region specified in the GET request | Read | |||
| GetJobOutput | Downloads the output of the job you initiated | Read | |||
| GetVaultAccessPolicy | Retrieves the access-policy subresource set on the vault | Read | |||
| GetVaultLock | Retrieves attributes from the lock-policy subresource set on the specified vault | Read | |||
| GetVaultNotifications | Retrieves the notification-configuration subresource set on the vault | Read | |||
| InitiateJob | Initiates a job of the specified type | Write | |||
| InitiateMultipartUpload | Initiates a multipart upload | Write | |||
| InitiateVaultLock | Initiates the vault locking process | Permissions management | |||
| ListJobs | Lists jobs for a vault that are in-progress and jobs that have recently finished | List | |||
| ListMultipartUploads | Lists in-progress multipart uploads for the specified vault | List | |||
| ListParts | Lists the parts of an archive that have been uploaded in a specific multipart upload | List | |||
| ListProvisionedCapacity | This operation lists the provisioned capacity for the specified AWS account. | List | |||
| ListTagsForVault | Lists all the tags attached to a vault | List | |||
| ListVaults | Lists all vaults | List | |||
| PurchaseProvisionedCapacity | This operation purchases a provisioned capacity unit for an AWS account. | Write | |||
| RemoveTagsFromVault | Removes one or more tags from the set of tags attached to a vault | Tagging | |||
| SetDataRetrievalPolicy | Sets and then enacts a data retrieval policy in the region specified in the PUT request | Permissions management | |||
| SetVaultAccessPolicy | Configures an access policy for a vault and will overwrite an existing policy | Permissions management | |||
| SetVaultNotifications | Configures vault notifications | Write | |||
| UploadArchive | Adds an archive to a vault | Write | |||
| UploadMultipartPart | Uploads a part of an archive | Write |
Resources Defined by Amazon Glacier
The following resource types are defined by this service and can be used in the
Resource
element of IAM permission policy statements. Each action in the Actions table identifies the resource types that can be specified with that action. A resource
type can also define which condition keys you can include in a policy. These
keys are displayed in the last column of the table. For details about the columns
in the following table, see The Resource Types Table.
| Resource Types | ARN | Condition Keys |
|---|---|---|
| vault |
arn:${Partition}:glacier:${Region}:${Account}:vaults/${VaultName}
|
Condition Keys for Amazon Glacier
Amazon Glacier defines the following condition keys that can be used in the
Condition
element of an IAM policy. You can use these keys to further refine the conditions
under which the policy statement applies. For details about the columns in the
following table, see The Condition Keys Table.
To view the global condition keys that are available to all services, see Available Global Condition Keys in the IAM Policy Reference.
| Condition Keys | Description | Type |
|---|---|---|
| glacier:ArchiveAgeInDays | How long an archive has been stored in the vault, in days. | String |
| glacier:ResourceTag/ | A customer-defined tag. | String |


--- layout: post title: Household Shrines date: 2015-11-02 09:14:29.000000000 -06:00 type: post published: true status: publish categories: - art tags: [] meta: _vc_post_settings: a:2:{s:7:"vc_grid";a:0:{}s:10:"vc_grid_id";a:0:{}} _header_toolbar: 'true' _featured_image: 'true' _meta: 'true' _portfolio_meta_next_prev: '-1' _portfolio_related_project: '-1' boxed_layout_shadow: 'false' _page_title_intro: none _page_title_fullHeight: 'false' _page_title_letter_spacing: '0' _breadcrumb_custom_color: '#ffffff' _breadcrumb_custom_hover_color: '#000000' _edit_last: '1' _wpas_done_all: '1' _thumbnail_id: '22002' _wpb_vc_js_status: 'false' _wpb_vc_js_interface_version: '2' textfalse: '' _layout: right _padding: 'false' _single_featured: '-1' _custom_bg: 'false' background_selector_orientation: full body_color: '#fff' body_source: no-image body_cover: 'false' page_color: '#fff' page_source: no-image page_cover: 'false' header_color: '#fff' header_source: no-image header_cover: 'false' banner_color: '#fafafa' banner_source: no-image banner_cover: 'false' footer_color: '#191919' footer_source: no-image footer_cover: 'false' _page_title_padding: '40' _page_title_align: left _page_title_size: '18' _breadcrumb_skin: dark _mk_post_love: '0' _theme_options_build: '' _dynamic_styles: Tjs= author: login: wlftn email<EMAIL_ADDRESS>display_name: lauren first_name: Lauren last_name: '' excerpt: 'Photo Blog: Household Shrines. When my brother, Ryan, died on November 2, 2012, I took to making him a shrine almost immediately and without even thinking: I wanted a place to visit him daily, and I wanted him to be a part of our home and family.' ---
I didn't grow up in a house with shrines, at least not purposefully intended shrines. When I was a child, it wasn't necessarily part of my family's religious or cultural traditions, and it tended to be thought of as "other." When I moved to Iowa in my early twenties though, I was hanging out with writers, puppeteers, musicians and artists who all shared in the same strange (and unspoken) midwest ethic that declares a deep connection between the act of "making" (and I mean any form of "making": art, woodworking, literature, farming, crafts, music, knitting -- you name it -- ) and spirituality. Woven into this, too, was a strong sense of home, a pride in the DIY approach and a very personal working notion of tribute.
And I started to notice an interesting thing my friends' homes: shrines.
Mallory, for instance, had a single shrine dedicated to all of her remembered ones, in the entryway of her farmhouse outside of West Liberty, IA. It was decorated with calaca skeletons from Mexico, tall votive candles of saints and various dried plants. It was well maintained, always included in conversation, and full of light and offerings and scent and smoke.
E.J.'s shrine, also in the entry way, was decorated with mirrors and tiny ornamental circular pictures, honoring both her human and her animal friends.
Another friend had outdoor shrines, concrete and glass, with lights hung from branches.
None of the shrines I encountered were "traditional" in any religious sense: they were all fiercely individual and multi-thematic, according to the preferences of each person who maintained it. I liked this.
When my own brother, Ryan, died on November 2, 2012, I took to making him a shrine almost immediately and without even thinking: I wanted a place to visit him daily, and I wanted him to be a part of our home and family.
At first, I just started one on top of a bookshelf, a temporary make-shift area. A few weeks later, Ben and I found an old wooden box at a local thrift store, and hung the box on the wall as a shrine chamber. We started simply, adding a single photo of him and a candle. Over time, though, things started to gather: feathers, stones, more pictures, candles, drawings, a wacky ying-yang stress ball, a geode. The objects call out to be included. In this way, it is very much a distinct tribute to Ryan, who was also a collector of the small and forgotten items of the world. Everything had meaning to him.
My daughter was only 2 years old when my brother died. She will not remember ever knowing him, not as a living human being, at least. But I fervently want him to be a part of her life. He dedicated his life to working with young children as a early childhood educator; he taught kids in Denver as well as in impoverished schools in Brazil. He had a special gift for being able to connect and understand the world of the child. He believed in kids.
So every week, my daughter and I "greet" Ryan at the shrine. We say "Hi Ryan!" and light a candle. We talk about him: what he was like, what he did. At the end, we have a special tradition. There is a picture in the middle of the shrine. It is a photo of Ryan holding Ellie, when she was just three months old. He gazes down at her and it is just love. My daughter and I look at that picture, and after a second or so, I ask her "Who is that?" pointing at Ryan. She says "Uncle Ryan." Then I say "And who is that?" pointing at the tiny baby in his arms. "Me" she says.
And we leave it at that. That's all there needs to be.
SHRINES BY FRIENDS
[gallery type="thumbnails" ids="22077,22073,22079,22072,22076,22075,22074,22078"]


--- layout: page title: About header-img: "img/about-bg.png" ---
Kristin is a full-stack web development student at Flatiron. She's previously worked in the fashion industry specializing in operations and business strategy. She decided to learn the invaluable skills of software and web development after discovering the power within computer literacy and her passion for coding.