CONFIDENTIAL Dear Sir, I am Franck Camara the only son of late former Director of finance,Mr.Camara Kingston Sierra-Leone diamond and mining corporation. I must confess my agitation is real, and my words is my bond, in this proposal. My late father diverted this money meant for purchase of ammunition, for my country, during the peak of disastrous civil war in my country, now he has deposited the money with BANK in Abidjan, where I am residing under political asylum with my younger sister. Now the war in my country is over with the help of ECOMOG soldiers, the present government of Sierra Leone has revoked the passport of all officers who served under the former regime and now ask countries to expel such person at the same time freeze their account and confiscate their asset, it is on this note that I am contacting you, all I needed from you is to furnish me with your bank particulars: 1) Account name 2) Account number 3) Bank address, telephone and fax number for easy communication For you to assist me transfer this money in your private bank account, the said amount is (NINE Million Dollars) $9 Million. I am compensating you with 15 % of the total money amount, now all my hope is banked on you and I really wants to invest this money in your country, were their is stability of Government, political and economic welfare.  My late father Mr.Kingston Smith gave me the photocopies of the certificate of deposit issued to him by BANK on the date of deposit, for you to be clarify because, I do not expose my self to anybody I see, I believe that you are able to keep his transaction secret for me because this money is the hope of my life, it is important. Please call me immediately after you must have gone through my message fill free and make it urgent. That is the reason why I offered you 15 % of the total money amount, and in case of any other necessary expenses you might incur during this transaction. N.B Try and negotiate for me some profitable blue chip investment opportunities which is risky free which I can invest with this money when itis transferred to your account, personally I am interested in estate management and hotel business, please advise me. Call me back immediately you receive this message for more explanation.And promisse me my younger sister to be a father considering our situation and not to betray us. Thanks and God bless Best regards Franck Camara.


Docstring:
Usage: qiime fragment-insertion sepp [OPTIONS]
Perform fragment insertion of sequences using the SEPP algorithm.
Inputs:
--i-representative-sequences ARTIFACT FeatureData[Sequence]
The sequences to insert into the reference tree.
[required]
--i-reference-database ARTIFACT SeppReferenceDatabase
The reference database to insert the representative
sequences into. [required]
Parameters:
--p-alignment-subset-size INTEGER
Each placement subset is further broken into subsets
of at most these many sequences and a separate HMM is
trained on each subset. [default: 1000]
--p-placement-subset-size INTEGER
The tree is divided into subsets such that each subset
includes at most these many subsets. The placement step
places the fragment on only one subset, determined
based on alignment scores. Further reading:
https://github.com/smirarab/sepp/blob/master/tutorial/s
epp-tutorial.md#sample-datasets-default-parameters.
[default: 5000]
--p-threads INTEGER The number of threads to use. [default: 1]
--p-debug / --p-no-debug
Collect additional run information to STDOUT for
debugging. Temporary directories will not be removed if
run fails. [default: False]
Outputs:
--o-tree ARTIFACT The tree with inserted feature data.
Phylogeny[Rooted] [required]
--o-placements ARTIFACT
Placements Information about the feature placements within the
reference tree. [required]
Miscellaneous:
--output-dir PATH Output unspecified results to a directory
--verbose / --quiet Display verbose output to stdout and/or stderr during
execution of this action. Or silence output if
execution is successful (silence is golden).
--citations Show citations and exit.
--help Show this message and exit.
Import:
from qiime2.plugins.fragment_insertion.methods import sepp
Docstring:
Insert fragment sequences using SEPP into reference phylogenies.
Perform fragment insertion of sequences using the SEPP algorithm.
Parameters
----------
representative_sequences : FeatureData[Sequence]
The sequences to insert into the reference tree.
reference_database : SeppReferenceDatabase
The reference database to insert the representative sequences into.
alignment_subset_size : Int, optional
Each placement subset is further broken into subsets of at most these
many sequences and a separate HMM is trained on each subset.
placement_subset_size : Int, optional
The tree is divided into subsets such that each subset includes at most
these many subsets. The placement step places the fragment on only one
subset, determined based on alignment scores. Further reading:
https://github.com/smirarab/sepp/blob/master/tutorial/sepp-
tutorial.md#sample-datasets-default-parameters.
threads : Int, optional
The number of threads to use.
debug : Bool, optional
Collect additional run information to STDOUT for debugging. Temporary
directories will not be removed if run fails.
Returns
-------
tree : Phylogeny[Rooted]
The tree with inserted feature data.
placements : Placements
Information about the feature placements within the reference tree.


Akan Names
Welcome, Akan names are derived from Ghanian culture. Frequently in Ghana, children are given their first name as a 'day name' which corresponds to the day of the week they were born.
Let's try it out
Fill in your birth details below and we will find your Akan name.


WITNESS LIST Public Safety Committee March 3, 1997-4:00P HB 171 For: Sherri Wallace (Dallas Co. Criminal D.A) On: Robert H. Burroughs (Dept. of Public Safety) HB 1255 For: Carlos Reyna (Tx Driving Sch. Assoc.) Charles Green (Sears Driving School) Debra Roberts (Tx Driver & Safety Assc) Gene Walker (Himself) Rep. Kevin Bailey (Himself) Against: Addis Miller, III (Himself) Amariah Harp (Herself) Charles L. Taylor (Advanced Traffic Tech) Donna Harp (Herself) Jim H. Mangum, Jr. (Himself) Jody Ripma (Herself) Larry Hayes (Himself) Rep. Jim Horn (Himself) Ronald H. Waggoner (Himself) Tim Lambert (Tx Home Sch. Coalition) On: Maj. James O. Ratliff (Dept. of Public Safety)


In microservices architecture we often designate a single service for managing the configuration of the entire system. Libraries like Archaius make this easy. As a side effect, on the code level I often see class declarations like this:
Basically we inject providers for current configuration properties values into classes. This has two advantages. First, our classes are independent of any library that we are using for managing configuration. And second, our classes are easy to test - no mocks needed.
Yet this approach can lead to subtle bugs. Say our original code that creates MyService
looks like this:
Imagine that a few weeks later a Scala purist is coming by and decides to “improve” this code into:
Shorter code, better code as they say…
A few more weeks pass by and we realise that using Long
s for storing time intervals is passé.
So now we are slowly migrating our () => Long
providers into () => java.time.Duration
.
Of course as Scala fanboys we decided to add an extension method to Long
, to make the entire
process less painful:
In meantime, the code responsible for MyService
creation morphed into:
And… BOOM! It’s no longer working!
Why this code is no longer working? Because
is transformed by Scala compiler into
So timeout
property value is frozen at the moment of MyServiceRefactored
object creation,
this is not what we want.
Bugs like this are hard to figure out. At the first glance everything works fine. The problem demonstrates itself only when we try to adjust the property value at runtime. And even then a simple service restart will reload the property, so we may incorrectly assign it to a configuration server/library/networking glitch.
Here I must mention that this bug was possible only because we broken one of Scala’s good practices. Our extension method is declared like so
but we should be declared like this
as this method is actually a getter - it does not mutate the object on which it is called. If we use the second declaration our bug would be quickly detected by Scala compiler.
In practice a lot of Scala programmers are confused by the optional parentheses
in parameterless method declarations. I often see methods declared like def foo: Unit
that mutate the state or method declared like def bar(): Int
that are just getters.
For people like me, that constantly switch between Java and Scala, this is especially difficult
and I routinely make mistakes like this (I add parentheses everywhere)…
One solution that people often come up with when confronted with this problem is to replace functions by by-name parameters.
By-name parameters are nothing new. They where first introduced more than 50 years ago in a language called Algol60. Early programmers of that language quickly found out that by-name parameters are error prone and difficult to use. As a result most of the contemporary programming languages do not support them.
Scala as an over-engineered a versatile language supports by-name parameters, as they allow programmers
to create functions that mimic the language build-in constructs. For example:
The main problem with by-name parameters is that they do not follow the usual order of evaluation. An ordinary function call
will result in functions foo
and bar
being called one after another,
followed by egg
function call.
When we use by-name parameters no order is guaranteed, foo
may be called
before or after bar
or may not be called at all,
or may be called three times, or four…
This makes code difficult to reason about.
That is why I use by-name parameters sparingly, usually only when I need to implement a
new statement like construct.
That being said, we may declare our new version of MyService
as
and it will work flawlessly with our converted-on-the-fly property:
To make it clear that we are passing not a value but an expression to be evaluated (called a thunk), we can surround the expression with curly braces:
But it must be noted that in Scala we can add curly braces to almost anything,
e.g. println({1} + {2})
.
In other words curly braces around thunks are only a convention not enforced by the compiler.
Sometimes the best solution is the object-oriented one. So after being disappointed with by-name params I decided to create an interface:
and inject it into MyService
:
Scala since version 2.12 supports converting lambda expressions to SAMs (Single Method Interfaces),
so we can create MyService
without too much ceremony:
No simplification is possible this time, and both below examples do not compile:
The protection is, unfortunately, not 100% bullet proof. For example the following code snipped will compile but does not work as intended:
At least it provides a visual clue (_
) that will attract reviewer attention during the code review.
Now I fully understand why Java designers decided to introduce a new operator ::
for creating method
references. It makes it clear which part of the expression will be evaluated only once and which part
will become the functional interface implementation:
Compare this with Scala:
Looks likes the third solution is the best one. The only thing left is to provide a fake
implementation for Property[V]
interface to make testing easy:


Payment Request retry() method
Retry with shipping address validation
Retry with payer info validation
Retry with shipping address and payer info validation


