If you're new to Mesos
See the getting started page for more information about downloading, building, and deploying Mesos.
If you'd like to get involved or you're looking for support
See our community page for more details.
Operational Guide
Using a process supervisor
Mesos uses a “fail-fast” approach to error handling: if a serious error occurs, Mesos will typically exit rather than trying to continue running in a possibly erroneous state. For example, when Mesos is configured for high availability, the leading master will abort itself when it discovers it has been partitioned away from the Zookeeper quorum. This is a safety precaution to ensure the previous leader doesn’t continue communicating in an unsafe state.
To ensure that such failures are handled appropriately, production deployments of Mesos typically use a process supervisor (such as systemd or supervisord) to detect when Mesos processes exit. The supervisor can be configured to restart the failed process automatically and/or to notify the cluster operator to investigate the situation.
Changing the master quorum
The master leverages a Paxos-based replicated log as its storage backend (--registry=replicated_log
is the only storage backend currently supported). Each master participates in the ensemble as a log replica. The --quorum
flag determines a majority of the masters.
The following table shows the tolerance to master failures for each quorum size:
| Masters | Quorum Size | Failure Tolerance |
|---|---|---|
| 1 | 1 | 0 |
| 3 | 2 | 1 |
| 5 | 3 | 2 |
| … | … | … |
| 2N - 1 | N | N - 1 |
It is recommended to run with 3 or 5 masters, when desiring high availability.
NOTE
When configuring the quorum, it is essential to ensure that there are only so many masters running as specified in the table above. If additional masters are running, this violates the quorum and the log may be corrupted! As a result, it is recommended to gate the running of the master process with something that enforces a static whitelist of the master hosts. See MESOS-1546 for adding a safety whitelist within Mesos itself.
For online reconfiguration of the log, see: MESOS-683.
Increasing the quorum size
As the size of a cluster grows, it may be desired to increase the quorum size for additional fault tolerance.
The following steps indicate how to increment the quorum size, using 3 -> 5 masters as an example (quorum size 2 -> 3):
- Initially, 3 masters are running with
--quorum=2
- Restart the original 3 masters with
--quorum=3
- Start 2 additional masters with
--quorum=3
To increase the quorum by N, repeat this process to increment the quorum size N times.
NOTE: Currently, moving out of a single master setup requires wiping the replicated log state and starting fresh. This will wipe all persistent data (e.g., agents, maintenance information, quota information, etc). To move from 1 master to 3 masters:
- Stop the standalone master.
- Remove the replicated log data (
replicated_log
under the--work_dir
). - Start the original master and two new masters with
--quorum=2
Decreasing the quorum size
The following steps indicate how to decrement the quorum size, using 5 -> 3 masters as an example (quorum size 3 -> 2):
- Initially, 5 masters are running with
--quorum=3
- Remove 2 masters from the cluster, ensure they will not be restarted (see NOTE section above). Now 3 masters are running with
--quorum=3
- Restart the 3 masters with
--quorum=2
To decrease the quorum by N, repeat this process to decrement the quorum size N times.
Replacing a master
Please see the NOTE section above. So long as the failed master is guaranteed to not re-join the ensemble, it is safe to start a new master with an empty log and allow it to catch up.
External access for Mesos master
If the default IP (or the command line arg --ip
) is an internal IP, then external entities such as framework schedulers will be unable to reach the master. To address that scenario, an externally accessible IP:port can be setup via the --advertise_ip
and --advertise_port
command line arguments of mesos-master
. If configured, external entities such as framework schedulers interact with the advertise_ip:advertise_port from where the request needs to be proxied to the internal IP:port on which the Mesos master is listening.
HTTP requests to non-leading master
HTTP requests to some master endpoints (e.g., /state, /machine/down) can only be answered by the leading master. Such requests made to a non-leading master will result in either a 307 Temporary Redirect
(with the location of the leading master) or 503 Service Unavailable
(if the master does not know who the current leader is).


Langleo currently uses Text-To-Speech library to convert text to audio. What is important to understand is that two different engines can be used. The default engine supplied with Android 1.6 is called PicoTTS and provides high quality voice, but only for English, French, Spanish, Italian and German languages. The second engine, called eSpeakTTS, provides significantly lower quality voice, but for all languages supported by Langleo. So if you're using English, French, Spanish, Italian or German then stick with PicoTTS, otherwise use eSpeakTTS.
To use eSpeakTTS first you have to install 'Text-To-Speach Extended' from the market. After the installation 'TTS Service' should show up in your apps menu. There you can select the engine you want to use - 'Default engine' (a download may start). After selecting the engine click 'Listen to a preview' to make sure it works.
< Main help page


Selected Map:
Tarkin Initiative Labs
Lothal Wastes
Coruscant Back Alleys
Lothal Spaceport
Mos Eisley Back Alleys
Devaron Garrison
Hoth Battlefield
Nal Hutta Borderlands
Temple Gardens
Tutorial
A Simple Task
A New Threat
Aftermath
Brushfire
Captured
Chain Of Command
Desperate Hour
Drawn In
Fly Solo
Friends of Old
Generous Donations
High Moon
Homecoming
Imperial Hospitality
Incoming
Indebted
Last Stand
Loose Cannon
Luxury Cruise
Sorry About the Mess
Target of Opportunity
Temptation
The Source
The Spice Job
Under Siege
Viper's Den
30th Floor Plaza
Anchorhead Cantina
Bespin Tibanna Facility
Chopper Base Atollon
Climate Research Camp
Corellian Underground
Coruscant Back Alleys
Coruscant Landfill
Coruscant Senate Office
Devaron Garrison
Development Facility
Echo Base
Endor Defense Station
Endor Wilderness
Geonosis Foundry
Hangar Bay
Hoth Battle Station
Hoth Weather Shelter
Imperial Command Hub
Imperial Labour Camp
Imperial Research Lab
Imperial Space Station
Imperial Tower
ISB Headquarters
ISB Training Grounds
Jabba's Palace
Kashyyyk Station
Kuat Space Station
Lothal Battlefront
Lothal Safehouse
Lothal Spaceport
Lothal Wastes
Massassi Ruins
Moisture Farm
Mos Eisley Back Alleys
Mos Eisley Cantina
Mos Eisley Outskirts
Nal Hutta Swamps
Nelvaanian Warzone
Ord Mantell Junkyard
Sewers of Nar Shaddaa
Tarkin Initiative Labs
The Dune Sea
The Pit of Carkoon
Training Ground
Tython Meditation Field
Uscru Entertainment District
Wasskah Hunting Ground
Wasteland Outpost
Map
Grid
Both
Your browser does not support the HTML5 canvas tag.
Attacker
Defender
Atacker and Defender
Blocking Model
Clear Map
Highlight spaces to which Attacker has LoS
Highlight spaces which have LoS to Defender
Spaces to which Attacker has LoS and have LoS to Defender
Attacker Line of Sight:
None
Top Left to Top
Top Left to Right
Top Left to Bottom
Top Left to Left
Top Right to Top
Top Right to Right
Top Right to Bottom
Top Right to Left
Bottom Left to Top
Bottom Left to Right
Bottom Left to Bottom
Bottom Left to Left
Bottom Right to Top
Bottom Right to Right
Bottom Right to Bottom
Bottom Right to Left
The app will calculate all possible lines of sight between the attacker and defender and display the first available.
If more than one line of sight is possible, you can select from the Attacker Lines of Sight dropdown to select another to display.
Updating the map will recalculate lines of sight.
Instructions:
Place an attacker on the map by selecting
above and clicking a tile on the map.
Place a defender on the map by selecting
above and clicking a tile on the map.
Place blocking models on the map by selecting
above and clicking a tile on the map.
Remove blocking models from the map by selecting
above and clicking the blocking model on the map.


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Here is plot information that is rendered into template, sourced in HTML, not in JSON.
Here is more information.


JsonValue()
The main wrapper for a JSON-compatible value. Implemented for each of the different JSON-supported data types.
Author Connor Scialdone


The purpose of a notice is to convey the next course of action for a task or flow. The notice must be clear and concise, with minimum cognitive load.
A page notice appears prominently at the top of the page for high priority use cases; often including one or more calls to action.
To aid discoverabilty of such prominent content for assistive technology, we ensure that each page notice is a labelled, landmark region.
A page notice can have a status of confirmation, attention, information or celebration.
Details...
Details...
Details...
Details...
Details...
Details...
Details...
Details...


Note: make sure to restart SketchUp to complete the update.
KMP3D 7.0 Changelog
Cameras
- Under the Cameras section, you can now select to preview opening cameras and replay cameras.
- Added ability to edit relative view start positions, and corrected various options for each camera type.
- Camera indices are now editable, also under the camera preview section.
KMP Merging
- If overwriting a file, all blank sections will be preserved from the previous file.
Visibility
- Related sections (e.g. checkpoints and respawns) can now be previewed easily by checking the boxes beneath the sections list.
- Conditional Out of Bounds can now be previewed.
- The current selected group will be a different color to other groups.
- Some KCL flags are no longer imported to improve visibility.
Accuracy
- All 32 Nintendo KMP files now compile 1:1, with exception to DS Peach Gardens due to an incorrect direct graph setup for the ENPH.
- STGI flare information is preserved.
Misc. bugfixes
- External settings now properly save.
- KMPs now import faster.
- Unsigned integers can be set to -1 for route IDs.
- Group headers now export correctly.


VerticalAlignment
public enum VerticalAlignment
Vertical alignment methods
-
No alignment
Declaration
Swift
case none
-
Align top outside container
Declaration
Swift
case topOutside
-
Align top inside container
Declaration
Swift
case topInside
-
Align to vertical center of container
Declaration
Swift
case center
-
Align bottom inside container
Declaration
Swift
case bottomInside
-
Align bottom outside container
Declaration
Swift
case bottomOutside
-
Stretch from top to bottom
Declaration
Swift
case stretchInside


