Triangle Fraternity started at the University of Illinois in 1906 when 16 Civil Engineers set out with the goal to create an organization in which like-minded individuals could come together for the mutual good. These men modeled Triangle after other professional fraternities which stressed the importance of academics and clear career goals. The chapter at Illinois was founded on April 15, 1907. Today Triangle chapters still celebrate the 15th of April as Founders day.
After getting starting at Illinois, the 16 founders set out to spread Triangle to other colleges with a strong engineering presence in order to expand their brotherhood. The University of Kentucky chapter was the 5th Triangle chapter in the nation, founded on October 31st, 1920. The chapter functioned successfully for 63 long years, but was disbanded in 1983. That was until the early 2000s when Triangle returned to UK as an interest group. The University of Kentucky Chapter was re-chartered on November 12th 2005 and has been a strong presence on UK’s campus ever since.


Discovery log
Preparation:
Task 0: Keep a log of what you do
For this task I created a google doc in which I’m going to record anything that I do or learn during any of the tasks set in the practicals.
Task 1: Start working with your VM
To complete this task I first went to: http://port.ac.uk/myvm and started the virtual machine for the first time, changed the default password. Once the VM configuration was finished I connected again and experimented with running a Web server with a simple web page.
Task 2: Get the Coursework
For this task I read the WebF1 Coursework document and saved it in my drive.
Task 3: Website Awards
After finding someone to work with we discussed and completed the Website Awards document linked in the worksheet.
Task 4: Choose an Editor
As I don’t have much experience with web design I went with Atom, but as soon as I get more time and experience I will try out some of the other text editors such as Brackets or Sublime Text.
Task 5: Further Reading
As recommended I read the opening chapter of the book provided.
Web Security:
Task 0: Keep a log of what you do
As started last week I’m using this document to keep track of everything I do.
Task 1: Work Collaboratively
We created a document called “WebF1 Security Policy Task” and shared it with those within the group.
Task 2: Identify all information
Initially we started adding different kinds of generated information, but once we had multiple existing entries we started to consider whether those new entries we proposed were already contained in the previous ones or whether the ones already in the list could be contained in that new entry. After all of this we came across 26 different kinds of information that we generate on a daily basis.
Task 3: Categorise that information
Once completed the previous exercise we proceeded with categorising those different kinds of generated information into 3 categories, “secret”, “sensitive” and “public”, and after some discussion we had: 4 out of 26 under “secret” which nobody should have access to, 20 out of 26 under “sensitive” to which only trusted people should have access, and finally 2 out of 26 under “public” which anybody could have access.
Task 4: Processing information
On this final task we discussed different approaches to how future social media services could integrate those information security categories and how to approach them, suggesting things such as biometrics and encryption.
Literature Review
Task 0: How to begin
First I started thinking of keywords and possible topics for my research, also used the template provided to structure the different resources. Also, as suggested, I started a mind map to keep track of the different directions that different papers take.
Task 1: Research
Using the library website I started looking for papers on the literature review subject, and in conjunction with the template I keep a record of those papers that looked like they could be related to mitigating personal exposure online for a more in depth evaluation. I also stopped using the online mind map since I found it easier to write the ideas on a piece to later categorise them.
Task 2: Iterate
As the instruction say I iterated through the sources I gathered, discarding some of them in the process since they turned out to be irrelevant to the topic. Also in the process I got a chance to highlight those paragraphs that contained the main ideas and also group those ideas shared across the different papers.
Better Writing
Task 1 - 8: Modifying sentences to improve writing
I iterated through the exercises choosing and modifying the sentences as I found adequate in the context of what was asked.
Task 9: Practice
As I find myself confident on my writing, since I’m always re-reading and thinking how to improve what I wrote I skipped this exercise.
HTML
Task 0: Create a Web Page
During this practicals task I made my very first html document with the simplest layout possible. Also learned that if we want our server to load a page by default we it needs to be called index.html.
Task 1: Upload your web page to your Virtual Machine
After starting the VM I opened WinSCP, a program that uses secure transfer protocols in order to upload/modify files to a remote machine, in this case my VM. After establishing a connection I made a folder in the VM called me and uploaded the index.html file that i had just made.
Task 2: Start your web server
As the VM is already started due to the previous task I launched a connection, logged in and moved to the “me” folder that I just made. Once in the folder I run the web server with the “http-server” command. As this was my first time using the web server I accidentally stopped the server by trying to copy the IP addresses that were given (since I didn’t read the next set of instructions) and pressing “crl^c”, the hotkey used to stop the web server.
Task 3: Create and upload your own web page
As stated I made a helloworld.html document with very few content and nonexistent styling. Once made I uploaded it and viewed it.
Task 4: Further work
As part of my coursework I started looking online for possible approaches and inspecting different web pages that I came across in order to gain more knowledge.
Style
Task 0: Preparation
To prepare for this task I made a folder called style in which I placed a file called example.html whose contents are quite simple.
Task 1: An Embedded Stylesheet
After making a copy of example.html and renaming it to embedded.html I proceeded to write some styling for the document within the document using a <style> tag.
Task 2: A Linked Stylesheet
For this task I made a separate CSS stylesheet called mystyle.css which I linked in the linked.html html file. Here I learned the proper way to style a webpage since one stylesheet can be used by every page in the website.
Task 3: Class & ID Selectors
In this task I learned about the class and id selectors and how to refer to them in CSS.
Task 4: Read, Discover, Experiment, Learn
For this task I followed the same concept as for the HTML task, search, inspect and practice.
As recommended by the tutors I looked into flexbox, which helped me immensely for my planned nav bar, and I knew about it earlier would have saved me lots of searches and time.
Links
Task 0: Preparation
As for the previous week I created a folder and a base HTML file to be used for the rest of this week practical.
Task 1: A list of your favourite links
Using the <a> tag I made a list of my favourite links and checked if they worked by viewing the file on a browser.
Task 2: Relative links
As stated in the task description I made three different HTML files and linked them from a index.html file.
Task 4: Read, Discover, Experiment, Learn
For this task I followed the same concept as for the HTML and CSS tasks, search, inspect and practice.
Images
Task 0: Preparation
The preparation process for this practical was to download from Github a file containing HTML pages which could be navigated to from a browser to see different applications.
Task 1: Read, Discover, Experiment, Learn
For this task I followed the same concept as for the HTML, CSS and Links tasks, search, inspect and practice.
Editors
Task 1: Making editors work for you
Atom shortcuts:
- crl-shift-L = syntax highlighting menu to choose from (In case Atom doesn’t auto detect)
- crl-, = settings menu
- crl-shift-P = search menu
- crl-] = indent all selected rows
- crl-Z = undo
- crl-Y = redo
- crl-S = save
- crl-F = search in the file
- crl-/ = comment lines
Besides the shortcuts I also experimented with the fonts and themes but continued using the default one, enabled Soft Wrap since it helps to visualize the contents of the webpage. Also experimented with the snippets in order to minimize typing when making the coursework.
To help in the typing of my website I installed the atom-html-preview, but stopped using it due to it flickering to much due to the automatic update, so I used a chrome tab for the page preview. Also looked at the rest of the suggested packages and installed a few of them.
Due to the suggestion to learn to touch-type and being aware to the increasing amount of typing that I would be doing I started to practice thanks to an online page.
Organising a site:
Task 1: Site Architecture
Looking to last’s week practical exercise I saw and understood how difficult it was to organize a site properly so it doesn’t decrement the usability.
Taking into account the navigation problems I had during last weeks exercise I started drafting the layout my website would have, since the first draft I’ve changed things, such as having the nav bar always fixed to the top or the mobile view.
Stick Figure:
Task 0: Using a browser
After looking at the basic stick-figure code I went through the stick-figure examples to remind myself of what was seen on the lecture, when completed I played the multiplayer game on Jacek’s server. While at Jacek’s server I went though the source code to try and find a way to trick the system and cheat, but at the time wasn’t able to apply any of my ideas, which were: increase my sticks figure speed, making it so a diamond would be created every second in my position, increasing my score without collecting any diamond.
Task 1: On your VM
After starting and downloading on my VM the stick-figure code, I installed npm on my VM which is the default package manager for the JavaScript runtime environment Node.js. Once completed I started the server and played with it and getting instantly banned by changing my speed to 5000, one thing I noticed is that even banned I could make diamonds disappear although once the server receives the client information it makes them appear again.


