Johnson casts net for votes at fish market
Boris Johnson posed for selfies and watched a fish auction as cod and haddock were sold at Grimsby Fish Market.
Boris Johnson has insisted he is “taking nothing for granted” as he launched his final election campaign push in a fish market.
The Conservative Party leader arrived in Grimsby for an early morning market tour and was greeted with cheers and some jokey shouts – along with the smell of fish.
One worker shouted “Boo Boris” while another man could be heard saying: “He brings them out, eh? Phoney bastards.”
Mr Johnson posed for selfies and watched a fish auction as cod and haddock were sold.
He was given the task of placing labels on sold items.
Chatting to workers in the market, Mr Johnson asked: “Are you worried about the Dutch super trawlers?”
The PM was told people are concerned, before he asked: “What’s that one in the Channel, that huge one they had in the Channel?”
He referred to it as a “mega trawler” and also said: “It was sort of hoovering everything up from the sea then.
“How can they check which fish they’re getting? They’re just going to take everything on, clean out the seabed, that’s the problem.”
“Ask the Dutch,” came the reply.
The Prime Minister later held a cod in his arms for the cameras.
Mr Johnson also pulled a box of fish across the warehouse floor, prompting shouts of “Go on Boris” from onlookers.
Speaking to broadcasters, Mr Johnson was asked how confident he was he could scale the “red wall” of Labour as he bids to secure a parliamentary majority – something the polls suggest he is on course to achieve.
He replied: “We’re taking nothing for granted, we’re working very, very hard across the whole country and I think it’s a message of unity of bringing this amazing United Kingdom together.
“If we can get Brexit done then we can move forward with investments in infrastructure, education and technology that will unleash opportunity across the whole country.
“It’s a message that makes sense whether you’re working in the arts and financial services in London or fishing in Grimsby or the arts and financial services in Grimsby.”
Mr Johnson was later booed by Labour activists as he arrived for a North East campaign visit.
A man on a megaphone could be heard saying: “We don’t want Boris in the North East of England.”
The PM was given a tour of Fergusons Transport, near Washington, and shown some tyres.
He had been due to visit a deli in the Bishop Auckland area but the event was cancelled.
A Tory official blamed Labour activists gathering outside the venue for the cancellation and said the decision was taken after receiving security advice.
Asked if he was worried about “left-wing activists” disrupting planned events, Mr Johnson told reporters: “I think we do want to have a kinder, gentler politics, and I’ve noticed in the last few days that Labour activists have been turning up in a pretty concerted and a pretty intimidating way to try to shout and heckle.
“I don’t find this consistent with (Labour leader) Mr Corbyn’s claim to want to take the acrimony and heat out of politics.
“It’s very disappointing and I hope it stops.”


{% extends "app/newlayout.html" %} {% block content %} {% load staticfiles %}
Here you have the option to select either the Kubernetes Cluster or the GPU options below. To navigate this form, you first make your selection, then click on the buttons below to begin traveling through the form.
If you want to stop filling out the Cluster Form or vice versa, just navigate back to this page and select the other option. It will clear your old form and allow you to navigate your desired form.
After making sure to fill out all of the input fields, you will be able to then submit the form and be redirected to the results page.


We have all the spices, incense, supplies, meats, injera, and produce you need to create your favorite and traditional dishes.
While you're here, you can also stock up on your snacks, drinks, and toiletries.
Find your new favorite Ethiopian pop stars while exploring our wide selection of today's hits.
Hot Chili Pepper Blend
8 oz. | $9.95
Hot Chili Blend
2 oz. | $7.95
Spicy Legume Blend
1 lb. | $10.95
Finishing Spice Mix
2 oz. | $8.95
Ethiopian Fenugreek
2 oz. | $5.95
Black Cardamom Seed Pods
2 oz. | $6.95
Ethiopian Turmeric
2 oz. | $6.95
Ethiopian Aroma hops
4 oz. | $9.95
Wot Spice Blend
2 oz. | $6.95
Butter Clarifying Herb
2 oz. | $9.95
Black Caraway Seed
2 oz. | $5.95
Mild Legume Blend
1 lb. | $9.95
Merkato Ethiopian Food Store has been owned and operated by Yadi Benti since 2008. It it not only a place to find authentic Ethiopian dishes and ingredients, but also a place for community to gather. You will find all you need at Merkato and Yadi will always be there to greet you with a friendly smile.