A couple little things I've done recently to make forms more pleasing (at least, pleasing me).  I think I've written too many polite error messages.
Anyway, even though it's a little thing (and a little arrow), it makes the error messages read much better to me. When error messages (or any message) show up above or below a field, it's unclear whether it's referring to the field above or below. It takes a little deduction, like looking at the top of the form (to see if the form starts with a label or a field), or deciphering the error message to see if it makes sense for the field above or below. As small as it is, the arrows allow you to read through the error message and go directly to the error field without thought. Turning the bad field pink also helps, but no reason you can't use both.
I've also played with a little CSS for radio fields. Here's some fields:
Labels are good, but this makes them better:<label class="radio" for="answer_yes"> <input type="radio" name="answer" value="yes" id="answer_yes"> Yes </label> <label class="radio" for="answer_no"> <input type="radio" name="answer" value="no" id="answer_no"> No </label> <label class="radio" for="answer_maybe"> <input type="radio" name="answer" value="maybe" id="answer_maybe"> Maybe </label>
The result:label.radio { display: block; border: 1px white solid; } label.radio:hover { background-color: #eeeeee; border: 1px black solid; padding: 0px; margin: 0px; cursor: pointer; }
Unfortunately these don't work well if display: block doesn't work, and I'm not sure if it will on all browsers. Without the CSS, all the choices will get smushed into a single paragraph. If you put <br> tags after each option, then the buttons won't be packed together well when styles are working. I'm not sure what to do about this.
Anyway, I think the CSS helps, because while <label> is nice (especially for checkboxes and radio buttons), most users won't notice it's there. This makes the label feel active and manipulatable.
Thankfully, display: block has excellent support across all modern browsers (NS4 may screw it up but other than that you're fine). Unfortuantely IE for Windows doesn't support :hover on non-links, so users of that browser won't see your funky label highlighting effect. There's a workaround for that if you don't mind weird and wonderful hacks: http://www.xs4all.nl/~peterned/csshover.html
How about putting the radio group items in a list? Then they will render in different lines by default. Not sure how that will work with the label tags though.
I have mixed feelings about those radio buttons. I think it looks better but I'm not sure that the highlight makes the button any more usable.
The highlighting of the radio button is a little misleading since the highlighting does not come on if and only if the radio button can be selected.


GOLDEN STATE OF MINE
Video Name
Channel
Links to youtube
Steph Curry highlights
NBA
Steph With the Shot
KD Highlights
NBA
SWISH
Klay Thompson Highlights
NBA
SPLASH


We're sorry but defaultvue doesn't work properly without JavaScript enabled. Please enable it to continue.
收藏
联系我们
杨萧鸿
林向祥
林凯燃
邱爱萍
陈鑫淼


Id: 160
Name: Hunter's Father
Status: Alive
Species: Human
Type:
Gender: Male
OriginName: Earth (Giant Telepathic Spiders Dimension)
OriginUrl: https://rickandmortyapi.com/api/location/42
LocationName: Earth (Giant Telepathic Spiders Dimension)
LocationUrl: https://rickandmortyapi.com/api/location/42
Image: https://rickandmortyapi.com/api/character/avatar/160.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/17']
Url: https://rickandmortyapi.com/api/character/160
Created: 2017-12-29T16:07:04.040Z


If {{aggrievedYouHave}} a child who lives with {{aggrievedYouThem}}, or spends time at {{aggrievedYour}} house on a regular basis, they can be included in this application. If the court is satisfied it is appropriate, the court can include a child on the order to ensure that {{respondentName}} must also be of good behaviour towards the child, and not to expose the child to domestic violence.
If you do not want {{respondentName}} to know the address details of the child, please provide an alternate address (e.g. of a friend or relative or a post office box).


By: Team SE-EDU
Since: Jun 2016
Licence: MIT
1. Setting up
1.1. Prerequisites
-
JDK
1.8.0_60
or laterNoteHaving any Java 8 version is not enough.
This app will not work with earlier versions of Java 8. -
IntelliJ IDE
NoteIntelliJ by default has Gradle and JavaFx plugins installed.
Do not disable them. If you have disabled them, go toFile
>Settings
>Plugins
to re-enable them.
1.2. Setting up the project in your computer
-
Fork this repo, and clone the fork to your computer
-
Open IntelliJ (if you are not in the welcome screen, click
File
>Close Project
to close the existing project dialog first) -
Set up the correct JDK version for Gradle
-
Click
Configure
>Project Defaults
>Project Structure
-
Click
New…
and find the directory of the JDK
-
-
Click
Import Project
-
Locate the
build.gradle
file and select it. ClickOK
-
Click
Open as Project
-
Click
OK
to accept the default settings -
Open a console and run the command
gradlew processResources
(Mac/Linux:./gradlew processResources
). It should finish with theBUILD SUCCESSFUL
message.
This will generate all resources required by the application and tests.
1.3. Verifying the setup
-
Run the
seedu.address.MainApp
and try a few commands -
Run the tests to ensure they all pass.
1.4. Configurations to do before writing code
1.4.1. Configuring the coding style
This project follows oss-generic coding standards. IntelliJ’s default style is mostly compliant with ours but it uses a different import order from ours. To rectify,
-
Go to
File
>Settings…
(Windows/Linux), orIntelliJ IDEA
>Preferences…
(macOS) -
Select
Editor
>Code Style
>Java
-
Click on the
Imports
tab to set the order-
For
Class count to use import with '*'
andNames count to use static import with '*'
: Set to999
to prevent IntelliJ from contracting the import statements -
For
Import Layout
: The order isimport static all other imports
,import java.*
,import javax.*
,import org.*
,import com.*
,import all other imports
. Add a<blank line>
between eachimport
-
Optionally, you can follow the UsingCheckstyle.adoc document to configure Intellij to check style-compliance as you write code.
1.4.2. Updating documentation to match your fork
After forking the repo, links in the documentation will still point to the se-edu/addressbook-level4
repo. If you plan to develop this as a separate product (i.e. instead of contributing to the se-edu/addressbook-level4
) , you should replace the URL in the variable repoURL
in DeveloperGuide.adoc
and UserGuide.adoc
with the URL of your fork.
1.4.3.  See UsingTravis.adoc to learn how to set it up.
Optionally, you can set up AppVeyor as a second CI (see UsingAppVeyor.adoc).
|
Note
|
Having both Travis and AppVeyor ensures your App works on both Unix-based platforms and Windows-based platforms (Travis is Unix-based and AppVeyor is Windows-based) |
1.4.4. Getting started with coding
When you are ready to start coding,
-
Get some sense of the overall design by reading the Architecture section.
-
Take a look at the section Suggested Programming Tasks to Get Started.
2. Design
2.1. Architecture
Figure 2.1.1 : Architecture Diagram
The Architecture Diagram given above explains the high-level design of the App. Given below is a quick overview of each component.
|
Tip
|
The .pptx files used to create diagrams in this document can be found in the diagrams folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose Save as picture .
|
Main
has only one class called MainApp
. It is responsible for,
-
At app launch: Initializes the components in the correct sequence, and connects them up with each other.
-
At shut down: Shuts down the components and invokes cleanup method where necessary.
Commons
represents a collection of classes used by multiple other components. Two of those classes play important roles at the architecture level.
-
EventsCenter
: This class (written using Google’s Event Bus library) is used by components to communicate with other components using events (i.e. a form of Event Driven design) -
LogsCenter
: Used by many classes to write log messages to the App’s log file.
The rest of the App consists of four components.
Each of the four components
-
Defines its API in an
interface
with the same name as the Component. -
Exposes its functionality using a
{Component Name}Manager
class.
For example, the Logic
component (see the class diagram given below) defines it’s API in the Logic.java
interface and exposes its functionality using the LogicManager.java
class.
Figure 2.1.2 : Class Diagram of the Logic Component
Events-Driven nature of the design
The Sequence Diagram below shows how the components interact for the scenario where the user issues the command delete 1
.
Figure 2.1.3a : Component interactions for delete 1
command (part 1)
|
Note
|
Note how the Model simply raises a AddressBookChangedEvent when the Address Book data are changed, instead of asking the Storage to save the updates to the hard disk.
|
The diagram below shows how the EventsCenter
reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time.
Figure 2.1.3b : Component interactions for delete 1
command (part 2)
|
Note
|
Note how the event is propagated through the EventsCenter to the Storage and UI without Model having to be coupled to either of them. This is an example of how this Event Driven approach helps us reduce direct coupling between components.
|
The sections below give more details of each component.
2.2. UI component
Figure 2.2.1 : Structure of the UI Component
API : Ui.java
The UI consists of a MainWindow
that is made up of parts e.g.CommandBox
, ResultDisplay
, PersonListPanel
, StatusBarFooter
, BrowserPanel
etc. All these, including the MainWindow
, inherit from the abstract UiPart
class.
The UI
component uses JavaFx UI framework. The layout of these UI parts are defined in matching .fxml
files that are in the src/main/resources/view
folder. For example, the layout of the MainWindow
is specified in MainWindow.fxml
The UI
component,
-
Executes user commands using the
Logic
component. -
Binds itself to some data in the
Model
so that the UI can auto-update when data in theModel
change. -
Responds to events raised from various parts of the App and updates the UI accordingly.
2.3. Logic component
Figure 2.3.1 : Structure of the Logic Component
Figure 2.3.2 : Structure of Commands in the Logic Component. This diagram shows finer details concerning XYZCommand
and Command
in Figure 2.3.1
API :
Logic.java
-
Logic
uses theAddressBookParser
class to parse the user command. -
This results in a
Command
object which is executed by theLogicManager
. -
The command execution can affect the
Model
(e.g. adding a person) and/or raise events. -
The result of the command execution is encapsulated as a
CommandResult
object which is passed back to theUi
.
Given below is the Sequence Diagram for interactions within the Logic
component for the execute("delete 1")
API call.
Figure 2.3.1 : Interactions Inside the Logic Component for the delete 1
Command
2.4. Model component
Figure 2.4.1 : Structure of the Model Component
API : Model.java
The Model
,
-
stores a
UserPref
object that represents the user’s preferences. -
stores the Address Book data.
-
exposes an unmodifiable
ObservableList<ReadOnlyPerson>
that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. -
does not depend on any of the other three components.
2.5. Storage component
Figure 2.5.1 : Structure of the Storage Component
API : Storage.java
The Storage
component,
-
can save
UserPref
objects in json format and read it back. -
can save the Address Book data in xml format and read it back.
2.6. Common classes
Classes used by multiple components are in the seedu.addressbook.commons
package.
3. Implementation
This section describes some noteworthy details on how certain features are implemented.
3.1. Undo/Redo mechanism
The undo/redo mechanism is facilitated by an UndoRedoStack
, which resides inside LogicManager
. It supports undoing and redoing of commands that modifies the state of the address book (e.g. add
, edit
). Such commands will inherit from UndoableCommand
.
UndoRedoStack
only deals with UndoableCommands
. Commands that cannot be undone will inherit from Command
instead. The following diagram shows the inheritance diagram for commands:
As you can see from the diagram, UndoableCommand
adds an extra layer between the abstract Command
class and concrete commands that can be undone, such as the DeleteCommand
. Note that extra tasks need to be done when executing a command in an undoable way, such as saving the state of the address book before execution. UndoableCommand
contains the high-level algorithm for those extra tasks while the child classes implements the details of how to execute the specific command. Note that this technique of putting the high-level algorithm in the parent class and lower-level steps of the algorithm in child classes is also known as the template pattern.
Commands that are not undoable are implemented this way:
public class ListCommand extends Command {
@Override
public CommandResult execute() {
// ... list logic ...
}
}
With the extra layer, the commands that are undoable are implemented this way:
public abstract class UndoableCommand extends Command {
@Override
public CommandResult execute() {
// ... undo logic ...
executeUndoableCommand();
}
}
public class DeleteCommand extends UndoableCommand {
@Override
public CommandResult executeUndoableCommand() {
// ... delete logic ...
}
}
Suppose that the user has just launched the application. The UndoRedoStack
will be empty at the beginning.
The user executes a new UndoableCommand
, delete 5
, to delete the 5th person in the address book. The current state of the address book is saved before the delete 5
command executes. The delete 5
command will then be pushed onto the undoStack
(the current state is saved together with the command).
As the user continues to use the program, more commands are added into the undoStack
. For example, the user may execute add n/David …
to add a new person.
|
Note
|
If a command fails its execution, it will not be pushed to the UndoRedoStack at all.
|
The user now decides that adding the person was a mistake, and decides to undo that action using undo
.
We will pop the most recent command out of the undoStack
and push it back to the redoStack
. We will restore the address book to the state before the add
command executed.
|
Note
|
If the undoStack is empty, then there are no other commands left to be undone, and an Exception will be thrown when popping the undoStack .
|
The following sequence diagram shows how the undo operation works:
The redo does the exact opposite (pops from redoStack
, push to undoStack
, and restores the address book to the state after the command is executed).
|
Note
|
If the redoStack is empty, then there are no other commands left to be redone, and an Exception will be thrown when popping the redoStack .
|
The user now decides to execute a new command, clear
. As before, clear
will be pushed into the undoStack
. This time the redoStack
is no longer empty. It will be purged as it no longer make sense to redo the add n/David
command (this is the behavior that most modern desktop applications follow).
Commands that are not undoable are not added into the undoStack
. For example, list
, which inherits from Command
rather than UndoableCommand
, will not be added after execution:
The following activity diagram summarize what happens inside the UndoRedoStack
when a user executes a new command:
3.1.1. Design Considerations
Aspect: Implementation of UndoableCommand
Alternative 1 (current choice): Add a new abstract method executeUndoableCommand()
Pros: We will not lose any undone/redone functionality as it is now part of the default behaviour. Classes that deal with Command
do not have to know that executeUndoableCommand()
exist.
Cons: Hard for new developers to understand the template pattern.
Alternative 2: Just override execute()
Pros: Does not involve the template pattern, easier for new developers to understand.
Cons: Classes that inherit from UndoableCommand
must remember to call super.execute()
, or lose the ability to undo/redo.
Aspect: How undo & redo executes
Alternative 1 (current choice): Saves the entire address book.
Pros: Easy to implement.
Cons: May have performance issues in terms of memory usage.
Alternative 2: Individual command knows how to undo/redo by itself.
Pros: Will use less memory (e.g. for delete
, just save the person being deleted).
Cons: We must ensure that the implementation of each individual command are correct.
Aspect: Type of commands that can be undone/redone
Alternative 1 (current choice): Only include commands that modifies the address book (add
, clear
, edit
).
Pros: We only revert changes that are hard to change back (the view can easily be re-modified as no data are lost).
Cons: User might think that undo also applies when the list is modified (undoing filtering for example), only to realize that it does not do that, after executing undo
.
Alternative 2: Include all commands.
Pros: Might be more intuitive for the user.
Cons: User have no way of skipping such commands if he or she just want to reset the state of the address book and not the view.
Additional Info: See our discussion here.
Aspect: Data structure to support the undo/redo commands
Alternative 1 (current choice): Use separate stack for undo and redo
Pros: Easy to understand for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.
Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both HistoryManager
and UndoRedoStack
.
Alternative 2: Use HistoryManager
for undo/redo
Pros: We do not need to maintain a separate stack, and just reuse what is already in the codebase.
Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as HistoryManager
now needs to do two different things.
3.2. Add multiple contacts
Adding multiple contacts is used so as to allow the user to add multiple contacts with the user of a single command, saving time and without the need to manually enter each entry.
AddMultipleByTsvCommand
extends UndoableCommand
so it can be undone using undo
function. By keying the path to the file containing the contacts, the command can parse values of each contact at every line and add them to the address book.
A valid file must satisfy the following conditions:
-
Must be a tsv, or in tab separated value form, that is each attribute of a contact (
name
,phone
,…) is separated by a tab -
The first line must contains the following values, in this specific order, corresponding to contact attributes, separated by tab:
name
phone
email
address
tag
A valid format can be as follow. It is highly advisable that user enter the data in Excel and export as Text (Tab delimited)
:
| name | phone | address | tag | |
|---|---|---|---|---|
John Doe |
98765432 |
John street, block 123, #01-01 |
friend, neighbor |
|
Betsy Crowe |
1234567 |
Newgate Prison |
friend, criminal |
AddMultipleByTsvCommand
can throw the following exception:
-
NoSuchElementException
: Just asAddCommand
, this happens whenname
orphone
oremail
is missing, and that specific entry will not be added. -
IOException
: This happens when the system cannot find the file specified by users, and no entry will be added. -
DuplicatePersonException
: This happens when any entry has already been added, and that specific entry will not be added.
The following sequence diagram shows how the AddMultipleByTsvCommand
works
Users specify the path to their list of contact as the only argument of the command. AddressBookParser
parses this argument and create a new instance of AddMultipleByTsvCommandParser
with the given argument as contactTsvFilePath
. AddMultipleByTsvCommandParser
then creates a new instance of ContactTsvReader
with the given contactTsvFilePath
and calls readContactFromFile()
to start parsing.
|
Note
|
readContactFromFile throws NoSuchElementException and IOException . Refer to the above for details.
|
After readContactFromFile
is finished, AddMultipleByTsvCommandParser
calls getToAddPeople()
for toAddPeople
(a list of people to add) and getFailedEntries
for failedEntries (a list of integer of entries that were failed to add due to errors). AddMultipleByTsvCommandParser
creates a new instance of addMultipleByTsvCommand
given toAddPeople
and failedEntries
. Within this instance, addPerson
will be called for each person in toAddPeople
. After this, addMultipleByTsvCommand
creates a new instance of CommandResult
and sends the result
back to LogicManager
.
3.3. Delete multiple contacts
Deleting multiple contacts is used so as to allow the user to delete multiple contacts with the use of a single command, saving time and without the need to clear the entire list.
Delete multiple contacts extends from undoable commands, and it can be undone using the undo function. By keying in the command word deleteMul
along with indexes
, the command word will be detected in the AddressBookParser
class where the arguments (indexes in this case) will be passed over to the DeleteMultipleCommandParser
class.
As our indexes are intended to take in multiple index values, we will use a String[] listOfIndex = trimmedArgs.split("\\s+");
to split the arguments into individual indexes and store them into the String array for use. We will use a Collections.reverse(list);
to ensure that the user will be able to delete the correct indexes. The ArrayList<String> list = new ArrayList<String>(Arrays.asList(listOfIndex));
is used to convert the list of index into an arrayList for use by the collections utility.
We will now create a ArrayList<Index> arrayOfIndex = new ArrayList<Index>();
to store the indexes that we will need for the feature. We will store the indexes into the arraylist using a for loop. However, as the arguments in the listOfIndex
arraylist is in a string format, we will need to convert them into an integer format before storing it into the ArrayList<Index> arrayOfIndex
. This arrayList will be returned to the DeleteMultipleCommand
class for use.
In the DeleteMultipleCommand
class, the commandResult method is used which compares the index with the lastShownList
in the model, similar to the method used in the deleteCommand
. However, as DeleteMultipleCommand
is designed to take in multiple indexes, a for-loop is used to loop the commandResult method so as to check for every index within the arrayList. The names that are deleted will be stored inside a String listOfDeletedContacts
which will be used to display the results on the UI.
3.4. Logging
We are using java.util.logging
package for logging. The LogsCenter
class is used to manage the logging levels and logging destinations.
-
The logging level can be controlled using the
logLevel
setting in the configuration file (See Configuration) -
The
Logger
for a class can be obtained usingLogsCenter.getLogger(Class)
which will log messages according to the specified logging level -
Currently log messages are output through:
Console
and to a.log
file.
Logging Levels
-
SEVERE
: Critical problem detected which may possibly cause the termination of the application -
WARNING
: Can continue, but with caution -
INFO
: Information showing the noteworthy actions by the App -
FINE
: Details that is not usually noteworthy but may be useful in debugging e.g. print the actual list instead of just its size
3.5. Configuration
Certain properties of the application can be controlled (e.g App name, logging level) through the configuration file (default: config.json
).
4. Documentation
We use asciidoc for writing documentation.
|
Note
|
We chose asciidoc over Markdown because asciidoc, although a bit more complex than Markdown, provides more flexibility in formatting. |
4.1. Editing Documentation
See UsingGradle.adoc to learn how to render .adoc
files locally to preview the end result of your edits.
Alternatively, you can download the AsciiDoc plugin for IntelliJ, which allows you to preview the changes you have made to your .adoc
files in real-time.
4.2. Publishing Documentation
See UsingTravis.adoc to learn how to deploy GitHub Pages using Travis.
4.3. Converting Documentation to PDF format
We use Google Chrome for converting documentation to PDF format, as Chrome’s PDF engine preserves hyperlinks used in webpages.
Here are the steps to convert the project documentation files to PDF format.
-
Follow the instructions in UsingGradle.adoc to convert the AsciiDoc files in the
docs/
directory to HTML format. -
Go to your generated HTML files in the
build/docs
folder, right click on them and selectOpen with
→Google Chrome
. -
Within Chrome, click on the
Print
option in Chrome’s menu. -
Set the destination to
Save as PDF
, then clickSave
to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.
Figure 5.6.1 : Saving documentation as PDF files in Chrome
5. Testing
5.1. Running Tests
There are three ways to run tests.
|
Tip
|
The most reliable way to run tests is the 3rd one. The first two methods might fail some GUI tests due to platform/resolution-specific idiosyncrasies. |
Method 1: Using IntelliJ JUnit test runner
-
To run all tests, right-click on the
src/test/java
folder and chooseRun 'All Tests'
-
To run a subset of tests, you can right-click on a test package, test class, or a test and choose
Run 'ABC'
Method 2: Using Gradle
-
Open a console and run the command
gradlew clean allTests
(Mac/Linux:./gradlew clean allTests
)
|
Note
|
See UsingGradle.adoc for more info on how to run tests using Gradle. |
Method 3: Using Gradle (headless)
Thanks to the TestFX library we use, our GUI tests can be run in the headless mode. In the headless mode, GUI tests do not show up on the screen. That means the developer can do other things on the Computer while the tests are running.
To run tests in headless mode, open a console and run the command gradlew clean headless allTests
(Mac/Linux: ./gradlew clean headless allTests
)
5.2. Types of tests
We have two types of tests:
-
GUI Tests - These are tests involving the GUI. They include,
-
System Tests that test the entire App by simulating user actions on the GUI. These are in the
systemtests
package. -
Unit tests that test the individual components. These are in
seedu.address.ui
package.
-
-
Non-GUI Tests - These are tests not involving the GUI. They include,
-
Unit tests targeting the lowest level methods/classes.
e.g.seedu.address.commons.StringUtilTest
-
Integration tests that are checking the integration of multiple code units (those code units are assumed to be working).
e.g.seedu.address.storage.StorageManagerTest
-
Hybrids of unit and integration tests. These test are checking multiple code units as well as how the are connected together.
e.g.seedu.address.logic.LogicManagerTest
-
5.3. Troubleshooting Testing
Problem: HelpWindowTest
fails with a NullPointerException
.
-
Reason: One of its dependencies,
UserGuide.html
insrc/main/resources/docs
is missing. -
Solution: Execute Gradle task
processResources
.
6. Dev Ops
6.1. Build Automation
See UsingGradle.adoc to learn how to use Gradle for build automation.
6.2. Continuous Integration
We use Travis CI and AppVeyor to perform Continuous Integration on our projects. See UsingTravis.adoc and UsingAppVeyor.adoc for more details.
6.3. Making a Release
Here are the steps to create a new release.
-
Update the version number in
MainApp.java
. -
Generate a JAR file using Gradle.
-
Tag the repo with the version number. e.g.
v0.1
-
Create a new release using GitHub and upload the JAR file you created.
6.4. Managing Dependencies
A project often depends on third-party libraries. For example, Address Book depends on the Jackson library for XML parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives.
a. Include those libraries in the repo (this bloats the repo size)
b. Require developers to download those libraries manually (this creates extra work for developers)
Appendix A: Suggested Programming Tasks to Get Started
Suggested path for new programmers:
-
First, add small local-impact (i.e. the impact of the change does not go beyond the component) enhancements to one component at a time. Some suggestions are given in this section Improving a Component.
-
Next, add a feature that touches multiple components to learn how to implement an end-to-end feature across all components. The section Creating a new command:
remark
explains how to go about adding such a feature.
A.1. Improving each component
Each individual exercise in this section is component-based (i.e. you would not need to modify the other components to get it to work).
Logic
component
|
Tip
|
Do take a look at the Design: Logic Component section before attempting to modify the Logic component.
|
-
Add a shorthand equivalent alias for each of the individual commands. For example, besides typing
clear
, the user can also typec
to remove all persons in the list.
Model
component
|
Tip
|
Do take a look at the Design: Model Component section before attempting to modify the Model component.
|
-
Add a
removeTag(Tag)
method. The specified tag will be removed from everyone in the address book.
Ui
component
|
Tip
|
Do take a look at the Design: UI Component section before attempting to modify the UI component.
|
-
Use different colors for different tags inside person cards. For example,
friends
tags can be all in grey, andcolleagues
tags can be all in red.Before
After
-
Modify
NewResultAvailableEvent
such thatResultDisplay
can show a different style on error (currently it shows the same regardless of errors).Before
After
-
Modify the
StatusBarFooter
to show the total number of people in the address book.Before
After
Storage
component
|
Tip
|
Do take a look at the Design: Storage Component section before attempting to modify the Storage component.
|
-
Add a new method
backupAddressBook(ReadOnlyAddressBook)
, so that the address book can be saved in a fixed temporary location.
A.2. Creating a new command: remark
By creating this command, you will get a chance to learn how to implement a feature end-to-end, touching all major components of the app.
A.2.1. Description
Edits the remark for a person specified in the INDEX
.
Format: remark INDEX r/[REMARK]
Examples:
-
remark 1 r/Likes to drink coffee.
Edits the remark for the first person toLikes to drink coffee.
-
remark 1 r/
Removes the remark for the first person.
A.2.2. Step-by-step Instructions
[Step 1] Logic: Teach the app to accept 'remark' which does nothing
Let’s start by teaching the application how to parse a remark
command. We will add the logic of remark
later.
Main:
-
Add a
RemarkCommand
that extendsUndoableCommand
. Upon execution, it should just throw anException
. -
Modify
AddressBookParser
to accept aRemarkCommand
.
Tests:
-
Add
RemarkCommandTest
that tests thatexecuteUndoableCommand()
throws an Exception. -
Add new test method to
AddressBookParserTest
, which tests that typing "remark" returns an instance ofRemarkCommand
.
[Step 2] Logic: Teach the app to accept 'remark' arguments
Let’s teach the application to parse arguments that our remark
command will accept. E.g. 1 r/Likes to drink coffee.
Main:
-
Modify
RemarkCommand
to take in anIndex
andString
and print those two parameters as the error message. -
Add
RemarkCommandParser
that knows how to parse two arguments, one index and one with prefix 'r/'. -
Modify
AddressBookParser
to use the newly implementedRemarkCommandParser
.
Tests:
-
Modify
RemarkCommandTest
to test theRemarkCommand#equals()
method. -
Add
RemarkCommandParserTest
that tests different boundary values forRemarkCommandParser
. -
Modify
AddressBookParserTest
to test that the correct command is generated according to the user input.
[Step 3] Ui: Add a placeholder for remark in PersonCard
Let’s add a placeholder on all our PersonCard
s to display a remark for each person later.
Main:
-
Add a
Label
with any random text insidePersonListCard.fxml
. -
Add FXML annotation in
PersonCard
to tie the variable to the actual label.
Tests:
-
Modify
PersonCardHandle
so that future tests can read the contents of the remark label.
[Step 4] Model: Add Remark
class
We have to properly encapsulate the remark in our ReadOnlyPerson
class. Instead of just using a String
, let’s follow the conventional class structure that the codebase already uses by adding a Remark
class.
Main:
-
Add
Remark
to model component (you can copy fromAddress
, remove the regex and change the names accordingly). -
Modify
RemarkCommand
to now take in aRemark
instead of aString
.
Tests:
-
Add test for
Remark
, to test theRemark#equals()
method.
[Step 5] Model: Modify ReadOnlyPerson
to support a Remark
field
Now we have the Remark
class, we need to actually use it inside ReadOnlyPerson
.
Main:
-
Add three methods
setRemark(Remark)
,getRemark()
andremarkProperty()
. Be sure to implement these newly created methods inPerson
, which implements theReadOnlyPerson
interface. -
You may assume that the user will not be able to use the
add
andedit
commands to modify the remarks field (i.e. the person will be created without a remark). -
Modify
SampleDataUtil
to add remarks for the sample data (delete youraddressBook.xml
so that the application will load the sample data when you launch it.)
[Step 6] Storage: Add Remark
field to XmlAdaptedPerson
class
We now have Remark
s for Person
s, but they will be gone when we exit the application. Let’s modify XmlAdaptedPerson
to include a Remark
field so that it will be saved.
Main:
-
Add a new Xml field for
Remark
. -
Be sure to modify the logic of the constructor and
toModelType()
, which handles the conversion to/fromReadOnlyPerson
.
Tests:
-
Fix
validAddressBook.xml
such that the XML tests will not fail due to a missing<remark>
element.
[Step 7] Ui: Connect Remark
field to PersonCard
Our remark label in PersonCard
is still a placeholder. Let’s bring it to life by binding it with the actual remark
field.
Main:
-
Modify
PersonCard#bindListeners()
to add the binding forremark
.
Tests:
-
Modify
GuiTestAssert#assertCardDisplaysPerson(…)
so that it will compare the remark label. -
In
PersonCardTest
, callpersonWithTags.setRemark(ALICE.getRemark())
to test that changes in thePerson
's remark correctly updates the correspondingPersonCard
.
[Step 8] Logic: Implement RemarkCommand#execute()
logic
We now have everything set up… but we still can’t modify the remarks. Let’s finish it up by adding in actual logic for our remark
command.
Main:
-
Replace the logic in
RemarkCommand#execute()
(that currently just throws anException
), with the actual logic to modify the remarks of a person.
Tests:
-
Update
RemarkCommandTest
to test that theexecute()
logic works.
A.2.3. Full Solution
See this PR for the step-by-step solution.
Appendix B: User Stories
Priorities: High (must have) - * * *
, Medium (nice to have) - * *
, Low (unlikely to have) - *
| Priority | As a … | I want to … | So that I can… |
|---|---|---|---|
|
new user |
see usage instructions |
refer to instructions when I forget how to use the App |
|
user |
add a new person |
|
|
user |
delete a person |
remove entries that I no longer need |
|
user |
find a person by name |
locate details of persons without having to go through the entire list |
|
user |
access the help function |
use the address book more efficiently. |
|
user |
add multiple contacts at once |
save time in adding contacts to address book. |
|
user |
delete multiple contacts at once |
without having to clear the entire list. |
|
user |
find a person’s contact details by specifying parameters other than name |
person can still be found in event of naming mistake. |
|
user |
find a person’s special dates by specifying his name |
can prepare something special for him. |
|
user |
hide private contact details by default |
minimize chance of someone else seeing them by accident |
|
user |
undo a command |
get back the contact I just deleted |
|
user |
redo a command |
do not have to retype the same command |
|
user |
edit my contacts |
update the information of my contacts |
|
user |
set certain contact details to be private |
ensure their confidentiality. |
|
user with many persons in the address book |
sort persons by name |
locate a person easily |
|
advanced user |
migrate contacts from address book to my email account |
store their email address and send them email when necessary. |
|
user |
upload the faces of contacts |
can identify them easily. |
|
user |
add contacts with the same name |
add all my friends. |
|
user |
add more than 1 phone number |
add multiple phone numbers. |
|
user |
add more than 1 email |
save time adding emails for contacts with multiple emails. |
|
user |
create groups in the address book |
categorise contacts into groups. |
|
user |
export all the contacts’ special dates to Google Calendar |
keep track of all the special dates and my events on one platform. |
|
new user |
insert a few letters for the command and it will autofill |
help me to better remember and use the commands. |
|
user |
insert a postal code for a contact’s address |
address portion will be filled automatically, so that I can save time in keying in the entire address. |
|
user |
keep a recently deleted list of contacts deleted in the past 30 days |
if I delete a contact by mistake, it can be retrieved. |
|
user |
move a contact from one group to another |
save time copying and pasting contacts. |
|
user |
share a contact and all the parameters |
other people can get the contact. |
Appendix C: Use Cases
(For all use cases below, the System is the AddressBook
and the Actor is the user
, unless specified otherwise)
Use case: Delete person
MSS
-
User requests to list persons
-
AddressBook shows a list of persons
-
User requests to delete a specific person in the list
-
AddressBook deletes the person
Use case ends.
Extensions
-
2a. The list is empty.
Use case ends.
-
3a. The given index is invalid.
-
3a1. AddressBook shows an error message.
Use case resumes at step 2.
-
Use case: Add person
-
User requests to add a person by entering information.
-
AddressBook adds the person.
Use case ends.
Use Case: Clear
-
User requests to clear the AddressBook.
-
AddressBook clears all the contacts.
Use case ends.
Use Case: Edit person
-
User requests to edit a contact in the AddressBook by listing the required parameters.
-
AddressBook edits the contact.
Use case ends.
Use Case: Find name
-
User requests to find a contact by entering their name or part of their name.
-
AddressBook returns the contact’s details and the location on the list.
Use case ends.
Use Case: Help
-
User requests to display description of every available command.
-
AddressBook opens the help page.
Use case ends.
Use Case: History
-
User request to display previous commands.
-
AddressBook displays a list of previously entered commands.
Use case ends.
Appendix D: Non Functional Requirements
-
Should work on any mainstream OS as long as it has Java
1.8.0_60
or higher installed. -
Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
-
A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
-
System should respond within 2 seconds
-
Should have an easy to follow user guide
-
System should be able to keep all private tagged information confidential.
-
System should open the help page when user enters an invalid entry.
-
System should be easy to maintain in event of malfunction.
Appendix E: Glossary
Mainstream OS
Windows, Linux, Unix, OS-X
Private contact detail
A contact detail that is not meant to be shared with others
Appendix F: Product Survey
Product Name
Author: …
Pros:
-
…
-
…
Cons:
-
…
-
…


Syntactic categories (or nonterminals) are
printed in italics,
for example query.
Depending on the section, a category may represent a class of either
terms, token lists, or character strings.
A syntactic rule takes the general form
C ::= F1
| F2
| F3
.
.
.
which states that an entity of category C may take any of the
alternative forms F1, F2, or F3.
Certain definitions and restrictions are given in ordinary English,
enclosed in braces (`{}').
A category written as `C...' denotes a sequence of one or more
Cs.
A category written as `?C' denotes an optional C.
Therefore `?C...' denotes a sequence of zero or more Cs.
A few syntactic categories have names with arguments, and rules in
which they appear may contain meta-variables in the form of
italicized
capital letters. The meaning of such rules should be clear from
analogy with the definite clause grammars described in ref-gru.
In ref-syn-syn-trm, particular tokens of the category
Name (a name beginning with a capital letter) are written as quoted atoms, while tokens that are
individual punctuation characters are written literally.


| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If a command name contains no slashes, the shell attempts to locate it. If there exists a shell function by that name, the function is invoked as described in Functions. If there exists a shell builtin by that name, the builtin is invoked.
Otherwise, the shell searches each element of $path for a directory containing an executable file by that name. If the search is unsuccessful, the shell prints an error message and returns a nonzero exit status.
If execution fails because the file is not in executable format, and the file is not a directory, it is assumed to be a shell script. /bin/sh is spawned to execute it. If the program is a file beginning with ‘#!’, the remainder of the first line specifies an interpreter for the program. The shell will execute the specified interpreter on operating systems that do not handle this executable format in the kernel.
If no external command is found but a function command_not_found_handler exists the shell executes this function with all command line arguments. The return status of the function becomes the status of the command. If the function wishes to mimic the behaviour of the shell when the command is not found, it should print the message ‘command not found: cmd’ to standard error and return status 127. Note that the handler is executed in a subshell forked to execute an external command, hence changes to directories, shell parameters, etc. have no effect on the main shell.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 26, 2019 using texi2html 5.0.
Zsh version 5.7.1, released on February 3, 2019.


FireFerret
Autocaching query client for MongoDB, with powerful filtering functionality.
We care about response times!
References
| What? | Where? |
|---|---|
| API-Documentation | https://mster.github.io/fireferret/ |
| Client Config | https://mster.github.io/fireferret/Options.html#.FireFerretOptions |
| Source code | https://github.com/mster/fireferret |
| MongoDB | https://www.mongodb.com/ |
| Redis | https://redis.io/ |
Requirements
FireFerret requires MongoDB and Redis instances.
Usage
const FireFerret = require("fireferret");
const ferret = new FireFerret({
mongo: { uri: "...", collectionName: "..." },
redis: { host: "...", port: 6379, auth_pass: "..." },
});
await ferret.connect();
const docs = await ferret.fetch({ "some.field": /.*/ });
Query some documents using pagination.
const docs = await ferret.fetch(
{ genre: { $in: ["Djent", "Math Metal"] } },
{ pagination: { page: 3, size: 20 } }
);
FireFerret supports streaming queries.
await ferret.fetch({ isOpen: true }, { stream: true }).pipe(res);
Using the Wide-Match strategy.
const smartFerret = new FireFerret({
/* ... ,*/
wideMatch: true,
});
await smartFerret.connect();
const query = { candidates: { $ne: "Drumpf", $exists: true } };
/* cache miss */
const first50docs = await smartFerret.fetch(query, {
pagination: { page: 1, size: 50 },
});
/* cache hit */
const first20docs = await smartFerret.fetch(query, {
pagination: { page: 1, size: 20 },
});
/* cache hit */
const first10docs = await smartFerret.fetch(query, {
pagination: { page: 1, size: 10 },
});
/* cache hit */
const firstDoc = await smartFerret.fetchOne(query);
Contributing
We welcome you with open arms. Contributions are appreciated after v1.0.0
- Huge thanks to Andrew Richtmyer for creating the FireFerret 'Pabu' artwork.


Display options
Selection groups
Analyze & export
Phylogenetic distances
From:
To:
Average distance:
Pairwise distances
Variant names
Distances
Results normalization
|
|
|
|
|
|
Error loading page resources.
From:
To:
Average distance:
Variant names
Distances
|
|
|
|
|
|
Total distance from all variants to their nearest cluster center: calculating...
Average total distance per cluster: calculating...
Average distance per variant: calculating...
| Cluster center | Size | Average distance |
90th percentile |
|---|


Emojicode is based on a library system. Every class belongs to a library. Libraries can be loaded by using the package emoji: []
In the IDE by default the UI library is additional available. If you want to use any of the UI Classes of the Ui Library you will have to load the library using [] :abc:UI:abc:
first.
Future Technologie The rest of this article describes techniques which are yet not available.
Libraries are always contained in files with the extension .js
. Additional libraries which are not default available in the IDE can be added to script. To do so open the options window. And add the URL to the file. The IDE will remember that this library is used by the currently open script and will always load the library file when you open that script. Of course you will have to load the library in your code.
When using the command line Ecre you can pass additional library files using the option -l
. For instance:
ecre kitchenScript.ec -l FridgeController.js CoffeemachineInterface.js
The UI Library is not available using the command line Ecre.


Menu
Hydrogen
Home
About
Pricing
Contact
Connect with us
Freeman's Gallery
Paranoid Trip
Dawn
Ning and Me Biking
improv
learn oil painting
Chinese New Year Monster
Meibao1
Meibao2
Wu Tai Mountain, Shanxi, China
Beach
Lake House
Lake House
Chester
Girls Are Fast!
Training Day
Leisure Time
Ukelele
Self Potrait
Paintings on the Door
Reboot!
Trip to Haerbing
Inspired by Li Yuan Shu Wu
Night Run in Nanjing
Life upon Ashes
My Father Doing Sports
7+
Memory at RedHat
Deserted Love
Painting on the Cap
Building Rocket!
Lab Owl
Star War: Master Z
Camp
parrot
Breathless Dream
Self Potrait
Holidday2ChangChun
Flow
Room
Childhood Memory
deck
copy
YunNan
Cartoon Scene
Adipisci consequuntur ipsa fugit perspiciatis eligendi. Omnis blanditiis, totam placeat.


Kia Futuron concept revealed
Electric crossover points to the brand's new sporty-yet-elegant styling direction, with some elements likely to come up on future EVs.
by Derek Fung- shares
The Kia Futuron concept has been revealed at the 2019 China International Import Expo, which is currently under way in Shanghai.
With its long bonnet, swept back windscreen and short overhangs, the design of the Futuron's body wouldn't look out of place on a sports car concept. Except, of course, the Futuron is a coupe crossover which rides on a tall suspension setup.
The Futuron is one of those concepts that's more about future design themes rather than production intent, with the company saying it is a "strong statement ... for Kia’s future cars, which will be confident, sporty and modern, yet also elegant".
The automaker is especially proud of the Futuron's taut surfacing, ornament-free design and streamlined, flowing design.
It also has a new take on the company's signature tiger nose grille, which now stretches across the entire front of the vehicle, and a similar interpretation of the grille design could be used on Kia's future EVs.
The Futuron's grille includes a Star Cloud lighting field with a geometric patchwork of matrix LED modules, which gives the car a unique night-time signature, but is also said to emulate the scales of dragons from Chinese mythology.
While the concept looks quite compact in these photos, it's actually rather big, as it measures 4850mm long, 1550mm tall and has a 3000mm long wheelbase.
Kia says the Futuron features four in-wheel electric motors and a high-capacity battery, but hasn't provided any power, torque, performance or range figures.
The Futuron should have a bright and airy cabin thanks to a diamond-shaped panoramic glasshouse. The car's front seats are made from a flexible materials, which can be configured for an upright driving position or put into a laid back position similar to first- and business-class airplane seats.
There's also an interactive ambient lighting system with a dragon scale motif built into the door trim, while the ventilation system also features dragon scale-like elements which can be opened and closed.
Other features of the concept include Level 4 self-driving capability, and an AI-driven user interface system.
1
4
nextprevious
Kia Futuron concept revealed


Username
Password
Create Account
Email
New Password
Confirm Password
Change Password
Already have an account?
Sign In
Username
Email
Password
Confirm Password
Already have an account?
Sign In
×
+
About Succulent
Add Succulent
Name
Type:
Leaf
Cactus
Flower
Category:
Sunburst
Jade
Zebra
Hens & Chicks
Shape:
Ball
Rose
Tongue
Ear
Pattern:
Thorns
Pointy-tips
Fine-haired
Striped
Description
Save
Plant Info
About Location
Edit Location
Choose Location
Describe Location
Condition:
Poor
Good
Excellent
Description
Save
My Profile
Edit Profile Info
Edit Profile Image
Change Password
Logout
Edit Photo
Profile Settings
Password Settings
Username
Full Name
Email
Save
Message
Message


SCENE I. A street in Westminster.
Enter two Gentlemen, meeting one another
- First Gentleman
- You're well met once again.
- Second Gentleman
- So are you.
- First Gentleman
- You come to take your stand here, and behold
- The Lady Anne pass from her coronation?
- Second Gentleman
- 'Tis all my business. At our last encounter,
- The Duke of Buckingham came from his trial.
- First Gentleman
- 'Tis very true: but that time offer'd sorrow;
- This, general joy.
- Second Gentleman
- 'Tis well: the citizens,
- I am sure, have shown at full their royal minds —
- As, let 'em have their rights, they are ever forward —
- In celebration of this day with shows,
- Pageants and sights of honour.
- First Gentleman
- Never greater,
- Nor, I'll assure you, better taken, sir.
- Second Gentleman
- May I be bold to ask at what that contains,
- That paper in your hand?
- First Gentleman
- Yes; 'tis the list
- Of those that claim their offices this day
- By custom of the coronation.
- The Duke of Suffolk is the first, and claims
- To be high-steward; next, the Duke of Norfolk,
- He to be earl marshal: you may read the rest.
- Second Gentleman
- I thank you, sir: had I not known those customs,
- I should have been beholding to your paper.
- But, I beseech you, what's become of Katharine,
- The princess dowager? how goes her business?
- First Gentleman
- That I can tell you too. The Archbishop
- Of Canterbury, accompanied with other
- Learned and reverend fathers of his order,
- Held a late court at Dunstable, six miles off
- From Ampthill where the princess lay; to which
- She was often cited by them, but appear'd not:
- And, to be short, for not appearance and
- The king's late scruple, by the main assent
- Of all these learned men she was divorced,
- And the late marriage made of none effect
- Since which she was removed to Kimbolton,
- Where she remains now sick.
- Second Gentleman
- Alas, good lady!
- Trumpets
- The trumpets sound: stand close, the queen is coming.
Hautboys
THE ORDER OF THE CORONATION
1. A lively flourish of Trumpets.
2. Then, two Judges.
3. Lord Chancellor, with the purse and mace before him.
4. Choristers, singing.
Music
5. Mayor of London, bearing the mace. Then Garter, in his coat of arms, and on his head a gilt copper crown.
6.  With him, SURREY, bearing the rod of silver with the dove, crowned with an earl's coronet. Collars of SS.
7. SUFFOLK, in his robe of estate, his coronet on his head, bearing a long white wand, as high-steward. With him, NORFOLK, with the rod of marshalship, a coronet on his head. Collars of SS.
8. A canopy borne by four of the Cinque-ports; under it, QUEEN ANNE in her robe; in her hair richly adorned with pearl, crowned. On each side her, the Bishops of London and Winchester.
9. The old Duchess of Norfolk, in a coronal of gold, wrought with flowers, bearing QUEEN ANNE's train.
10. Certain Ladies or Countesses, with plain circlets of gold without flowers.
They pass over the stage in order and state
- Second Gentleman
- A royal train, believe me. These I know:
- Who's that that bears the sceptre?
- First Gentleman
- Marquess Dorset:
- And that the Earl of Surrey, with the rod.
- Second Gentleman
- A bold brave gentleman. That should be
- The Duke of Suffolk?
- First Gentleman
- 'Tis the same: high-steward.
- Second Gentleman
- And that my Lord of Norfolk?
- First Gentleman
- Yes;
- Second Gentleman
- Heaven bless thee!
- Looking on QUEEN ANNE
- Thou hast the sweetest face I ever look'd on.
- Sir, as I have a soul, she is an angel;
- Our king has all the Indies in his arms,
- And more and richer, when he strains that lady:
- I cannot blame his conscience.
- First Gentleman
- They that bear
- The cloth of honour over her, are four barons
- Of the Cinque-ports.
- Second Gentleman
- Those men are happy; and so are all are near her.
- I take it, she that carries up the train
- Is that old noble lady, Duchess of Norfolk.
- First Gentleman
- It is; and all the rest are countesses.
- Second Gentleman
- Their coronets say so. These are stars indeed;
- And sometimes falling ones.
- First Gentleman
- No more of that.
Exit procession, and then a great flourish of trumpets
Enter a third Gentleman
- First Gentleman
- God save you, sir! where have you been broiling?
- Third Gentleman
- Among the crowd i' the Abbey; where a finger
- Could not be wedged in more: I am stifled
- With the mere rankness of their joy.
- Second Gentleman
- You saw
- The ceremony?
- Third Gentleman
- That I did.
- First Gentleman
- How was it?
- Third Gentleman
- Well worth the seeing.
- Second Gentleman
- Good sir, speak it to us.
- Third Gentleman
- As well as I am able. The rich stream
- Of lords and ladies, having brought the queen
- To a prepared place in the choir, fell off
- A distance from her; while her grace sat down
- To rest awhile, some half an hour or so,
- In a rich chair of state, opposing freely
- The beauty of her person to the people.
- Believe me, sir, she is the goodliest woman
- That ever lay by man: which when the people
- Had the full view of, such a noise arose
- As the shrouds make at sea in a stiff tempest,
- As loud, and to as many tunes: hats, cloaks —
- Doublets, I think — flew up; and had their faces
- Been loose, this day they had been lost. Such joy
- I never saw before. Great-bellied women,
- That had not half a week to go, like rams
- In the old time of war, would shake the press,
- And make 'em reel before 'em. No man living
- Could say 'This is my wife' there; all were woven
- So strangely in one piece.
- Second Gentleman
- But, what follow'd?
- Third Gentleman
- At length her grace rose, and with modest paces
- Came to the altar; where she kneel'd, and saint-like
- Cast her fair eyes to heaven and pray'd devoutly.
- Then rose again and bow'd her to the people:
- When by the Archbishop of Canterbury
- She had all the royal makings of a queen;
- As holy oil, Edward Confessor's crown,
- The rod, and bird of peace, and all such emblems
- Laid nobly on her: which perform'd, the choir,
- With all the choicest music of the kingdom,
- Together sung 'Te Deum.' So she parted,
- And with the same full state paced back again
- To York-place, where the feast is held.
- First Gentleman
- Sir,
- You must no more call it York-place, that's past;
- For, since the cardinal fell, that title's lost:
- 'Tis now the king's, and call'd Whitehall.
- Third Gentleman
- I know it;
- But 'tis so lately alter'd, that the old name
- Is fresh about me.
- Second Gentleman
- What two reverend bishops
- Were those that went on each side of the queen?
- Third Gentleman
- Stokesly and Gardiner; the one of Winchester,
- Newly preferr'd from the king's secretary,
- The other, London.
- Second Gentleman
- He of Winchester
- Is held no great good lover of the archbishop's,
- The virtuous Cranmer.
- Third Gentleman
- All the land knows that:
- However, yet there is no great breach; when it comes,
- Cranmer will find a friend will not shrink from him.
- Second Gentleman
- Who may that be, I pray you?
- Third Gentleman
- Thomas Cromwell;
- A man in much esteem with the king, and truly
- A worthy friend. The king has made him master
- O' the jewel house,
- And one, already, of the privy council.
- Second Gentleman
- He will deserve more.
- Third Gentleman
- Yes, without all doubt.
- Come, gentlemen, ye shall go my way, which
- Is to the court, and there ye shall be my guests:
- Something I can command. As I walk thither,
- I'll tell ye more.
- Both
- You may command us, sir.
Exeunt
SCENE II. Kimbolton.
Enter KATHARINE, Dowager, sick; led between
GRIFFITH, her gentleman usher, and PATIENCE, her woman
- GRIFFITH
- How does your grace?
- KATHARINE
- O Griffith, sick to death!
- My legs, like loaden branches, bow to the earth,
- Willing to leave their burthen. Reach a chair:
- So; now, methinks, I feel a little ease.
- Didst thou not tell me, Griffith, as thou led'st me,
- That the great child of honour, Cardinal Wolsey, Was dead?
- GRIFFITH
- Yes, madam; but I think your grace,
- Out of the pain you suffer'd, gave no ear to't.
- KATHARINE
- Prithee, good Griffith, tell me how he died:
- If well, he stepp'd before me, happily
- For my example.
- GRIFFITH
- Well, the voice goes, madam:
- For after the stout Earl Northumberland
- Arrested him at York, and brought him forward,
- As a man sorely tainted, to his answer,
- He fell sick suddenly, and grew so ill
- He could not sit his mule.
- KATHARINE
- Alas, poor man!
- GRIFFITH
- At last, with easy roads, he came to Leicester,
- Lodged in the abbey; where the reverend abbot,
- With all his covent, honourably received him;
- To whom he gave these words, 'O, father abbot,
- An old man, broken with the storms of state,
- Is come to lay his weary bones among ye;
- Give him a little earth for charity!'
- So went to bed; where eagerly his sickness
- Pursued him still: and, three nights after this,
- About the hour of eight, which he himself
- Foretold should be his last, full of repentance,
- Continual meditations, tears, and sorrows,
- He gave his honours to the world again,
- His blessed part to heaven, and slept in peace.
- KATHARINE
- So may he rest; his faults lie gently on him!
- Yet thus far, Griffith, give me leave to speak him,
- And yet with charity. He was a man
- Of an unbounded stomach, ever ranking
- Himself with princes; one that, by suggestion,
- Tied all the kingdom: simony was fair-play;
- His own opinion was his law: i' the presence
- He would say untruths; and be ever double
- Both in his words and meaning: he was never,
- But where he meant to ruin, pitiful:
- His promises were, as he then was, mighty;
- But his performance, as he is now, nothing:
- Of his own body he was ill, and gave
- The clergy in example.
- GRIFFITH
- Noble madam,
- Men's evil manners live in brass; their virtues
- We write in water. May it please your highness
- To hear me speak his good now?
- KATHARINE
- Yes, good Griffith;
- I were malicious else.
- GRIFFITH
- This cardinal,
- Though from an humble stock, undoubtedly
- Was fashion'd to much honour from his cradle.
- He was a scholar, and a ripe and good one;
- Exceeding wise, fair-spoken, and persuading:
- Lofty and sour to them that loved him not;
- But to those men that sought him sweet as summer.
- And though he were unsatisfied in getting,
- Which was a sin, yet in bestowing, madam,
- He was most princely: ever witness for him
- Those twins Of learning that he raised in you,
- Ipswich and Oxford! one of which fell with him,
- Unwilling to outlive the good that did it;
- The other, though unfinish'd, yet so famous,
- So excellent in art, and still so rising,
- That Christendom shall ever speak his virtue.
- His overthrow heap'd happiness upon him;
- For then, and not till then, he felt himself,
- And found the blessedness of being little:
- And, to add greater honours to his age
- Than man could give him, he died fearing God.
- KATHARINE
- After my death I wish no other herald,
- No other speaker of my living actions,
- To keep mine honour from corruption,
- But such an honest chronicler as Griffith.
- Whom I most hated living, thou hast made me,
- With thy religious truth and modesty,
- Now in his ashes honour: peace be with him!
- Patience, be near me still; and set me lower:
- I have not long to trouble thee. Good Griffith,
- Cause the musicians play me that sad note
- I named my knell, whilst I sit meditating
- On that celestial harmony I go to.
Sad and solemn music
- GRIFFITH
- She is asleep: good wench, let's sit down quiet,
- For fear we wake her: softly, gentle Patience.
The vision. Enter, solemnly tripping one after
another, six personages, clad in white robes,
wearing on their heads garlands of bays, and golden
vizards on their faces; branches of bays or palm in
their hands. They first congee unto her, then
dance; and, at certain changes, the first two hold
a spare garland over her head; at which the other
four make reverent curtsies; then the two that held
the garland deliver the same to the other next two,
who observe the same order in their changes, and
holding the garland over her head: which done,
they deliver the same garland to the last two, who
likewise observe the same order: at which, as it
were by inspiration, she makes in her sleep signs
of rejoicing, and holdeth up her hands to heaven:
and so in their dancing vanish, carrying the
garland with them. The music continues
- KATHARINE
- Spirits of peace, where are ye? are ye all gone,
- And leave me here in wretchedness behind ye?
- GRIFFITH
- Madam, we are here.
- KATHARINE
- It is not you I call for:
- Saw ye none enter since I slept?
- GRIFFITH
- None, madam.
- KATHARINE
- No?
- They promised me eternal happiness;
- And brought me garlands, Griffith, which I feel
- I am not worthy yet to wear: I shall, assuredly.
- GRIFFITH
- I am most joyful, madam, such good dreams
- Possess your fancy.
- KATHARINE
- Bid the music leave,
- They are harsh and heavy to me.
Music ceases
- PATIENCE
- Do you note
- How much her grace is alter'd on the sudden?
 Mark her eyes!
- GRIFFITH
- She is going, wench: pray, pray.
- PATIENCE
- Heaven comfort her!
Enter a Messenger
- Messenger
- An't like your grace —
- KATHARINE
- You are a saucy fellow:
- Deserve we no more reverence?
- GRIFFITH
- You are to blame,
- Knowing she will not lose her wonted greatness,
- To use so rude behavior; go to, kneel.
- Messenger
- I humbly do entreat your highness' pardon;
- My haste made me unmannerly. There is staying
- A gentleman, sent from the king, to see you.
- KATHARINE
- Admit him entrance, Griffith: but this fellow
- Let me ne'er see again.
- Exeunt GRIFFITH and Messenger
- Re-enter GRIFFITH, with CAPUCIUS
- If my sight fail not,
- You should be lord ambassador from the emperor,
- My royal nephew, and your name Capucius.
- CAPUCIUS
- Madam, the same; your servant.
- KATHARINE
- O, my lord,
- The times and titles now are alter'd strangely
- With me since first you knew me. But, I pray you,
- What is your pleasure with me?
- CAPUCIUS
- Noble lady,
- First mine own service to your grace; the next,
- The king's request that I would visit you;
- Who grieves much for your weakness, and by me
- Sends you his princely commendations,
- And heartily entreats you take good comfort.
- KATHARINE
- O my good lord, that comfort comes too late;
- 'Tis like a pardon after execution:
- That gentle physic, given in time, had cured me;
- But now I am past an comforts here, but prayers.
- How does his highness?
- CAPUCIUS
- Madam, in good health.
- KATHARINE
- So may he ever do! and ever flourish,
- When I shall dwell with worms, and my poor name
- Banish'd the kingdom! Patience, is that letter,
- I caused you write, yet sent away?
- PATIENCE
- No, madam.
Giving it to KATHARINE
- KATHARINE
- Sir, I most humbly pray you to deliver
- This to my lord the king.
- CAPUCIUS
- Most willing, madam.
- KATHARINE
- In which I have commended to his goodness
- The model of our chaste loves, his young daughter;
- The dews of heaven fall thick in blessings on her!
- Beseeching him to give her virtuous breeding —
- She is young, and of a noble modest nature,
- I hope she will deserve well — and a little
- To love her for her mother's sake, that loved him,
- Heaven knows how dearly. My next poor petition
- Is, that his noble grace would have some pity
- Upon my wretched women, that so long
- Have follow'd both my fortunes faithfully:
- Of which there is not one, I dare avow,
- And now I should not lie, but will deserve
- For virtue and true beauty of the soul,
- For honesty and decent carriage,
- A right good husband, let him be a noble
- And, sure, those men are happy that shall have 'em.
- The last is, for my men; they are the poorest,
- But poverty could never draw 'em from me;
- That they may have their wages duly paid 'em,
- And something over to remember me by:
- If heaven had pleased to have given me longer life
- And able means, we had not parted thus.
- These are the whole contents: and, good my lord,
- By that you love the dearest in this world,
- As you wish Christian peace to souls departed,
- Stand these poor people's friend, and urge the king
- To do me this last right.
- CAPUCIUS
- By heaven, I will,
- Or let me lose the fashion of a man!
- KATHARINE
- I thank you, honest lord. Remember me
- In all humility unto his highness:
- Say his long trouble now is passing
- Out of this world; tell him, in death I bless'd him,
- For so I will. Mine eyes grow dim. Farewell,
- My lord. Griffith, farewell. Nay, Patience,
- You must not leave me yet: I must to bed;
- Call in more women. When I am dead, good wench,
- Let me be used with honour: strew me over
- With maiden flowers, that all the world may know
- I was a chaste wife to my grave: embalm me,
- Then lay me forth: although unqueen'd, yet like
- A queen, and daughter to a king, inter me.
- I can no more.
Exeunt, leading KATHARINE


Bitshares-Core
3.0.0
BitShares blockchain implementation and command-line interface software
- a -
account :
graphene::app::full_account
,
graphene::chain::account_transaction_history_object
,
graphene::chain::account_update_operation
,
graphene::chain::account_upgrade_evaluator
,
graphene::chain::asset_settle_cancel_operation
,
graphene::chain::asset_settle_operation
,
graphene::chain::special_authority_object
account_auths :
graphene::chain::authority
account_fee_scale_bitshifts :
graphene::chain::chain_parameters
account_id :
graphene::app::account_asset_balance
,
graphene::chain::account_name_eq_lit_predicate
,
graphene::chain::account_transfer_operation
,
graphene::chain::detail::vbo_mfs_key
,
graphene::chain::fba_distribute_operation
,
graphene::chain::fill_order_operation
account_keys :
graphene::wallet::exported_keys
account_name :
graphene::wallet::exported_account_keys
account_to_account_memberships :
graphene::chain::account_member_index
account_to_address_memberships :
graphene::chain::account_member_index
account_to_key_memberships :
graphene::chain::account_member_index
account_to_list :
graphene::chain::account_whitelist_operation
account_to_upgrade :
graphene::chain::account_upgrade_operation
accounts_per_fee_scale :
graphene::chain::chain_parameters
accounts_registered_this_interval :
graphene::chain::dynamic_global_property_object
accumulated_fba_fees :
graphene::chain::fba_accumulator_object
accumulated_fees :
graphene::chain::asset_dynamic_data_object
,
graphene::chain::genesis_state_type::initial_asset_type
acnt :
graphene::chain::account_update_evaluator
active :
graphene::chain::account_create_operation
,
graphene::chain::account_object
,
graphene::chain::account_update_operation
,
graphene::chain::operation_get_required_auth
active_approvals_to_add :
graphene::chain::proposal_update_operation
,
graphene::wallet::approval_delta
active_approvals_to_remove :
graphene::chain::proposal_update_operation
,
graphene::wallet::approval_delta
active_committee_members :
graphene::chain::global_property_object
active_key :
graphene::chain::genesis_state_type::initial_account_type
active_special_authority :
graphene::chain::account_create_operation::ext
,
graphene::chain::account_object
,
graphene::chain::account_update_operation::ext
active_witnesses :
graphene::chain::global_property_object
additional_collateral :
graphene::chain::bid_collateral_operation
addr :
graphene::chain::address
,
graphene::chain::pts_address
address_auths :
graphene::chain::authority
allow_non_immediate_owner :
graphene::chain::sign_state
allow_non_member_whitelists :
graphene::chain::chain_parameters
allowed_apis :
graphene::app::api_access_info
allowed_assets :
graphene::chain::account_object
allowed_withdraw :
graphene::wallet::vesting_balance_object_with_info
allowed_withdraw_time :
graphene::wallet::vesting_balance_object_with_info
amount :
graphene::app::account_asset_balance
,
graphene::app::market_trade
,
graphene::chain::asset
,
graphene::chain::asset_fund_fee_pool_operation
,
graphene::chain::asset_settle_cancel_operation
,
graphene::chain::asset_settle_operation
,
graphene::chain::blind_memo
,
graphene::chain::fba_distribute_operation
,
graphene::chain::genesis_state_type::initial_balance_type
,
graphene::chain::genesis_state_type::initial_vesting_balance_type
,
graphene::chain::htlc_create_operation
,
graphene::chain::htlc_object::transfer_info
,
graphene::chain::htlc_redeemed_operation
,
graphene::chain::override_transfer_operation
,
graphene::chain::stealth_confirmation::memo_data
,
graphene::chain::transfer_from_blind_operation
,
graphene::chain::transfer_operation
,
graphene::chain::transfer_to_blind_operation
,
graphene::chain::vesting_balance_create_operation
,
graphene::chain::vesting_balance_withdraw_operation
,
graphene::chain::vesting_policy_context
,
graphene::wallet::blind_balance
,
graphene::wallet::blind_receipt
amount_to_claim :
graphene::chain::asset_claim_fees_operation
,
graphene::chain::asset_claim_pool_operation
amount_to_reserve :
graphene::chain::asset_reserve_operation
amount_to_sell :
graphene::chain::limit_order_create_operation
amount_to_withdraw :
graphene::chain::withdraw_permission_claim_operation
applied_block :
graphene::chain::database
approved_by :
graphene::chain::sign_state
asks :
graphene::app::order_book
asset :
graphene::chain::top_holders_special_authority
asset_cer_updated :
graphene::chain::asset_bitasset_data_object
asset_dyn_data :
graphene::chain::asset_fund_fee_pool_evaluator
,
graphene::chain::asset_issue_evaluator
,
graphene::chain::asset_reserve_evaluator
asset_id :
graphene::app::asset_holders
,
graphene::chain::asset
,
graphene::chain::asset_bitasset_data_object
,
graphene::chain::asset_claim_pool_operation
,
graphene::chain::asset_fund_fee_pool_operation
,
graphene::chain::asset_publish_feed_operation
,
graphene::chain::asset_symbol_eq_lit_predicate
,
graphene::chain::blinded_balance_object
,
graphene::chain::detail::vbo_mfs_key
,
graphene::chain::htlc_object::transfer_info
asset_ptr :
graphene::chain::asset_publish_feeds_evaluator
asset_symbol :
graphene::chain::genesis_state_type::initial_balance_type
,
graphene::chain::genesis_state_type::initial_vesting_balance_type
asset_to_buy :
graphene::chain::buyback_account_options
,
graphene::chain::buyback_object
asset_to_buy_issuer :
graphene::chain::buyback_account_options
asset_to_issue :
graphene::chain::asset_issue_operation
asset_to_settle :
graphene::chain::asset_global_settle_evaluator
,
graphene::chain::asset_global_settle_operation
,
graphene::chain::asset_settle_evaluator
asset_to_update :
graphene::chain::asset_update_bitasset_evaluator
,
graphene::chain::asset_update_bitasset_operation
,
graphene::chain::asset_update_evaluator
,
graphene::chain::asset_update_feed_producers_evaluator
,
graphene::chain::asset_update_feed_producers_operation
,
graphene::chain::asset_update_issuer_evaluator
,
graphene::chain::asset_update_issuer_operation
,
graphene::chain::asset_update_operation
asset_type :
graphene::chain::account_balance_object
assets :
graphene::app::full_account
auth :
graphene::chain::vote_counter
,
graphene::wallet::blind_confirmation::output
authorized_account :
graphene::chain::withdraw_permission_create_operation
,
graphene::chain::withdraw_permission_delete_operation
,
graphene::chain::withdraw_permission_object
,
graphene::chain::withdraw_permission_update_operation
authorizing_account :
graphene::chain::account_whitelist_operation
available_active_approvals :
graphene::chain::proposal_object
available_address_sigs :
graphene::chain::sign_state
available_key_approvals :
graphene::chain::proposal_object
available_keys :
graphene::chain::sign_state
available_owner_approvals :
graphene::chain::proposal_object
Generated on Wed Mar 27 2019 15:04:33 for Bitshares-Core by
1.8.13


Bytown Cuts
Since 2010, we strive to provide satisfying and beautiful haircuts to anyone with unmatched professionalism.
Our quirky, diverse, yet fun team will help you get the style you desire!
231 Elgin St, Ottawa, ON K2P 1N1
Monday to Friday: 10:30am - 5:00pm
Saturday: 11:30am - 4:00pm
Sunday: CLOSED
Email<EMAIL_ADDRESS>Phone: +1<PHONE_NUMBER>
From Osaka, Japan, Yukari is known to be gentle and careful with her practice. With 5 years of experience under her belt, she can confidently cut many different styles ranging to popular styles across Canada and the US as well as some from East Asia!
A graduate from the Toronto Fade Master Academy, Simon has been in the industry for as far as he can remember. Both a perfectionist and an experimentalist, he devotes himself to delivering the best and never fails to have customers leave with a smile!
The founder of Bytown Cuts and son of a Montreal barber, Alessandro's passion and confident in his practice makes him a fine barber. Having over 10 years of experience, Ales' technical ability enables him to cut with great precision; making sure his customers walk out as satisfied as possible!
An Ottawa-native and a passionate stylist, Anne is creative when it comes to her practice. Never fearing the customer's requests, she always comes up with a way to give her customers exactly what they want!
Pick your style and we'll cut it!
Trim: $15
Short: $25
Medium (around shoulder): $30
Long (after shoulder): $40
Need a wash? Our team can give you a warm, comfortable, yet satisfying professional wash using our products.
Want a touch up on your bangs? Our team can help trimming them to your desired length!
Want to add some color to yourself? We'd be happy to dye your hair in any color we have at our salon!


Welcome Frogger
Type your name and press enter to begin
Good work!
Press space for next level
Game over!
You have been eated by bugs
level 1
0 points
Leaders


We take photographs, but not the usual ones. We believe in the saying that photography is art with a camera, using a blend of technical skills and artistic sense. We’re well versed in the know-hows of usage, care and the wide variety of editing software. With us, we offer :-
Product Photography.
Personal portraits.
Anything that can be photographed.
We don’t know why we even started making a list.
It’s your requirements that we look forward to addressing. Minimalist, plain, less edited pictures come out from us, and we’re very particular about our aesthetic. We focus on quality, paying attention to every detail, composing and translating the message through the pictures. You'll get clean, pixel-perfect high-resolution photographs as a result. Do not hesitate to reach out, if you got something you think is great. Let’s talk?


BaseModuleInterface
interface BaseModuleInterface
Methods
This method is called when the plugin is installed for the first time
This method is called when a newer version of the plugin is installed
This method is called just before the deletion of the module, giving the module an opportunity to delete its data.
This method is called before the module activation, and may prevent it by returning false.
This method is called just after the module was successfully activated.
This method is called before the module de-activation, and may prevent it by returning false.
This method is called just after the module was successfully deactivated.
Sets a module titles for various languages
Get a module's configuration variable
Set module configuration variable, creating it if required
Ensure the proper deployment of the module's images.
No description
No description
No description
No description
This method adds new compilers to Thelia container
No description
Create or update module hooks returned by the getHooks
function
Details
at line 25
install(
ConnectionInterface $con = null)
This method is called when the plugin is installed for the first time
at line 34
update(
string $currentVersion,
string $newVersion,
ConnectionInterface $con = null)
This method is called when a newer version of the plugin is installed
at line 44
destroy(
ConnectionInterface $con = null,
bool $deleteModuleData = false)
This method is called just before the deletion of the module, giving the module an opportunity to delete its data.
at line 51
activate(
Module $moduleModel = null)
This method is called when the module is activated
at line 58
deActivate(
Module $moduleModel = null)
This method is called when the module is deactivated
at line 68
bool
preActivation(
ConnectionInterface $con = null)
This method is called before the module activation, and may prevent it by returning false.
at line 75
postActivation(
ConnectionInterface $con = null)
This method is called just after the module was successfully activated.
at line 83
bool
preDeactivation(
ConnectionInterface $con = null)
This method is called before the module de-activation, and may prevent it by returning false.
at line 90
postDeactivation(
ConnectionInterface $con = null)
This method is called just after the module was successfully deactivated.
at line 99
setTitle(
Module $module,
array $titles)
Sets a module titles for various languages
at line 109
static
string
getConfigValue(
string $variableName,
string $defaultValue = null,
null $valueLocale = null)
Get a module's configuration variable
at line 121
static
$this;
setConfigValue(
string $variableName,
string $variableValue,
null $valueLocale = null,
bool $createIfNotExists = true)
Set module configuration variable, creating it if required
at line 141
deployImageFolder(
Module $module,
string $folderPath,
ConnectionInterface $con = null)
Ensure the proper deployment of the module's images.
TODO : this method does not take care of internationalization. This is a bug.
at line 147
Module
getModuleModel()
at line 152
static
string
getModuleId()
at line 157
static
string
getModuleCode()
at line 162
string
getCode()
at line 200
static
getCompilers()
This method adds new compilers to Thelia container
You must return an array. This array can contain : - arrays - one or many instance(s) of \Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface
in the first case, your array must contains 2 indexes. The first is the compiler instance and the second the compilerPass type. Example : return array( array( new \MyModule\DependencyInjection\Compiler\MySuperCompilerPass(), \Symfony\Component\DependencyInjection\Compiler\PassConfig::TYPEBEFOREOPTIMIZATION ) );
In the seconde case, just an instance of CompilerPassInterface. Example : return array ( new \MyModule\DependencyInjection\Compiler\MySuperCompilerPass() );
But you can combine both behaviors Example :
return array( new \MyModule\DependencyInjection\Compiler\MySuperCompilerPass(), array( new \MyModule\DependencyInjection\Compiler\MyOtherSuperCompilerPass(), Symfony\Component\DependencyInjection\Compiler\PassConfig::TYPEBEFOREOPTIMIZATION ) );
at line 244
array
getHooks()
at line 249
registerHooks()
Create or update module hooks returned by the getHooks
function


About Me
Home
Hobbies
Likes
Dislikes
Where I'm From
I was born in Chicago, Illinois
I now live in Stony Brook, New York
Education
I'm a student at St. John's University studying graphic design.


TThe Gemeinhardt 2SPCH student flute pairs the standard 2SP student model with an additional silver plated curved headjoint.
The inclusion of the traditional straight headjoint allows for greater longevity of use.
The 2SPCH features the traditional straight and curved J1 headjoints, plateau keys, offset G, C footjoint, and durable sterling silver plating. Comes complete with hard shell case, and cleaning rod.
TThe Pearl-105 piccolo employs composite Grenaditte.
As this material is impervious to temperature and humidity, there is no danger of cracking and intonation is much more stable. It has a highwave style headjoint, French pointed arm keys, and pinless construction.
GHalfway between a flute and piccolo (an octave above an alto flute)
Grenaditte has similar acoustic properties to Grenadilla-wood, but without the disadvantages of tonal fluctuations, the risk of cracking and the high costs associated with wooden instruments.
Made from the same material as the highly acclaimed Pearl PFP105E Piccolo, the Guo GF301 treble flute builds upon the ground-breaking design of the GF201 G treble flute.


This HTML Table is Converted to an URI Link in PDF Using 'Data-Link-Enabled' Attribute
>>>
The HTML Link Below was Explicitly Disabled Using 'Data-Link-Enabled' Attribute:
Visit EVO HTML to PDF Converter Website


Week 8
Cheat Sheet
CSS Positioning
This is something I really struggled with at first when I first encountered it way back in week 3. This is a little cheat sheet is made up from explanations that I found extremely helpful in explaining these concepts. There are four types of positioning in CSS. Static, relative, absolute, and fixed
The static positioning is the first positioning option. This is the default positioning of all html elements. An element that has the static positioning attribute will be placed W.R.T. the normal flow of the page. An element that has the styling attribute of static does not respond to directional properties like top, bottom, left, or right.
Relative is the next styling attribute for position. The styling is called relative because the element that has this positioning will be placed relative to the normal position of the element if it was static. Relatively positioned elements will respond to directional properties such as top, bottom, left, right. What's more is that other elements will not move to fill any gaps left by moving the relative positioned element. The other elements on the page will behave as though the relative positioned element was still in its static position.
The third positioning style is absolute. An absolutely positioned element is still positioned relatively. However, the positioning is relative to the first parent element that is not positioned statically. It must be noted that this must be a parent element. It cannot be a sibling element. The relative positioning will go up the ladder through parents, grandparents, etc, until it finds the first element that isn't a statically positioned element. Failing to do so will result in the element acting as though it were relatively poditioned. This sytle of positioning also responds to directional properties such as top, bottom, left, and right.
The final positioning style is the fixed positioning style. An element with this style is positioned relative to the viewport itself. This will result in the element not moving when the rest of the page is scrolled. It will stay in the exact same spot on the screen. This property also responds to the directional properties of top, bottom, left, and right.


Your crew has spotted ice further north and the cold wind forewarns bad news. What do you wish to do?


EXPERTS
Our experts is committed to delivering high quality products to clients helping them in this constantly changing and challenging biz world.Our professional approach, creativity, fast and effective communication, reliability, trust and relationship with the clients help in delivering the best possible solution to the client.
FREE TECHNICAL SUPPORT
Each and every member of the team are all the time available on tools like Skype so that they can be approached anytime during the development phase of a project. In additions, sending daily updates during development of a project is mandatory for every member of the team. This helps in reducing the communication gap which can ruin a project development.
PROJECTS COMPLETED
Dmarkweb has worked for more than 100 clients and have completed more than 500 projects till date. Dmarkweb brings a lot of value addition for every client they have worked with. Dmarkweb excels not in providing the design and development of a project but also uses proper project management techniques.
EXPERIENCE
Dmarkweb has more than 6 years of work experience. We have a team that strives hard to deliver innovative and quality solutions that are customer centric. Our main aim is to enhance our consumer’s experience with our solutions by providing them just what they imagined.
EXPERIENCE
If you want to work with honest, reliable, and speedy team, then stop searching and award your project to Cleverbird. I couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award yourvI couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award your.
EXPERIENCE
If you want to work with honest, reliable, and speedy team, then stop searching and award your project to Cleverbird. I couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award yourvI couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award your.
If you want to work with honest, reliable, and speedy team, then stop searching and award your project to Cleverbird. I couldn't be more satisfied. If you want to work with honest, reliable, and speedy team, then stop searching and award your couldn't be more satisfied. If you want to work with honest, reliable, and speedy team, then stop searching and award your.
Great quality, Great work, Awesome results, and exceptionally competitive pricing is how I will describe WebinaCube! I already have referred them to various colleagues & friends of mine and will gladly recommend them to anyone needing web design and web development services. They have very efficiently accomplished my wordpress development Project.
If you want to work with honest, reliable, and speedy team, then stop searching and award your project to Cleverbird. I couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award yourvI couldn't be more satisfied.If you want to work with honest, reliable, and speedy team, then stop searching and award your.
We are driven by creating experiences that deliver results for your business and for your consumers.