CREEPING UNKNOWN, THE (The Quatermass Xperiment) (director/writer: Val Guest; screenwriter: based on the BBC-TV serial by Nigel Kneale/Richard Landau; cinematographer: Walter Harvey; editor: James Needs; cast: Brian Donlevy (Prof. Quatermass), Margia Dean (Julia Carroon), Jack Warner (Inspector Lomax), Richard Wordsworth (Victor Carroon), David King-Wood (Dr. Gordon Briscoe), Gordon Jackson (TV Producer), Thora Hird (Rosie), Lionel Jeffries (Blake), Jane Asher (Little Girl), Harold Lang (Christie), Sam Kydd (Police Sgt.); Runtime: 82; Hammer/United Artists; 1955-UK)
Reviewed by Dennis Schwartz
This shoestring sci-fier began the craze in Great Britain for the horror story. It is based on the popular TV series written by Nigel Kneale. In order to save money, most of it was filmed at night eliminating the need for much lighting. This worked, making for a crafty production, mainly because it left much of the horror scenes to the viewer's imagination. Hammer studio also exploited the X rating it received, which meant only those over 18 could attend, as it launched a massive ad campaign which brought in the crowds to find out why such a rating and also by making the X part of the film's title--The Quatermass Xperiment, it kept the public's attention on its ad campaign. In America the film opened as The Creeping Unknown. The reason for the X rating seems to be because of the ending, as on TV the monster was talked to death but in the film he's electrocuted when discovered in Westminster Abbey by a live television broadcast team.
The film begins as a rocketship lands in the middle of a cow field where a couple was just petting; and, when the police and the cold-hearted space program head, Prof. Quatermass (Brian Donlevy), cool down the rocket, they find two of the astronauts have disappeared (all that's left of them is their empty spacesuits) and the other astronaut, Victor Carroon (Wordsworth), is barely alive while in a comatose state.
The police, under Inspector Lomax (Jack Warner), of Scotland Yard, treat it as a possible murder case. They become suspicious when they discover Victor now doesn't have human fingerprints.
He's being treated secretly at Quatermass' lab by Dr. Gordon Briscoe (David King-Wood), but when he fails to improve and begins having a stranger look he's brought to the hospital and kept in isolation. His wife Julia makes the mistake of getting an orderly to sneak him out of the hospital, which results in the orderly's death as Victor turns into a Frankenstein-like monster and fatally swats him on the head.
He has transformed into a fungus-like alien monster and is being pursued by both Inspector Lomax (Jack Warner) and Quatermass, who is told by Gordon that the metamorphosis into this creature could mean the destruction of London as the creature continues to multiply if unchecked and becomes gigantic. The danger is one of biological warfare, that he could affect the whole London population with this fungus he picked up from outer space.
The monster devours the city zoo of all its animals, breaks the head off a little girl's doll, and kills a chemist. Yet the monster remains a sympathetic figure. He represents to the calculating Quatermass, a failed experiment that is one of the necessary risks taken if man is to make advancements in knowledge.
It was an easy film to watch, as it had its creative moments in the dark. It offered better entertainment value than most big-budget sci-fi films.
REVIEWED ON 9/21/2001 GRADE: B
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29570 X-Language: en X-RT-ReviewID: 251154 X-RT-TitleID: 1066285 X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: B
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Decision-makers and chimpanzee experts should be able to see and review the map and provide their signature if they approve the map or request changes documenting their inputs and requests. When the agreement is reached, decision makers and chimpanzee experts should be able to sign and approve the final map for distribution.


| 1 | package fr.sii.ogham.core.builder.retry; | |
| 2 | ||
| 3 | import java.util.function.Predicate; | |
| 4 | import java.util.function.UnaryOperator; | |
| 5 | ||
| 6 | import fr.sii.ogham.core.async.Awaiter; | |
| 7 | import fr.sii.ogham.core.async.ThreadSleepAwaiter; | |
| 8 | import fr.sii.ogham.core.builder.Builder; | |
| 9 | import fr.sii.ogham.core.builder.context.BuildContext; | |
| 10 | import fr.sii.ogham.core.builder.env.EnvironmentBuilder; | |
| 11 | import fr.sii.ogham.core.condition.Condition; | |
| 12 | import fr.sii.ogham.core.fluent.AbstractParent; | |
| 13 | import fr.sii.ogham.core.retry.ExponentialDelayRetry; | |
| 14 | import fr.sii.ogham.core.retry.FixedDelayRetry; | |
| 15 | import fr.sii.ogham.core.retry.FixedIntervalRetry; | |
| 16 | import fr.sii.ogham.core.retry.PerExecutionDelayRetry; | |
| 17 | import fr.sii.ogham.core.retry.RetryExecutor; | |
| 18 | import fr.sii.ogham.core.retry.RetryStrategy; | |
| 19 | import fr.sii.ogham.core.retry.RetryStrategyProvider; | |
| 20 | import fr.sii.ogham.core.retry.SimpleRetryExecutor; | |
| 21 | ||
| 22 | /** | |
| 23 | * Configures retry handling. | |
| 24 | * | |
| 25 | * Ogham provides several strategies to handle retry: | |
| 26 | * | |
| 27 | *
 | |
| 28 | *
{@link FixedDelayRetry}: wait for a fixed delay after the last | |
| 29 | * failure
 | |
| 30 | *
{@link FixedIntervalRetry}: wait for a fixed delay between executions (do | |
| 31 | * not wait for the end of the action)
 | |
| 32 | *
{@link ExponentialDelayRetry}: start with a delay, the next delay will be | |
| 33 | * doubled on so on
 | |
| 34 | *
{@link PerExecutionDelayRetry}: provide a custom delay for each | |
| 35 | * execution
 | |
| 36 | *
 | |
| 37 | * | |
| 38 | *
 | |
| 39 | * The {@link RetryExecutor} instance may be {@code null} if nothing has been | |
| 40 | * configured. | |
| 41 | *
 | |
| 42 | * | |
| 43 | * @author Aurélien Baudet | |
| 44 | * | |
| 45 | * @param
 | |
| 46 | * the type of the parent builder (when calling {@link #and()} | |
| 47 | * method) | |
| 48 | */ | |
| 49 | public class RetryBuilder
 extends AbstractParent
 implements Builder<RetryExecutor> { | |
| 50 | private final BuildContext buildContext; | |
| 51 | private FixedDelayBuilder<RetryBuilder
> fixedDelay; | |
| 52 | private ExponentialDelayBuilder<RetryBuilder
> exponentialDelay; | |
| 53 | private PerExecutionDelayBuilder<RetryBuilder
> perExecutionDelay; | |
| 54 | private FixedIntervalBuilder<RetryBuilder
> fixedInterval; | |
| 55 | private Awaiter awaiter; | |
| 56 | private RetryExecutor executor; | |
| 57 | private RetryExecutorFactory executorFactory; | |
| 58 | private Predicate<Throwable> retryable; | |
| 59 | ||
| 60 | /** | |
| 61 | * Initializes the builder with a parent builder. The parent builder is used | |
| 62 | * when calling {@link #and()} method. The {@link EnvironmentBuilder} is | |
| 63 | * used to evaluate properties when {@link #build()} method is called. | |
| 64 | * | |
| 65 | * @param parent | |
| 66 | * the parent builder | |
| 67 | * @param buildContext | |
| 68 | * for registering instances and property evaluation | |
| 69 | */ | |
| 70 | public RetryBuilder(P parent, BuildContext buildContext) { | |
| 71 | super(parent); | |
| 72 | this.buildContext = buildContext; | |
| 73 | } | |
| 74 | ||
| 75 | /** | |
| 76 | * Retry several times with a fixed delay between each try until the maximum | |
| 77 | * attempts is reached. | |
| 78 | * | |
| 79 | * For example: | |
| 80 | * | |
| 81 | *
 | |
| 82 | * .fixedDelay() | |
| 83 | * .delay(500) | |
| 84 | * .maxRetries(5) | |
| 85 | *
 | |
| 86 | * | |
| 87 | * Means that a retry will be attempted every 500ms until 5 attempts are | |
| 88 | * reached (inclusive). For example, you want to connect to an external | |
| 89 | * system at t1=0 and the connection timeout (100ms) is triggered at | |
| 90 | * t2=100ms. Using this retry will provide the following behavior: | |
| 91 | * | |
| 92 | *
 | |
| 93 | *
0: connect
 | |
| 94 | *
100: timeout
 | |
| 95 | *
600: connect
 | |
| 96 | *
700: timeout
 | |
| 97 | *
1200: connect
 | |
| 98 | *
1300: timeout
 | |
| 99 | *
1800: connect
 | |
| 100 | *
1900: timeout
 | |
| 101 | *
2400: connect
 | |
| 102 | *
2500: timeout
 | |
| 103 | *
3000: connect
 | |
| 104 | *
3100: timeout
 | |
| 105 | *
fail
 | |
| 106 | *
 | |
| 107 | * | |
| 108 | * @return the builder to configure retry delay and maximum attempts | |
| 109 | */ | |
| 110 | public FixedDelayBuilder<RetryBuilder
> fixedDelay() { | |
| 111 |
1
1. fixedDelay : negated conditional → RUN_ERROR |
if (fixedDelay == null) { |
| 112 | fixedDelay = new FixedDelayBuilder<>(this, buildContext); | |
| 113 | } | |
| 114 |
1
1. fixedDelay : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::fixedDelay → RUN_ERROR |
return fixedDelay; |
| 115 | } | |
| 116 | ||
| 117 | /** | |
| 118 | * Retry several times with a delay that is doubled between each try until | |
| 119 | * the maximum attempts is reached. | |
| 120 | * | |
| 121 | * For example: | |
| 122 | * | |
| 123 | *
 | |
| 124 | * .exponentialDelay() | |
| 125 | * .initialDelay(500) | |
| 126 | * .maxRetries(5) | |
| 127 | *
 | |
| 128 | * | |
| 129 | * Means that a retry will be attempted every 500ms until 5 attempts are | |
| 130 | * reached (inclusive). For example, you want to connect to an external | |
| 131 | * system at t1=0 and the connection timeout (100ms) is triggered at | |
| 132 | * t2=100ms. Using this retry will provide the following behavior: | |
| 133 | * | |
| 134 | *
 | |
| 135 | *
0: connect
 | |
| 136 | *
100: timeout
 | |
| 137 | *
600: connect
 | |
| 138 | *
700: timeout
 | |
| 139 | *
1700: connect
 | |
| 140 | *
1800: timeout
 | |
| 141 | *
3800: connect
 | |
| 142 | *
3900: timeout
 | |
| 143 | *
7900: connect
 | |
| 144 | *
8000: timeout
 | |
| 145 | *
16000: connect
 | |
| 146 | *
16100: timeout
 | |
| 147 | *
fail
 | |
| 148 | *
 | |
| 149 | * | |
| 150 | * @return the builder to configure initial delay and maximum attempts | |
| 151 | */ | |
| 152 | public ExponentialDelayBuilder<RetryBuilder
> exponentialDelay() { | |
| 153 |
1
1. exponentialDelay : negated conditional → RUN_ERROR |
if (exponentialDelay == null) { |
| 154 | exponentialDelay = new ExponentialDelayBuilder<>(this, buildContext); | |
| 155 | } | |
| 156 |
1
1. exponentialDelay : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::exponentialDelay → RUN_ERROR |
return exponentialDelay; |
| 157 | } | |
| 158 | ||
| 159 | /** | |
| 160 | * Retry several times with a fixed delay to wait after the last execution | |
| 161 | * failure until the maximum attempts is reached. A specific delay is used | |
| 162 | * for each execution. If there are more attempts than the configured | |
| 163 | * delays, the last delays is used for remaining attempts. | |
| 164 | * | |
| 165 | * | |
| 166 | * For example: | |
| 167 | * | |
| 168 | *
 | |
| 169 | * .perExecutionDelay() | |
| 170 | * .delays(500, 750, 1800) | |
| 171 | * .maxRetries(5) | |
| 172 | *
 | |
| 173 | * | |
| 174 | * Means that a retry will be attempted with specified delays until 5 | |
| 175 | * attempts are reached (inclusive). For example, you want to connect to an | |
| 176 | * external system at t1=0 and the connection timeout (100ms) is triggered | |
| 177 | * at t2=100ms. Using this retry will provide the following behavior: | |
| 178 | * | |
| 179 | *
 | |
| 180 | *
0: connect
 | |
| 181 | *
100: timeout
 | |
| 182 | *
600: connect
 | |
| 183 | *
700: timeout
 | |
| 184 | *
1450: connect
 | |
| 185 | *
1550: timeout
 | |
| 186 | *
3350: connect
 | |
| 187 | *
3450: timeout
 | |
| 188 | *
5250: connect
 | |
| 189 | *
5350: timeout
 | |
| 190 | *
7150: connect
 | |
| 191 | *
7250: timeout
 | |
| 192 | *
fail
 | |
| 193 | *
 | |
| 194 | * | |
| 195 | * @return the builder to configure retry delay and maximum attempts | |
| 196 | */ | |
| 197 | public PerExecutionDelayBuilder<RetryBuilder
> perExecutionDelay() { | |
| 198 |
1
1. perExecutionDelay : negated conditional → RUN_ERROR |
if (perExecutionDelay == null) { |
| 199 | perExecutionDelay = new PerExecutionDelayBuilder<>(this, buildContext); | |
| 200 | } | |
| 201 |
1
1. perExecutionDelay : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::perExecutionDelay → RUN_ERROR |
return perExecutionDelay; |
| 202 | } | |
| 203 | ||
| 204 | /** | |
| 205 | * Retry several times with a fixed delay between each try (no matter how | |
| 206 | * long the execution of the action lasts) until the maximum attempts is | |
| 207 | * reached. The next execution date is based on the execution start date of | |
| 208 | * the first execution. | |
| 209 | * | |
| 210 | * For example: | |
| 211 | * | |
| 212 | *
 | |
| 213 | * .fixedInterval() | |
| 214 | * .interval(500) | |
| 215 | * .maxRetries(5) | |
| 216 | *
 | |
| 217 | * | |
| 218 | * Means that a retry will be attempted every 500ms until 5 attempts are | |
| 219 | * reached (inclusive). For example, you want to connect to an external | |
| 220 | * system at t1=0 and the connection timeout (100ms) is triggered at | |
| 221 | * t2=100ms. Using this retry will provide the following behavior: | |
| 222 | * | |
| 223 | * | |
| 224 | *
 | |
| 225 | *
0: connect
 | |
| 226 | *
100: timeout
 | |
| 227 | *
500: connect
 | |
| 228 | *
600: timeout
 | |
| 229 | *
1000: connect
 | |
| 230 | *
1100: timeout
 | |
| 231 | *
1500: connect
 | |
| 232 | *
1600: timeout
 | |
| 233 | *
2000: connect
 | |
| 234 | *
2100: timeout
 | |
| 235 | *
2500: connect
 | |
| 236 | *
2600: timeout
 | |
| 237 | *
fail
 | |
| 238 | *
 | |
| 239 | * | |
| 240 | * | |
| 241 | * NOTE: The provided date doesn't take the duration of the | |
| 242 | * execution in account. If an execution takes 1s to execute while retry | |
| 243 | * delay is set to 500ms, there may have several executions in parallel. | |
| 244 | * However, this totally depends on the {@link RetryExecutor} | |
| 245 | * implementation. For example {@link SimpleRetryExecutor} won't run several | |
| 246 | * executions in parallel. In this case, it will execute the action as soon | |
| 247 | * as the previous one has failed therefore the delay may not be complied. | |
| 248 | * | |
| 249 | * @return the builder to configure retry delay and maximum attempts | |
| 250 | */ | |
| 251 | public FixedIntervalBuilder<RetryBuilder
> fixedInterval() { | |
| 252 |
1
1. fixedInterval : negated conditional → RUN_ERROR |
if (fixedInterval == null) { |
| 253 | fixedInterval = new FixedIntervalBuilder<>(this, buildContext); | |
| 254 | } | |
| 255 |
1
1. fixedInterval : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::fixedInterval → RUN_ERROR |
return fixedInterval; |
| 256 | } | |
| 257 | ||
| 258 | /** | |
| 259 | * Change implementation used to wait for some delay between retries. | |
| 260 | * | |
| 261 | * By default, {@link ThreadSleepAwaiter} is used (internally uses | |
| 262 | * {@link Thread#sleep(long)} to wait for some point in time. | |
| 263 | * | |
| 264 | * @param impl | |
| 265 | * the custom implementation | |
| 266 | * @return this instance for fluent chaining | |
| 267 | */ | |
| 268 | public RetryBuilder
 awaiter(Awaiter impl) { | |
| 269 | this.awaiter = impl; | |
| 270 |
1
1. awaiter : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::awaiter → NO_COVERAGE |
return this; |
| 271 | } | |
| 272 | ||
| 273 | /** | |
| 274 | * Use custom executor instead of default one ({@link SimpleRetryExecutor}). | |
| 275 | * | |
| 276 | *
 | |
| 277 | * NOTE: Using custom executor doesn't take retry | |
| 278 | * strategies into account. If you want to benefit from | |
| 279 | * {@link RetryStrategy}s, use {@link #executor(RetryExecutorFactory)} | |
| 280 | * instead. | |
| 281 | * | |
| 282 | *
 | |
| 283 | * If {@link #executor(RetryExecutorFactory)} is also called, only the | |
| 284 | * executor defined by this method is used and the factory is not used. | |
| 285 | * | |
| 286 | *
 | |
| 287 | * If this method is called several times, only the last value is used. | |
| 288 | * | |
| 289 | *
 | |
| 290 | * If you call with {@code null}, it removes any previous custom executor. | |
| 291 | * | |
| 292 | * @param executor | |
| 293 | * the executor to use | |
| 294 | * @return this builder for fluent chaining | |
| 295 | */ | |
| 296 | public RetryBuilder
 executor(RetryExecutor executor) { | |
| 297 | this.executor = executor; | |
| 298 |
1
1. executor : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::executor → NO_COVERAGE |
return this; |
| 299 | } | |
| 300 | ||
| 301 | /** | |
| 302 | * Use a factory to create an instance of {@link RetryExecutor} while | |
| 303 | * benefiting from configured {@link RetryStrategy}. | |
| 304 | * | |
| 305 | *
 | |
| 306 | * The factory will receive the ready to use {@link RetryStrategyProvider} | |
| 307 | * and the built {@link Awaiter}. | |
| 308 | * | |
| 309 | *
 | |
| 310 | * If {@link #executor(RetryExecutor)} is also configured, the factory is | |
| 311 | * not used. | |
| 312 | * | |
| 313 | *
 | |
| 314 | * If this method is called several times, only the last factory is used. | |
| 315 | * | |
| 316 | *
 | |
| 317 | * If you call with {@code null}, it removes any previous configured | |
| 318 | * factory. | |
| 319 | * | |
| 320 | * @param factory | |
| 321 | * the factory used to create the {@link RetryExecutor} instance | |
| 322 | * @return this instance for fluent chaining | |
| 323 | */ | |
| 324 | public RetryBuilder
 executor(RetryExecutorFactory factory) { | |
| 325 | this.executorFactory = factory; | |
| 326 |
1
1. executor : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::executor → RUN_ERROR |
return this; |
| 327 | } | |
| 328 | ||
| 329 | /** | |
| 330 | * A predicate that checks if the raised error should allow another retry or | |
| 331 | * not. This is useful when an error is raised and the error is severe so it | |
| 332 | * should stop immediately. | |
| 333 | * | |
| 334 | *
 | |
| 335 | * The predicate returns {@code true} if the exception is not fatal and a | |
| 336 | * retry may be attempted. It returns {@code false} if the exception is | |
| 337 | * fatal and no more attempt should be executed and retry must stop | |
| 338 | * immediately. | |
| 339 | * | |
| 340 | *
 | |
| 341 | * If {@code null} is passed to this method, it removes any previously | |
| 342 | * defined predicate. Therefore the default predicate is used: all | |
| 343 | * {@link Exception}s are considered retryable but not {@link Error}s. | |
| 344 | * | |
| 345 | * @param retryable | |
| 346 | * the predicate that returns true if the exception is not fatal | |
| 347 | * and a retry can be attempted | |
| 348 | * @return this instance for fluent chaining | |
| 349 | */ | |
| 350 | public RetryBuilder
 retryable(Predicate<Throwable> retryable) { | |
| 351 | this.retryable = retryable; | |
| 352 |
1
1. retryable : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::retryable → RUN_ERROR |
return this; |
| 353 | } | |
| 354 | ||
| 355 | /** | |
| 356 | * Combine the current configured predicate with another. | |
| 357 | * | |
| 358 | *
 | |
| 359 | * This may be useful when an implementation wants to add additional checks | |
| 360 | * to the ones configured by Ogham core or other implementations. | |
| 361 | * | |
| 362 | *
 | |
| 363 | * If no predicate is currently configured, a predicate that accepts | |
| 364 | * everything is provided. | |
| 365 | * | |
| 366 | *
 | |
| 367 | * NOTE: This is advanced usage mostly for developers that | |
| 368 | * extend Ogham with new implementations. | |
| 369 | * | |
| 370 | * @param merger | |
| 371 | * a function used to merge predicates | |
| 372 | * @return this instance for fluent chaining | |
| 373 | */ | |
| 374 | public RetryBuilder
 retryable(UnaryOperator<Predicate<Throwable>> merger) { | |
| 375 |
2
1. lambda$retryable$0 : replaced boolean return with false for fr/sii/ogham/core/builder/retry/RetryBuilder::lambda$retryable$0 → NO_COVERAGE 2. retryable : negated conditional → NO_COVERAGE |
retryable = merger.apply(retryable == null ? (error -> true) : retryable); |
| 376 |
1
1. retryable : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::retryable → NO_COVERAGE |
return this; |
| 377 | } | |
| 378 | ||
| 379 | /** | |
| 380 | * A condition that checks if the raised error should allow another retry or | |
| 381 | * not. This is useful when an error is raised and the error is severe so it | |
| 382 | * should stop immediately. | |
| 383 | * | |
| 384 | *
 | |
| 385 | * The condition returns {@code true} if the exception is not fatal and a | |
| 386 | * retry may be attempted. It returns {@code false} if the exception is | |
| 387 | * fatal and no more attempt should be executed and retry must stop | |
| 388 | * immediately. | |
| 389 | * | |
| 390 | *
 | |
| 391 | * If {@code null} is passed to this method, it removes any previously | |
| 392 | * defined condition. Therefore the default condition is used: all | |
| 393 | * {@link Exception}s are considered retryable but not {@link Error}s. | |
| 394 | * | |
| 395 | *
 | |
| 396 | * This method internally calls {@link #retryable(Predicate)}. | |
| 397 | * | |
| 398 | * @param retryable | |
| 399 | * the condition that returns true if the exception is not fatal | |
| 400 | * and a retry can be attempted | |
| 401 | * @return this instance for fluent chaining | |
| 402 | */ | |
| 403 | @SuppressWarnings("squid:S1905") | |
| 404 | public RetryBuilder
 retryable(Condition<Throwable> retryable) { | |
| 405 |
2
1. retryable : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::retryable → NO_COVERAGE 2. retryable : negated conditional → NO_COVERAGE |
return retryable(retryable == null ? (Predicate<Throwable>) null : retryable::accept); |
| 406 | } | |
| 407 | ||
| 408 | @Override | |
| 409 | public RetryExecutor build() { | |
| 410 |
1
1. build : negated conditional → RUN_ERROR |
if (executor != null) { |
| 411 |
1
1. build : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::build → NO_COVERAGE |
return executor; |
| 412 | } | |
| 413 | Builder<RetryStrategy> retryStrategy = buildRetryStrategy(); | |
| 414 |
1
1. build : negated conditional → RUN_ERROR |
if (retryStrategy == null) { |
| 415 | return null; | |
| 416 | } | |
| 417 | BuilderToRetryStrategyProviderBridge retryProvider = new BuilderToRetryStrategyProviderBridge(retryStrategy); | |
| 418 | Awaiter builtAwaiter = buildAwaiter(); | |
| 419 |
1
1. build : negated conditional → RUN_ERROR |
if (executorFactory != null) { |
| 420 |
1
1. build : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::build → RUN_ERROR |
return executorFactory.create(retryProvider, builtAwaiter); |
| 421 | } | |
| 422 |
1
1. build : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::build → RUN_ERROR |
return buildContext.register(new SimpleRetryExecutor(retryProvider, builtAwaiter, buildRetryable())); |
| 423 | } | |
| 424 | ||
| 425 | private Builder<RetryStrategy> buildRetryStrategy() { | |
| 426 |
1
1. buildRetryStrategy : negated conditional → RUN_ERROR |
if (isConfigured(perExecutionDelay)) { |
| 427 |
1
1. buildRetryStrategy : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryStrategy → RUN_ERROR |
return perExecutionDelay; |
| 428 | } | |
| 429 |
1
1. buildRetryStrategy : negated conditional → RUN_ERROR |
if (isConfigured(exponentialDelay)) { |
| 430 |
1
1. buildRetryStrategy : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryStrategy → RUN_ERROR |
return exponentialDelay; |
| 431 | } | |
| 432 |
1
1. buildRetryStrategy : negated conditional → RUN_ERROR |
if (isConfigured(fixedInterval)) { |
| 433 |
1
1. buildRetryStrategy : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryStrategy → RUN_ERROR |
return fixedInterval; |
| 434 | } | |
| 435 |
1
1. buildRetryStrategy : negated conditional → RUN_ERROR |
if (isConfigured(fixedDelay)) { |
| 436 |
1
1. buildRetryStrategy : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryStrategy → RUN_ERROR |
return fixedDelay; |
| 437 | } | |
| 438 | return null; | |
| 439 | } | |
| 440 | ||
| 441 | private static boolean isConfigured(Builder<RetryStrategy> builder) { | |
| 442 |
1
1. isConfigured : negated conditional → RUN_ERROR |
if (builder == null) { |
| 443 |
1
1. isConfigured : replaced boolean return with true for fr/sii/ogham/core/builder/retry/RetryBuilder::isConfigured → RUN_ERROR |
return false; |
| 444 | } | |
| 445 |
2
1. isConfigured : replaced boolean return with true for fr/sii/ogham/core/builder/retry/RetryBuilder::isConfigured → RUN_ERROR 2. isConfigured : negated conditional → RUN_ERROR |
return builder.build() != null; |
| 446 | } | |
| 447 | ||
| 448 | private Awaiter buildAwaiter() { | |
| 449 |
1
1. buildAwaiter : negated conditional → RUN_ERROR |
if (awaiter == null) { |
| 450 |
1
1. buildAwaiter : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildAwaiter → RUN_ERROR |
return new ThreadSleepAwaiter(); |
| 451 | } | |
| 452 |
1
1. buildAwaiter : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildAwaiter → NO_COVERAGE |
return awaiter; |
| 453 | } | |
| 454 | ||
| 455 | private Predicate<Throwable> buildRetryable() { | |
| 456 |
1
1. buildRetryable : negated conditional → RUN_ERROR |
if (retryable == null) { |
| 457 |
3
1. lambda$buildRetryable$1 : replaced boolean return with true for fr/sii/ogham/core/builder/retry/RetryBuilder::lambda$buildRetryable$1 → NO_COVERAGE 2. lambda$buildRetryable$1 : replaced boolean return with false for fr/sii/ogham/core/builder/retry/RetryBuilder::lambda$buildRetryable$1 → NO_COVERAGE 3. buildRetryable : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryable → NO_COVERAGE |
return e -> e instanceof Exception; |
| 458 | } | |
| 459 |
1
1. buildRetryable : replaced return value with null for fr/sii/ogham/core/builder/retry/RetryBuilder::buildRetryable → RUN_ERROR |
return retryable; |
| 460 | } | |
| 461 | } | |
Mutations | ||
| 111 |
1.1 |
|
| 114 |
1.1 |
|
| 153 |
1.1 |
|
| 156 |
1.1 |
|
| 198 |
1.1 |
|
| 201 |
1.1 |
|
| 252 |
1.1 |
|
| 255 |
1.1 |
|
| 270 |
1.1 |
|
| 298 |
1.1 |
|
| 326 |
1.1 |
|
| 352 |
1.1 |
|
| 375 |
1.1 2.2 |
|
| 376 |
1.1 |
|
| 405 |
1.1 2.2 |
|
| 410 |
1.1 |
|
| 411 |
1.1 |
|
| 414 |
1.1 |
|
| 419 |
1.1 |
|
| 420 |
1.1 |
|
| 422 |
1.1 |
|
| 426 |
1.1 |
|
| 427 |
1.1 |
|
| 429 |
1.1 |
|
| 430 |
1.1 |
|
| 432 |
1.1 |
|
| 433 |
1.1 |
|
| 435 |
1.1 |
|
| 436 |
1.1 |
|
| 442 |
1.1 |
|
| 443 |
1.1 |
|
| 445 |
1.1 2.2 |
|
| 449 |
1.1 |
|
| 450 |
1.1 |
|
| 452 |
1.1 |
|
| 456 |
1.1 |
|
| 457 |
1.1 2.2 3.3 |
|
| 459 |
1.1 |


[gecode-users] How to set an arbitrary RandomGenerator for randomized branching?!?
Mikael Zayenz Lagerkvist
zayenz at gmail.com
Mon May 18 09:55:05 CEST 2009
Hi,
Currently it is not possible to exchange the random number generator.
Furthermore, the implementation uses properties of the random number
generator that would most probably compromise efficiency if they were
abstracted away (for example, the state is limited to a single
unsigned int as seed). If you want to use your own random number
generator, I would suggest writing your own subclasses of ViewSelBase
and ValSelbase similar to ViewSelRnd and ValRnd.
For curiosity, what is the reason that you want to change the random
number generator used?
Cheers,
Mikael
On Sat, May 16, 2009 at 12:37 AM, Martin Mann
<mmann at informatik.uni-freiburg.de> wrote:
>
> Hi everybody,
>
> I digged a bit into the Gecode source about the randomized branching
> supported since version 3.
>
> In line 124 in gecode/support/random.hpp I found the definition of
> RandomGenerator internally used in the view selection:
>
> http://www.gecode.org/doc-latest/reference/group__FuncSupport.html#g02fe942f90a57a25639f09960dab4459
>
> As given there, it is just a typedef onto the
> LinearCongruentialGenerator provided by Gecode but I would like to set
> up my own random number generator...
>
> Is there a possibility to support user defined generators? e.g. in
> coming versions?
>
> If not available right now, maybe you like the following suggestion:
>
> A possibility would be a super class 'RNG' that has to be implemented by
> every generator plus a kind of factory class 'RNF' with static members only.
> The RNF would be a wrapper around the current RNG instance to use
> (stored in a static internal member). Thus, all Gecode internals that
> need a random number use a static interface of RNF instead of some RNG
> instance members. So the library gets independent of the concrete RNG
> used and you get the possibility to register a user defined RNG within
> the RNF. Per default the RNF can use the linear congruential generator
> provided. The static interface and data member would avoid annoying
> copies of RNGs all around and won't complicate your Gecode internals/source.
>
>
> Just a suggestion... if it is already possible just ignore and please
> let me know how to do with the current Gecode version. :)
>
>
> Have a nice weekend,
>
> Martin
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
--
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/
More information about the gecode-users
mailing list