- AdditionalAnswers - Class in org.mockito
-
Additional answers provides factory methods for answers.
- AdditionalAnswers() - Constructor for class org.mockito.AdditionalAnswers
-
- AdditionalMatchers - Class in org.mockito
-
See
Matchers
for general info about matchers.
- AdditionalMatchers() - Constructor for class org.mockito.AdditionalMatchers
-
- addListener(MockitoListener) - Method in interface org.mockito.MockitoFramework
-
Adds listener to Mockito.
- after(long) - Static method in class org.mockito.Mockito
-
- after(Duration) - Static method in class org.mockito.Mockito
-
Verification will be triggered after given amount of time, allowing testing of async code.
- After - Class in org.mockito.verification
-
- After(long, VerificationMode) - Constructor for class org.mockito.verification.After
-
- After(Duration, VerificationMode) - Constructor for class org.mockito.verification.After
-
- and(boolean, boolean) - Static method in class org.mockito.AdditionalMatchers
-
boolean argument that matches both given matchers.
- and(byte, byte) - Static method in class org.mockito.AdditionalMatchers
-
byte argument that matches both given argument matchers.
- and(char, char) - Static method in class org.mockito.AdditionalMatchers
-
char argument that matches both given argument matchers.
- and(double, double) - Static method in class org.mockito.AdditionalMatchers
-
double argument that matches both given argument matchers.
- and(float, float) - Static method in class org.mockito.AdditionalMatchers
-
float argument that matches both given argument matchers.
- and(int, int) - Static method in class org.mockito.AdditionalMatchers
-
int argument that matches both given argument matchers.
- and(long, long) - Static method in class org.mockito.AdditionalMatchers
-
long argument that matches both given argument matchers.
- and(short, short) - Static method in class org.mockito.AdditionalMatchers
-
short argument that matches both given argument matchers.
- and(T, T) - Static method in class org.mockito.AdditionalMatchers
-
Object argument that matches both given argument matchers.
- AnnotationEngine - Interface in org.mockito.configuration
-
- AnnotationEngine - Interface in org.mockito.plugins
-
Configures test via annotations.
- answer(Answer1<T, A>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answer(Answer2<T, A, B>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answer(Answer3<T, A, B, C>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answer(Answer4<T, A, B, C, D>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answer(Answer5<T, A, B, C, D, E>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answer(Answer6<T, A, B, C, D, E, F>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
idiomatically in Java 8
- answer(InvocationOnMock) - Method in enum org.mockito.Answers
-
- Answer<T> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer.
- answer(InvocationOnMock) - Method in interface org.mockito.stubbing.Answer
-
- answer(A0) - Method in interface org.mockito.stubbing.Answer1
-
- answer(A0, A1) - Method in interface org.mockito.stubbing.Answer2
-
- answer(A0, A1, A2) - Method in interface org.mockito.stubbing.Answer3
-
- answer(A0, A1, A2, A3) - Method in interface org.mockito.stubbing.Answer4
-
- answer(A0, A1, A2, A3, A4) - Method in interface org.mockito.stubbing.Answer5
-
- answer(A0, A1, A2, A3, A4, A5) - Method in interface org.mockito.stubbing.Answer6
-
- answer(A0) - Method in interface org.mockito.stubbing.VoidAnswer1
-
- answer(A0, A1) - Method in interface org.mockito.stubbing.VoidAnswer2
-
- answer(A0, A1, A2) - Method in interface org.mockito.stubbing.VoidAnswer3
-
- answer(A0, A1, A2, A3) - Method in interface org.mockito.stubbing.VoidAnswer4
-
- answer(A0, A1, A2, A3, A4) - Method in interface org.mockito.stubbing.VoidAnswer5
-
- answer(A0, A1, A2, A3, A4, A5) - Method in interface org.mockito.stubbing.VoidAnswer6
-
- Answer1<T,A0> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a single argument invocation.
- Answer2<T,A0,A1> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a two argument invocation.
- Answer3<T,A0,A1,A2> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a three argument invocation.
- Answer4<T,A0,A1,A2,A3> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a four argument invocation.
- Answer5<T,A0,A1,A2,A3,A4> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a five argument invocation.
- Answer6<T,A0,A1,A2,A3,A4,A5> - Interface in org.mockito.stubbing
-
Generic interface to be used for configuring mock's answer for a six argument invocation.
- Answers - Enum in org.mockito
-
Enumeration of pre-configured mock answers
- answersWithDelay(long, Answer<T>) - Static method in class org.mockito.AdditionalAnswers
-
Returns an answer after a delay with a defined length.
- answerVoid(VoidAnswer1<A>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answerVoid(VoidAnswer2<A, B>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answerVoid(VoidAnswer3<A, B, C>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answerVoid(VoidAnswer4<A, B, C, D>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answerVoid(VoidAnswer5<A, B, C, D, E>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
ideally in Java 8
- answerVoid(VoidAnswer6<A, B, C, D, E, F>) - Static method in class org.mockito.AdditionalAnswers
-
Creates an answer from a functional interface - allows for a strongly typed answer to be created
idiomatically in Java 8
- any() - Static method in class org.mockito.ArgumentMatchers
-
Matches anything, including nulls and varargs.
- any(Class<T>) - Static method in class org.mockito.ArgumentMatchers
-
Matches any object of given type, excluding nulls.
- anyBoolean() - Static method in class org.mockito.ArgumentMatchers
-
Any boolean
or non-null Boolean
- anyByte() - Static method in class org.mockito.ArgumentMatchers
-
Any byte
or non-null Byte
.
- anyChar() - Static method in class org.mockito.ArgumentMatchers
-
Any char
or non-null Character
.
- anyCollection() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null Collection
.
- anyCollectionOf(Class<T>) - Static method in class org.mockito.ArgumentMatchers
-
- anyDouble() - Static method in class org.mockito.ArgumentMatchers
-
Any double
or non-null Double
.
- anyFloat() - Static method in class org.mockito.ArgumentMatchers
-
Any float
or non-null Float
.
- anyInt() - Static method in class org.mockito.ArgumentMatchers
-
Any int or non-null Integer
.
- anyIterable() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null Iterable
.
- anyIterableOf(Class<T>) - Static method in class org.mockito.ArgumentMatchers
-
- anyList() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null List
.
- anyListOf(Class<T>) - Static method in class org.mockito.ArgumentMatchers
-
- anyLong() - Static method in class org.mockito.ArgumentMatchers
-
Any long
or non-null Long
.
- anyMap() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null Map
.
- anyMapOf(Class<K>, Class<V>) - Static method in class org.mockito.ArgumentMatchers
-
- anyObject() - Static method in class org.mockito.ArgumentMatchers
-
- anySet() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null Set
.
- anySetOf(Class<T>) - Static method in class org.mockito.ArgumentMatchers
-
- anyShort() - Static method in class org.mockito.ArgumentMatchers
-
Any short
or non-null Short
.
- anyString() - Static method in class org.mockito.ArgumentMatchers
-
Any non-null String
- anyVararg() - Static method in class org.mockito.ArgumentMatchers
-
- argThat(ArgumentMatcher<T>) - Static method in class org.mockito.ArgumentMatchers
-
Allows creating custom argument matchers.
- argThat(Matcher<T>) - Static method in class org.mockito.hamcrest.MockitoHamcrest
-
Allows matching arguments with hamcrest matchers.
- ArgumentCaptor<T> - Class in org.mockito
-
Use it to capture argument values for further assertions.
- ArgumentMatcher<T> - Interface in org.mockito
-
Allows creating customized argument matchers.
- ArgumentMatchers - Class in org.mockito
-
Allow flexible verification or stubbing.
- ArgumentMatchers() - Constructor for class org.mockito.ArgumentMatchers
-
- ArgumentsAreDifferent - Error in org.mockito.exceptions.verification
-
- ArgumentsAreDifferent(String) - Constructor for error org.mockito.exceptions.verification.ArgumentsAreDifferent
-
- ArgumentsAreDifferent(String, String, String) - Constructor for error org.mockito.exceptions.verification.ArgumentsAreDifferent
-
Three-arg constructor for compatibility with ExceptionFactory's three-arg
create method.
- ArgumentsAreDifferent - Error in org.mockito.exceptions.verification.junit
-
- ArgumentsAreDifferent(String, String, String) - Constructor for error org.mockito.exceptions.verification.junit.ArgumentsAreDifferent
-
- ArgumentsAreDifferent - Error in org.mockito.exceptions.verification.opentest4j
-
- ArgumentsAreDifferent(String, String, String) - Constructor for error org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent
-
- aryEq(T[]) - Static method in class org.mockito.AdditionalMatchers
-
Object array argument that is equal to the given array, i.e.
- aryEq(short[]) - Static method in class org.mockito.AdditionalMatchers
-
short array argument that is equal to the given array, i.e.
- aryEq(long[]) - Static method in class org.mockito.AdditionalMatchers
-
long array argument that is equal to the given array, i.e.
- aryEq(int[]) - Static method in class org.mockito.AdditionalMatchers
-
int array argument that is equal to the given array, i.e.
- aryEq(float[]) - Static method in class org.mockito.AdditionalMatchers
-
float array argument that is equal to the given array, i.e.
- aryEq(double[]) - Static method in class org.mockito.AdditionalMatchers
-
double array argument that is equal to the given array, i.e.
- aryEq(char[]) - Static method in class org.mockito.AdditionalMatchers
-
char array argument that is equal to the given array, i.e.
- aryEq(byte[]) - Static method in class org.mockito.AdditionalMatchers
-
byte array argument that is equal to the given array, i.e.
- aryEq(boolean[]) - Static method in class org.mockito.AdditionalMatchers
-
boolean array argument that is equal to the given array, i.e.
- assertLazily() - Method in interface org.mockito.junit.VerificationCollector
-
Enforce all verifications are performed lazily.
- atLeast(int) - Static method in class org.mockito.Mockito
-
Allows at-least-x verification.
- atLeast(int) - Method in interface org.mockito.verification.VerificationAfterDelay
-
Verifies that there is are least N invocations during the given period.
- atLeast(int) - Method in interface org.mockito.verification.VerificationWithTimeout
-
Allows at-least-x verification within given timeout.
- atLeastOnce() - Static method in class org.mockito.Mockito
-
Allows at-least-once verification.
- atLeastOnce() - Method in interface org.mockito.verification.VerificationAfterDelay
-
Verifies that there is at least 1 invocation during the given period.
- atLeastOnce() - Method in interface org.mockito.verification.VerificationWithTimeout
-
Allows at-least-once verification within given timeout.
- atMost(int) - Static method in class org.mockito.Mockito
-
Allows at-most-x verification.
- atMost(int) - Method in class org.mockito.verification.Timeout
-
- atMost(int) - Method in interface org.mockito.verification.VerificationAfterDelay
-
Verifies that there is are most N invocations during the given period.
- atMostOnce() - Static method in class org.mockito.Mockito
-
Allows at-most-once verification.
- atMostOnce() - Method in interface org.mockito.verification.VerificationAfterDelay
-
Verifies that there is most 1 invocation during the given period.


BBB-Hub uses openBIS as front end, so the first step to Upload a DataSet is to install the "openBIS DataSet Uploader" from the openBIS Downloads Page.
When first starting the DataSet uploader a login screen is presented, you can use the same credentials you use on the website.
When filling the information for the upload you need to:
1. Select the "FOLDER" containing your "EXPERIMENT_DEFINITION" DataSet.
2. Select as owner "/PUBLIC/SUBMISSIONS/SUBMISSION_OWNER".
3. Select as Data Set Type "EXPERIMENT_DEFINITION".
A working example is shown below.
Last, press the "UPLOAD" button, this will start the upload of your DataSet and a progress bar will be shown, changing to the message "registered" when finished.
After the registration process is finished, can take a few seconds/minutes you should find the result on the interface under the "INPUT" section as shown below.
The administrator will automatic receive an email from the system to execute the workflow of your submission after registration.
The results will be registered under the "RESULTS" section of your experiment on the UI when this are available.
An example of the format used by the EXPERIMENT_DEFINITION DataSet with dummy fasta files can be found here.


Luke Kelly
A Tribute by Tom Rafferty
This is Luke Kelly. Luke was a singer of the dubliners between 1962 and 1984(when he sadly died). He is regarded as one of the founding members of the band and is one of the only people to have two statues of them raised. He is an Irish legend and an inspiration to many. click for more information on luke.
An Irish patriot and inspiration
Introduction
Luke Kelly was a huge part of the dubliners, but he wasn't always in the group. He left home at a young age to go to england and find himself. After passing through some work he decided that it wasn't the life for him and he began learning to sing and play.
He is quoted to say to his family "I'm going, and I wont be back until I'm a success" as mentioned in this incredible documentary Luke Kelly - The Performer .
The Life of the Star
Part 1
Luke was a founding member of the dubliners and helped start the group in 1962. this however was not set in stone as Luke left the group in 1964 for two years, though he did later join back after his replacement left the group.
The group recorded many hit records together including: Seven Drunken Nights and Black Velvet Band
Even though Luke had great success within the band, he absolutley stuck out as a solo artist especially after the arrival of Phil Coulter (composer) who had Luke perform such hits as: Scorn Not His Simplicity and The Town I Loved So Well.
When The World Lost a Legened
Part 2
Luke Suffered with migraines and began to forget lyrics during performances.
Sadly after some time, a tumour was discovered on Luke's brain.
Even though his health was degrading Luke kept giving performances; his last of which was a performance of 'The Night Visiting Song'.
He performed this with other members of the dubliners infront of a live audience. Some of them were worried he may begin to forget the lyrics due to the complex nature of the song.
Nevertheless Luke gave an amazing performance.
Luke recorded one last song before his death, 'A Song For Ireland' was his last ever recording.
Not long after, Luke died on the 30th of January 1984 at the age of 44.
Here is fellow Dubliner, John Sheehan sat next to one of the Luke Statues in Dublin.
Luke Kelly: In Memoriam
Part 3
Luke Kelly is an Irish legend and is held to a great height as one of Ireland's greatest ever recording artists. He sang of loss and sorrow, but also of joy and love. During the revival of folk music Luke and The Dubliners rose to fame and they donned that glory with pride.
Luke's Grave
Luke's grave reads 'Luke Kelly, Dubliner'
To Conclude
Luke Kelly led a very interesting life, and though he died younger than most he still acheived greatness and inspired many.
To remember his legacy Dublin council erected not one, but two statues (Here's a little bit of information on that) to remember him by, He is one of the only people to hold such a privilege.
If you are new to Luke Kelly and would like some reccomendations, here are some:


The xsl:sort
element is used within an xsl:for-each
or xsl:apply-templates
or saxon:group
element to indicate the order in which the selected elements are processed.
The select
attribute (default value ".") is a string expression that calculates the sort
key.
The order
attribute (values "ascending" or "descending", default "ascending") determines
the sort order. There is no control over language, collating sequence, or data type.
The data-type
attribute determines whether collating is based
on alphabetic sequence or numeric sequence. The permitted values are either "text" or "number", or
a built-in type in XML Schema, such as xs:date
or xs:decimal
.
The collation
attribute is the name of a collating sequence. If present it must refer to a name
established using the
saxon:collation
declaration in the stylesheet.
The case-order
attribute (values "upper-first" and "lower-first") is relevant only for
data-type="text"; it determines whether uppercase letters are sorted before their lowercase equivalents,
or vice-versa.
The value of the lang
attribute can be an ISO language code such as "en" (English) or
"de" (German). It determines the algorithm used for alphabetic collating. The default is based on
the Java system locale. The only collating sequence supplied with the Saxon product is "en" (English),
but other values may be supported by writing a user-defined comparison class. If no comparison class
is found for the specified language, a default algorithm is used which simply sorts according
to Unicode binary character codes. The value of lang does not have to be a recognized language
code, it is also possible to use values such as "month" to select a data-type-specific collating
algorithm.
Several sort keys are allowed: they are written in major-to-minor order.
Example 1: sorting with xsl:apply-templates. This example shows a template for a BOOKLIST element which processes all the child BOOK elements in order of their child AUTHOR elements; books with the same author are in descending order of the DATE attribute.
<xsl:template match="BOOKLIST">

<xsl:apply-templates select="BOOK">
<xsl:sort select="AUTHOR"/>
<xsl:sort select="@DATE" order="descending" lang="GregorianDate"/>
</xsl:apply-templates>

</xsl:template>
Example 2: sorting with xsl:for-each. This example also shows a template for a BOOKLIST element which processes all the child BOOK elements in order of their child AUTHOR elements.
<xsl:template match="BOOKLIST">

<xsl:for-each select="BOOK">
<xsl:sort select="AUTHOR"/>

AUTHOR: <xsl:value-of select="AUTHOR">

TITLE: <xsl:value-of select="TITLE">

</xsl:for-each>

</xsl:template>


Text
Shape
Arrow
Double-sided Arrow
Line
Rectangle
Circle
Triangle
Diamond
Polygon
Star
Image
Crop
Measure
Loading
Properties


{% extends "base.html" %} {% block header %} {% endblock %} {% block content %}
We don't have any help content yet. But, if you're having an issue or have a suggestion, e-mail us at beta@reclaimphilly.org.


Jslet - Edit Mask
Demonstrate how to configurate edit mask.
Employee List: (
Data Model
)
Insert
Append
Edit
Delete
Confirm
Cancel
Edit Panel
Time:
Demo Comments
The edit mask of all fields:
Sales ID:
LL-0000
2 upper case characters + 4 numbers.
Sales Date:
0000-00-00
Time:
00:00:00


filmcritic.com presents a review from staff member David Bezanson. You can find the review with full credits at http://www.filmcritic.com/misc/emporium.nsf/2a460f93626cd4678625624c007f2b46/e48cad7e2da19297882568580005a7e9?OpenDocument
What is it about Jane Austen? This box-office stalwart has inspired five major film adaptations in the '90s (six counting the excellent BBC/A&E production of PRIDE AND PREJUDICE in 1995).
I think I know what Austen's secret is: Her books are recent, but not modern. Her central characters have good manners and triumph over bad marriages or economic straits, instead of succumbing to their own vices or whining too much about their problems.
MANSFIELD PARK is the last of Austen's major novels to be filmed recently, and I think it is usually considered Austen's weakest novel, though not too weak for cynical filmmakers to try to squeeze a bit more cash out of the writer's legacy.
Writer-director Patricia Rozema's cynicism comes out in other ways in this film, too. She transforms Austen's diffident, quiet heroine Fanny Price (Frances O'Connor) into a sassy, '90s, politically-aware attitude girl who shows up the fatuousness of most of the other characters. Only Edmund Bertram (Jonny Lee Miller), Fanny's true friend and ultimate love interest, meets her approval.
Worse, Rozema has embellished the tale with a subplot about the moral evisceration of Fanny's adopted family, the Bertrams, caused by the family's ties to slavery (based on a few brief references in the novel to family business in the West Indies).
The movie features one of the best casts in the Austen movie series: O'Connor is very good, Miller just as good, and Harold Pinter (he can act, too) does well in the revised, over-politicized role of Sir Thomas Bertram. Rozema's direction gives the polite, overwritten novel some needed sensuality.
Unfortunately, Rozema has also refracted the novel through a modern, unsubtle, feminist bias. The result is still better than the average '90s politically-correct sermonette, but definitely not a portal into a 19th-century brain (BEING JANE AUSTEN it isn't).
Austen's book is a study on virtues like "constancy," an un-modern concept which does not mean the same thing as monogamy, nor does it mean being "true to oneself," THELMA AND LOUISE style. It means believing in certain moral values and being true to them even though others' conduct is not always good or bad. Some of this subtlety comes through in the film, but most of the characters are either too good (i.e. Fanny) or too bad (everyone else, especially Sir Thomas) to be realistic studies. The subplot about slavery is especially jarring, because it introduces something morally unambiguous into a story which is about tolerating shades of moral ambiguity.
The best dialogue in the film is in Austen's spirit, such as Fanny's observation that "Life is but a succession of busy nothings" or Edmund's wish for a "life of compassion and contemplation" (as a clergyman). But too much of the dialogue is the kind of blunt raving that would have made 19th-century families as dysfunctional as today's, except that they customarily kept it to themselves.
Many of Rozema's revisionist additions ring false, like making Fanny an aspiring writer (even if there were autobiographical elements in the original novel, I doubt that Jane Austen was the smartass that Fanny is portrayed as here) or having a character say things like "this is 1806, for Heaven's sake."
It was supposed to be 1806, but MANSFIELD PARK the movie has a little too much 1999 in it --- na´ve social criticism, bathos, and vulgarity. And judging from the popularity of Jane Austen adaptations, a lot of moviegoers are tired of movies that remind them of the present.
Still, they'll probably take any period drama they can get...
3.5 stars
-- Christopher Null -<EMAIL_ADDRESS>- http://www.filmcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


An introduction to the SpecOneD class
In this notebook we will demonstrate the functionality of the SpecOneD class included in the speconed module as part of Sculptor. SpecOneD objects are designed to hold the spectral information of an astronomical source along with ancillary information, such as the data header generated by the observatory or the reduction software or the physical units of the dispersion and flux density axis.
Introducing the SpecOneD object
We begin by introducing the SpecOneD object and its attributes. As a first step we import the SpecOneD module from sculptor and generate an emptye SpecOneD object.
[1]:
# Import the speconed module from sculptor
from sculptor import speconed as sod
# Instantiate an empty SpecOneD object
spec = sod.SpecOneD()
We have now instantiated an empty SpecOneD object called spec. Let’s take a quick look at the class attributes by iterating over them.
[2]:
for key in vars(spec).keys():
print(f'{key}')
fluxden
fluxden_err
dispersion
fluxden_ivar
mask
dispersion_unit
fluxden_unit
header
fits_header
obj_model
telluric
Every SpecOneD object will be instantiated with a range of numpy.ndarrays holding information on the dispersion axis (dispersion), the flux density (fluxden), the flux density error (fluxden_err), a mask (mask). All of these arrays have to have the same length.
In addition, the two attributes “dispersion_unit” and “fluxden_unit” contain the information on the physical units of the dispersion axis as well as the flux density (and flux density error). These attributes are populated with astropy.units.Quantity (astropy.units.Unit, astropy.units.CompositeUnit, astropy.units.IrreducibleUnit) enabling to use the astropy.units module for unit conversion. This is also an important aspect for the analysis of the spectral models later on.
The “header” attribute is a pandas.DataFrame with additional information of the spectrum. If the header was populated through a fits file the original fits header is available at the “fits_header” attribute. Note that when initializing a SpecOneD object you should pass your fits header under the header keyword.
Spectra reduced by PypeIt and read in from the PypeIt fits format might carry additional information about the object_model and the telluric model from the telluric correction, which will be saved in the “obj_model” and “telluric” attributes.
Manual initialization of a SpecOneD object
While the SpecOneD class offers functionality to import spectra from iraf or PypeIt standard data reductions and also supports the SDSS format, it is important to know how to initialize spectra manually for custom use. For this example we use the SDSS spectrum of the quasar J030341.04-002321.8 available in the sculptor data folder.
[3]:
# Let's begin by importing astropy fits and units functionality
from astropy.io import fits
import astropy.units as units
# Define the name of the example spectrum
spec_filename = '../../sculptor/data/example_spectra/J030341.04-002321.8_0.fits'
# Read in the example spectrum with astropy
hdu = fits.open(spec_filename)
# Extract the dispersion axis, the flux density and the error from the fits file
dispersion = hdu[1].data['loglam']
flux_density = hdu[1].data['flux']
flux_density_ivar = hdu[1].data['ivar']
# Extract the fits header of the spectrum
header = hdu[0].header
# Before we initialize the SpecOneD object we need to convert the dispersion axis to a linear scale
dispersion = 10**dispersion
# The header provides information on the units of the spectrum (Let's print it out below!)
print('Wavelength unit: {}'.format(header['WAT1_001']))
print('Flux density unit: {}'.format(header['BUNIT']))
dispersion_unit = 1.*units.AA
fluxden_unit = 1e-17 * units.erg/units.s/units.cm**2/units.AA
# Now we can initialize a SpecOneD object manually
spec = sod.SpecOneD(dispersion=dispersion, fluxden=flux_density, fluxden_ivar=flux_density_ivar,
fluxden_unit=fluxden_unit, dispersion_unit=dispersion_unit, header=header)
Wavelength unit: wtype=linear label=Wavelength units=Angstroms
Flux density unit: 1E-17 erg/cm^2/s/Ang
We have done it! We have manually initialized a SpecOneD object
Let us now take a closer look if everything worked. We begin by checking the types and shapes of the main SpecOneD attributes: flux density, dispersion, mask, flux density error, the units and the header
[4]:
print('Flux density - type {}, size {} \n'.format(type(spec.fluxden), spec.fluxden.shape))
print('Dispersion axis - type {}, size {} \n'.format(type(spec.dispersion), spec.dispersion.shape))
print('Flux density error - type {}, size {} \n'.format(type(spec.fluxden_err), spec.fluxden_err.shape))
print('Mask - type {}, size {} \n'.format(type(spec.mask), spec.mask.shape))
print('Dispersion unit - value {} and type {} \n'.format(spec.dispersion_unit, type(spec.dispersion_unit)))
print('Flux density unit - value {} and type {} \n'.format(spec.fluxden_unit, type(spec.fluxden_unit)))
print('Header DataFrame \n', spec.header)
Flux density - type <class 'numpy.ndarray'>, size (3614,)
Dispersion axis - type <class 'numpy.ndarray'>, size (3614,)
Flux density error - type <class 'numpy.ndarray'>, size (3614,)
Mask - type <class 'numpy.ndarray'>, size (3614,)
Dispersion unit - value 1.0 Angstrom and type <class 'astropy.units.quantity.Quantity'>
Flux density unit - value 1e-17 erg / (Angstrom cm2 s) and type <class 'astropy.units.quantity.Quantity'>
Header DataFrame
value
SIMPLE True
BITPIX 8
NAXIS 0
EXTEND True
TAI<PHONE_NUMBER>.74
... ...
EXPID02 b1-00006799-00006802-00006803
EXPID03 b1-00006800-00006802-00006803
EXPID04 r1-00006798-00006802-00006803
EXPID05 r1-00006799-00006802-00006803
EXPID06 r1-00006800-00006802-00006803
[138 rows x 1 columns]
Everything seems to look reasonable here. However, a visual inspection of the spectrum will be necessary to convince us that it was read in correctly. For this purpose the SpecOneD class offers a simple plot functionality:
Using .plot() for quick visualization of the spectrum
The spectrum can be plotted with the built-in plot functionality, which uses matplotlib. Note that the units in the axis labels will be automatically populated by the units from the SpecOneD object (spec.dispersion_unit, spec.fluxden_unit).
[5]:
spec.plot()
We expect the source to be a quasar at redshift z=3.227. Therefore we expect the Lyman-alpha emission line around 5140A. A look at the plot convinces us that the spectrum was read in correctly, including the axis units.
Saving and reading in SpecOneD objects
Sculptor and the Sculptor GUI require a SpecOneD object as input. The GUI allow to import spectra from a few common fits formats or from a saved SpecOneD object.
SpecOneD allows to save spectra to the hdf format, which is the native way to save spectra within the SpecOneD class. The spectral data, meta data and the header will be saved in a file, which can be easily imported to the Sculptor GUI.
[6]:
# Saving the SpecOneD spectrum in its native format
spec.save_to_hdf('temp_spectrum.hdf5')
/opt/anaconda3/envs/sculptor-env/lib/python3.9/site-packages/pandas/core/generic.py:2606: PerformanceWarning:
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->mixed-integer,key->block0_values] [items->Index(['value'], dtype='object')]
pytables.to_hdf(
In a similar fashion we can read in the spectrum again:
[7]:
# Before we read in a SpecOneD object, we need to initialize an empty object
new_spec = sod.SpecOneD()
# Then we use the read_from_hdf function and the filename
new_spec.read_from_hdf('temp_spectrum.hdf5')
# As a test we plot the spectrum
new_spec.plot()
# and test if the header was saved and read in correctly
print('Flux density unit according to header is {}'.format(new_spec.header.loc['BUNIT','value']))
# However, the fits header attribute is not populated
print('The fits header attribute is: {}'.format(new_spec.fits_header))
# To keep the notebook directoy clean we delete the temporary spectrum file
! rm temp_spectrum.hdf5
Flux density unit according to header is 1E-17 erg/cm^2/s/Ang
The fits header attribute is: None
Great! The spectrum was saved and read in correctly.
Note: Because we did not initialize the new spectrum from a fits file the fits_header attribute is None.
Reading in spectra from other formats
In the current version of Sculptor the SpecOneD module has three implemented methods to read in spectra from * an IRAF 1D fits file (in many cases the flux density and dispersion units need to be set manually) * an PypeIT 1D fits file * an SDSS fits file
These read function automizes the steps of the manual initialization above. We now go through quick examples:
We begin by readin in the SDSS quasar spectrum from before in only two lines:
[8]:
# Initializing an empty SpecOneD object
sdss_spec = sod.SpecOneD()
# Read in the spectrum using the SDSS read function
sdss_spec.read_sdss_fits('../../sculptor/data/example_spectra/J030341.04-002321.8_0.fits')
# Plot the spectrum
sdss_spec.plot()
The Sculptor data directory also includes example (quasar) spectra in IRAF and PypeIT fits format. Reading them in as a SpecOneD object is just as simple as in the case of the SDSS spectrum.
[9]:
# Initializing an empty SpecOneD object
iraf_spec = sod.SpecOneD()
# Read in the spectrum using the IRAF read function
iraf_spec.read_from_fits('../../sculptor/data/example_spectra/J2125-1719_OPT_A.fits')
# Plot the spectrum
iraf_spec.plot()
# Initializing an empty SpecOneD object
pypeit_spec = sod.SpecOneD()
# Read in the spectrum using the PypeIt read function
pypeit_spec.read_pypeit_fits('../../sculptor/data/example_spectra/J2125-1719_NIR.fits')
# Plot the spectrum
pypeit_spec.plot()
The first plot shows the optical spectrum of the ultra-luminous quasar J2125-1719, whereas the second shows the near-infrared spectrum.
The second plot however does show additional information, the object model (orange) and the atmospheric transmission (blue) from the PypeIt telluric correction routines. It also shows that the default .plot() capabilities of the SpecOneD class are not appropriate for generating publication grade figures as the legends in the second plot are not well placed.
Unit conversions
With the flux density and dispersion units included as astropy unit classes within the SpecOneD object, we have all the great unit conversion functionality of astropy.units at our disposal. We want to briefly demonstrate how this works. Let us begin again with our default SDSS quasar spectrum sdss_spec. The default units were
[10]:
print(sdss_spec.fluxden_unit)
print(sdss_spec.dispersion_unit)
1e-17 erg / (Angstrom cm2 s)
1.0 Angstrom
The function convert_spectral_units allows us to convert the spectral units by specifying the new dispersion and new flux density unit.
[11]:
# Convert the dispersion to meters and the flux density to Jansky
sdss_spec.convert_spectral_units(1*units.m,1*units.Jy)
# Display the spectrum
sdss_spec.plot()
As long as the new units are reasonable for a flux density and a dispersion axis, you will be able to convert the spectrum. Internally the conversion uses spectral and spectral_density equivalencies, which will lead to an error if one would choose units that do not obey these equivalencies. Please consult the astropy documentation for details.
For our case, the SpecOneD class comes with default conversion functions for common spectral units:
[12]:
# Convert SpecOneD spectrum to flux density per unit frequency (Hz) in cgs units.
sdss_spec.to_fluxden_per_unit_frequency_cgs()
# Display the spectrum
sdss_spec.plot()
# Convert SpecOneD spectrum to flux density per unit frequency (Hz) in Jy.
sdss_spec.to_fluxden_per_unit_frequency_jy()
# Display the spectrum
sdss_spec.plot()
# Convert SpecOneD spectrum to flux density per unit frequency (Hz) in SI units.
sdss_spec.to_fluxden_per_unit_frequency_si()
# Display the spectrum
sdss_spec.plot()
# Convert SpecOneD spectrum to flux density per unit wavelength (Angstroem) in cgs units.
sdss_spec.to_fluxden_per_unit_wavelength_cgs()
# Display the spectrum
sdss_spec.plot()
After all these conversion the last one brought us back to flux density per unit wavelength in the same units that we originally read the spectrum in - with one major difference: the 1e-17 factor in front of the flux density has been multiplied to the numpy.ndarray of the flux density and been removed from the flux density unit. However, in these particular units the flux density has very low numerical values, which could pose a problem to fitting algorithms. Therefore, we want to normalize the flux density numerical values and hide large factors in the unit.
“Normalizing” the flux density numpy.ndarray
Within SpecOneD we provide three functions that allow to “normalize” the flux density numpy.ndarray. The first function calculates the median flux density error and normalizes the flux density unit accordingly.
Note that these function return a new SpecOneD object by default. In fact, the majority of the SpecOneD functions that manipulate or modify the spectrum return a modified copy by defaul. This approach is designed to leave the original spectrum untouched. However, you can overwrite the original spectrum by using the inplace keyword argument of those functions and set it to True.
[13]:
# Normalize flux density unit by flux density error
nspec = sdss_spec.normalize_fluxden_by_error()
nspec.plot()
As you can see, the flux density axis now shows that its unit is ~1.12 * 1e-17 erg/s/cm^2/A. However, in many cases we want to set a specific pre-factor to the flux density unit or modify it by a specific factor. For this purpose two additional functions exist:
[14]:
# Normalize the spectrum BY a specific unit factor of 1e-15.
nspec = sdss_spec.normalize_fluxden_by_factor(1e-15)
nspec.plot()
# Applying the same factor again, might lead to ridiculous pre-factors
print(nspec.normalize_fluxden_by_factor(1e-15).fluxden_unit)
# Normalize the spectrum TO a specific unit pre-factor
nspec = sdss_spec.normalize_fluxden_to_factor(1e-17)
nspec.plot()
1e-30 erg / (Angstrom cm2 s)
Manipulating spectra
In order to prepare the science spectrum for analysis one often has to manipulate the spectral data. This includes resampling the spectra to a pre-defined resolution, trimming the spectra, or matching multiple spectra to construct a composite spectrum. The SpecOneD class provides functionality for all of these cases.
Trimming spectra
Trimming spectral data with SpecOneD is implemented in the function trim_dispersion. A tuple of two float values provide the lower and upper limits of the new spectrum. By default the numerical limits are assumed to be in units of the dispersion axis (mode=’physical’) and trim the spectrum at the closest points in dispersion units. Alternatively, one can change the mode to mode=’pixel’ and then trim the spectra according to the pixel number. By default the function will return a new spectrum. In case the user wants to overwrite the old spectrum, one can specify this by inplace=True in the function. If we return a new spectrum, we can immediately plot it by chaining the .plot() function to the trimming function.
[15]:
# Trim and plot the SDSS quasar spectrum in dispersion units
sdss_spec.trim_dispersion([4000,6000]).plot()
# Trim and plot the SDSS quasar spectrum in pixel units
sdss_spec.trim_dispersion([1000,2000], mode='pixel').plot()
Resampling
In some cases one wants to resample the spectrum to a constant resolution to the resolution of another spectrum. For these cases Sculptor uses SpectRes package by Adam Carnall. The SpecOneD class provides a wrapper function called resample that applies the SpectRes resample method to the SpecOneD object.
As an argument it takes the new resolution as an numpy.ndarray.
[16]:
import numpy as np
# Setting up the new dispersion axis
new_dispersion = np.arange(4500,6500,10)
sdss_spec.resample(new_dispersion).plot()
We have now created a lower resolution version of the previous SDSS quasar spectrum in the dispersion range of 4500A to 6500A. However, what happens if the new dispersion range is not covered by the spectrum?
In the current implementation this will automatically return an Error! However, one can set the keyword argument force=True, which will force the new dispersion range to be within the original spectral dispersion, trimming it automatically. This will prompt a warning message, so that the user is aware of the modifications by the function.
[17]:
# Setting up the new dispersion axis
new_dispersion = np.arange(2000,6500,10)
sdss_spec.resample(new_dispersion, force=True).plot()
[WARNING] Forcing new spectral dispersion axis to be within the limits of the old spectral dispersion.
Reducing the spectral resolution via resampling & binning
In some cases it becomes necessary to reduce the resolution of a spectrum to increase the signal-to-noise ratio. Within the SpecOneD class this can either be achieved by resampling the spectrum to a dispersion with wider pixel sizes or by binning multiple pixels.
The resample_to_resolution function uses the resample method discussed above to automatically the spectrum to a new dispersion axis with the resolution in km/s provided by the argument. The buffer keyword argument (default value = 2) determines how many pixels at the beginning and the end of the spectrum will be omitted in the resampling process.
[18]:
# Resample the spectrum to a resolution of 300 km/s
sdss_spec.resample_to_resolution(300).plot()
Binning the spectrum by an integer number of pixels can be achieve with the bin_by_npixels function. One has to simply specify the number of pixels that should be binned.
[19]:
sdss_spec.bin_by_npixels(4).plot()
Interpolating spectra
While interpolating spectra onto a new spectral axis will cause the flux density and flux density errors to be correlated, it can be useful in many cases (generating figures). In the SpecOneD module we use interpolation of spectral data onto new dispersion axis in a range of contexts. The functions broaden_by_gaussian, calculate_passband_flux, calculate_passband_ab_magnitude all use the interpolate function internally.
The function uses the scipy.interpolate.interp1d method and takes the new dispersion as the argument. By default it will linearly interpolate (kind=’linear’) the flux density and flux density error to the new dispersion axis, padding values outside the original dispersion range with a constant (fill_value=’const’).
[20]:
# Setting up the new dispersion axis
new_dispersion = np.arange(3500,6500,10)
sdss_spec.interpolate(new_dispersion).plot()
There are differences between the resample and interpolate methods that are especially evident when sampled with a low resolution. In addition the SpectRes resample calculates the resulting flux density error more accurately, while the interpolate function only adjusts the signal to noise ratio by the resolution factor ( sqrt(“old resolution”/”new resolution”)).
[21]:
# Setting up the new dispersion axis
new_dispersion = np.arange(4500,6500,10)
resampled = sdss_spec.resample(new_dispersion)
interpolated = sdss_spec.interpolate(new_dispersion)
import matplotlib.pyplot as plt
plt.plot(resampled.dispersion, resampled.fluxden, label='resampled')
plt.plot(interpolated.dispersion, interpolated.fluxden, label='interpolated')
plt.plot(resampled.dispersion, resampled.fluxden_err, '--', label='resampled err')
plt.plot(interpolated.dispersion, interpolated.fluxden_err, '--', label='interpolated err')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()
Smoothing spectra
In addition the methods described above one can also smooth the spectrum using a boxcar or gaussian kernel. SpecOneD uses the astropy.convolution functionality to achieve this. The function takes the width (in pixels) of the kernel as an argument. Keyword arguments determine the kernel (default kernel=”boxcar”) and whether the signal-to-noise ratio will be adjusted (default scale_sigma=True) by sqrt(width).
[22]:
# Smooth the spectrum with a boxcar kernel of size 5 pixels and plot it
sdss_spec.smooth(10).plot()
Matching spectra to the same dispersion axis
One of the applications of resampling spectra is to match two spectra of the same source, but observed with at different resolution to the same dispersion.
For this purpose the SpecOneD class has a function called match_dispersions. The documentation for this function reads:
Match the dispersion of the current spectrum and the secondary
spectrum.
Both, current and secondary, SpecOneD objects are modified in this
process. The dispersion match identifies the maximum possible overlap
in the dispersion direction of both spectra and automatically trims
them to that range.
If the current (primary) spectrum overlaps fully with the secondary
spectrum the dispersion of the secondary will be interpolated/resampled
to the primary dispersion.
If the secondary spectrum overlaps fully with the primary, the primary
spectrum will be interpolated/resampled on the secondary spectrum
resolution, but this will only be executed if 'force==True' and
'match_secondary==False'.
If there is partial overlap between the spectra and 'force==True'
the secondary spectrum will be interpolated/resampled to match the
dispersion values of the primary spectrum.
If there is no overlap a ValueError will be raised.
We now demonstrate how use this function with a quick example. We use two spectra from the example folder of the ultra-luminous quasar J2125-1719. These optical spectra cover a different dispersion range, so we will see how the function works in this case.
[23]:
# Read in the spectra of J2125-1719
specoptA = sod.SpecOneD()
specoptA.read_from_fits('../../sculptor/data/example_spectra/J2125-1719_OPT_A.fits')
specoptB = sod.SpecOneD()
specoptB.read_from_fits('../../sculptor/data/example_spectra/J2125-1719_OPT_B.fits')
# The optical spectra will be scaled to 1e-17 erg/s/cm^2/A
specoptA.convert_spectral_units(1.*units.AA, 1e-17*units.erg/units.s/units.cm**2/units.AA)
specoptB.convert_spectral_units(1.*units.AA, 1e-17*units.erg/units.s/units.cm**2/units.AA)
# Plot the spectra before matching them
plt.plot(specoptA.dispersion, specoptA.fluxden, label='Spectrum A')
plt.plot(specoptB.dispersion, specoptB.fluxden, label='Spectrum B')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()
Now we will use the match dispersion function to match the dispersion of spectrum A to spectrum B. The match_secondary keyword indicates whether the secondary dispersion axis will always be matched to the primary spectrum of if the reverse is allowed. The default matching method is interpolation (method=’interpolate’).
If the primary spectrum (here specoptA) is not fully contained within the dispersion range of the secondary spectrum (here specoptB), we need to set force=True to allow the primary spectrum to be reduced to the overlap region of both spectra.
Note that the match_dispersions function does NOT have a inplace keyword argument. This functions ALWAYS modifies both original spectra!
[24]:
specoptA.match_dispersions(specoptB, match_secondary=True,
force=True, method='interpolate',
interp_method='linear')
# Plot the spectra AFTER matching them
plt.plot(specoptA.dispersion, specoptA.fluxden, label='Spectrum A')
plt.plot(specoptB.dispersion, specoptB.fluxden, label='Spectrum B')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($1e-17\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()
The plot illustrates that both spectra have been automatically cut to their overlap region. In this range the dispersion axes of both spectra are now identical.
[25]:
print(specoptA.dispersion)
print(specoptB.dispersion)
[5316.3259873 5318.30567772 5320.28536813 ... 8008.70494917 8010.68463959
8012.66433 ]
[5316.3259873 5318.30567772 5320.28536813 ... 8008.70494917 8010.68463959
8012.66433 ]
Renormalize the flux density between two spectra
The SpecOneD class also includes methods to renormalize the spectral flux density either to a secondary spectrum or a passband magnitude. For now we will demonstrate how one can match the flux density of one spectrum to a different one in their overlap region. For this example we use the optical spectra of quasar J2125-1719 above.
The SpecOneD function to carry out the renormalization is aptly named renormalize_by_spectrum.
[26]:
# Read in the spectra of J2125-1719
specoptA = sod.SpecOneD()
specoptA.read_from_fits('../../sculptor/data/example_spectra/J2125-1719_OPT_A.fits')
specoptB = sod.SpecOneD()
specoptB.read_from_fits('../../sculptor/data/example_spectra/J2125-1719_OPT_B.fits')
# The optical spectra will be scaled to 1e-17 erg/s/cm^2/A
specoptA.convert_spectral_units(1.*units.AA, 1e-17*units.erg/units.s/units.cm**2/units.AA)
specoptB.convert_spectral_units(1.*units.AA, 1e-17*units.erg/units.s/units.cm**2/units.AA)
# Plot the spectra before renomalizing the flux density
plt.plot(specoptA.dispersion, specoptA.fluxden, label='Spectrum A')
plt.plot(specoptB.dispersion, specoptB.fluxden, label='Spectrum B')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()
[27]:
# Renormalize the flux density of spectrum B to spectrum A in the overlap region of 6000A-7000A.
nspecoptB = specoptB.renormalize_by_spectrum(specoptA, dispersion_limits=[6000,7000])
# Plot the spectra after renomalizing the flux density
plt.plot(specoptA.dispersion, specoptA.fluxden, label='Spectrum A')
plt.plot(nspecoptB.dispersion, nspecoptB.fluxden, label='Renormalized spectrum B')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()
If the dispersion limits for the overlap region are not specified, the full dispersion overlap of both spectra will be automatically chosen. If one decides to choose dispersion limits that are not appropriate, the function will NOT stop you from doing so and return an incorrectly scaled spectrum.
The default output_mode (output_mode=’spectrum’) returns a SpecOneD object. Alternatively one can specify output_mode=’flux_factor’ and the function will return the factor by which the spectrum should be scaled to match the flux density of the other one as a float value.
[28]:
# Calculate the scaling factor to scale spectrum B to spectrum A in the overlap region of 6000A-7000A.
print(specoptB.renormalize_by_spectrum(specoptA, dispersion_limits=[6000,7000], output_mode='flux_factor'))
1.6855747992533456
The PassBand class
The PassBand class is a child class of SpecOneD designed to store and manipulate filter transmission curves from various telescopes. The Sculptor package includes a range of filter transmission curves from various sources in the data/passbands folder.
These transmission curves can be automatically loaded into PassBand objects by using their name (omitting the .dat extension). They provide important functionality to the SpecOneD class for calculating passband fluxes or magnitudes and allow absolute flux normalization by the passband AB magnitude.
Let us start by loading the SDSS r-band filter provided by Sculptor.
[29]:
# Initialize the SDSS r-band filter as a PassBand object
pb = sod.PassBand('SDSS-r')
# Plot the SDSS r-band using the built in plot functionality
pb.plot()
Many SpecOneD functions that manipulate the dispersion axis also work on passbands. This includes trim_dispersion or match_dispersion, for example. However, some functionality requires flux densities and flux density errors and thus won’t work with the PassBand class.
Calculating the spectral flux through a passband
Passband flux
For this example we will use the quasar spectrum of J030341.04-002321.8 again. We have already initialized the SDSS r-band as pb above, which we will be using in this example. The function that calculates the total passband flux is calculate_passband_flux.
**Disclaimer: This function is written for passbands in quantum efficiency. Therefore, the (h*nu)^-1 term is not included in the integral.**
Therefore, if you want to use passbands that are not in quantum efficiency you need to write your own function.
To match the passband and the spectrum to the same dispersion axis we can use either the resample or the interpolate methods described above. The lead to slightly different results, as can be seen below. If the spectrum does not fully overlap the passband one can set force=True to calculate the flux only in the overlap region. For this example we do not need to do that. (Setting force=True also prompts multiple warnings instructing the user to be especially careful with the intepretation of the results!)
[30]:
# Read in the sdss quasar spectrum
spec.read_sdss_fits('../../sculptor/data/example_spectra/J030341.04-002321.8_0.fits')
# Calculate the passband flux using the interpolate method to match the dispersions.
print(spec.calculate_passband_flux(pb, force=False, match_method='interpolate'))
# Calculate the passband flux using the resample method to match the dispersions.
print(spec.calculate_passband_flux(pb, force=False, match_method='resample'))
1.4209075815160446e-13 erg / (cm2 s)
1.4108874707002708e-13 erg / (cm2 s)
Passband magnitudes (AB system)
The SpecOneD class also allows to calculate the passband magnitude in the AB system with the calculate_passband_ab_magnitude function. It works pretty much identical to the calculate_passband_flux above, but returns the AB magnitude through the filter passband.
[31]:
# Calculate the passband flux in AB magnitudes using the interpolate method to match the dispersions.
print(spec.calculate_passband_ab_magnitude(pb, force=False, match_method='interpolate'))
# Calculate the passband flux in AB magnitudes using the resample method to match the dispersions.
print(spec.calculate_passband_ab_magnitude(pb, force=False, match_method='resample'))
17.60633670754543
17.61403048355622
Renormalizing the flux density to a passband AB magnitude - Absolute flux calibration
In some cases the absolute flux calibration of the observations might be inaccurate. Renormalizing the flux density of the spectrum through a passband to the passband photometry provides the best solution for an absolute flux calibration in these cases.
For this purpose the SpecOneD class offers the renormalize_by_ab_magnitude function, which words very similar to the renormalize_by_spectrum function above.
For the SDSS quasar we use as an example, the DR16 r-band magnitude is r=17.65. According to the SDSS website the r-band magnitude is close to AB, so we assume that r(AB)=17.65 in this case. We use the r-band from above and first decide to use the output_mode=’flux_factor’. By default the match_method is set to interpolate.
[32]:
# SDSS r-band magnitude in AB
rmag_ab = 17.65
# Calculate the scaling factor for absolute flux calibration
print(spec.renormalize_by_ab_magnitude(rmag_ab, pb, output_mode='flux_factor'))
# Calculate the scaling factor for absolute flux calibration using the resample match method
print(spec.renormalize_by_ab_magnitude(rmag_ab, pb, output_mode='flux_factor', match_method='resample'))
0.9605825280212889
0.9674136110722544
The flux factors already suggest that the SDSS quasar spectrum has a pretty good absolute flux calibration.
Now that we checked the flux factor output, we can run a simple test. First, we calculate the AB magnitude of the SDSS quasar spectrum in the r-band, then we normalize it to the r-band magnitude and lastly we calculate the AB magnitude again to check if the normalization was successfull. We will use the interpolate match method in all cases as it is the default.
[33]:
# Calculate the passband flux in AB magnitudes using the interpolate method to match the dispersions.
print('r-band magnitude (before): ', spec.calculate_passband_ab_magnitude(pb))
# Renormalize the spectrum to the r-band magnitude
nspec = spec.renormalize_by_ab_magnitude(rmag_ab, pb)
print('Absolute flux calibration to r=17.65')
# Calculate the passband flux in AB magnitudes using the interpolate method to match the dispersions.
print('r-band magnitude (after): ', nspec.calculate_passband_ab_magnitude(pb))
r-band magnitude (before): 17.60633670754543
Absolute flux calibration to r=17.65
r-band magnitude (after): 17.649999999999995
We have now absolute flux calibrated the SDSS quasar spectrum to numerical accuracy. We end this demonstration of the capabilies of the SpecOneD and PassBand classes by plotting the SDSS quasar spectrum before and after absolute flux calibration.
[34]:
# Plot the spectra after renomalizing the flux density
plt.plot(spec.dispersion, spec.fluxden, label='Before')
plt.plot(nspec.dispersion, nspec.fluxden, label='After')
plt.xlabel(r'Dispersion ($\AA$)')
plt.ylabel(r'Flux density ($1e-17\rm{erg}/\rm{s}/\rm{cm}^2/\AA$))')
plt.legend()
plt.show()


Paint by number generator
Paste from clipboard (ctrl+v) to change the image (or browse for a file
). Large images are very slow to process though.
Example images:
trivial
-
small
-
medium
Input
Options
Resize image larger than
info
width
height
Number of colors
info
Cluster precision
info
Random seed
info
Clustering color space
info
RGB
HSL
Lab
Restrict clustering colors
info
//0,0,0 //255,255,255
Number of runs for narrow pixel cleanup
info
Remove small facets smaller than (pixels)
info
Maximum number of facets
info
Small facet removal order
info
Largest to smallest
Smallest to largest
Amount of times to halve border segment complexity)
info
Process image
K-means clustering
Facet building
Small facet pruning
Border detection
Border segmentation
Label placement
SVG generation
Quantized image
Facet reduction
Border tracing
Border segmentation
Label placement
Output
Log
SVG Render options
Show labels
Fill facets
Show borders
SVG size multiplier
info
Label font size
info
Label font color
info
Download SVG
Download PNG
Download palette


@todo
, or inline tags, such
as {@underline}
. Block taglets do not currently
support inline tags in their text. (See block and
inline tags.) The Taglet API consists of one interface:
Taglets are the foundation beneath the -tag
option. When you use the -tag
option, it uses a
built-in taglet to generate default HTML formatting that is similar
to that generated for @return
.
Here are the basic steps you need to follow to create and use your own taglet:
import com.sun.tools.doclets.Taglet; // Taglet API import com.sun.javadoc.*; // Doclet API import java.util.Map; // Used in register(Map)The
com.sun.javadoc
classes must be imported for the
Tag
interface used in toString(Tag)
.toString
method is where all of the
custom work is implemented to modify, format or redirect the text
argument passed in to your custom tag.
public String toString(Tag tag)
public static void register(Map tagletMap)
lib\tools.jar
file in the JDK. For the first example
below, assuming the JDK is installed at C:\Program
Files\j2sdk1.4.1
.
javac -classpath "C:\Program Files\j2sdk1.4.1\lib\tools.jar" ToDoTaglet.java
-taglet
and
-tagletpath
options. For example, if your taglet class
file is defined to be in package com.sun
and is stored
in C:\taglets\com\sun\Taglet.class
, then you should
set tagletpath to C:\taglets
. This example calls
javadoc
on package com.package1
,
including ToDoTaglet
tags:
javadoc -taglet ToDoTaglet -tagletpath C:\taglets com.package1
The following examples are of block and inline taglets.
@todo
is included at:
The corresponding class file ToDoTaglet.class
is
already compiled and saved in the same directory as this source
file.
This taglet formats the output for the @todo
tag. A
doc comment containing the following tag:
/** * @todo Fix this! */then the
ToDo
taglet formats the HTML output as
follows:
| Fix this! |
private static final String NAME = "todo"; private static final String HEADER = "To Do:";To make this a block tag rather than an inline tag, you set
isInlineTag
to return false:
public boolean isInlineTag() { return false; }There are other methods
inField
,
inMethod
, inType
, inPackage
and inOverview
that you specify true
or
false
to indicate in which doc comments in the source
code this tag can be used.
The toString(Tag)
method determines how the text is
inserted into the output when a single {@todo}
tag is
encountered. This code creates a bold heading followed by a table
with a yellow background that contains the text (specified by
tag.text()
).
public String toString(Tag tag) {` return "
" + HEADER + "
" + "

" + tag.text() + "

\n"; }Similarly, the
toString(Tag[])
method (which takes an
array of tags) determines how the text is inserted into the output
when multiple {@todo}
tags are encountered.
The register method
/** * Register this Taglet. * @param tagletMap the map to register this tag to. */ public static void register(Map tagletMap) { ToDoTaglet tag = new ToDoTaglet(); Taglet t = (Taglet) tagletMap.get(tag.getName()); if (t != null) { tagletMap.remove(tag.getName()); } tagletMap.put(tag.getName(), tag); }
-tag
option). This is because there is no default
behavior for inline tags.
The source code for an example of an inline taglet implementing
{@underline}
is included at:
UnderlineTaglet.class
is
already compiled and saved in the same directory as this source
file.
This taglet formats the output for the {@underline}
tag. A doc comment containing the following tag:
/** * Be sure to insert the value at the {@underline start} of the array. */would be output in HTML as follows:
Be sure to insert the value at the start of the array.
private String NAME = "underline";To define this as an inline tag rather than a block tag, you set
isInlineTag
to return true:
public boolean isInlineTag() { return true; }
The methods inField
, inMethod
,
inConstructor
, inType
,
inPackage
and inOverview
apply only to
block tags and must all be set to false for inline tags.
The toString(Tag)
method determines how the text is
inserted into the output when an {@underline}
tag is
encountered. This code creates surrounds the text with the HTML
underline tags

and

.
public String toString(Tag tag) { return "" + tag.text() + ""; }It is not possible to have an array of inline tags to process, like it is with block tags. Therefore, the
toString(Tag[])
method (which takes an array of tags) is ignored for inline tags.
System.exit()
.
Warnings - A taglet can report a warning using a
MessageRetriever given to it by the Doclet instance. The
MessageRetriever is obtained from the Configuration object. The
Configuration object is obtained from the doclet. For example, if
the Taglet is designed to be used with the Standard doclet, the
Configuration can be retrieved using
Standard.configuration()
, a static method. As an
example, this is how the SimpleTaglet
prints warnings,
which is the default taglet for the -tag
option.


This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Fire Blast
- Body Slam
- Hyper Beam
- Fire Spin / Mirror Move
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Fire Blast / Flamethrower
- Rest
- Body Slam / Toxic
- Mimic / Mirror Move / Toxic
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Tail Whip on Offensive, Reflect with Rest
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Author: Disaster Area
Publish Date: 5th July 2020


Beego framework dedicates to providing a fast way to develop web applications and advocating for Go language. Your supports are highly appreciated and it means a lot to us.
Our Beego core team has been working a lot and improving Beego for more than a year. We dedicated a lot to provide everyone a better framework. If you feel Beego is helpful for you and want to kindly support it, we appreciate that. ^_^
| Donated at | Donator | Amount | Comments |
| 2014-Jan-24 | Bernard Lim | $20.00 | |
| 2013-Dec-23 | William Kennedy | $100.00 |


Now you can login with the default administrator account and password
Please change the default password after you logged in!


class BasicObject
BasicObject is the parent class of all classes in Ruby. It's an explicit blank class.
BasicObject can be used for creating object hierarchies independent of Ruby's object hierarchy, proxy objects like the Delegator class, or other uses where namespace pollution from Ruby's methods and classes must be avoided.
To avoid polluting BasicObject for other users an appropriately named subclass of BasicObject should be created instead of directly modifying BasicObject:
class MyObjectSystem < BasicObject end
BasicObject does not include Kernel (for methods like puts
) and BasicObject is outside of the namespace of the
standard library so common classes will not be found without using a full
class path.
A variety of strategies can be used to provide useful portions of the
standard library to subclasses of BasicObject. A subclass could include
Kernel
to obtain puts
, exit
, etc. A
custom Kernel-like module could be created and included or delegation can
be used via method_missing:
class MyObjectSystem < BasicObject DELEGATE = [:puts, :p] def method_missing(name, *args, &block) super unless DELEGATE.include? name ::Kernel.send(name, *args, &block) end def respond_to_missing?(name, include_private = false) DELEGATE.include?(name) or super end end
Access to classes and modules from the Ruby standard library can be
obtained in a BasicObject subclass by
referencing the desired constant from the root like ::File
or
::Enumerator
. Like method_missing,
const_missing can be used to delegate constant lookup to
Object
:
class MyObjectSystem < BasicObject def self.const_missing(name) ::Object.const_get(name) end end
Public Class Methods
Not documented
static VALUE rb_obj_dummy(void) { return Qnil; }
Public Instance Methods
Boolean negate.
VALUE rb_obj_not(VALUE obj) { return RTEST(obj) ? Qfalse : Qtrue; }
Returns true if two objects are not-equal, otherwise false.
VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2) { VALUE result = rb_funcall(obj1, id_eq, 1, obj2); return RTEST(result) ? Qfalse : Qtrue; }
Equality — At the Object
level, ==
returns
true
only if obj
and other
are the
same object. Typically, this method is overridden in descendant classes to
provide class-specific meaning.
Unlike ==
, the equal?
method should never be
overridden by subclasses as it is used to determine object identity (that
is, a.equal?(b)
if and only if a
is the same
object as b
):
obj = "a" other = obj.dup obj == other #=> true obj.equal? other #=> false obj.equal? obj #=> true
The eql?
method returns true
if obj
and other
refer to the same hash key. This is used by Hash to test members for equality. For objects of
class Object
, eql?
is synonymous with
==
. Subclasses normally continue this tradition by aliasing
eql?
to their overridden ==
method, but there are
exceptions. Numeric
types, for example, perform type
conversion across ==
, but not across eql?
, so:
1 == 1.0 #=> true 1.eql? 1.0 #=> false
VALUE rb_obj_equal(VALUE obj1, VALUE obj2) { if (obj1 == obj2) return Qtrue; return Qfalse; }
Returns an integer identifier for obj
.
The same number will be returned on all calls to object_id
for
a given object, and no two active objects will share an id.
Note: that some objects of builtin classes are reused for optimization. This is the case for immediate values and frozen string literals.
Immediate values are not passed by reference but are passed by value:
nil
, true
, false
, Fixnums, Symbols,
and some Floats.
Object.new.object_id == Object.new.object_id # => false (21 * 2).object_id == (21 * 2).object_id # => true "hello".object_id == "hello".object_id # => false "hi".freeze.object_id == "hi".freeze.object_id # => true
VALUE rb_obj_id(VALUE obj) { /* * 32-bit VALUE space * MSB ------------------------ LSB * false<PHONE_NUMBER>0000000000000000000000 * true<PHONE_NUMBER>0000000000000000000010 * nil<PHONE_NUMBER>0000000000000000000100 * undef<PHONE_NUMBER>0000000000000000000110 * symbol ssssssssssssssssssssssss00001110 * object oooooooooooooooooooooooooooooo00 = 0 (mod sizeof(RVALUE)) * fixnum fffffffffffffffffffffffffffffff1 * * object_id space * LSB * false<PHONE_NUMBER>0000000000000000000000 * true<PHONE_NUMBER>0000000000000000000010 * nil<PHONE_NUMBER>0000000000000000000100 * undef<PHONE_NUMBER>0000000000000000000110 * symbol 000SSSSSSSSSSSSSSSSSSSSSSSSSSS0 S...S % A = 4 (S...S = s...s * A + 4) * object oooooooooooooooooooooooooooooo0 o...o % A = 0 * fixnum fffffffffffffffffffffffffffffff1 bignum if required * * where A = sizeof(RVALUE)/4 * * sizeof(RVALUE) is * 20 if 32-bit, double is 4-byte aligned * 24 if 32-bit, double is 8-byte aligned * 40 if 64-bit */ if (STATIC_SYM_P(obj)) { return (SYM2ID(obj) * sizeof(RVALUE) + (4 << 2)) | FIXNUM_FLAG; } else if (FLONUM_P(obj)) { #if SIZEOF_LONG == SIZEOF_VOIDP return LONG2NUM((SIGNED_VALUE)obj); #else return LL2NUM((SIGNED_VALUE)obj); #endif } else if (SPECIAL_CONST_P(obj)) { return LONG2NUM((SIGNED_VALUE)obj); } return nonspecial_obj_id(obj); }
Invokes the method identified by symbol, passing it any arguments
specified. You can use __send__
if the name send
clashes with an existing method in obj. When the method is
identified by a string, the string is converted to a symbol.
class Klass def hello(*args) "Hello " + args.join(' ') end end k = Klass.new k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
VALUE rb_f_send(int argc, VALUE *argv, VALUE recv) { return send_internal(argc, argv, recv, CALL_FCALL); }
Equality — At the Object
level, ==
returns
true
only if obj
and other
are the
same object. Typically, this method is overridden in descendant classes to
provide class-specific meaning.
Unlike ==
, the equal?
method should never be
overridden by subclasses as it is used to determine object identity (that
is, a.equal?(b)
if and only if a
is the same
object as b
):
obj = "a" other = obj.dup obj == other #=> true obj.equal? other #=> false obj.equal? obj #=> true
The eql?
method returns true
if obj
and other
refer to the same hash key. This is used by Hash to test members for equality. For objects of
class Object
, eql?
is synonymous with
==
. Subclasses normally continue this tradition by aliasing
eql?
to their overridden ==
method, but there are
exceptions. Numeric
types, for example, perform type
conversion across ==
, but not across eql?
, so:
1 == 1.0 #=> true 1.eql? 1.0 #=> false
VALUE rb_obj_equal(VALUE obj1, VALUE obj2) { if (obj1 == obj2) return Qtrue; return Qfalse; }
Evaluates a string containing Ruby source code, or the given block, within
the context of the receiver (obj). In order to set the context,
the variable self
is set to obj while the code is
executing, giving the code access to obj's instance variables
and private methods.
When instance_eval
is given a block, obj is also
passed in as the block's only argument.
When instance_eval
is given a String
, the
optional second and third parameters supply a filename and starting line
number that are used when reporting compilation errors.
class KlassWithSecret def initialize @secret = 99 end private def the_secret "Ssssh! The secret is<EMAIL_ADDRESS>end end k = KlassWithSecret.new k.instance_eval { @secret } #=> 99 k.instance_eval { the_secret } #=> "Ssssh! The secret is 99." k.instance_eval {|obj| obj == self } #=> true
VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE self) { VALUE klass = singleton_class_for_eval(self); return specific_eval(argc, argv, klass, self); }
Executes the given block within the context of the receiver (obj).
In order to set the context, the variable self
is set to
obj while the code is executing, giving the code access to
obj's instance variables. Arguments are passed as block
parameters.
class KlassWithSecret def initialize @secret = 99 end end k = KlassWithSecret.new k.instance_exec(5) {|x| @secret+x } #=> 104
VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE self) { VALUE klass = singleton_class_for_eval(self); return yield_under(klass, self, argc, argv); }
Private Instance Methods
Invoked by Ruby when obj is sent a message it cannot handle.
symbol is the symbol for the method called, and args are
any arguments that were passed to it. By default, the interpreter raises an
error when this method is called. However, it is possible to override the
method to provide more dynamic behavior. If it is decided that a particular
method should not be handled, then super should be called, so that
ancestors can pick up the missing method. The example below creates a class
Roman
, which responds to methods with names consisting of
roman numerals, returning the corresponding integer values.
class Roman def roman_to_int(str) # ... end def method_missing(methId) str = methId.id2name roman_to_int(str) end end r = Roman.new r.iv #=> 4 r.xxiii #=> 23 r.mm #=> 2000
static VALUE rb_method_missing(int argc, const VALUE *argv, VALUE obj) { rb_thread_t *th = GET_THREAD(); raise_method_missing(th, argc, argv, obj, th->method_missing_reason); UNREACHABLE; }
Invoked as a callback whenever a singleton method is added to the receiver.
module Chatty def Chatty.singleton_method_added(id) puts "Adding #{id.id2name}" end def self.one() end def two() end def Chatty.three() end end
produces:
Adding singleton_method_added Adding one Adding three
static VALUE rb_obj_dummy(void) { return Qnil; }
Invoked as a callback whenever a singleton method is removed from the receiver.
module Chatty def Chatty.singleton_method_removed(id) puts "Removing #{id.id2name}" end def self.one() end def two() end def Chatty.three() end class << self remove_method :three remove_method :one end end
produces:
Removing three Removing one
static VALUE rb_obj_dummy(void) { return Qnil; }
Invoked as a callback whenever a singleton method is undefined in the receiver.
module Chatty def Chatty.singleton_method_undefined(id) puts "Undefining #{id.id2name}" end def Chatty.one() end class << self undef_method(:one) end end
produces:
Undefining one
static VALUE rb_obj_dummy(void) { return Qnil; }


×
Remote Information
Test Synbiohub
Submit
Shared with Me
Submissions
Admin
Profile
Sign Out
Admin
Status
Graphs
Log
Mail
Plugins
Registries
Remotes
SBOLExplorer
SPARQL
Theme
Users
No remotes configured
Type:
-----
ice
benchling
Add Remote


@option extendsClass=utils.ApplicationRockerTemplate
@import java.util.Map
@views.main.template("Application-specific template") -> {
Application-specific template
Rocker templates are subclasses of a parent template that adds/modifies
behavior. When you access a variable or method in your template, its not
magic where its coming from -- that variable or method MUST exist in the
hierarchy of classes your template derives from. By controlling what parent
your templates extends, you can add other variables or methods that can be
elegantly accessed in your template. The template your viewing has a class
hierarchy of:
com.fizzed.rocker.runtime.DefaultRockerTemplate
-> com.fizzed.ninja.rocker.NinjaRockerTemplate
-> utils.ApplicationRockerTemplate
-> views.application_template
In the following snippets below, the utils.ApplicationRockerTemplate class
is what adds the A variable to expose a couple extra properties.
User object via application-specific template
@@A.user.getName()
User name: @A.user.getName()
@@A.applicationName
App name: @A.applicationName
}


IRIS databases are, in fact, ordinary Matlab struct objects (see the Matlab documentation for more on the struct class of objects). IRIS uses these struct objects as input and/or output databases in many functions (such as model/simulate). Moreover, there are a number of new functions extending the possibilities of the struct class, such as importing and exporting data from/into CSV files ( dbload and dbsave), processing batch jobs within databases (dbbatch), etc.
Check help data/contents for IRIS database functions.


Topicstarter
Hi there!
I am allowed to give away one DLC for free. See below for the DLC list. Pick one, post it and you'll get the code. First come, first served. ;-)
* Batman: Arkham Knight - Harley Quinn Story Pack DLC
* Watch Dogs Breakthrough Pack DLC
* Football Manager 2016: An Alternative Reality – The Football Manager Documentary DLC
* The Evil Within - The Fighting Chance Pack DLC
* Lords of the Fallen - Monk Decipher DLC
* Thief The Bank Heist DLC
* Dying Light - Cuisine & Cargo DLC
* Dying Light - Ultimate Survivor Bundle DLC
* Dying Light - Exclusive Pack DLC
* Anno 2205 Command Ship + Corporate Insignia DLC
* Saints Row: Gat Out Of Hell - Devil's Workshop DLC
* The Crew - Mini Cooper S Pack DLC
* Lords of the Fallen - Ancient Labyrinth DLC
* Alien: Isolation – DLC: Crew Expendable
DaniluK4000
Community Manager
* Watch Dogs Breakthrough Pack DLC
Topicstarter
Nice choice! :-) See my PM for the code, activation in Uplay!


Hi there, USER!
Thank you for registering an account with us! To activate your account, please clicking the button below.
Happy Zhigling!
-The Zhigly Team
Like Zhigly on Facebook
Follow @Zhigly on Twitter
Follow Zhigly on Google+


Here Are All The Celebrities Supporting Taylor Swift In Her Fight Against Big Machine
by Joseph EarpMost musicians suffer the slings and arrows of the music industry in silence. But Taylor Swift is not like most musicians.
Over the last few months, Swift has been very public about the behaviour of Scott Borchetta and Scooter Braun, powerful music industry players who she says have essentially held her music ransom.
This week, for instance, Swift claimed that the two industry players were refusing to let her licence her own music for use in a live performance and in a comprehensive Netflix documentary made about her life.
In response, Swift went public, asking for help from her fans in convincing Borchetta and Braun that they should let her do with her own songs whatever she wants.
In the hours since that statement went live, not only has Swift’s active and loyal fanbase jumped into action, so have a range of high-profile celebrities.
Many of said celebrities are musicians — popstars who have clearly seen evidence of this kind of behind-the-scenes struggle before.
For instance, Lily Allen pledged her solidarity, and Halsey waxed lyrical about the incident.
Elsewhere, Swift’s friends, Camila Cabello and Selena Gomez, came out swinging for their bestie.
But that’s not all. The replies on Swift’s tweet are positively stuffed with messages of support from her colleagues — even some that claim to have disagreed with her in the past.
The support hasn’t just been relegated to the world of music, either, with artists and celebrities from all walks of life getting involved.
Oh, and just as a bonus round, here’s Alexandria Ocasio-Cortez, the superstar of the democratic party, rallying behind Swift too:
Good things really do happen when we all work together.


Wall Street close: Benchmarks suffer losses partly due to trade deal pessimism
by Ross J Burland- DJIA unofficially closed down 121.49 points, or 0.43%, at 27,812.53.
- S&P 500 unofficially closed down 13.22 points, or 0.42%, at 3,106.96.
- NASDAQ unofficially closed down 49.41 points, or 0.58%, at 8,521.24.
Benchmarks on Wall Street were closing lower on Wednesday following reports from Reuters that a trade deal with China might not be secured before 2020. Subsequently, risk appetite declined and stocks sunk. The report by Reuters, entitled "Phase One US-China trade deal may not be completed this year - trade sources, reminded traders that the efforts to nail down the first phase of a broader deal are indeed stalling.
Official closes
The Dow Jones Industrial Average, DJIA, lost 114 points lower, or 0.4%, while the S&P 500 fell 12 points, 0.4%. Meanwhile, the Nasdaq, which closed at an all-time high the prior day, lost around 44 points, ending down 0.5%. However, the benchmarks were ending off their Reuters-report-lows. On the upside of the market's events on Wednesday, we did have some stellar earnings results from retailers such as Target Corp and Lowe's Cos.
FOMC minutes
There was a muted reaction to the minutes that came in line with expectations which came with the key notes as follows:
- Most judged level now appropriate barring a 'material' reassessment of the outlook.
- 'A couple' said Fed should reinforce statement with communications that another rate cut unlikely without signs of a 'significant slowdown'.
- Many said rate cut warranted due to global weakness and trade uncertainty.
- Some favored keeping rates steady and argued outlook was favorable and inflation expected to rise.
- A couple supported rate cut but said it was a close call.
- Several concerned some banks had reduced capital buffers when the should be rising.
- Discussed that risks to the economic outlook remained tilted to the downside.
DJIA levels
DJIA
| Overview | |
|---|---|
| Today last price | 27824 |
| Today Daily Change | -90.00 |
| Today Daily Change % | -0.32 |
| Today daily open | 27914 |
| Trends | |
|---|---|
| Daily SMA20 | 27460.4 |
| Daily SMA50 | 27078.4 |
| Daily SMA100 | 26823.18 |
| Daily SMA200 | 26420.26 |
| Levels | |
|---|---|
| Previous Daily High | 28164 |
| Previous Daily Low | 27896 |
| Previous Weekly High | 27998 |
| Previous Weekly Low | 27508 |
| Previous Monthly High | 27280 |
| Previous Monthly Low | 25744 |
| Daily Fibonacci 38.2% | 27998.38 |
| Daily Fibonacci 61.8% | 28061.62 |
| Daily Pivot Point S1 | 27818.67 |
| Daily Pivot Point S2 | 27723.33 |
| Daily Pivot Point S3 | 27550.67 |
| Daily Pivot Point R1 | 28086.67 |
| Daily Pivot Point R2 | 28259.33 |
| Daily Pivot Point R3 | 28354.67 |


Programming Language Suggester
What’s the Best Programming Language to Learn for You? Take this quiz to find out!
How do you like your coffee?
With milk
With sugar
Dark
If you could visit one fictional world, where would you visit?
Westeros
Middle Earth
The Wizarding World
What is the meaning of life?
42
Pizza
Don't have time for that
If you could travel in time, what would you want to see?
The past
The future
There is enough in the present
Which pizza topping?
Peperoni
Pinapple
Mushroom
Submit
Based on your answers
seems like a great fit.


NEWS.md
model_using_splits_with_distance_correction()
function the predict_XXX_at_distance()
family of functions doesn’t work correctly if distance_correction
is used as parameter (i.e., different than zero). This is because the model definition is completely different, and predicting on the same distance scale is not possible. Please refer to Jovanović, M., Vescovi, J.D. (2020) for more information.plot.shorts_fv_profile()
functionresiduals()
S3 method, as well as with internal function shorts_model_fit()
that provides model fit estimates (i.e. RMSE, MAE, MAPE)model_using_splits_with_distance_correction()
function that implements novel model definition to estimate flying start distancemixed_model_using_splits_with_distance_correction()
function that implements novel model definition to estimate flying start distanceggplot2
and tidyr
package dependency and implemented it in S3 plotting functionsget_FV_profile
now return a object class shorts_fv_profile
shorts_fv_profile
objectforce
and relative_force
to horizontal_force
and relative_horizontal_force
in the shorts_fv_profile
object and data frame returned by the predict_kinematics
acceleration
, bodymass
, net_horizontal_force
, air_resistance
, and vertical_force
, resultant_force_relative
, power
, and force_angle
in the shorts_fv_profile
object and data frame returned by the predict_kinematics
shorts_model
and shorts_mixed_model
objectsAdded sample radar gun data from Jean-Benoît Morin Microsoft Excel spreadsheet, freely available at his website (accessed October 27, 2020)). For more information ?jb_morin
Added get_FV_profile
for generating Force-Velocity profile summary using Pierre Samozino and Jean-Benoît Morin method (for more DOI:10.1111/sms.12490)
get_air_resistance
function to estimate air resistance in newtonspredict_air_resistance_at_time
and predict_air_resistance_at_time
functionspredict_force_at_time
and predict_force_at_distance
functionspredict_power_at_time
and predict_power_at_distance
functionspredict_relative_power_at_distance
and predict_relative_power_at_time
use air resistance to do the calculations. The default bodymass is 75kg. To replicate earlier function behavior, use predict_velocity_at_
multiplied by predict_acceleration_at_
to get relative power without air resistancepredict_kinematics
now uses aforementioned changes in predict_relative_power_
functions, and added force and air resistance in the outputfind_max_power_distance
and find_power_critical_distance
now uses aforementioned changes and returns absolute power, rather than relative, and air resistance is used in the power calculationsfind_max_power_time
, find_velocity_critical_time
, find_acceleration_critical_time
, and find_power_critical_time
functionsmodel_using_radar_with_time_correction
where time_correction parameter is estimatedmixed_model_using_radar_with_time_correction
where time_correction parameter is estimateddata("vescovi")
). For more info see ?vescovi
time_correction
and distance_correction
to all model parameters output to align thempredict_kinematics
function that predicts 0-6s distance (100Hz), velocity, acceleration, and relative powerprint
, coef
, summary
, predict
, and residuals
methodsrandom
parameter to mixed_
family of functions to allow higher flexibility in model definitions, but removed corrections_as_random_effects
parameter. The default behavious is to use all parameters as random effects....
to model_using_radar
and mixed_model_using_radar
to be forwarded to nlme::nlme
sprint-corrections
vignette by adding a short simulation studytime_delay
to time_correction
in shorts::model_using_instant_velocity
and shorts::mixed_model_using_instant_velocity
functions to be more consistent across functions. Also, this correction is added to time, so use negative numbers insteadtime_correction
in shorts::mixed_model_using_instant_velocity
and shorts::mixed_model_using_split_times
is now numeric vector, not column nametime_correction
in shorts::model_using_split_times
and shorts::mixed_model_using_split_times
time_correction
in shorts:predict_
family of functionsdistance_correction
in shorts:predict_
family of functionstime_correction
in shorts::model_using_split_times_with_time_correction
and shorts::mixed_model_using_split_times_with_time_correction
distance_correction
in shorts::model_using_split_times_with_corrections
and shorts::mixed_model_using_split_times_with_corrections
shorts::mixed_model_
functionsmaxAbsErr
from model_fit elementfind_
family of functions for finding max power and critical distance when velocity or acceleration reaches certain threshold...
to all modeling functions so that extra parameters can be forwarded to the optimization enginesplit_times
recreated using distance shift behind the first timing gate. Needed to demo mixed models with corrections_model_using_instant_velocity
to _model_using_radar
_model_using_split_times_
to _model_using_splits_


I have studied in many fields to create this portfolio. It began with wanting to create a website, thinking possibilities would be endless being able to create one. I had helped start a small business, learned photography, and worked on a few cinematography projects throughout the past few years. I am eager to learn more, and possibly create something with these combined skills. Below are some of the projects I have done to progress myself over the years.
I have learned to use HTML, CSS, and JavaScript, as well as some of their libraries to create projects, and even help get a business online. I mainly work with bootstrap for it's ease of use, manipulation, as well as conversion from desktop to mobile sizing, and accommodation.I hope to fill the gaps of knowledge I have not gained from these languages, as well as learn more.
I have learned photography with the help of a close friend throughout the past 2 years. I have taught myself different styles of photography, and have created presets to best suite those categories. I felt that photography wasn't enough, an I have currently worked and learned to to create cinematographic videos. It is a difficult process, and I am learning more each day by creating, color grading, and tweaking the compiled videos.


TWebControlDecorator class
A TWebControlDecorator can be applied to a TWebControl to customize its rendering. TWebControlDecorator can add custom html code before and after both the open and close tag of a TWebControl. The html code can be an user-defined text or an external template file that will be instantiated and rendered in place.
This is an easy way to have your look and feel depend upon the theme instead of writing specific html in your templates to achieve your website desires. Here is an example of how to code your theme skin:
The order of the inclusion of the decoration into the page goes like this: * PreTagTemplate * PreTagText * TWebControl Open Tag Rendered * PreContentsText * PreContentsTemplate * TWebControl Children Rendered * PostContentsTemplate * PostContentsText * TWebControl CloseTag Rendered * PostTagText * PostTagTemplate
Located in /Web/UI/WebControls/TWebControlDecorator.php (line 59)
TComponent | --TWebControlDecorator
Constructor.
Initializes the control .
This method places the templates around the open and close tag. This takes a parameter which is
to specify the control to get the outer template decoration. If no outer control is specified
this is a framework call. The Text decoration can't influence the object hierarchy because they are rendered into into the writer directly.
This call attaches the ensureTemplateDecoration to the TPage onSaveStateComplete so these controls don't have page states. This is as close to not influencing the page as possible.
This method places the post contents text into the TTextWriter
This method places the post tag text into the TTextWriter
This method places the pre contents text into the TTextWriter
This method places the pre tag text into the TTextWriter
Inherited From TComponent
TComponent::addParsedObject()
TComponent::attachEventHandler()
TComponent::canGetProperty()
TComponent::canSetProperty()
TComponent::createdOnTemplate()
TComponent::detachEventHandler()
TComponent::evaluateExpression()
TComponent::evaluateStatements()
TComponent::getEventHandlers()
TComponent::getSubProperty()
TComponent::hasEvent()
TComponent::hasEventHandler()
TComponent::hasProperty()
TComponent::raiseEvent()
TComponent::setSubProperty()
TComponent::__call()
TComponent::__get()
TComponent::__set()
TComponent::__sleep()
TComponent::__wakeup()
Documentation generated on Sat, 19 Jan 2013 13:04:29 +0100 by phpDocumentor 1.4.3


ChainZilla Whitelabel Blockchain Development - Blockchain and Payment solutions for fintechs building tomorrow’s financial services.
Are you interested in launching your own custom App? Contact us today!
#blockchain #development #whitelabel #fintech #latam @KomodoPlatf...


Vacuum Gauge Pressure Readings
This websites lets you access the pressure values of the vacuum gauges attached to the HHG setup in the COLTRIMS laboratory:
- Live graph of the pressure values.
- Digital display of the current pressure values.
- Long term trend graph of the pressure values.
- Download a CSV file containing all data.