A film or series that revolves around non-news reporting of Non-Fiction subjects. While there are earlier examples, technical limitations prevented the genre from forming until the 20th century. The term itself was coined by reviewer John "The Moviegoer" Grierson in 1926.
Many documentaries are known to break several Omnipresent Tropes which exist in other genres due to nature of the documentaries.
Works of fiction or comedy sometimes use a style that imitates or parodies the Documentary, they can be found at: Documentary Episode, Faux Documentary, Faux-To Guide, and Mockumentary.
The Mondo is an interesting type of Exploitation Film that can be a hybrid of the serious types (the original Mondo Cane) or be totally fake (Faces of Death).
Compare and contrast News Broadcast. For a list of documentary features that have won or been nominated for Oscars, see Academy Award for Best Documentary Feature.
Examples:
- Abducted in Plain Sight
- Abacus: Small Enough to Jail
- The Act of Killing: Follows the perpetrators of a 1965-1966 mass political killing in Indonesia as they re-enact their deeds.
- Algo Habrán Hecho Por La Historia Argentina: A documentary about the history of Argentina.
- The Aristocrats
- Asperger's Are Us
- Baraka
- The Battle of Russia
- The Battle of San Pietro
- The Beaver Trilogy
- Becoming YouTube is a weird mix of a serious documentary and Mockumentary-style sketches.
- Being Elmo: A Puppeteer's Journey
- Beyond the Mat
- Big Fun in the Big Town
- Blackfish
- Blood Dolphins
- Bondi Rescue - a documentary series following the lifeguards at Bondi Beach, NSW, Australia.
- The Bones Brigade: An Autobiography: A biography Stacy Peralta(one of the best skaters in the 70s)'s creation of the Powell Peralta company after the sudden disband of the Zephyr Skateboard team, and the start of the Bones Brigade, their rise to fame, their revolutionary contributions to the skateboarding community and the emotional roller coaster of each individual skaters.
- Bowling for Columbine
- Bronies: The Extremely Unexpected Adult Fans Of My Little Pony
- Brooklyn Bridge
- Capitalism: A Love Story
- Capturing the Friedmans
- Card Subject to Change: Life on the Professional Wrestling independent scene, for both Ring Oldies, current stars and young hopefuls.
- Cartel Land
- Carts of Darkness: The lives of homeless men who race shopping carts for thrills and collect cans for money.
- Cave of Forgotten Dreams
- The Celluloid Closet
- Chang
- Changing Our Minds: The Story of Dr. Evelyn Hooker
- Chaos on the Bridge: About the very Troubled Production of the first two seasons of Star Trek: The Next Generation
- China Blue
- Citizenfour: About Edward Snowden and the NSA spying scandal.
- Cocaine Cowboys: A documentary about the rise of the illegal cocaine trade in Miami during the 1970s and 1980s. Also spawned a sequel, Cocaine Cowboys 2, about a small-time coke dealer who ends up working for notorious drug lord Griselda Blanco.
- The Cove: About dolphin hunting/fishing in Japan and won an Oscar.
- Czechoslovakia 1968
- The Dark Side of Chocolate: About the widespread but strangely unknown-to-the-public use of child slaves in the cocoa industry.
- Dark Side of the Ring: About the tragedies of the professional wrestling industry.
- Dealt
- Dear Zachary
- De Nieuwe Orde
- De Nuremberg à Nuremberg: A French documentary about Nazi Germany.
- The Devil at Your Heels: About stuntman Ken Carter's ill-fated attempt to jump a jet car over the St. Lawrence River.
- Dinosaur! (1985)
- Dirty Money
- Disasters at Sea
- Disneyland Dream, one family's (unusually sophisticated) home movie of their visit to Disneyland in 1956.
- Dreams of a Life
- The Eagle Huntress
- Earthlings: About the horrific treatment of animals in the food industry, puppy mills, etc...
- The Endless Summer
- Enron: The Smartest Guys in the Room
- Everest
- Faces Places
- Fahrenheit 9/11
- Fat Head: A rebuttal to Supersize Me.
- Felicia: Documentary short about a teenaged girl in 1965 Watts
- Fighting in the Age of Loneliness: A Join Bois documentary about the history of MMA and its popularity
- Finding Your Roots
- First Strike: About the possibility of a nuclear surprise attack on the United States.
- The Fog of War: About former Secretary of Defence Robert Macnamara.
- Food Inc.
- For All Mankind
- Forbidden Love: The Unashamed Stories of Lesbian Lives
- The Forgotten Frontier — nurses tending to the poor in 1931 Appalachia
- Formula 1: Drive to Survive
- For the Bible Tells Me So
- Forensic Files
- Forks Over Knives
- Four Days in November
- 4 Little Girls
- Freedom on My Mind
- Fyre
- Fyre Fraud
- Garlic Is as Good as Ten Mothers
- Gates of Heaven
- General Idi Amin Dada: A Self Portrait
- Genocide
- The Girl Who Became Three Boys
- The Gleaners and I
- Grant
- Grass
- The Great War: A series chronicling the events of World War One as they happened weekly one hundred years ago.
- Grey Gardens
- Grizzly Man
- Going Clear: About the Church of Happyology.
- Guns, Germs, and Steel
- Hail Satan?
- Hale County This Morning This Evening
- Harlan County U.S.A.
- Hearts and Minds
- Hearts of Darkness: A Filmmaker's Apocalypse: About the Troubled Production of Apocalypse Now.
- Hellbound: A documentary about different perceptions of hell.
- High School: A Day in the Life at an American high school in 1968.
- A History of Scotland: Explores the history of Scotland.
- Hollywood on Trial
- Home (2006): This documentary looks at New York City through the eyes of a number of famous people.
- Hoop Dreams
- The House Is Black
- I Am Big Bird
- I Am Not Your Negro
- Icarus
- If a Tree Falls: A Story of the Earth Liberation Front
- I Shouldn't Be Alive
- I'll Find a Way
- An Inconvenient Truth
- Indie Game: The Movie
- In Search of...: A documentary series centered around popular mysteries, with Leonard Nimoy as the narrator.
- In the Year of the Pig: A 1968 documentary about The Vietnam War and the events leading up to it.
- The Inventor Out For Blood In Silicon Valley
- The Invisible War
- Jesus Camp
- The Jewish Americans
- The Jinx: About billionaire murder suspect Robert Durst.
- Jiro Dreams of Sushi
- Jodorowsky's Dune
- Jonestown
- Kedi
- The Kids Guide to the Internet
- The Killing of America
- The King of Kong
- Kiss Loves You
- Kon-Tiki
- Koyaanisqatsi
- Last Days in Vietnam — the panicked American flight from Saigon as the North Vietnamese close in on the South Vietnam capital at the end of The Vietnam War.
- Let the Fire Burn
- Let There Be Light
- The Life and Times of Rosie the Riveter
- The Long Way Home
- The Look of Silence: A companion piece to The Act of Killing, following a massacre victim's brother as he confronts the aging killers.
- Loose Change
- Lost in La Mancha
- Lost Soul: The Doomed Journey of Richard Stanley's Island of Dr. Moreau
- Making a Murderer
- Manson, one of the first documentaries about Charles Manson and the Tate-LaBianca murders.
- Man with a Movie Camera
- Marwencol
- Mayday, also called Air Crash Investigation
- The Memphis Belle
- Miracles For Sale: A Derren Brown special about the US faith healing industry.
- Moscow Strikes Back
- My Depression
- Nanook of the North (1922), the Trope Maker, Robert Flaherty's film about life among the Inuk people of upper Hudson Bay.
- The Negro Soldier
- Next Goal Wins is the story of the worst team in international soccer and their attempts to win one game.
- Night and Fog
- No Clip
- O.J.: Made in America
- Olympia — Leni Riefenstahl's documentary of the 1936 Berlin Olympics, which despite all the Nazi propaganda proved highly influential in how sports are dramatized onscreen.
- On Any Sunday
- One Day in September
- Paris Is Burning is about ball culture in New York City during the 1980s.
- The Pixar Story: about the history of Pixar.
- The Plow That Broke the Plains
- Powers of Ten
- Portrait of Jason
- Primary: Groundbreaking cinema verite film about the 1960 Wisconsin Democratic presidential primary contest between Hubert Humphrey and John F. Kennedy.
- Project Nim: About an experiment on a chimpanzee to see if they could learn how to communicate like a human if raised like a human child.
- RBG: Life and career of Supreme Court justice Ruth Bader Ginsburg.
- Reclaiming the Blade: On medieval European swordmanship.
- The Red Pill
- Reel Bad Arabs: A documentary about the stereotyping of Arabs and other Middle Eastern peoples in mainstream media, particularly films, and all the Unfortunate Implications coming from it.
- Religulous
- Report from the Aleutians
- Restrepo
- Revolution (1968): This documentary explores hippiedom in San Francisco in 1967.
- Revolution (2012): This documentary explores the importance of saving the environment.
- Robert Frost: A Lover's Quarrel with the World
- Roger & Me
- Ryan: Documentary short about animator Ryan Larkin unusual for itself being animated
- Sabaton History: Web series about military history co-produced by TimeGhost and the metal band Sabaton.
- Salesman
- Sans Soleil
- Santoalla
- Savage Kingdom
- Searching for Sugar Man
- Seconds from Disaster, about major disasters (natural or man-made) and the series of events leading up to them.
- Serengeti
- Serial: A podcast exploring the real life murder conviction of Adnan Syed and his potential innocence.
- Sherman's March
- Shoah
- Showbiz Kids: A documentary about Former Child Stars.
- Showdown in Seattle
- Sicko
- Siege: A documentary short about the siege of Warsaw in 1939.
- The Smash Brothers: A nine-episode Web Original following seven of the most influential Super Smash Bros. Melee players of all time, as well as the community surrounding them.
- The Social Dilemma: A documentary about Social Media Is Bad, starring several tech insiders and academics.
- The Sorrow and the Pity
- Soviet Storm: World War II in the East
- Special When Lit: A look at the history, culture, and creators of Pinball.
- Spielberg
- The Square (2013)
- The Statue of Liberty
- The Story of the Weeping Camel
- Street Fight
- Strong Island
- Summoning Salt's videos, documenting the history of speedrunning.
- Super Size Me: One man's attempt to eat McDonald's, and only McDonalds, for 30 days in a row.
- Super Size Me 2: Holy Chicken!: Has fast food really gotten healthier? Maybe a transparent chicken sandwich restaurant will answer this burning question.
- The Sweatbox: The look into the history and making of the abandoned Disney film Kingdom of the Sun and its painful transformation into the film The Emperor's New Groove.