'12, '14, '16: The "even" more extraordinary tale of JSConf AU
It's been almost two years since the last JSConf AU, and that's two events in four years. Despite our rocky start, each event has seen growth. We've grown in size, and our community has grown with us. We've grown local speakers that have graced World stages, and have matched the efforts of the industry luminaries they rubbed shoulders with. And from the very beginning, we were optimisitic of the positive impact that our work would have on the local community. A belief that's been reinforced time and again by attendees, volunteers, and speakers—and has kept us pushing forward. We are committed to building and sustainably growing the Australian tech community.
As a part of the JSConf family, JSConf AU is a not-for-profit labour-of-love. It goes without saying that running an event at this scale requires a lot of commitment and effort from everyone involved. Our team work tirelessly over many months, donating their time and even taking a break from paid work, to create not only the best experience, but to also foster a safe environment.
Reconstructing JSConfAU
- JSConf AU is back, December 1
- The third edition of CSSConf AU takes place the day before, November 30
- Decompress—our event for everyone, no matter the level of expertise—returns December 2
- The venue remains unchanged—the beloved, historic North Melbourne Meat Market.
For more information and updates follow us on Twitter: @JSConfAU.
Call for Sponsorships
We are well aware that conferences of this size can't succeed without the efforts of the community, both local and international. Together, we can meet our aim of a memorable, inclusive experience—an opportunity to learn and connect. If your company would like to support us in doing so, contact us for details
(You'll be in good company, just take a look at the great sponsors from our last event).
And for those of you who can't help financially—spreading the word about all our events would mean the world to us.
Super Early Bird Tickets
And for you, dear attendees, limited early bird tickets are available, including a discounted ticket bundle for our events. We’d love to see you there.


Scope properties/attributes
Use dashes for HTML attributes and camelCase for directive scope and HTML data bindings.
HTML attributes
Dashes for attributes
<start-property-tile property-value="$1,234,000">
Directive
Camel case for scope object items
function propertyTile() {
var directive = {
scope: {
propertyValue: '@'
}
};
}
Data binding in HTML
Camel case for data bindings inside double curly braces.
<span class="start-property-tile__range-value__money">{{vm.propertyValue}}>
controllerAs convention
Use vm for dot notation in data binding, where vm value assigned to the controllerAs property of the directive object.
HTML
{ { vm.propertyValue } }
Directive
function propertyTile() {
var directive = {
controller: Controller,
controllerAs: 'vm',
bindToController: true
};
}
Mock data
The relevant property of scope.mock must be passed to the corresponding HTML attribute.
<start-landing-layout property-tiles="mock.property_tiles"> </start-landing-layout>
ngRepeat with mock data
The mock data is passed to the corresponding controller property:
<start-property-tile ng-repeat="tile in vm.propertyTiles track by $index" property-value="{{tile.property_value.value}}"> </start-property-tile>
Note: track by $index improves ngRepeat performance
by limiting DOM changes to only the items that have data changes.
Module dependency
If a directive uses another directive from a different module, the module must be required in the index.js file and its dependencies included.
(function moduleInit_startWonder() {
// Add require for other modules here
require('../start.tiles');
// Grunt browserify-imports require all components with an index.js here
// StartRequire
require('./landing-layout');
var angularModuleDependencies = ["start.wonder.landingLayout"];
// EndRequire
// Add your angular module dependencies here
angularModuleDependencies.push('start.tiles');
angular.module('start.wonder', angularModuleDependencies);
})();
Scope binding
A scope property with a value of @ indicates static binding.
scope: {
propertyValue: '@'
}
A scope property with a value of = indicates dynamic, two-way data binding. This is required for passing values to the ngRepeat.
scope: {
propertyTiles: '='
}


Overview
- Template Basics
- Template Module
- Template File Format
Template Basics
- Templates give the ability to provide a skeletal file that can be dynamically
completed using variables
- The most common template use case is configuration file management
- Templates are generally used by providing a template file on the ansible
control node, and then using the template module within your playbook to
deploy the file to a target server or group.
- Templates are processed using the jinja2 template language
Template Module
---
- hosts: webservers
tasks:
- name: ensure apache is at the latest version
yum: name=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
- The template module is used to deploy the template files.
- There are two required parameters:
- src - the template to use ( on the ansible control host )
- dest - where the resulting file should be located ( on the target host )
- A useful optional paramter is validate which requires a successful validation
command to run against the result file prior to deployment.
- It is also possible to set basic file properties using the template module (
owner, permissions )
# Apache HTTP Server -- main configuration
#
# {{ ansible_managed }}
## General Configuration
ServerRoot {{ http_ServerRoot }}
Listen {{ http_Listen }}
Include conf.modules.d/*.conf
User apache
Group apache
## 'Main' server configuration
ServerAdmin {{ http_ServerAdmin }}
{% if httpd_ServerName is defined %}
ServerName {{ httpd_ServerName }}
{% end_if %}
DocumentRoot {{ httpd_DocumentRoot }}
- Template files are essentially a little more than text files.
- Template files are designated with a file extention of .j2
- Template files have the access to the same variables that the play that
calls them does.


This prototype is built to go beyond static layouts by demonstrating several interaction patterns that might be used alone or in conjunction with one another to build an ISI tray experience.
The goal is to reduce the amount of overall screen real estate consumed by the mandatory content while still facilitating the user's understanding of safety and risk information.


Toggle navigation
BIP32 Generator (Alpha!)


Example #1 - Full menu
About
About Company
Designers
Developers
Services
Web design
Development
Apps
Graphic Design
Seo
Work
Web
Graphics
Apps
Seo
Social
Facebook
Twitter
Codepen
Behance
Dribbble
View all examples


"massive, pastorally apocalyptic music" - NME
Her Name Is Calla are an English post-rock band based in the English cities of Leicester and Leeds, England.
After playing live throughout the United Kingdom to much critical acclaim, touring with iLiKETRAiNS and The Twilight Sad, Cult of luna, Maybeshewill and Sólstafir, they released their debut album, The Heritage, in 2008, which was also positively acclaimed, and was followed by a well-received headlining tour. The album lasts over 50 minutes, despite only containing six tracks.
In February 2009, they announced their arrival on the German label, Denovali Records. Denovali re-released The Heritage on vinyl in late 2009.
The band released The Quiet Lamb, containing 12 tracks and lasting over 75 minutes, on 8 November 2010. NME gave it a score of 8/10, describing it as "massive, pastorally apocalyptic music". The Sun called it a "ten-track jewel of a record" that engages the listener "in a rare and beautiful way". The Quiet Lamb is ranked the 12th best Post-rock album of all time in a poll of fans and reviewers with a critic's score of 83.


POST a new leaderboard entry.
If this device HAS NOT posted a score for this particular workzone before, use the POST service to create a new record.
If this device HAS posted a score for this particular workzone before, use the PUT leaderboard service to update the score in the old record.
POST /alpine/leaderboard HTTP/1.1 Host: test.alpineconnectivity.com:8888
POST /alpine/leaderboard HTTP/1.1 Host: test.alpineconnectivity.com:8888 { "deviceId": "3f41b3c3-d56c-4da5-9ef6-2f5e3e04eaaa", "deviceId2": "52016b15722be203a5001469", "nickname": "beast", "home": "37.292897,-121.934204", "work": "37.292897,-121.934204", "workaddr": "763-765 Creekside Way, Campbell, CA 95008, USA", "workzip": "95008", "workZone": "Santa Clara, CA 95054, USA", "score": 1111 }
Data in the JSON ...
| deviceId (required) |
A unique identifier for the device POSTing. |
| deviceId2 (optional) |
A unique identifier for the device POSTing. |
| nickname (required) |
A nickname for the user of the device POSTing. |
| home (optional) |
gps coordinates |
| work (optional) |
gps coordinates |
| workaddr (optional) |
work address |
| workzip (optional) |
work zip code |
| workzone (required) |
A geographical "zone". |
| score (required) |
The new score of this user in this workzone. |
The following response codes are possible from this service.
(Client code must handle each of them.):
The content of the body of the HTTP Response will always be JSON.
Therefore, the following header will always be sent:
Content-Type: application/json
The body of the response should always contain JSON.
The type of JSON returned varies by the response code.
4 types of JSON are possible.
No return JSON is required
HTTP/1.1 201 Created
If there was a major error in the request that prevents us from even processing it,
the standard JSON describing the error will be returned in the body of the response:
HTTP/1.1 400 Bad Request { "errorCode": 1, "errorMessage": "INVALID JSON", "data": "No JSON was POSTed!" }
If there was a major error on the server that prevents us fulfilling to the request,
the standard JSON describing the error will be returned in the body of the response:
HTTP/1.1 500 Server Error { "errorCode": 3, "errorMessage": "SERVER ERROR", "data": "Error inserting record into the database.." }


Stat/Transfer will read and write data for any version of Stata including versions running on Unix and Macintosh.
Standard extension: dta
Reading Stata Files
Stat/Transfer can read data from any version of Stata. Character variables and dates are fully supported. Variable and value labels are transferred in and out of Stata.
Stata Version 13 includes a new strl data type. These are potentially very long, variable length strings. Stat/Transfer will read these variables. However, strings longer than the Stat/Transfer limit of 32,000 characters will be truncated and binary strL’s will be skipped.
Stata Version 14 supports Unicode and the input encoding will be automatically set to utf-8.
Writing Stata Files
Versions of Stata higher than Version 7 come in two flavors (Standard or "intercooled" Stata and Stata SE or Special Edition). These differ in their limits for the number of output variables.
You can choose the "flavor" of the Stata output file from the list given in the Output File Type box in the Transfer dialog box.
You use the option Stata Version in the Output Options (1) section of the Options dialog box to choose the version of the Stata files written by Stat/Transfer. The default is Stata Version 13. Change this option if a different version will be used to read the file.
Any variable and value labels present in the input data set will be written to Stata files. Variable labels longer than Stata's eighty character maximum are now written to Stata both as truncated variable labels and, in full, as Stata notes.
Stata Version 13 includes a new strL data type. These are potentially very long, variable length strings. Stat/Transfer will write strings longer than a threshold value to Stata strL's rather than strings. The threshold, by default, is 32 characters, but you can change this on the Options (1) screen. Strings longer than Stata’s width limit of 2045 characters will always be written to strls. Dates are written to Stata's internal date format.
The output encoding for Stata version 14 will be automatically set to utf-8 and all data and metadata such as variable names and labels will be properly transcoded.
Missing Data
Stata supports missing values.
Versions 8 and above of Stata support SAS-style extended missing values. The missing values '.A' - '.Z' and '.' are supported. The missing value '._ ' found in SAS is not used in Stata. Stat/Transfer supports these extended missing values.
When an Stata file with extended missing values is transferred to a SAS or ASCII file, the input missing values will transfer to the equivalent SAS or ASCII ones. When a SAS file or ASCII file is transferred to an Stata file with extended missing values specified, missing values will transfer to equivalent ones, except that '._' in input SAS files is written out as '.' in the output.
For input files that support user missing values (SPSS and OSIRIS), the options User Missing Values and Map to extended (a-z) missing in the Options dialog box can be used to map selected user missing values to extended missing values in the Stata output file.
Output Variable Types
The output variable type that results from each target variable type is given in the following table:
|
Target Type |
Output Type |
|
|
byte |
Byte |
|
|
int |
Int |
|
|
long |
Long |
|
|
float |
Float |
|
|
double |
Double |
|
|
date |
Stata Date |
|
|
time |
Float (fractional part of a day) |
|
|
date/time |
Double (Stata date and fractional part of a day) |
|
|
string |
Character |
|
|
strl |
Character or strL |


Fortunately, these are all easy installs.
In these instructions where NRELUSER is used you will need to substitute your username.
cd $HOME mkdir bin cd bin wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Run the command
./install-tl -gui text
Enter the option P to create a profile. Edit the profile file, texlive.profile and replace /usr/local with /home/NRELUSER/bin.
Run the command
./install-tl -profile texlive.profile
At the end of the install you will see instructions for adding to your MANPATH, INFOPATH, and PATH variables to your .bashrc file. Just Doit!
Go to your bin directory
cd ~/bin
Using a web browser go to the web page: https://www.java.com/en/download/manual.jsp
Copy the link Linux x64. It will be some long string. "wget" this file. The exact string my vary from day to day but for example:
wget https://javadl.oracle.com/webapps/download/AutoDL?BundleId=240718_5b13a193868b4bf28bcb45c792fce896 -O java.tgz
Unpack it:
tar -xzf java.tgz
This will create a java directory, for example jre1.8.0_231 (version might change). Add the bin and lib directories to your paths. For example:
export PATH=$HOME/bin/jre1.8.0_231/bin:$PATH export LD_LIBRARY_PATH=/home/NRELUSER/bin/jdk-13.0.1/lib:$LD_LIBRARY_PATH
These should be added to your .bashrc file also.
cd ~ wget https://www.sourceware.org/pub/bzip2/bzip2-latest.tar.gz tar -xzf bzip2-latest.tar.gz cd bzip2-1.0.8/ make mkdir -p /home/NRELUSER/libs make install PREFIX=/home/NRELUSER/libs/bzip2-1.0.8
cd ~ wget https://zlib.net/zlib-1.2.11.tar.gz tar -xzf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/home/NRELUSER/libs/zlib-1.2.11 make make install
Add these to you PATH and the lib directories to your LD_LIBRARY_PATH. In the end your .bashrc file should contain the following with your username replacing NRELUSER.
export PATH=/home/NRELUSER/bin/jdk-13.0.1/bin:$PATH export LD_LIBRARY_PATH=/home/NRELUSER/bin/jdk-13.0.1/lib:$LD_LIBRARY_PATH export PATH=/home/NRELUSER/libs/bzip2-1.0.8/bin:$PATH export LD_LIBRARY_PATH=/home/NRELUSER/libs/bzip2-1.0.8/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/NRELUSER/libs/zlib-1.2.11//lib:$LD_LIBRARY_PATH export PATH=/home/NRELUSER/bin/tex/texlive/2019/bin/x86_64-linux:$PATH export MANPATH=/home/NRELUSER/bin/tex/texlive/2019/texmf-dist/doc/man:$MANPATH export INFOPATH=home/NRELUSER/bin/tex/texlive/2019/texmf-dist/doc/info:$INFOPATH
You can logout and login to reset your environment with the new software. You can check to see that it found by running the following
latex --version bzip2 --help javac --version
Finally we are ready to build R. This is done with a script that references all of the above software. The build script, along with a lot of other R stuff can be downloaded.
git clone https://github.nrel.gov/tkaiser2/r-stuff.git cd r-stuff
The build script is buildit. Again you need to replace NRELUSER with your username. A simple way to do this is to use the sed command.
cat buildit | sed "s/NRELUSER/$USER/g" > newbuild chmod 755 newbuild
Then you can run the script.
./newbuild
When the script finishes it will provide instructions on how to add your new version of R to your path.
You can additional libraries to your new version of R by runnit the R script doinstall.R and sourcing the script buildmpi.


Octree AMR in radmc3dPy¶
Apart from regular grids RADMC-3D supports two types of mesh refinements, octree and layered adaptive mesh refinement (AMR, see Chapter 10 in the RADMC-3D manual (click here for the manual of RADMC-3D v0.35) both in caresian and spherical coordinate systems. As of v0.29 radmc3dPy supports regular grid and octree AMR (no layered mesh refinement / nested grid yet).
Grid building¶
Octree AMR grid in RADMC-3D starts with a uniform, regular base grid. The base grid must
have a fixed cell size, which means that we cannot use logarithmic grid for the radial coordinate in spherical coordinate system. For cartesian grids the cell size should
be the same in all active dimensions (i.e. cubical cells). After the base grid has been created, each cell
is tested for refinement based on user defined criteria. If the cell is refined, the cell is halved in each spatial dimension producing 2,4,8 sub-cells in 1,2,3 dimensions,
respectively. Each sub-cell is then tested for refinement, then each sub-sub-cell, etc. Thus cells are refined recursively building a tree. radmc3dPy provides a new class
radmc3dOctree
for handling octree AMR grid. To understand the model setup and the building of an octree mesh with radmc3dPy let us have a look
at the grid structure and how they are stored in radmc3dOctree
.
RADMC-3D¶
Octree AMR mesh in RADMC-3D starts from a regular base grid. For simplicity let us take a 2D grid (in which case the grid is called a quadtree). We loop through all cells of the base grid and check if a cell is refined. If it is, we follow the refinement of that cell to the highest level before moving on to the next base grid cell. If we refine the bottom left and top right cells of the 2x2 base grid, then refining again the top right and bottom left of the refined 2x2 cell structure, the buiding of the grid/tree in RADMC-3D proceeds this way:
radmc3dPy¶
Building the mesh in radmc3dPy this way can be very slow depending on the refinement criteria. If a base grid cell is resolved we need to loop over the child cells of that base grid cell to test whether any of them need to be further refined. If so, we need to loop over the children of that child cell, etc. Thus building the grid consist of looping over every parent cell at every level and loop over their children to test whether they need to be further refined. This involves lot of nested loops which is usually very inefficient. It is much more efficient to do fewer but larger loops and to use numPy array operations. radmc3dPy does just that. First all cells at the highest actual refinement level are selected and tested for refinement. During the test and refinement all cells processed together as arrays. Thus instead of looping over every parent as in case of RADMC-3D we loop over refinement level and process all cells simultaneously at a given level. This way we have only one loop, over the refinement level. The steps of refinement for the example 2x2 base grid looks like this:
Array layout¶
The grid as well as any physical variable (e.g. density, temperature, velocity, etc) is stored in linear arrays. The cell layout within the arrays of grid variables (e.g. cell centers) is different depending on whether the grid is built on the fly by radmc3dPy or read from file (amr_grid.inp). Physical variables (e.g. dust density, dust temperature, etc.) are stored in arrays of different length and layout compared to grid arrays.
Grid array layout¶
Arrays containing information on the grid (i.e. cell centre coordinates, cell widths, boolean arrays to indicate a node is a leaf or a branch) etc, always contain the full tree including both branch and leaf nodes. When the grid is read from file the array layout is the same as the order of cells in amr_grid.inp. The array starts with the list of the regular base grid cells. In the rest of the array we loop through the base grid cells again, but we add the higher resolution sub-trees for each branch node. When a base grid cell is resolved, first we add all higher refinement levels before we would move on to the next base grid cell, i.e. we follow the tree immediately. This is the same layout as cell information is written to amr_grid.inp. The layout of such array looks like this:
Blue and red numbers indicate the index of the array element in the full tree, blue for leaf and red for branch nodes. The green numbers show the refinement level of the node, starting with zero for the regular base grid. Black numbers indicate the cell/leaf indices, i.e. the index of the cell/leaf node in an array containing only leaf nodes (“true” cells). The arrows indicate parent/child relationships between nodes. In this layout all nodes with the same ancestor base grid cell are located next to each other.
The order of the cells within an array is somewhat different if we build the grid with radmc3dPy. The reason is that the grid is built in a different way in radmc3dPy than in RADMC-3D. As discussed above, radmc3dPy tests the refinement criteria for all leaf nodes at the actual highest refinement level and adds one level of refinement to all desired cells. This translates to the following layout of cells within the array. Just like in RADMC-3D style layout the array starts with the list of all base grid cells, but it is followed by the list of all cells at the first level of refinement, then comes all cells at the second level, etc.. Thus the resulting array layout looks like this:
In this case all grid cells at the same refinement level are packed together within the array.
Data array layout¶
The layout of the data arrays of radmc3dData
is different from that of the grid arrays, since data (i.e.
physical variables) are only stored in leaf nodes, which are the “true” cells. Branch nodes are only used in the grid to navigate within the tree between leaf nodes.
Therefore data arrays are smaller in size than grid arrays and they contain the leaf cells in increasing leaf/cell index order:


In physics and mathematics, a sequence of n numbers can be understood as a location in n-dimensional space. When n = 3, the set of all such locations is called Three-dimensional Euclidean space
Cartesian geometry describes every point in three-dimensional space by means of three coordinates.Three coordinate axes are given, each perpendicular to the other two at the origin, the point at which they cross.They are usually labeled x, y, and z. Relative to these axes, the position of any point in three-dimensional space is given by an ordered triple of real numbers, each number giving the distance of that point from the origin measured along the given axis, which is equal to the distance of that point from the plane determined by the other two axes
Two distinct points always determine a (straight) line. Three distinct points are either collinear or determine a unique plane. On the other hand, four distinct points can either be collinear, coplanar, or determine the entire space.
Two distinct lines can either intersect, be parallel or be skew. Two parallel lines, or two intersecting lines, lie in a unique plane, so skew lines are lines that do not meet and do not lie in a common plane.
Two distinct planes can either meet in a common line or are parallel
(i.e., do not meet). Three distinct planes, no pair of which are
parallel, can either meet in a common line, meet in a unique common
point, or have no point in common.
In the last case, the three lines of intersection of each pair of planes
are mutually parallel. A line can lie in a given plane, intersect that
plane in a unique point, or be parallel to the plane. In the last case,
there will be lines in the plane that are parallel to the given line.
A hyperplane is a subspace of one dimension less than the dimension of
the full space. The hyperplanes of a three-dimensional space are the
two-dimensional subspaces, that is, the planes.
In terms of Cartesian coordinates, the points of a hyperplane satisfy a
single linear equation, so planes in this 3-space are described by
linear equations. A line can be described by a pair of independent
linear equations—each representing a plane having this line as a common
intersection.
A sphere in 3-space (also called a 2-sphere because it is a 2-dimensional
object) consists of the set of all points in 3-space at a fixed distance r
from a central point P. The solid enclosed by the sphere is called a ball
(or, more precisely a 3-ball). The volume of the ball is given by:
\(V = \frac{4}{3}\pi r^{3}.\)
The dot product of two vectors \(A = [A1, A2, A3]\) and \(B = [B1, B2,
B3]\) is defined as :
\({\displaystyle \mathbf {A} \cdot \mathbf {B} }\)
\(=A_{1}B_{1}+A_{2}B_{2}+A_{3}B_{3}.\)
The magnitude of a vector \(A\) is denoted by \(||A||\). The dot product
of a vector \(A = [A1, A2, A3]\) with itself is
\({\displaystyle \mathbf {A} \cdot \mathbf {A} =}\) \(\|\mathbf {A}
\|^{2}=A_{1}^{2}+A_{2}^{2}+A_{3}^{2},\)
which gives \({\displaystyle \|\mathbf {A} \|={\sqrt {\mathbf {A} \cdot
\mathbf {A} }}=}\) \({\sqrt {A_{1}^{2}+A_{2}^{2}+A_{3}^{2}}}\)
Without reference to the components of the vectors, the dot product of
two non-zero Euclidean vectors \(A \) and \( B\) is given by
\(\mathbf {A} \cdot \mathbf {B} =\|\mathbf {A} \|\,\|\mathbf {B} \|\cos
\theta ,\)
where \(θ\) is the angle between \(A\) and \(B\).


#include <Color.hpp>
Definition at line 19 of file Color.hpp.
Constructor. All zero values.
- Date
- 2015/Oct/06
- Parameters
-
- Returns
- none.
- Warning
- none.
| Bial::Color::Color |
( |
uint |
val | ) |
|
|
explicit |
Constructor.
- Date
- 2015/Oct/06
- Parameters
-
- Returns
- none.
- Warning
- none.
Constructor.
- Date
- 2015/Oct/06
- Parameters
-
- Returns
- none.
- Warning
- none.
Copy Constructor.
- Date
- 2015/Oct/06
- Version
- 1.0.00
- Parameters
-
- Returns
- none.
- Warning
- none.
| Bial::Color::Color |
( |
Color && |
other | ) |
|
Move Constructor.
- Date
- 2015/Oct/06
- Version
- 1.0.00
- Parameters
-
- Returns
- none.
- Warning
- none.
Destructor.
- Date
- 2015/Oct/06
- Version
- 1.0.00
- Parameters
-
- Returns
- none.
- Warning
- none.
Definition at line 82 of file Color.hpp.
Copy Constructor.
- Date
- 2015/Oct/27
- Version
- 1.0.00
- Parameters
-
- Returns
- none.
- Warning
- none.
| const uchar& Bial::Color::operator() |
( |
size_t |
chl | ) |
const |
Returns a constant reference of data pointed by channel chl. Same as operator[]( chl ).
- Date
- 2015/Oct/06
- Parameters
-
| chl | a channel to be acessed. |
- Returns
- Constant reference of data pointed by channel chl.
- Warning
- Channel bounds are not verified.
| uchar& Bial::Color::operator() |
( |
size_t |
chl | ) |
|
Returns the reference for data pointed by channle chl. Same as operator[]( chl ).
- Date
- 2015/Oct/06
- Parameters
-
| chl | a channel to be acessed. |
- Returns
- Reference of data pointed by channel chl.
- Warning
- Channel bounds are not verified.
Copies color to this color.
- Date
- 2015/Oct/06
- Parameters
-
| unamed | Color to be assigned to this. |
- Returns
- none.
- Warning
- none.
moves color to this color.
- Date
- 2015/Oct/06
- Parameters
-
| unamed | Color to be assigned to this. |
- Returns
- none.
- Warning
- none.
| const uchar& Bial::Color::operator[] |
( |
size_t |
chl | ) |
const |
Returns a constant reference of data pointed by channel chl. Same as operator()( chl ).
- Date
- 2015/Oct/06
- Parameters
-
| chl | a channel to be acessed. |
- Returns
- Constant reference of data pointed by channel chl.
- Warning
- Channel bounds are not verified.
| uchar& Bial::Color::operator[] |
( |
size_t |
chl | ) |
|
Returns the reference for data pointed by channle chl. Same as operator()( chl ).
- Date
- 2015/Oct/06
- Parameters
-
| chl | a channel to be acessed. |
- Returns
- Reference of data pointed by channel chl.
- Warning
- Channel bounds are not verified.
template<class O >
| void Bial::Color::Print |
( |
O & |
os | ) |
const |
Prints color containts to output stream os.
- Date
- 2015/Oct/21
- Parameters
-
- Returns
- none.
- Warning
- none.
Definition at line 369 of file Color.hpp.
| void Bial::Color::Value |
( |
uint |
val | ) |
|
Updates color value with val.
- Date
- 2015/Oct/06
- Parameters
-
- Returns
- none.
- Warning
- none.
| uint Bial::Color::Value |
( |
| ) |
const |
Returns current color value.
- Date
- 2015/Oct/06
- Parameters
-
- Returns
- Current color value.
- Warning
- none.
The documentation for this union was generated from the following file:


About Us
Thanks for stopping by our site. We're Jerry and Cheryl, a husband and wife team, that started collecting antiques to furnish our own home years ago. We really love the hunt for unique "treasure" and to give neglected antiques a new life. In 2008 we opened Sacred Tree Antiques and Collectibles in Notus, Idaho. Before too long we needed more space and we found it in Vale, Oregon. After many months of renovation, in 2013 we moved to our current location at 293 Washington Street in Vale. We love all the different people we meet and we enjoy sharing our love of antiques. We hope you stop by and find a special piece to take to your home.
Hours
M - Sa 10-5:30
Thurs 10-4
Sunday Closed
FAQ's
- Q. Do you do consignments? A. We're fortunate to find enough antiques to fill our store at the present time.
- Q. Why Vale Oregon? A. Why not? We've always loved small town communities.
- Q. Will you buy my _____? A. We occasionally buy items that are a good fit for our store but items need to be a fair and reasonable price. Please stop by or call to talk about your item.
- Q. What kind of antiques do you carry in your store? A. Take a look at our gallery for examples of what we typically have in the store. We bring in new "old" items daily.
- Q. Can you restore my dresser/table/chair etc? A. Yes, we offer furniture refinishing and we'd love to discuss your item and needs with you.


% var thisdev = currdev !== undefined && currdev !== null && currdev.id == id; var relname = ( name === undefined ? ip : name ); var title = ( thisdev ? "This computer (" + relname + ")" : relname ) %>


{% extends "oauth2_provider/base.html" %} {% block body %}
Authorize {{ application.name }}?
The application requested the following permissions:
{{ error.description }}


Chainview
This Executor shows Chain
files output by RetroVID graphically.
Here is an example of what a Chain parameter in a Chain
file may look like:
ChainP1::
A:0.67
B:1.0
C:0.34
D:0.34
E:0.34
L:0.01
S:0.01
G:0.01
O:0.01
101599871
101609336
Type B Score= 3865
SubGene 5LTR, type B, score=156 , hotspot 101600665
5LT:ABCDELSGO (5'LTR): Score=156 at 101600665 frame 3
[101599871-101600838]
X scored against
tgtggggaaaagcaagagagatcagattgttactgtgtctgtgtagaaagaagtagacataggagactccattttgttatgtactaagaaaaattcttctgccttgagattctgttaatctataaccttacccccaaccccgtgctctctgaaacgtgtgctgtgtcaactcagagttgaatggattaagggcggtgcaggatgtgctttgttaaacagatgcttgaaggcagcatgctccttaagagtcatcaccactccctaatctcaagtacccagggacacaaaaactgcggaaggccgcagggacctctgcctaggaaagccaggtattgtccaaggtctctccccatgtgatagtctgaaatatggcctcgtgggaagggaaagacctgaccgtcccccagcccgacacccgtaaagggtctgtgctgaggaggattagtaaaagaggaaggaatgcctcttgcagttgagacaagaggaaggcatctgtctcctgcctgtccctgggcaatggaatgtctcggtataaaacccgattgtatgctccatctactgagatagggaaaaaccgccttagggctggaggtgggacctgcgggcagcaatactgctttgtaaagcattgagatgtttatgtgtatgcatatctaaaagcacagcacttaatcctttacattgtctatgatgcaaagacctttgttcacgtgtttgtctgctgaccctctccccacaattgtcttgtgaccctgacacatccccctctttgagaaacacccacagatgatcaataaatactaagggaactcagaggctggcaggatcctccatatgctgaacgctggttccccggttccccttatttctttctctatactttgtctctgtgtctttttcttttccaaatctctcgtcccaccttatgagaaacacccacaggtgtgtaggggcaacccacccctaca
(968 bases)
SubGene PBS, type B, score=69 , hotspot 101600841
PBS:B (tRNALys12-HSRV,MPMV,SRV1,VILV,): Score=69 at
101600841 frame 2 [101600841-101600858]
TGGcgcccaacgtggggc scored against
tggtgcccaacgtggagg (18 bases)
SubGene MA, type C, score=4 , hotspot 101600982
MA1:C (MuLV, start of MA): Score=4 at 101600982 frame 2
[101600982-101601011]
MGQTvtTpls scored against
mgqtkskiks (30 bases)
SubGene CA, type B, score=244 , hotspot 101602302
CA0:ABCDELSGO (CA Start NN): Score=25 at 101601828 frame 2
[101601828-101601917]
CAStartNNData.txt scored against
pvtlepkppgegaqegepptvearyksfsi (90 bases)
CA1:B (HERV-K10): Score=100 at 101602302 frame 2
[101602302-101602367]
ntVRQGSKEPYpDFVaRLqdVa scored against
ntvrqgskepypdfvarlqdva (66 bases)
CA2:B (MPMV): Score=50 at 101602425 frame 2
[101602425-101602448]
EdANpaCq scored against
enanpecq (24 bases)
SubGene NC, type B, score=226 , hotspot 101602617
NC1:B (IAP): Score=74 at 101602617 frame 2
[101602617-101602658]
CfnCgrmGHlkkDC scored against
cyncgqighlkknc (42 bases)
NC2:B (MPMV): Score=77 at 101602725 frame 2
[101602725-101602766]
CprCkrgkHwanEC scored against
cprckkgkhwasqc (42 bases)
SubGene DU, type B, score=390 , hotspot 101603132
DU0:B (HERVK10): Score=100 at 101603060 frame 1
[101603060-101603095]
LPegtvglILGR scored against
lpegtvglilgr (36 bases)
DU1:B (HERVK10): Score=78 at 101603132 frame 1
[101603132-101603164]
SvVDSDykGEI scored against
svvdsdykgki (33 bases)
DU2:B (HERVK10): Score=82 at 101603207 frame 1
[101603207-101603236]
rDRIAqllll scored against
gdriaqllll (30 bases)
SubGene Prot, type B, score=159 , hotspot 101603387
PR2:B (MPMV, motif A): Score=69 at 101603387 frame 1
[101603387-101603416]
liDTGAdvTi scored against
lvdtgadvsi (30 bases)
PR3:B (MMTV, motif B): Score=37 at 101603588 frame 1
[101603588-101603611]
lwGRdimk scored against
lwgrdllq (24 bases)
SubGene RT, type B, score=883 , hotspot 101604211
RT1:B (HERVK10): Score=100 at 101603953 frame 3
[101603953-101603982]
wNSPVFvIqK scored against
wnspvfviqk (30 bases)
RT2:B (HERVK10): Score=100 at 101604103 frame 3
[101604103-101604144]
iiiDLkDcFFtipl scored against
iiidlkdcfftipl (42 bases)
RT3:B (HERVK10): Score=100 at 101604211 frame 3
[101604211-101604255]
rFqWkVLPQGmlnSP scored against
rfqwkvlpqgmlnsp (45 bases)
RT4:B (HERVK10): Score=100 at 101604325 frame 3
[101604325-101604354]
ihYiDDILca scored against
ihyiddilca (30 bases)
RT5:B (HERVK10): Score=100 at 101604418 frame 3
[101604418-101604447]
GlaiasdKiQ scored against
glaiasdkiq (30 bases)
RT6:B (MMTV): Score=88 at 101604538 frame 3
[101604538-101604579]
TLNDFQKLLgDInW scored against
alndfqkllgdinw (42 bases)
SubGene IN, type B, score=847 , hotspot 101605687
IN1:B (HML3): Score=89 at 101605426 frame 3
[101605426-101605458]
tHiRAHTpLPG scored against
thirahtnlpg (33 bases)
IN2:B (HERVK10): Score=75 at 101605522 frame 3
[101605522-101605548]
elHaltHvn scored against
elhalthvn (27 bases)
IN3:B (HERVK10): Score=100 at 101605600 frame 3
[101605600-101605632]
ivqhCtqCqvl scored against
ivqhctqcqvl (33 bases)
IN4:B (HERVK10): Score=100 at 101605687 frame 3
[101605687-101605716]
lWQmDvTHvp scored against
lwqmdvthvp (30 bases)
IN5:B (HERVK10): Score=100 at 101605864 frame 3
[101605864-101605890]
kTDNgpgyc scored against
ktdngpgyc (27 bases)
IN6:B (HERVK10): Score=100 at 101605948 frame 3
[101605948-101605995]
PYNSQGqaiVERtnrt scored against
pynsqgqaivertnrt (48 bases)
SubGene SU, type B, score=92 , hotspot 101607629
SU2:B (HERVK10): Score=92 at 101606666 frame 1
[101606666-101606710]
WmdnpteVYvndsvW scored against
wmdnpievyvndsvw (45 bases)
SubGene TM, type B, score=162 , hotspot 101607902
TM2:B (HERV K10): Score=100 at 101607902 frame 1
[101607902-101607967]
rqtviwmgdrlmslehrfqlqC scored against
rqtviwmgdrlmslehrfqlqc (66 bases)
TM5:ABCDELSGO (hydrophobic motif): Score=16 at 101608550
frame 1 [101608550-101608585]
X scored against
wikggagcalln (36 bases)
SubGene PPT, type ABCDELSGO, score=34 , hotspot 101608351
PPT:ABCDELSGO (PPT motif): Score=34 at 101608351 frame 3
[101608351-101608372]
X scored against
aaaaagaaaagggggaaatgtg (22 bases)
SubGene 3LTR, type B, score=156 , hotspot 101609163
3LT:ABCDELSGO (3'LTR): Score=156 at 101609163 frame 2
[101608369-101609336]
X scored against
tgtggggaaaagcaagagagatcagattgtcactgtgtctgtgtagaaagaagtagacataggagactccattttgttatgtactaagaaaaattcttctgccttgagattctgttaatctataaccttacccccaaccccgtgctctctgaaacgtgtgctgtgtcaactcagagttgaatggattaagggcggtgcaggatgtgctttgttaaacagatgcttgaaggcagcatgctccttaagagtcatcaccactccctaatctcaagtacccagggacacaaaaactgcggaaggccgcagggacctctgcctaggaaagccaggtattgtccaaggtttctccccatgtgatagtctgaaatatggcctcgtgggaagggaaagacctgaccgtcccccagcccgacacccgtaaagggtctgtgctgaggaggattagtaaaagaggaaggaatgcctcttgcagttgagacaagaggaaggcatctgtctcctgcctgtccctgggcaatggaatgtctcggtataaaacccgattgtatgctccatctactgagatagggaaaaaccgccttagggctggaggtgggacctgcgggcagcaatactgctttgtaaagcattgagatgtttatgtgtatgcatatctaaaagcacagcacttaatcctttacattgtctatgatgcaaagacctttgttcacgtgtttgtctgctgaccctctccccacaattgtcttgtgaccctgacacatccccctctttgagaaacacccacagatgatcaataaatactaagggaactcagaggctggcgggatcctccatatgctgaacgctggttccccggttccccttatttctttctctatactttgtctctgtgtctttttcttttccaaatctctcgtcccaccttacgagaaacacccacaggtgtgtaggggcaacccacccctaca
(968 bases)
Integration sites ttgtg/tg<>ca/ttgtg
::
A Chain file may contain more than one chain,
information about LTR hits, and lists
of hits by a number of Motifs.
First in ChainP1
comes information about how much this
chain is related to the various
virus genera.
In
this case, it is clearly most related to betaretrovirus.
The next line is empty in this example, but may be of
the form
Broken |position|>|position|
to indicate that the chain is broken,
and where.
101599871
101609336
are the start and end positions of the Chain.
Then follows the virus genus
(may be more than one)
of the Chain and its total score.
There follow SubGeneHits, each with SubGene name, most similar virus genus and score and its component
MotifHits.
Each MotifHit is described by its MotifGroup,
virus genus, provenience,
score, hotspot position, reading frame and first
and last position.
Where applicable, the sequence of the Motif
and the DNA sequence (as
bases or acids) against which
it was scored are shown.
If there are two LTRs, the estimates of the direct repeats and short
inverted repeats at the start and end of the ERV
are shown with the
heading 'Integration sites'. If there is only one LTR whose pair
companion was in
an unacceptable
position there will be instead the heading 'Missing LTR
at' and the position of the hotspot of the pair companion.
Chainview displays information in two frames. In the
upper (text) frame, the contents of the Chain parameter are
displayed,
followed by the DNA sequence corresponding to the Chain.
The lower, graphic frame displays positions in DNA at
the
top, and the following features, separately for the three
reading
frames if applicable:
- Motif Hits, by a heavy black rectangle. The score is
shown inside the rectangle, identifying information below.
- ALUs and L1s and other transposons detected by SweepDNA
as vertical dashed black lines, with the
identification of the element
at the lower end.
- Breaks as squiggly
green lines.
- Start (methionine) codons as vertical dashed blue
lines.
- Stop codons, as vertical red lines, in upper half
(tga codon), lower half (taa) or both halves (tag).
- Potential sites for N-glycosylation, as
vertical short
thick green lines.
- Hits with SlipperyMotif,
as small 'S'.
- Hits with PseudoKnotMotif
, an '8'.
- Hits with SpliceAcceptorMotif
, as '\'.
- Hits with SpliceDonorMotif
, as '/'.
- Puteins as triple lines.
- EnvTrace as dashed
triple lines.
- XXons as double lines.
- Xons as single lines.
The first three features are always shown if applicable. The others may
be turned off
or on using the parameter panel
at the right, clicking or unclicking
the relevant boxes. For some reason, changes may not take effect until
the cursor is
moved into the graphics frame.
If the cursor is put over a Putein, XXon or Xon, it will be
shown in red, and some information about it displayed at the
bottom. If
the cursor is anywhere in the graphic frame, the DNA position
corresponding (approximately) to its horizontal
position is shown at
the bottom. These functions sometimes hang in mysterious fashion, but a
mouse click anywhere in
the window will help. Clicking will activate
Puteinview
with the component,
Clicking the 'Save as file' button saves the graphics to a PNG, EPS or
JPEG file, 'Save as file, A4' does the same
but folds the graphics to
fit into A4 size.
If there should belong a PeudoGene file (see
PseuGID)
to this Chain, there will be a button to display it.
Clicking the rectangle denoting an LTR in the graphic frame, details of
the LTR will be shown in a window of the same
type as displayed by
LTRview.
Only one Chain at a time is displayed. There is a
menu(s)
to select which.
It is not necessary to close a Chainview window before
executing other commands.
Chainview is normally invoked by selecting a Chains file
as script, and executing that script. If you run it interactively,
this
parameter may be changed:
- 'InputFile'. The Chains file to display.


Method Editor
Methods are additional functions added to an Object.
General information.
Source code for methods. There are options to also have the code executed on the server.


Rusty Day
EVP Delivery & Founder
Rusty has 19 years in SAP program management. His career focus includes business architecture solutions to achieve simple but dramatic transformations, no nonsense SAP project methodology, and an extraordinary relationship with clients. His ability to deliver successful projects is equally matched with his relationship building capabilities in client and consulting teams.


Use the form below to try different settings. When you are happy with the results, paste the wizard generated code from the text box at the bottom of this form into your page. When making color choices, use CSS approved color names or HEX color values (eg: #FFFFFF for white).
Important Note: Make sure you change the ID value in the form for each popup if you make multiple popups. Failure to do so will cause errors or the popups will not work correctly. Simply "closing" the popup will not work because the popup is never closed, just hidden.
Due to the number of support questions I have received on this subject, I have added a routine to automatically adjust the output code to allow for single and double quotes. Before, you had to manually escape those quotes or not use them at all. Now you can have any HTML content and not worry about making sure the content text will display right!
|
| Popup horizontal position in pixels (X value): | |
| Popup vertical position in pixels (Y value): | |
| Popup width in pixels: | |
| Popup height in pixels: | |
| Popup unique element ID (no spaces): | |
Popup content. Can be lots of HTML text or a site URL. To display the site URL contents, the external flag below must be set, otherwise the popup will simply display the URL text.
Do NOT escape single or double quotes, the script automatically does this for you. If you do not know what this means, don't worry about it. :) | |
| Popup content text color: | |
| Popup content background color: | |
| Popup content font style set. This value should be in valid CSS style sheet format: | |
| Popup titlebar text: | |
| Popup titlebar background color: | |
| Popup titlebar text color: | |
| Popup border color: | |
| Popup scrollbar color in IE5+ only. This value is also the titlebar background color when the popup "loses focus": | |
| Popup shadow color (black works best): | |
Will the popup be initially hidden? Note: If this is set to yes, you will not be able to see the popup. Refer to the demo for more details. | Yes No |
| Will the popup be draggable? | Yes No |
| Will the popup be resizable? | Yes No |
| Should older browsers simply display "normal" popup windows? | Yes No |
| Is the content area an external HTML page? | Yes No |
| Should this popup appear if the user returns to this page? | Yes No |
| Image URL for the minimize icon relative to where the script file is stored: | |
| Image URL for the maximize icon relative to where the script file is stored: | |
| Image URL for the close icon relative to where the script file is stored: | |
| Image URL for the resize icon relative to where the script file is stored: | |
|
Enter the values in the form above, click the Show Code button, select all the text that appears here, and paste into your page:
|


dist_sample_shape_correct = [1]
dist_1 = Normal(0, 0.1)
dist_2 = Normal(2, 0.1)
dist_3 = Normal(3, 0.1)
dist_means_correct = 0.7
dist_stddevs_correct = 1.10454
dist_log_probs_correct = -23.473
def test_dist_mixture(self):
dist_sample_shape_correct = [1, 1]
dist_1 = Normal([[0]], [[0.1]])
dist_2 = Normal([[2]], [[0.1]])
dist_3 = Normal([[3]], [[0.1]])
dist_means_correct = [[0.7]]
dist_stddevs_correct = [[1.10454]]


Created: 2017-11-08 Wed 16:32
You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing more to take away. – Antoine de Saint Exupery.
Many technologies are sold on simplicity. Simplicity is simple.
Simplicity is complicated – Rob Pike
Simplicity is the art of hiding complexity. – Rob Pike
Why? What does it give us?
Simplicity is prerequisite for reliability. – Edsger Dijkstra
Many languages sell themselves in terms of simplicity
"There should be one — and preferably only one — obvious way to do it." (Zen of Python)
- "Simplicity is hard work. But in the long haul the person with a simpler system is gonna wipe the plate with you. Because they can change things when you are struggling to push elephants around" (Rich Hickey)
- "Information is Simple. Don't ruin it"
Go was borne of frustration with the direction of C++ (and many other languages). Languages keep adding features, becoming more and more like one another. With that comes complexity.
 Which ones did they keep?
As a modern language, the basics are done well
Go is strongly typed, with type inference.
func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go say("world") say("hello") }
https://tour.golang.org/concurrency/2 https://golang.org/doc/effective_go.html#channels
type ColorGroup struct { ID int `json:"-"` Name string `json:"nom"` Colors []string `json:"colours"` } group := ColorGroup{ ID: 1, Name: "Reds", Colors: []string{"Crimson", "Red", "Ruby", "Maroon"}, } b, err := json.Marshal(group) if err != nil { fmt.Println("error:", err) } os.Stdout.Write(b)
{"ID":1,"Name":"Reds","colours":["Crimson","Red","Ruby","Maroon"]}
https://golang.org/pkg/encoding/json/#Unmarshal
var flagtests = []struct { in string out string }{ {"%s", "[%a]"}, {"%0s", "[%-a]"}, {"%v", "[%+a]"}, } func main() { fmt.Println("** Results") TestFlagParser() } func TestFlagParser() { for _, tt := range flagtests { s := fmt.Sprintf(tt.in, "b") if s != tt.out { fmt.Printf("Sprintf(%q, &b) => %q, want %q", tt.in, s, tt.out) } else { fmt.Printf("Sprintf(%q, &b) => %q, yay", tt.in, s) } } }
Sprintf("%s", &b) => "b", want "[%a]"Sprintf("%0s", &b) => "b", want "[%-a]"Sprintf("%v", &b) => "b", want "[%+a]"
Extreme Programming (c 1999) offers 4 rules.
- Passes the tests
- Reveals intention
- No duplication
- Fewest elements (types, functions, …)
– Kent Beck
Somehow seems surprising?
"You ain't gonna need it" "Always implement things when you actually need them, never when you just foresee that you need them."
"Keep it simple, stupid" – US Navy, 1960
To the internets …
People describe functional programming as expressive. I include this topic because it's something Go doesn't include. Something they sacrificed for simplicity
That Rich Hickey again:
Another talk by Rob Pike
"Make it simpler, thank you"
> Wat u fink abt Go?
Created by am.


This is a <blockquote>.
I am a standard <div> element.
This is the <h1> header
This is the <h2> header
This is the <h3> header
This is the <h4> header
This is the <h5> header
This is the <h6> header
| Here is a <table> element, with <th> headers. |
|---|
| Each <tr> row has a <td> cell, like this one. |
- Here we have an ordered list with <ol> and <li>.
- A bullet point (unordered) list with <ul> and <li>...