- Thank You for Playing: A documentary about the creation of the critically acclaimed indie game That Dragon, Cancer
- They Shall Not Grow Old: a documentary by Peter Jackson about British soldiers' experiences in World War One, primarily using restored wartime footage and archived interviews from the soldiers themselves
- This Film Is Not Yet Rated: A look at the Motion Picture Association of America (MPAA) and the frequent Double Standards applied to film ratings.
- The Thin Blue Line
- Three Identical Strangers
- Tickled: David Ferrier's documentary on "competitive tickling," which takes a dark turn.
- The Ties That Bind 1985: A documentary on the life of the filmmaker's mother.
- A Time for Burning
- The Times of Harvey Milk
- Tilt: The Battle to Save Pinball: A documentary on the creation of the "Pinball 2000" game platform.
- Tokyo Olympiad
- Tower (2016): A documentary on the 1966 University of Texas tower shooting. Interestingly, this film recreates the shooting with actors portraying the people who there on the day of the shooting, recreating the scenes as recalled by some of the real survivors, then animated with rotoscoping to give the film a unique look.
- TPBAFK: A documentary about The Pirate Bay and the trial of its creators.
- Tree Man 2015
- Triumph of the Will
- Trouble the Water
- 20 Feet from Stardom
- Twist of Faith
- Undefeated
- Urasawa Naoki No Manben
- The Vow
- Waking Sleeping Beauty
- The Weather Underground
- When We Were Kings
- Who Killed the Electric Car?: It examines the reasons for the dismantlement of the electric car program of the early 2000s.
- Why We Fight (2005)
- Winnebago Man: Explores the phenomenon of viral videos, in particular that of one man's profanity-laden out-takes.
- Winter on Fire
- Word Wars: A documentary about competitive Scrabble playing.
- World War II: A series documenting the events of World War II week by week in real time.
- Young@Heart: The inspirational true story of a choir of senior citizens who perform modern rock music.
- Zoo


The Big Idea:
Formatting Bahá’í electronic texts is a pain. Even the best quality electronic texts from the BWC contain thousands of errors. And by far the most common type of error is the darned diacritcals on all those transliterated Arabic and Persian terms.
This project attempts to address that fundamental problem by providing an automated replacement and suggestion system which can utilize a dictionary of authoritatively spelled terms.
Some Test Books downloaded from reference.bahai.org:
- http://chadananda.github.io/diacritical/html/report-Dawn-Breakers.html
- http://chadananda.github.io/diacritical/html/report-GPB.html
- http://chadananda.github.io/diacritical/html/report-Advent.html
- http://chadananda.github.io/diacritical/html/report-Gleanings.html
- http://chadananda.github.io/diacritical/html/report-Kitab-i-Iqan.html
- http://chadananda.github.io/diacritical/html/report-PDC.html
- http://chadananda.github.io/diacritical/html/report-WOB.html
- http://chadananda.github.io/diacritical/html/report-Summons.html
Generate a Suggestion Report for your own Text:
An implementation of the script which pulls down the current wordlist. You can run entire books through this little example. http://chadananda.github.io/diacritical/html/report.html
Get Involved, help me Build the Dictionary!
The project to actually gather that massive correct dictionary is over here: https://github.com/chadananda/accents
To get involved, simply contact me at<EMAIL_ADDRESS>I'll set up user credentials for for the "accents" app, assign you a book and answer any questions.
Want to use the latest dictionary? This REST URL pulls down a JSON object containing the entire current wordlist, grouped by occurance with count. http://diacritics.iriscouch.com/accents/_design/terms_list/_view/terms_list
Using the Library in your own Project
After adding diacritical.js to a web page simply provide a dictionary of UTF-8 terms as a Javascript array. For example:
var diacrital = New Diacritical();
var dictionary = [
'Abu’l-Faḍl',
'Aḥmad',
'Aḥmad',
'Aḥmad',
'Ahmad',
'aḥmad',
'Aḥsanu’l-Qiṣaṣ',
'Ba_ghdád',
'Baqí‘',
'Báqir-i-Ra_shtí',
'Dalílu’l-Mutaḥayyirín',
'Fatḥ-‘Alí',
];
var bad_text = "This is some sample text with bad diacriticals: Ahmad, Baghdad, "+
"Fath-Ali and Baqi. Notice that the dictionary uses _sh to indicate an "+
"underscore. Also, notice that the dictionary is case sensitive but the "+
"replacement system is still smart enough to deal with ALLCAP words like AHMAD. "+
"Moreover, the dictionary ideally should have multiple versions of each word in "+
"order to help weed out misspellings. (Notice one of the spellings of Ahmad is "+
"wrong in the dictionary but the word is still corrected correctly.)";
var fixed_text = diacritical.replaceText(bad_text, dictionary);
See it in action here:
Test Harness:
About 20 tests written in Jasmine to test all kinds of weird text-parsing scenarios: http://chadananda.github.io/diacritical/tests


+++ date = "2015-09-01T16:33:44-07:00" title = "NATS Support | High Performance Messaging Queing System" cssid = "support" description = "NATS is a high performance messaging system that acts as a distributed messaging queue for cloud native applications, IoT device messaging, and microservices architecture." +++
To discuss NATS and post issues, please visit the NATS Google Group.
Our team has decades of experience in distributed systems messaging, and are here to help you implement and maximize the benefits of a lightweight messaging system in any environment. Support is available for the NATS Server, and the Apcera supported clients listed here.
Contact us today to learn more about how we can help you get the most out of NATS in your environment.


Before Change
self._vocab_size, self._embed_size = idx_to_vec.shape
idx_to_vec = mx.nd.L2Normalization(idx_to_vec, eps=self.eps)
with self.name_scope():
self.weight = self.params.get_constant("weight", idx_to_vec)
def hybrid_forward(self, F, words1, words2, words3, weight): // pylint: disable=arguments-differ
Implement forward computation.
words123 = F.concat(words1, words2, words3, dim=0)
embeddings_words123 = F.Embedding(words123, weight,
After Change
Parameters
----------
kind : ["similarity", "analogy", None]
Return only valid names for similarity, analogy or both kinds of functions.
Returns
-------
dict or list:
A list of all the valid evaluation function names for the specified
kind. If kind is set to None, returns a dict mapping each valid name to
its respective output list. The valid names can be plugged in
`gluonnlp.model.word_evaluation_model.create(name)`.


Toggle navigation
RADVENTURE
About
Contact
Locations
Mt. Hood
Mt. Bachelor
Mt. Whistler
Tap
Dat
Quick Search
Sign In
Sign Up
×
Sign In
Username/Email
Password
Reset
Submit
×
Sign Up
As a User
    If you would like to start finding guides.
As a Guide
    If you want to start guiding people.
Transaction History
Date
Location
Price
User
Payment Status
Review
2015/02/01 09:00
Bachelor
$200
Jenny Do
Paid
Completed
2015/02/10 13:30
Hood
$250
Jo Jones
Pending
Not Submitted
2015/02/16 19:45
Whistler
$300
Jeffery Jefferson
Declined
Not Submitted


Designed a system diagram builder that can generate visual diagrams based on how users build their data base within the platform.
We worked on a feature that the system will automatically generate a visual diagram base on how the users build their data structure within an app.
UX Designer
9 weeks / 3 sprints
Mar 14th - May 13th 2022
1 Product Manager
1 Project Assistant
2 UX Designers
2 Developers
As a system architect, I communicate with clients and build forms, workflows, and databases that allow them to review and process applications efficiently.
A desire for powerful functionality
Have the ability to build complex logic and data structures to meet the business rules
Make sure everything in the process is running correctly
Help the client to review and process applications efficiently
Create visibility and transparency into what a system contains so we can improve quality and provide guidance on data structure design.
An Entity Relationship (ER) Diagram is a type of flowchart that illustrates how “entities” such as people, objects or concepts relate to each other within a system.
ERDs are used to model and design relational databases, in terms of logic and business rules.
ERDs allow us to see across the entirety of a configuration ecosystem (or “app”) in a way that provides clear and accurate visuals for the users.


Indexed DB put perf test
A test application for
crbug.com/496327
Status:
Values written:
Total runtime:
Using
?
out of
?
Immediate
Run perf test
Close Database
Delete Database


Generalized Estimation Equation solver.
| Version: | 4.13-19 |
| Depends: | stats |
| Suggests: | MASS |
| Published: | 2015-06-29 |
| Author: | Vincent J Carey. Ported to R by Thomas Lumley (versions 3.13 and 4.4) and Brian Ripley (version 4.13). Note that maintainers are not available to give advice on using a package they did not author. |
| Maintainer: | Brian Ripley <ripley at stats.ox.ac.uk> |
| License: | GPL-2 |
| NeedsCompilation: | yes |
| Materials: | README ChangeLog |
| In views: | SocialSciences |
| CRAN checks: | gee results |
| Reference manual: | gee.pdf |
| Package source: | gee_4.13-19.tar.gz |
| Windows binaries: | r-devel: gee_4.13-19.zip, r-release: gee_4.13-19.zip, r-oldrel: gee_4.13-19.zip |
| OS X binaries: | r-release: gee_4.13-19.tgz, r-oldrel: gee_4.13-19.tgz |
| Old sources: | gee archive |
| Reverse depends: | aSPU, diffdepprop, DTComPair, GEEaSPU, gskat, JGEE, MargCond, mmm, mmm2, saws |
| Reverse imports: | GEEmediate, geesmv, riskPredictClustData, spind, swgee, tab, VariableScreening |
| Reverse suggests: | ape, BCgee, catdata, dlnm, geex, HSAUR, HSAUR2, HSAUR3, longpower, SimCorMultRes, simstudy, slim |
| Reverse enhances: | emmeans, MuMIn, prediction, stargazer, texreg |
Please use the canonical form https://CRAN.R-project.org/package=gee to link to this page.


--- layout: default title: Home ---
Our story begins with the first steps down a road of endless adventure.
Our story and loud and colourful and unashamed.
Our story is a smile just for each other and is made up of all the mistakes and bold choices we made together.
Our story is one of love and time and too many house plants.
Welcome to the next chapter in our story.


I was born in Atlanta Georgia and lived there about 3 years. By the time I finished high school I had attended 10 different schools and lived in 5 different states. When I was 19, I found my home in the Sierra Nevada mountains. I have worked in Yosemite for 40 years now.
I started college in my late thirties. That is where I met my phillipina wife Rose. We have travelled to the Phillipines numerous times and have recently purchased a beautiful house there. Outside of Yosemite we have 10 acres with a house on top of a small mountain.
I love to take on new challenges and learn new skills. Living in the mountains, I have learn to be my own plumber, electrician, and carpenter. I also own and run a small saw mill. At age 50, I learned to fly a paraglider and have now logged over 500 hours in the air!


Used to get a pointer to the memory layout of a basic type. More...
Functions | |
| template<typename T > | |
| T const * | value_ptr (detail::tvec2< T > const &vec) |
| Get the const address of the vector content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat4x3< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat4x3< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat3x4< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat3x4< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat4x2< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat4x2< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat2x4< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat2x4< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat3x2< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat3x2< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat2x3< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat2x3< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat4x4< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat4x4< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat3x3< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat3x3< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tmat2x2< T > &mat) |
| Get the address of the matrix content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tmat2x2< T > const &mat) |
| Get the const address of the matrix content. | |
| template<typename T > | |
| T * | value_ptr (detail::tvec4< T > &vec) |
| Get the address of the vector content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tvec4< T > const &vec) |
| Get the const address of the vector content. | |
| template<typename T > | |
| T * | value_ptr (detail::tvec3< T > &vec) |
| Get the address of the vector content. | |
| template<typename T > | |
| T const * | value_ptr (detail::tvec3< T > const &vec) |
| Get the const address of the vector content. | |
| template<typename T > | |
| T * | value_ptr (detail::tvec2< T > &vec) |
| Get the address of the vector content. |
Used to get a pointer to the memory layout of a basic type.
This extension defines an overloaded function, glm::value_ptr, which takes any of the core template types. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.
This is useful for uploading data to matrices or copying data to buffer objects.
Example:
#include <glm/glm.hpp> #include <glm/gtc/type_ptr.hpp> glm::vec3 aVector(3); glm::mat4 someMatrix(1.0); glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector)); glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
<glm/gtc/type_ptr.hpp> need to be included to use these functionalities.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tvec2< T > const & | vec | ) |
Get the const address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 40 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x3< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 292 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x3< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 282 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x4< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 271 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x4< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 260 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x2< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 249 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x2< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 238 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x4< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 227 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x4< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 216 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x2< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 205 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x2< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 194 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x3< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 183 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x3< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 172 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x4< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 161 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat4x4< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 150 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x3< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 139 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat3x3< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 128 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x2< T > & | mat | ) |
Get the address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 117 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tmat2x2< T > const & | mat | ) |
Get the const address of the matrix content.
From GLM_GTC_type_ptr extension.
Definition at line 106 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tvec4< T > & | vec | ) |
Get the address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 95 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tvec4< T > const & | vec | ) |
Get the const address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 84 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tvec3< T > & | vec | ) |
Get the address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 73 of file type_ptr.hpp.
| T const* glm::gtc::type_ptr::value_ptr | ( | detail::tvec3< T > const & | vec | ) |
Get the const address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 62 of file type_ptr.hpp.
| T* glm::gtc::type_ptr::value_ptr | ( | detail::tvec2< T > & | vec | ) |
Get the address of the vector content.
From GLM_GTC_type_ptr extension.
Definition at line 51 of file type_ptr.hpp.


HTTPD
Section: httpd (8)Updated: 2007-08-01
Index Return to Main Contents
NAME
httpd - Apache Hypertext Transfer Protocol ServerSYNOPSIS
httpd [ -d serverroot ] [ -f config ] [ -C directive ] [ -c directive ] [ -D parameter ] [ -e level ] [ -E file ] [ -k start|restart|graceful|stop|graceful-stop ] [ -R directory ] [ -h ] [ -l ] [ -L ] [ -S ] [ -t ] [ -v ] [ -V ] [ -X ] [ -M ]
On Windows systems, the following additional arguments are available:
httpd [ -k install|config|uninstall ] [ -n name ] [ -w ]
SUMMARY
httpd is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run as a standalone daemon process. When used like this it will create a pool of child processes or threads to handle requests.
In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME.
OPTIONS
- -d serverroot
- Set the initial value for the ServerRoot directive to serverroot. This can be overridden by the ServerRoot directive in the configuration file. The default is /etc/httpd.
- -f config
- Uses the directives in the file config on startup. If config does not begin with a /, then it is taken to be a path relative to the ServerRoot. The default is conf/httpd.conf.
- -k start|restart|graceful|stop|graceful-stop
- Signals httpd to start, restart, or stop. See Stopping Apache for more information.
- -C directive
- Process the configuration directive before reading config files.
- -c directive
- Process the configuration directive after reading config files.
- -D parameter
- Sets a configuration parameter which can be used with <IfDefine> sections in the configuration files to conditionally skip or process commands at server startup and restart. Also can be used to set certain less-common startup parameters including -DNO_DETACH (prevent the parent from forking) and -DFOREGROUND (prevent the parent from calling setsid() et al).
- -e level
- Sets the LogLevel to level during server startup. This is useful for temporarily increasing the verbosity of the error messages to find problems during startup.
- -E file
- Send error messages during server startup to file.
- -R directory
- When the server is compiled using the SHARED_CORE rule, this specifies the directory for the shared object files.
- -h
- Output a short summary of available command line options.
- -l
- Output a list of modules compiled into the server. This will not list dynamically loaded modules included using the LoadModule directive.
- -L
- Output a list of directives together with expected arguments and places where the directive is valid.
- -M
- Dump a list of loaded Static and Shared Modules.
- -S
- Show the settings as parsed from the config file (currently only shows the virtualhost settings).
- -t
- Run syntax tests for configuration files only. The program immediately exits after these syntax parsing tests with either a return code of 0 (Syntax OK) or return code not equal to 0 (Syntax Error). If -D DUMP_VHOSTS is also set, details of the virtual host configuration will be printed. If -D DUMP_MODULES is set, all loaded modules will be printed.
- -v
- Print the version of httpd, and then exit.
- -V
- Print the version and build parameters of httpd, and then exit.
- -X
-
Run httpd in debug mode. Only one worker will be started and the server will not detach from the console.
The following arguments are available only on the Windows platform:
- -k install|config|uninstall
- Install Apache as a Windows NT service; change startup options for the Apache service; and uninstall the Apache service.
- -n name
- The name of the Apache service to signal.
- -w
-
Keep the console window open on error so that the error message can be read.
Index
This document was created by man2html, using the manual pages.
Time: 05:34:26 GMT, December 24, 2015


Course Outline: Differential Equations and Mathematical Modeling, Initial Value Problem, Separable Differential Equations, Exact Differential Equations, Linear Differential Equations, Bernoulli Equation, Homogeneous Linear Equations of Second Order, Second Order Homogeneous Equations with Constant Coefficients, Euler-Cauchy Equation, Existence and Uniqueness Theory, Non-homogeneous Equations, Solution by Undetermined Coefficients, Solution by Variation of Parameters, Higher-Order Linear Differential Equations, Higher-Order Homogeneous Equations with Constant Coefficients, and Higher-Order Non-homogeneous Equations, Vectors, Matrices, and Eigenvalues, Homogeneous Systems with Constant Coefficients, Critical Points, Criteria for Critical Points, Stability, Qualitative Methods for Nonlinear Systems, Non-homogenous Linear Systems, Laplace Transform, Inverse Transform, Transforms of Derivatives and Integrals, Differentiation and Integration of Transforms, Convolution, and Partial Fractions, System of Differential Equations.


Lights
Lighting control, preset lighting scenes, and timed lighting events are all hallmarks of an integrated home. Zigbee wireless technology allows for the quick automation of pre-existing lighting in your home; all it takes is a new switch. Integration with Control4 allows for total control of your lights regardless of where you are. Preset scenes allow you to control multiple lighting zones with the push of one button. Is the sun about to set? One push will dim the lights to 50%, setting the mood for the coming evening. Heading to bed? One button can turn off all your home's lights, while simultaneously leaving a temporarily-lit path to your bedroom.
Shades
Shades and blinds and blah blah blah


Facets can be used as a standalone component or linked to another component. Facets are usually a part of the
Object Page or Dynamic Page header content. Each facet adapts its size to the content and makes
optimal use of the space without truncating the texts. If the facets do not all fit on one line, those on the
right wrap to the line below.


{% extends "base.html" %} {% block content %}
Diomedes allows you to get early notifications for your favorite movies about to hit theaters.
Simply {% if not user.is_authenticated %}sign up (or login with your Google account) {% else %}sign up (or login with your Google account){% endif %} and give us the details of the movie and the date, along with your choice of theaters and we'll send you an email as soon as the theaters open their sales!


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import uk.gov.hmrc.fhregistrationfrontend.forms.models @import uk.gov.hmrc.fhregistrationfrontend.views.helpers._ @import uk.gov.hmrc.fhregistrationfrontend.views.html.helpers._ @import uk.gov.hmrc.fhregistrationfrontend.views.Mode @import uk.gov.hmrc.fhregistrationfrontend.views.Mode.Mode @import uk.gov.hmrc.fhregistrationfrontend.views.summary.GroupRow @(mainBusinessAddressForm: models.MainBusinessAddress, mode: Mode)(implicit messages: Messages) @changeLink = @{ if (Mode isEditable mode) { Some("mainBusinessAddress") } else { None } } @isGroupHead = @{ if (mainBusinessAddressForm.timeAtCurrentAddress == "Less than 3 years") GroupRow.Top else GroupRow.Single } @SummarySectionHead(heading = Messages("fh.main_business_address.title"))


Best of BS Opinion: Social to economical, losing the past and the future
Here's a selection of Business Standard Opinion pieces for the day
by Uddalok BhattacharyaThere is regression, socially, economically, and environmentally. Read on. Uddalok Bhattacharya sums up
India is shying away from playing a part in Asia’s future. Sunanda K Datta-Ray explores the matter. Read it here
Why shouldn’t India’s Muslims have representation in the country’s power structure, asks Shekhar Gupta here.
The government is in danger of losing its economic plot.
It should stop spending, says TCA Srinivasa-Raghavan. Click here to read.
Pollution alleviation requires a consensus and political will, says Devangshu Datta. Read it here
QUOTE It was a lot of different from the red ball. Initially, we bowled the right length but did not get any swing. Then we realised at what length we have to hit and we discussed among ourselves and found out the right length to bowl with the pink ball, Cricketer Ishant Sharma


Apple launches new Research app for iPhone and Apple Watch
by PradeepApple today announced the availability of new Research app for iPhone and Apple Watch. With this new Research app, users can join three health studies — the Apple Women’s Health Study, the Apple Heart and Movement Study, and the Apple Hearing Study. By participating in these studies, users can contribute to medical discoveries and help create the next generation of health products. After enrolling in a study, user’s data around movement, heart rate and noise levels will be shared with health institutions for research activities.
Apple Research app features:
- Review available studies, learn about the research partners and the research goals, understand study expectations, and if you are eligible, enroll by providing your consent.
- Choose what data to share and with which study, and review and manage data collected.
- Perform relevant tasks for enrolled studies.
- Learn how other Apple research studies have contributed to advancements in health science and to the development of innovative health products.
You can download the app here from Apple App Store.
Source: Apple


--- layout: post title: "Property-based testing is not the same as partition testing" description: "Including an example of property-based testing without much partitioning." date: 2021-06-28 6:45 UTC tags: [Unit Testing, Haskell, Property-based Testing] image: "/content/binary/partition-property-based-testing-venn.png" image_alt: "Venn diagram of partition testing and property-based testing." --- {% include JB/setup %}
{{ page.description }}
A tweet from Brian Marick induced me to read a paper by Dick Hamlet and Ross Taylor called Partition Testing Does Not Inspire Confidence. In general, I find the conclusion fairly intuitive, but on the other hand hardly an argument against property-based testing.
I'll later return to why I find the conclusion intuitive, but first, I'd like to address the implied connection between partition testing and property-based testing. I'll also show a detailed example.
The source code used in this article is available on GitHub.
The Hamlet & Taylor paper is exclusively concerned with partition testing, which makes sense, since it's from 1990. As far as I'm aware, property-based testing wasn't invented until later.
Brian Marick extends its conclusions to property-based testing:
This seems to imply that property-based testing isn't effective, because (if you accept the paper's conclusions) partition testing isn't effective."I've been a grump about property-based testing because I bought into the conclusion of Hamlet&Taylor's 1990 "Partition testing does not inspire confidence""
There's certainly overlap between partition testing and property-based testing, but it's not complete. Some property-based testing isn't partition testing, or the other way around:
To be fair, the overlap may easily be larger than the figure implies, but you can certainly describes properties without having to partition a function's domain.
In fact, the canonical example of property-based testing (that reversing a list twice yields the original list: reverse (reverse xs) == xs
) does not rely on partitioning. It works for all finite lists.
You may think that this is only because the case is so simple, but that's not the case. You can also avoid partitioning on the slightly more complex problem presented by the Diamond kata. In fact, the domain for that problem is so small that you don't need a property-based framework.
You may argue that the Diamond kata is another toy problem, but I've also solved a realistic, complex business problem with property-based testing without relying on partitioning. Granted, the property shown in that article doesn't sample uniformly from the entire domain of the System Under Test, but the property (there's only one) doesn't rely on partitioning. Instead, it relies on incremental tightening of preconditions to tease out the desired behaviour.
I'll show another example next.
When introducing equivalence classes and property-based testing in workshops, I sometimes use the FizzBuzz kata as an example. When I do this, I first introduce the concept of equivalence classes and then proceed to explain how instead of manually picking values from each partition, you can randomly sample from them:
[<Property(QuietOnSuccess = true)>] let ``FizzBuzz.transform returns Buzz`` (number : int) = (number % 5 = 0 && number % 3 <> 0) ==> lazy let actual = FizzBuzz.transform number let expected = "Buzz" expected = actual
(That's F# code, but the rest of the code in this article is going to be Haskell.)
While this gently introduces the concept of testing based on randomly sampling inputs, it relies heavily on partitioning. The above example filters inputs so that it only runs with numbers that are divisible by five, but not by three.
As at least one workshop attendee objected, it's getting perilously close to reproducing the implementation logic in the test. It always hurts when someone directs valid criticism at you, but he was right. That's not a problem with property-based testing, though, but rather with the way I presented it.
We can do better.
The trick to 'true' property-based testing is identifying proper properties for the problem being solved. Granted, this can be difficult and often requires some creative thinking (which is also why I find it so enjoyable). Fortunately, certain patterns tend to recur; for example, Scott Wlaschin has a small collection of property-based testing patterns.
As the FizzBuzz kata is described, the domain for a fizzBuzz
function is only the numbers from one to 100. Let's be generous, however, and expand it to all integers, since it makes no practical difference.
In Haskell, for example, we might aim for a function with this API:
fizzBuzz :: (Integral a, Show a) => a -> String
Is it possible to test-drive the correct implementation with QuickCheck without relying on partitioning?
I must admit that I can't figure out how to entirely avoid partitioning, but it's possible to bootstrap the process using only a single partition. If you know of a way to entirely do without partitioning, leave a comment.
In order to anchor the behaviour, we have to describe how at least a single value translates to a string, for example that all multiples of both three and five translate to "FizzBuzz". It might be enough to simply state that a small number like 0
or 15
translates to "FizzBuzz"
, but we might as well exercise that entire partition:
testProperty "Divisible by both 3 and 5" $ \ (seed :: Int) -> let i = seed * 3 * 5 actual = fizzBuzz i in "FizzBuzz" === actual
Here I take any integer seed
and use it to produce an integer i
which is guaranteed to belong to the partition that always produces the output "FizzBuzz"
.
Certainly, this tests only a single partition, but as Johannes Link points out, property-based testing still performs randomised testing within the partition.
The simplest implementation that passes the test is this:
fizzBuzz :: Integral a => a -> String fizzBuzz _ = "FizzBuzz"
From here, however, it's possible to describe the rest of the problem without relying on partition testing.
How to proceed from there long eluded me. Then it dawned on me that while it's hard to test a single call to the fizzBuzz
function without relying on partitioning, you can examine the output from projecting a small range of inputs to outputs.
What happens if we pick a random number, use it as an origin to enumerate three numbers in total (that is: two more numbers), and then call fizzBuzz
with each of them?
Imagine what happens if we randomly pick 10. In that case, we're going to enumerate three numbers, starting with 10: 10, 11, 12. What's the expected output of applying these three numbers to fizzBuzz
? It's Buzz, 11, Fizz. Let's try a few more, and make a table of it:
| i | i+1 | i+2 |
|---|---|---|
| 10 → Buzz | 11 → 11 | 12 → Fizz |
| 11 → 11 | 12 → Fizz | 13 → 13 |
| 12 → Fizz | 13 → 13 | 14 → 14 |
| 13 → 13 | 14 → 14 | 15 → FizzBuzz |
| 14 → 14 | 15 → FizzBuzz | 16 → 16 |
Do you notice a pattern?
There's more than a single pattern, but one is that there's always at least one number among the three results. Even if you have both a Fizz and a Buzz, as is the case with 10, 11, 12, at least one of the results (11) remains a number. Think about it some more to convince yourself that this should always be the case for three consecutive numbers.
That's a property of fizzBuzz
, and it holds universally (also for negative integers).
You can turn it into a QuickCheck property like this:
testProperty "At least one number in 3 consecutive values" $ \ (i :: Int) -> let range = [i..i+2] actual = fizzBuzz <$> range in counterexample (show range ++ "->" ++ show actual) $ any (\x -> isJust (readMaybe x :: Maybe Int)) actual
This test doesn't rely on input partitioning. It works for all integers.
In this test I used QuickCheck's counterexample
function to provide a helpful message in case of failure. Running the test suite against the above version of fizzBuzz
yields a failure like this:
At least one number in 3 consecutive values: [Failed]
*** Failed! Falsified (after 1 test):
0
[0,1,2]->["FizzBuzz","FizzBuzz","FizzBuzz"]
(used seed -6204080625786338123)
Here we see that the sequence [0,1,2]
produces the output ["FizzBuzz","FizzBuzz","FizzBuzz"]
, which is not only wrong, but is specifically incorrect in the sense that none of the values can be parsed as an integer.
Given the current implementation, that's hardly surprising.
Using the Devil's Advocate technique, I chose to pass both tests with this implementation:
fizzBuzz :: Integral a => a -> String fizzBuzz i = if i `mod` 15 == 0 then "FizzBuzz" else "2112"
The property I just added doesn't check whether the number is one of the input numbers, so the implementation can get away with returning the hard-coded string "2112"
.
Take a look at the above table. Do you notice any other patterns?
Of each set of three results, there's always a string that starts with Fizz. Sometimes, as we see with the input 15, the output is FizzBuzz, so it's not always just Fizz, but there's always a string that starts with Fizz.
This is another universal property of the fizzBuzz
function, which we can express as a test:
testProperty "At least one Fizz in 3 consecutive values" $ \ (i :: Int) -> let range = [i..i+2] actual = fizzBuzz <$> range in counterexample (show range ++ "->" ++ show actual) $ any ("Fizz" `isPrefixOf`) actual
Again, no partitioning is required to express this property. The arbitrary parameter i
is unconstrained.
To pass all tests, I implemented fizzBuzz
like this:
fizzBuzz :: Integral a => a -> String fizzBuzz i = if i `mod` 3 == 0 then "FizzBuzz" else "2112"
It doesn't look as though much changed, but notice that the modulo check changed from modulo 15 to modulo 3. While incorrect, it passes all tests.
Using the same reasoning as above, another property emerges. If, instead of looking at sequences of three input arguments, you create five values, only one of them should result in a Buzz result; e.g. 8, 9, 10, 11, 12 should result in 8, Fizz, Buzz, 11, Fizz. Sometimes, however, the Buzz value is FizzBuzz, for example when the origin is 11: 11, 12, 13, 14, 15 should produce 11, Fizz, 13, 14, FizzBuzz.
Like the above property, there's only one Buzz, but sometimes it's part of a compound word. What's clear, though, is that there should be only one result that ends with Buzz.
Not only is the idea similar to the one above, so is the test:
testProperty "Only one Buzz in 5 consecutive values" $ \ (i :: Int) -> let range = [i..i+4] actual = fizzBuzz <$> range in counterexample (show range ++ "->" ++ show actual) $ 1 == length (filter ("Buzz" `isSuffixOf`) actual)
Again, no partitioning is required to express this property.
This version of fizzBuzz
passes all tests:
fizzBuzz :: Integral a => a -> String fizzBuzz i | i `mod` 5 == 0 = "FizzBuzz" fizzBuzz i | i `mod` 3 == 0 = "Fizz" fizzBuzz _ = "2112"
We're not quite there yet, but we're getting closer.
What's wrong with the above implementation?
It never returns Buzz. How can we express a property that forces it to do that?
We can keep going in the same vein. We know that if we sample a sufficiently large sequence of numbers, it might produce a FizzBuzz value, but even if it does, there's going to be a Buzz value five positions before and after. For example, if the input sequence contains 30 (producing FizzBuzz) then both 25 and 35 should produce Buzz.
How big a range should we sample to be certain that there's at least one Buzz?
If it's not immediately clear, try setting up a table similar to the one above:
| i | i+1 | i+2 | i+3 | i+4 | i+5 | i+6 | i+7 | i+8 | i+9 |
|---|---|---|---|---|---|---|---|---|---|
| 10 → Buzz |
11 → 11 |
12 → Fizz |
13 → 13 |
14 → 14 |
15 → FizzBuzz |
16 → 16 |
17 → 17 |
18 → Fizz |
19 → 19 |
| 11 → 11 |
12 → Fizz |
13 → 13 |
14 → 14 |
15 → FizzBuzz |
16 → 16 |
17 → 17 |
18 → Fizz |
19 → 19 |
20 → Buzz |
| 17 → 17 |
18 → Fizz |
19 → 19 |
20 → Buzz |
21 → Fizz |
22 → 22 |
23 → 23 |
24 → Fizz |
25 → Buzz |
26 → 26 |
Notice that as one Buzz drops off to the left, a new one appears to the right. Additionally, there may be more than one literal Buzz, but there's always at least one (that is, one that's exactly Buzz, and not just ending in Buzz).
That's another universal property: for any consecutive sequence of numbers of length ten, there's at least one exact Buzz. Here's how to express that as a QuickCheck property:
testProperty "At least one literal Buzz in 10 values" $ \ (i :: Int) -> let range = [i..i+9] actual = fizzBuzz <$> range in counterexample (show range ++ "->" ++ show actual) $ elem "Buzz" actual
Again, no partitioning is required to express this property.
This version of fizzBuzz
passes all tests:
fizzBuzz :: Integral a => a -> String fizzBuzz i | i `mod` 15 == 0 = "FizzBuzz" fizzBuzz i | i `mod` 3 == 0 = "Fizz" fizzBuzz i | i `mod` 5 == 0 = "Buzz" fizzBuzz _ = "2112"
What's left? Only that the number is still hard-coded.
How to get rid of the hard-coded number?
From one of the above properties, we know that if we pick an arbitrary consecutive sequence of three numbers, at least one of the results will be a string representation of the input number.
It's not guaranteed to be the origin, though. If the origin is, say, 3, the input sequence is 3, 4, 5, which should yield the resulting sequence Fizz, 4, Buzz.
Since we don't know which number(s) will remain, how can we check that it translates correctly? We can use a variation of a common property-based testing pattern - the one that Scott Wlaschin calls There and back again.
We can take any sequence of three outputs and try to parse them back to integers. All successfully parsed numbers must belong to the input sequence.
That's another universal property. Here's how to express that as a QuickCheck property:
testProperty "Numbers round-trip" $ \ (i :: Int) -> let range = [i..i+2] actual = fizzBuzz <$> range numbers = catMaybes $ readMaybe <$> actual in counterexample (show range ++ "->" ++ show actual) $ all (`elem` range) numbers
The parsed numbers
may contain one or two elements, but in both cases, all of them must be an element of range
.
Again, no partitioning is required to express this property.
This version of fizzBuzz
passes all tests:
fizzBuzz :: (Integral a, Show a) => a -> String fizzBuzz i | i `mod` 15 == 0 = "FizzBuzz" fizzBuzz i | i `mod` 3 == 0 = "Fizz" fizzBuzz i | i `mod` 5 == 0 = "Buzz" fizzBuzz i = show i
This looks good. Let's call it a day.
Not so fast, though.
With the new round-trip property, isn't the property titled At least one number in 3 consecutive values redundant?
You might think so, but it's not. What happens if we remove it?
If you remove the At least one number in 3 consecutive values property, the Devil's Advocate can corrupt fizzBuzz
like this:
fizzBuzz :: (Integral a, Show a) => a -> String fizzBuzz i | i `mod` 15 == 0 = "FizzBuzz" fizzBuzz i | i `mod` 3 == 0 = "Fizz" fizzBuzz i | i `mod` 5 == 0 = "Buzz" fizzBuzz _ = "Pop"
This passes all tests if you remove At least one number in 3 consecutive values. Why doesn't the Numbers round-trip property fail?
It doesn't fail because with the above implementation of fizzBuzz
its numbers list is always empty. This property doesn't require numbers to be non-empty. It doesn't have to, because that's the job of the At least one number in 3 consecutive values property. Thus, that property isn't redundant. Leave it in.
What about the results from the Hamlet & Taylor paper? Are the conclusions in the paper wrong?
They may be, but that's not my take. Rather, the way I understand the paper, it says that partition testing isn't much more efficient at detecting errors than pure random sampling.
I've been using the rather schizophrenic version of the Devil's Advocate technique (the one that I call Gollum style) for so long that this conclusion rings true for me.
Consider a truly adversarial developer from Hell. He or she could subvert fizzBuzz
like this:
fizzBuzz :: (Integral a, Show a) => a -> String fizzBuzz 18641 = "Pwnd" fizzBuzz i | i `mod` 15 == 0 = "FizzBuzz" fizzBuzz i | i `mod` 3 == 0 = "Fizz" fizzBuzz i | i `mod` 5 == 0 = "Buzz" fizzBuzz i = show i
The test suite is very unlikely to detect the error - even if you ask it to run each property a million times:
$ stack test --ta "-a 1000000" FizzBuzzHaskellPropertyBased> test (suite: FizzBuzz-test, args: -a 1000000) Divisible by both 3 and 5: [OK, passed 1000000 tests] At least one number in 3 consecutive values: [OK, passed 1000000 tests] At least one Fizz in 3 consecutive values: [OK, passed 1000000 tests] Only one Buzz in 5 consecutive values: [OK, passed 1000000 tests] At least one literal Buzz in 10 values: [OK, passed 1000000 tests] Numbers round-trip: [OK, passed 1000000 tests] Properties Total Passed 6 6 Failed 0 0 Total 6 6 FizzBuzzHaskellPropertyBased> Test suite FizzBuzz-test passed
How many times should we run these properties before we'd expect the At least one number in 3 consecutive values property to detect the error?
In Haskell, Int
is an integer type with at least the range [-2^29 .. 2^29-1] - that is, from -536,870,912 to 536,870,911, for a total range of 1,073,741,823 numbers.
In order to detect the error, the At least one number in 3 consecutive values property needs to hit 18,641, which it can only do if QuickCheck supplies an i
value of 18,639, 18,640, or 18,641. That's three values out of 1,073,741,823.
If we assume a uniform distribution, the chance of detecting the error is 3 / 1,073,741,823, or approximately one in 333 million.
Neither property-based testing nor randomised testing is likely to detect this kind of error. That's basically the intuition that makes sense to me when reading the Hamlet & Taylor paper. If you don't know where to look, partition testing isn't going to help you detect errors like the above.
I can live with that. After all, the value I get out of property-based testing is as a variation on test-driven development, rather than only quality assurance. It enables me to incrementally flesh out a problem in a way that example-based testing sometimes can't.
There's a big overlap between partition testing and property-based testing. Often, identifying equivalence classes is the first step to expressing a property. A conspicuous example can be seen in my article series Types + Properties = Software, which shows a detailed walk-through of the Tennis kata done with FsCheck. For a hybrid approach, see Roman numerals via property-based TDD.
In my experience, it's much easier to partition a domain into equivalence classes than it is to describe universal properties of a system. Thus, many properties I write tend to be a kind of partition testing. On the other hand, it's more satisfying when you can express universal properties. I'm not sure that it's always possible, but I find that when it is, it better decouples the tests from implementation details.
Based on the FizzBuzz example shown here, you may find it unappealing that there's more test code than 'production code'. Clearly, for a problem like FizzBuzz, this is unwarranted. That, however, wasn't the point with the example. The point was to show an easily digestible example of universal properties. For a more realistic example, I'll refer you to the scheduling problem I also linked to earlier. While the production code ultimately turned out to be compact, it's far from trivial.


QSS20. Modern Statistical Computing¶
Social scientists are investigating questions that have led to two changes in their computing workflow.
One change is the use of new forms of data: text data to study how police officers use different language when interacting with Black drivers than with White drivers; spatial data to study the geographic clustering of autism diagnoses in more affluent communities; cellphone mobility data to (try) to estimate COVID-19 mobility patterns.
The second change is the use of new methods to discern patterns in data. Imagine a relatively simple dataset where each individual is described by a limited number of characteristics: for instance, a student and his or her demographic attributes and high school end-of-year grades. Now imagine augmenting that dataset with the forms of data described above–we know the student’s address and can thus merge in spatial data on neighborhood characteristics; we have qualitative notes from the teacher’s end-of-year reports and can investigate how those qualitative impressions correlate with grades. These require you as the researcher to have the facility to quickly pick up new methods to find patterns in large-scale data, with the methods and tools developing at a rapid pace.
This course is meant to build upon your introductory programming course and to equip you with the computing literacy to conduct social science research in the age of “big data.” This has two core components. First is learning the background tools (e.g.,Git/Github; LaTeX; working on the command line) to conduct transparent and reproducible research. Second is learning programming skills essential for social science in the big data era, with a focus on using Python for various applied tasks as well as R for tasks like data visualization and SQL for tasks like working with the relational databases that form the backbone of many real-world government and commercial datasets.
Prerequisites¶
Required: COSC 1, ENGS 20, or another programming course approved by the QSS Chair.
Recommended: introductory statistics course.
Textbook v. DataCamp¶
Is there a textbook? There is no textbook. For specific programming questions, DataCamp videos will give good introductions to the concepts and then stackoverflow/various online resources help fill in the gaps.
What is a DataCamp module and how will I keep track of them? A module in DataCamp consists of two components. First is a short introductory video to a concept like writing a loop (which you can click through if you already know the concept). Next is a series of tasks where they’ll ask you to write code to do something, you submit, and you can progress to the next task when your code successfully does what it’s supposed to. To keep track of them, we have a course page hosted within DataCamp that you will sign up for with your Dartmouth email.
All modules given as assignments will be assigned on that page. As a result, the course schedule gives the module’s general name. The modules should be completed before the corresponding class, so that you can more easily work on the in-class activity.


--- layout: post title: Is Loyalty Dead? date: '2012-03-27T10:29:52-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/20014171316/is-loyalty-dead ---
http://bit.ly/GUfcCB


I am experienced in leveraging agile frameworks to provide a robust synopsis for high level overviews.Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.


This plugin defines a global device
object, which describes the device's hardware and software.
Although the object is in the global scope, it is not available until after the deviceready
event.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(device.cordova);
}
cordova plugin add org.apache.cordova.device
Get the version of Cordova running on the device.
The device.model
returns the name of the device's model or
product. The value is set by the device manufacturer and may be
different across versions of the same product.
// Android: Nexus One returns "Passion" (Nexus One code name)
// Motorola Droid returns "voles"
// BlackBerry: Torch 9800 returns "9800"
// Browser: Google Chrome returns "Chrome"
// Safari returns "Safari"
// iOS: for the iPad Mini, returns iPad2,5; iPhone 5 is iPhone 5,1. See http://theiphonewiki.com/wiki/index.php?title=Models
//
var model = device.model;
Passion
, and Motorola Droid returns voles
.TIZEN
SGH-i917
.Get the device's operating system name.
var string = device.platform;
// Depending on the device, a few examples are:
// - "Android"
// - "BlackBerry 10"
// - Browser: returns "MacIntel" on Mac
// returns "Win32" on Windows
// - "iOS"
// - "WinCE"
// - "Tizen"
var devicePlatform = device.platform;
Windows Phone 7 devices report the platform as WinCE
.
Windows Phone 8 devices report the platform as Win32NT
.
Get the device's Universally Unique Identifier (UUID).
var string = device.uuid;
The details of how a UUID is generated are determined by the device manufacturer and are specific to the device's platform or model.
// Android: Returns a random 64-bit integer (as a string, again!)
// The integer is generated on the device's first boot
//
// BlackBerry: Returns the PIN number of the device
// This is a nine-digit unique integer (as a string, though!)
//
// iPhone: (Paraphrased from the UIDevice Class documentation)
// Returns a string of hash values created from multiple hardware identifies.
// It is guaranteed to be unique for every device and can't be tied
// to the user account.
// Windows Phone 7 : Returns a hash of device+current user,
// if the user is not defined, a guid is generated and will persist until the app is uninstalled
// Tizen: returns the device IMEI (International Mobile Equipment Identity or IMEI is a number
// unique to every GSM and UMTS mobile phone.
var deviceID = device.uuid;
The uuid
on iOS is not unique to a device, but varies for each
application, for each installation. It changes if you delete and
re-install the app, and possibly also when you upgrade iOS, or even
upgrade the app per version (apparent in iOS 5.1). The uuid
is not
a reliable value.
The uuid
for Windows Phone 7 requires the permission
ID_CAP_IDENTITY_DEVICE
. Microsoft will likely deprecate this
property soon. If the capability is not available, the application
generates a persistent guid that is maintained for the duration of the
application's installation on the device.
Get the operating system version.
var string = device.version;
// Android: Froyo OS would return "2.2"
// Eclair OS would return "2.1", "2.0.1", or "2.0"
// Version can also return update level "2.1-update1"
//
// BlackBerry: Torch 9800 using OS 6.0 would return "<IP_ADDRESS>0"
//
// Browser: Returns version number for the browser
//
// iPhone: iOS 3.2 returns "3.2"
//
// Windows Phone 7: returns current OS version number, ex. on Mango returns 7.10.7720
// Tizen: returns "TIZEN_20120425_2"
var deviceVersion = device.version;


The Viewer displays an image from a single DECam CCD for you to inspect. Initally we show you two primary buttons:
If there are no obvious issues with the image displayed, simply press Next. Otherwise, click the Problem button and select one of the predefined problem categories. Click on the problematic location(s) to mark the image.
In the course of marking problem regions, two new buttons will appear:
With the False button, you can report a non-existent problem that has been falsely flagged by DESDM, e.g. a mask that covers an area that appears totally fine. From the shape of the mask you can often guess which problem was mistakenly masked. If so, chose the appropriate category and click on this button to report it. When you click on the image, a mark will appear to indicate that you are reporting a false positive. After you've marked the first problem, another button Clear Last will appear to let you undo your mark(s). Once you are done marking all problems, click Next to submit the problems and advance to the next image.
Additionally, we give you the means to further investigate the single CCD image using these buttons:
The Info button opens a menu with a link to the image you are currently viewing, the path to the full resolution FITS file from DESDM, a PNG showing the entire focal plane. You can also overlay problems previously reported for this image by other users. The Toggle Mask button allows you to turn on and off the image mask, while the Toggle Scaling button lets you change the image scaling.
You now have everything you need to start looking at images.
If you still have questions, go the FAQ page and see if we cover it already.
The remainder of this tutorial goes into more detail about the various imaging artifacts commonly found in the DES data set. You can click on all of these images to load them into the viewer and see what has been reported.
There are a number of columns that behave differently than their neighbors. Often this occurs when a hot pixel in the column bleeds over during readout. We attempt to mask these columns with a "bad pixel mask" and it is useful to know when we are missing bad columns.
Cosmic-ray contamination is unavoidable in our deep red-sensitive CCDs. The good thing about unmasked cosmic rays: they are easy to spot. Unmasked cosmic rays should become apparent when you use the button to switch to a scaling that focuses on the bright aspects of the image and the to blink the existing mask. It's perfectly fine to mark multiple cosmic rays per image, including those that are only partially masked. In Y1A1, cosmic-ray tracks are interpolated over after masking, so you should not see any sign of them when the mask is toggled off (in SVA1 they should still be visible).
Cross-talk is a readout issue, which occurs in the electronics. The visual imprint of cross-talk is a long, horizontal excess of counts, typically several pixels wide and often widest in the middle section. When the cross-talk occurs on a single chip, there should be a bright object on the other side of the horizontal A/B transition.
Since cross-talk scales with the brightness of the object that cause it, only the brightest objects (typically stars) will leave a clearly visible imprint. Toggle the image scaling to dig deeper into noise. Since the feature can be very extended, mark the region where it has it's widest vertical extension: the knot in the middle.
Very bright stars saturate the readout electronics leading to bright bleeds on the readout side of the CCD. Edge-bleeds should be automatically identified and masked with a rectangular strip. If this mask is too big, too small, or not present at all, please tag the location of the error.
Occasionally large regions of a CCD get masked for no apparent reason. Sometimes this is a failure in edge-bleed masking, other times the cause is uncertain. Additionally, sometimes the circular regions around bright stars are excessively masked. For more on star masking, see the FAQ. Toggle the mask and flag excessive masks when you see them.
It is fairly common for dark regions to appear in the corners and around the edges of images. These reflect an over-subtraction of the sky background in these regions. These dark rims are often correlated with bright stars or dense fields.
Dark halos occasionally appear surrounding bright objects. This results from the sky background being over-estimated close to these objects.
Occasionally images show strong rectilinear patterning, and in the worst cases a CCD will appear as a 4x8 quilt of light and dark regions. This quilting is introduced by a mismatch in the normalization factor between the pupil and illumination correction (both of which are calculated in 512 pixel blocks). This artifact often appears strongest near the sides of the CCD, and can manifest itself as a single vertical line inset by roughly 1/8th of a CCD length.
Wavy sky appears as large-scale structures contributing a high-level of sky background. These features are often correlated over the entire focal plane and can occur for several exposures in a row (they may be the result of poor observing conditions). We don't understand the root cause of this yet...
Anti-bleeds are dark streaks extending vertical from bright stars towards the long edges of the CCD. They have a width roughly comparable to the masked region of the star. They appear in the reduced images themselves and are thus not purely an artifact of the sky background subtraction. We don't understand the root cause of this yet...
The top and bottom halves of the DECam CCDs are read out by two different amplifiers. The gains on these amplifiers are different leading to a different background level on the two halves of each CCD. This should be corrected for in flat fielding; however, a failure can lead to a strong change in the background level at the horizontal mid-plane of the CCDs. This is most pronounced with the low-light-level non-linearity of CCD 31.
Fringes are an interference pattern that occur at red wavelengths when the CCDs become transparent (think of the fringes on the surface of an oily puddle). Fringes are known to be variable (relative to the rest of sky brightness) and the pipeline does not currently deal with them too well. They occur most commonly in the z-band.
The silicon wafers are attached to the CCD backplanes by six pieces of double-sided tape (three along each long edge of the CCD). Physical stresses on the silicon lattice distort the electric field in these regions changing the effective size of the pixels in these regions. A failure in flat-fielding can lead to one or often more of these tape bumps being visible in the reduced image. For more information, see this paper.
Tree rings are concentric, circularly symmetric features arising changes in the effective pixel size resulting from transverse electric fields in the CCDs. Tree rings originate from variations in the doping impurities during single-crystal silicon growth. Thus, the tree ring pattern of each CCD will depend on its relative position in the silicon wafer. Tree rings appear most strongly in the z-band. For more information, see this paper.
The vertical jump arises from the incorporation of a few bad flats into the calibration sets. These flats contain a strong gradient caused by the shutter failing to close during readout. Due to the clipping algorithm when combining multiple flats, this results in a vertical "jump" near the center of flat-fielded images. More information on the vertical jump feature can be found here.
The worst scattered light features come bright off-axis stars scattering off of the wall of the shutter. This leads to broad bright sprays fanning out from the edge of the focal plane. These features can be most easily identified on the full focal plane images via the button. After Year 1, we applied an anti-reflective paint to the shutter wall and this issues should be corrected for Year 2 and beyond. More information can be found here.
Ghost are reflections off the internal camera optics. They dominantly appear when a bright object is in the field of view and often occupy very large areas (from parts of a chip to the entire focal plane). Small ghosts can be identified on a single chip by their characteristic "tie-fighter window" pattern; however, often it is helpful to look at images of the full focal play. More information on ghosts can be found here.
In addition to Bright Sprays, less intense scattered light features appear on smaller scales. These have been termed "Brush Strokes" due to their diffuse, sweeping appearance. We don't understand the root cause of these yet...
The origin of the bright arcs is not 100% clear, but they appear to come from light passing through the uncoated edge of the filters (type II spray) and scattering off of the filter cage. More information can be found here. This issue may be corrected in Year 2.
Satellite, orbital stages of rockets, and other reflecting bodies often cross our focal plane. They create long, unsaturated streaks on the images, much longer and wider than cosmic rays. Since they are so large, you can mark the track wherever you want. Sometimes, however, the tracks are broken into segments (note: rocket parts may tumble), in which case we'd like to have marks on each of the segments. In Y1A1, be sure to keep an eye out for falsely masked streaks (i.e., streak masks when no streak is present).
Unfortunately, CTIO lies along a regional Chilean airline flight path. We expect that roughly 15 planes will cross the DECam focal plane per season. Planes have a much larger impact that satellites, often destroying the sky background estimation. When lights on a airplane blink, they appear as out-of-focus donuts (and can be used to determine the height of the plane...). Slightly more information on airplanes can be found here.
Failures in the telescope guiding can lead to extended and elongated sources. These issues will hopefully be solved in Year 1.
Star bleeds are often symptomatic of the camera being readout with the shutter still open. Star bleeds caused by shutter errors can be identified by looking at the full focal plane image, where the direction of the star bleeds will change between the top and bottom of the focal plane (due to a switch in the readout direction). Shutter errors should be solved by Year 2.
There are additional readout glitches, which are usually manifest as nearly vertical hatched lines near the edges of the CCDs. These issues should be fixed early in SV.
Haze appears as large diffuse blurs around bright objects. It affects the entire focal plane and can thus be seen well from the FoV images. The reason could be a slightly overcast sky, but we don't fully understand the root cause of this yet...
Some images contain a grainy vertical striping. Sometimes, this striping can be so bad that the image gets excessively masked. Vertical striping can be caused by a loose sync cable influencing the readout electronics. The root cause can be both the individual images or the bias frame that is subtracted from each raw image. Vertical striping is known to affect exposures taken in November, 2013 (specifically, CCDs on backplane 1).
Sometimes none of the existing categories fit. In this case, you can describe the problem in your own words. Please do so in a way that is as comprehensible and consistent as possible. To help you do that, we remember the descriptions you've used before and show them to you. To get a sense of what other people have found, check out our Hodge-podge page that show you a list of free-word categories from all users.
 Please do report these objects by selecting "Awesome!" from the drop-down, then describe what you see and click on the object. We collect these objects, and present the most fabulous ones in our Gallery.
If you'd like to help with the inspection of the candidates for our website and outreach purposes, please contact us.


HTML and CSS go hand in hand, usually, though we got to admit that HTML is slightly more independent, and could survive on its own, albeit in a bland fashion. A lot of analogies that come to mind is to style and individualise something that would otherwise not stand out or be, for the lack of a better word, boring. Don’t get me wrong, I love my sourdough slice, but it becomes so much more appetising and appreciated by me, when I put some Nuttelex and salt on top! A canvas could be hung on its own as it is, it comes in various sizes and coarseness levels. But it’s so much more engaging and interesting when it’s the holder of a piece of art! CSS on its own would, however, not really make a substantial website or anything really, but an unused collection of styling possibilities. Unworn clothes, for instance. Paints and embellishments, not applied to their respective canvas. Furniture and decor that has no house to be put into. You get the drift… So, to conclude, it’s important to see HTML and CSS separately to fully appreciate their values and differences. HTML on its own is ‘the structure’ and CSS on its own is ‘the coating’ or styling.
Control flow describes the order in which tasks are being executed by a function. If/else condition statements help to make a streamlined, more individual experience, rather than cancelling out of a function if the first condition is not met. These can get as simple or as complex as the interaction outcome needs it to be. A possible analogy to explain this would be the process of taking a shower. Since I don’t wash my hair every single day, I can make it a condition of whether or not to include my hair in the daily shower process. Also, I will only perform my in-shower activities while the hot water is running. Otherwise, those actions are pointless (at least for their intended purpose!). So, I’m including a while loop. Loops are helpful to determine the iteration or duration frequency of a function - they can be dependent on another function or be following a pre-set number or repetitions. All this could be written as a function like so:
The DOM is, in a way, the gateway for languages like JavaScript to access all elements of a document, in most cases a website. It translates all of the HTML components into a treelike node-system that makes it possible for all these elements to be accessed and manipulated. It’s what we as developers need to implement interactivity into our chosen elements.
For instance, if I want to add some interaction or animation that is triggered by a click on the respective element to one of my blog posts, but don’t want the entire page to reload, I will need to add the necessary JavaScript functions and point them to the targeted element(s). This could be a sub-nav inside my cultural blog posts, where one can click between all my cultural blog posts as tabs while the page doesn’t need to reload to another URL.
Both, arrays and objects, can hold groupings of data. Usually, accessing data from an array will be possible with knowing the data item’s index position. More often than not, arrays will be made up of the same data type or element they came from. For example, the document.getElementsByClass(‘name’) method will return an array of elements that are all assigned that particular class of ‘name’.
An object, on the other hand, is a grouping of properties (‘keys’) that can have different values each. One can access individual properties from the object, but then also go one level deeper and access the values for each property.
One could say that while an array is two-dimensional (element-type; which position in the list of these element types), an object has three dimensions (various element types; positions of these element types; values of each element type). It’s a bit of a wobbly analogy, but I hope it gets the point across.
Example for accessing data in an array:
Example for accessing data in an object:
A function is a set of ‘instructions’ for a task to be performed. Once defined, it can be called, through various triggers, or ‘events’. Functions are useful, because they can be used multiple times, with varying parameters, without ever having to write all of these actions for each input individually. In short: they are preserving time and effort, plus, they make code more readable and efficient.


I am dedicated to empowering individuals to nurture their inner-child in order to release blockages and heal themselves through witnessing the magical beauty of the Divine that encompasses each and every one of us.
Business site link and info
Use the Modern Blog Theme. This is how I muse for myself.


--- title: Title keywords: fastai sidebar: home_sidebar nb_path: "nbs/rich_test.ipynb" ---
from rich import print as pr
from rich.panel import Panel
from rich.console import RenderGroup
from rich.table import Table
from rich.live import Live
import time
from collections import deque
import random
class Deque(deque):
def __rich__(self): return '\n'.join(map(str,self))
def grid(*rows):
g = Table.grid(expand=True)
for c in rows[0]: g.add_column()
for r in rows: g.add_row(*r)
return g
def quad(d):
ps = [Panel(v, title=k) for k,v in d.items()]
return RenderGroup(
grid(ps[:2], ps[2:]),
'# commits: ...'
)
types = 'Issues','PRs','Commits','Releases'
ds = {o:Deque(maxlen=5) for o in types}
for o in range(50): ds[types[random.randint(0,3)]].append(o)
pr(quad(ds))
ds = {o:Deque(maxlen=5) for o in types}
with Live(refresh_per_second=4) as live:
for o in range(40):
ds[types[random.randint(0,3)]].append(o)
time.sleep(0.1)
live.update(quad(ds))
from rich.progress import Progress
with Progress() as progress:
task1 = progress.add_task("[red]Downloading...", total=20)
task2 = progress.add_task("[green]Processing...", total=20)
while not progress.finished:
progress.update(task1, advance=0.5, refresh=True)
progress.update(task2, advance=0.3, refresh=True)
time.sleep(0.02)


Chat with any tab connected to the same broker and mqtt topic.
This example connects the page to test.mosquito.org
,
a public, test MQTT broker service. And subscribes to topic cotonic/chat
. Chat messages
which are published on this topic will be displayed in the chat box.
You can open another tab and chat with yourself if nobody is online. Or examine the code


The game where you try and guess what other people have given as answers.
Start a New Game Join a Game