{% extends "two_factor/_base_focus.html" %} {% load i18n %} {% block content %}
{% blocktrans trimmed %}The page you requested, enforces users to verify using two-factor authentication for security reasons. You need to set up these security features in order to access this page. Without setting up these security features, You can only access the account(Profile section) or can logout from the system.{% endblocktrans %}
{% blocktrans trimmed %}Two-factor authentication is not already set up for your account. Set up two-factor authentication for enhanced account security.{% endblocktrans %}
{% endblock %}


class GameCore : ApplicationAdapter
GameCore
Main game class. Handles rendering, screen changing dispatching game and state messages and send/receiving client/server messages.
| Dispatch |
class Dispatch
Used for enabling syntax dispatch..MESSAGE() instead of dispatch(MESSAGE()) |
| Send |
class Send
Used for enabling syntax send..MESSAGE() instead of send(MESSAGE()) |
| <init> |
GameCore()
GameCore |
| assets |
val assets: Assets |
| batch |
lateinit var batch: SpriteBatch
SpriteBatch used for rendering graphics |
| dispatch |
val dispatch: Dispatch
dispatches game and state messages |
| keyboardShortcutsListener |
val keyboardShortcutsListener: KeyboardShortcutsListener |
| messages |
val messages: SerializedSubject<Any, Any>
RxKotlin Subject - it is used as messaging hub |
| multiplexer |
val multiplexer: InputMultiplexer |
| send |
val send: Send
sends/receives client/server messages |
| state |
val state: State |
| create |
fun create(): Unit |
| dispose |
fun dispose(): Unit |
| isConnected |
fun isConnected(): Boolean |
| render |
fun render(): Unit |
| resize |
fun resize(width: Int, height: Int): Unit |


Tips for surviving the Four Hour Body as a foodie - recipes and tips
So, it turns out that something rather alarming happened recently.
I became fat.
Well, fat-ish. Turns out that suddenly going from walking 4 miles or so a day to having access to a car will do Bad Things to your body fat percentage, particularly if it’s tied in with an increased consumption of sweet stuff. I FAIL at the blindingly obvious.
Fortunately, as a huge fan of Tim Ferriss, I’d been reading his new book, The Four Hour Body, whilst smugly thinking to myself “well, this diet stuff is interesting, but I don’t need it.” So, when it turned out that yes, Mr Blood Pressure Meter and Mr Groaning Scales agreed that I did indeed need it, stat, before I started to resemble a BBC report on Scottish health, I was prepared.
World of Warcraft players will have predicted what was coming next.

In this case, You Are Not Prepared for the sheer volume of one thing - beans.
Oh, God, Not More Beans
Tim Ferriss’s diet - which appears to be working rather stonkingly well, btw - works on one simple princple. There’s no calorie counting or going hungry - instead, you just drop all simple carbs and grains from your diet and replace them with beans. (Oh, and there’s a few other princples too - the diet’s explained online - but the beans are the issue here.)
This works. It’s nutritionally sound. Unfortunately, for a foodie, it has one major flaw.
 Or equally fornicating lentils?
Tim Ferriss is a big fan of just repeating a few simple meals. Were I to follow that advice, as a hardcore foodie, I’d soon be a big fan of stabbing random strangers in the street - and I live in Edinburgh, not Glasgow, so that sort of thing’s really not done.
So began my quest for more interesting ways to cook sodding legumes.
I suspect this is going to be a multi-part series, at least until “svelte” is an adjective that can be applied to me in a non-ironic way, but for now, here are some of the ways I managed to stave off psychotic rage in the first few weeks:
Basic Bean Tricks
There’s virtually nothing on earth that doesn’t taste better sauted with butter and garlic, and optionally chilli. This was true of jellyfish when I foolishly tried to cook the stuff for a Chinese banquet, and it’s equally true of almost any flavour of beans. Lentils and, unsurprisingly, butter beans work particularly well. Yes, butter’s fine on the diet, according to Tim.
There are more beans out there than you think. I strongly recommend Wikipedia-ing legumes, and looking through the list. For me, frozen broad beans have been a recent lifesaver - I like the things, they taste nice sauteed with butter - win. For my girlfriend, the discovery that peas can - sorta (they’re a bit low-calorie) - substitute for other legumes prevented her from gnawing on the cat in sheer hunger.
 They work tremendously well with soy sauce, they’re a lot darker and meatier-tasting than most beans, and they have a different texture, particularly if fried up.
Most stock cubes are dubious diet-wise - sugar bad. But Swiss Boullion or other vegetable boullion is fine, and will really enhance the taste of just about any liquid dish.
Right. Now for a couple of recipes.
Yes, I said recipes. I know that normally KKC has a bit of a thing about recipes - as in, we hates them, we hates them forever - but in this case, I discovered that about the point that you’re going “Oh, shit, no rice, pasta, noodles, cheese, milk, or potatoes! I’m going to stab myself with my $200 razor-sharp hand-made folded-steel chef’s knife!”, having a simple instruction manual helped.
Nigel Slater’s Lentil And Tomato
When I first went onto the 4HB diet, I immediately ran, not walked, to my bookshelf to check what Nigel Slater said about beans. The man’s a culinary genius, and the only cookbook writer I know to have never written a recipe that I’ve not found awesome. (Gogo double negatives.)
Sadly, he only really had one 4HB-compatible recipe - but it’s a doozy. Turning a couple of storecupboard ingredients - cheap ones at that - into a wonderful, rich, filling dish with tons of flavour, a bit of spice, and a fantastic balanced texture - genius. Here’s my slightly adapted version.
You’ll need some red lentils - about 150g for a lunch for two people - a can of tomatoes, a bay leaf, some chilli, some onion and garlic, and that’s it.
Stick the lentils in boiling water with the bay leaf, for about 10 minutes. Whilst they’re boiling, chop and gently fry an onion and some crushed or chopped garlic. Add a bit of chilli about 2 minutes in.
Keep tasting the lentils - when they’re tender, drain them, and stick some tomatoes in with the onions for a couple of minutes. Then tip the whole lot together, stir well, taste, add boullion if you like, plenty of black pepper, and serve.
Delicious, quick, warming, and cheap as hell.
Ratatouille With Beans
An accidental discovery, this one, whilst attempting to persuade my girlfriend that beans could actually be edible.
It’s got all the positive characteristics of a normal ratatouille - plenty of complex flavours, comparatively simple to cook - but is even more filling. Add some grilled meat and you’ve got a pretty kick-ass meal.
You’ll need a couple of zuchinni aka courgettes, some onion and garlic (hell, just assume ANYTHING I cook has onion and garlic), some decent red wine (go for Pinot Noir to collect full Ferriss points), some tomatoes (fresh, not tinned), some thyme (dry is OK, fresh is better), some olive oil, some boullion if you have it and some meaty-tasting beans - I used one can of borlotti and one of haricot, but it’s up to you.
This one’s simple but slow. Dice the onion and the courgette, then heat some olive oil in a big pan (yeah, I know, I know, Tim’s over the olive oil thing - but the olive oil adds to the taste here) and gently fry the two for a while. Ideally you want nice soft, golden onion. Chop the tomatoes into eighths whilst you’re waiting.
Now add the garlic and the tomatoes, with the thyme and about half the wine, and cook for about 15 minutes.
Now, add the beans (rinse them first unless gas and intestinal pain is your kink - hey, I’m not judging) along with the rest of the wine. Cook for another 10 minutes, season, and serve.
Want more?
I’m interested to know if this topic’s of interest to everyone. Would you like to see more 4HB foodiness?


| Category | Output |
|---|---|
| Automatically Set Page Title | See the page title, which is being changed once you change the language. This works only adding the key of 'pageTitle' in JSON file. |
| Resolve Content By Angular Preload Module Strategy | See the network request, you will see 'pre-load-module' which loads according to the pre loading startegy, Whenever this activates it's load all respective component multilingual JSON, like if you check the request then you will see the request of 'i18n/child-data/en.json'. |


About Us
This site was created by 3 coding bootcamp students who all share the
love
for adopting and caring for animals. On this site you can view images of
different types of dogs using the dropdown, use the google search engine to find
animal shelters, petcos, vet clinics, and so much more. And of course by refreshing
the page, we will generate an adorable image of both a cat and dog!


vignettes/CheckStatusDefinitions.rmd
CheckStatusDefinitions.rmd
In the DataQualityDashboard v2, new check statuses were introduced:
Error
and Not Applicable
. These were
introduced to more accurately reflect the quality of data contained in a
CDM instance, addressing scenarios where pass/fail is not appropriate.
The new set of mutually exclusive status states are listed below in
priority order:
Is Error: if a SQL error occurred during execution
Not Applicable: if DQ check is not applicable for reasons explained in the section below
Failed: if percent violating rows is greater than the threshold
Passed: if percent violating rows is smaller than the threshold
The results of a DQ check may not be applicable to a given CDM instance depending on the implementation and content of the instance. For example, the DQ check for plausible values of HbA1c lab results would pass with no violations even if there were no results for that lab test in the database. It is not uncommon to have > 1000 DQ checks that do not apply to a given CDM instance. The results from DQ checks that are not applicable skew to overall results. Listed below are the scenarios for which a DQ check result is flagged as notApplicable:
If the cdmTable DQ check determines that a table does not exist in the database, then all DQ checks (except cdm_table) addressing that table are flagged as notApplicable
If a table exists but is empty, then all field level and concept level checks for that table are flagged as notApplicable, except for cdmField checks, which evaluates if the field is defined or not. A cdmField check is marked as notApplicable if the CDM table it refers to does not exist (tested by cdmTable). An empty table is detected when the measureValueCompleteness DQ check for any of the fields in the table returns a denominator count = 0 (numDenominatorRows=0).
If a field is not populated, then all field level and concept level checks except for measureValueCompleteness and isRequired are flagged as notApplicable
A field is not populated if the measureValueCompleteness DQ check finds denominator count > 0 and number of violated rows = denominator count (numDenominatorRows > 0 AND numDenominatorRows = numViolatedRows).
The measureValueCompleteness check is marked as not applicable if:
The CDM table it refers to does not exist or is empty.
The CDM field it refers to does not exist.
The isRequired check is marked as not applicable if:
The CDM table it refers to does not exist or is empty.
The CDM field it refers to does not exist.
Flagging a Concept_ID level DQ check as notApplicable depends on whether the DQ check logic includes a UNIT_CONCEPT_ID. There are two scenarios for DQ checks evaluating specific Concept_ids.
The DQ check does not include a UNIT_CONCEPT_ID (value is null). A DQ check is flagged as notApplicable if there are no instances of the Concept_ID in the table/field. E.g. plausibility checks for specific conditions and gender. Both pregnancy and male do not have UNIT_CONCEPT_IDs.
The DQ check includes a UNIT_CONCEPT_ID. A DQ check is flagged as notApplicable if there are no instances of both concept and unit concept IDs in the table/field. E.g. all DQ checks referencing the concept_ID for HbA1c lab results expressed in mg/dl units will be flagged as notApplicable if there are no instances of that concept_ID in the table/field addressed by the DQ check.


January 27
For I will restore health unto thee, and I will heal thee of thy wounds, saith the Lord Jeremiah 30:17
God wants you well! He wants you healthy and strong in every single area of your life.
He wants you to be spiritually strong. Strong in faith. Strong in the Word. Strong in redemption. Strong in the love of God.
He wants you to be well in your mind, to be strong and stable emotionally.
He wants you to have a healthy will, a will that's aligned with His will.
He wants your body to be well. He wants you free from the bondages of pain, sickness, and care. Free from the worries and woes of this earthly life.

What's more, in this day and hour, He needs you well. He needs you living in victory and healing so that you can teach others how to do it too. We're stepping into a time when that kind of knowledge is an absolute necessity. There's no more time for the Body of Christ to limp along, uninformed and unprepared for the devil's attacks.
In fact, here's what the Lord has told me:
The further you go, the more dangerous things in the earth will become. People will have to grow in the realities of redemption and the "how to's" of living by faith in order to live in the great, overcoming way I have planned for them.
Jesus gave Himself in death so that we could be well. He was raised in life, ever making intercession for us now so that we can be well. And He wants us to be healthy and strong as a witness in these last days to a world that's filled with terror--a witness of His love, His grace, and His power.
Receive Jesus' healing power in every area of your life. Start applying it by faith right now. Commit yourself to getting well and growing strong in every area of your life today!
Scripture Reading: Psalm 107


Apache Mesos 0.23.0 Released
The latest Mesos release, 0.23.0, is now available for download. This release includes the following features and improvements:
Per-container network isolation (MESOS-1585)
Mesos 0.23 provides support for per-container network monitoring and isolation. Network isolation prevents a single container from exhausting the available network ports, consuming an unfair share of the network bandwidth or significantly delaying packet transmission for others. Network statistics for each active container are published through the /monitor/statistics.json endpoint on the slave. Network isolation is transparent for the majority of tasks running on a slave (those that bind to port 0 and let the kernel allocate their port). This feature is only available on Linux and requires a configure-time flag. Refer to the network monitoring and isolation documentation for more information.
SSL (MESOS-910)
Experimental support for SSL encryption of any libprocess communication via libevent. Encrypting traffic between the Mesos master and its slaves and frameworks is important for information security, as it prevents eavesdropping and impersonation. This feature requires a configure-time flag and will have some performance impact. Refer to the Mesos SSL documentation for instructions on building and enabling SSL.
Oversubscription (MESOS-354)
Experimental support for launching tasks/executors on revocable resources. These resources can be revoked by Mesos at any time, causing the tasks using them to be throttled or preempted.
High-priority user-facing services are typically provisioned on large clusters for peak load and unexpected load spikes. Hence, for most of time, the provisioned resources remain underutilized. Oversubscription takes advantage of temporarily unused resources to execute best-effort tasks such as background analytics, video/image processing, chip simulations, and other low priority jobs.
Oversubscription adds two new slave components: a Resource Estimator and a Quality of Service (QoS) Controller, alongside extending the existing resource allocator, resource monitor, and mesos slave. Refer to the oversubscription documentation for more information.
Persistent volumes (MESOS-1554)
Experimental support for frameworks creating Persistent Volumes from disk resources. This enables stateful services such as HDFS and Cassandra to store their data within Mesos rather than having to resort to network-mounted EBS volumes or unmanaged disk resources that need to be placed in a well-known location. Refer to the persistent volume documentation for more information.
Dynamic reservations (MESOS-2018)
Experimental support for frameworks dynamically reserving resources on specific slaves for their role. Rather than requiring an operator to specify a fixed, precalculated set of “static” reservations on slave startup, a framework can now reserve resources as they are being offered, without requiring a slave restart. No breaking changes were introduced with dynamic reservation, which means the existing static reservation mechanism continues to be fully supported. Refer to the reservation documentation for more information.
Fetcher caching (MESOS-336)
Experimental support for fetcher caching of executor/task binaries. The fetcher can be instructed to cache URI downloads in a dedicated directory for reuse by subsequent downloads. If the URI’s “cache” field has the value “true”, then the fetcher cache is in effect. If a URI is encountered for the first time (for a particular user), it is first downloaded into the cache, then copied to the sandbox directory from there. If the same URI is encountered again (for the same user), and a corresponding cache file is resident in the cache or still en route into the cache, then downloading is omitted and the fetcher proceeds directly to copying from the cache. Refer to the fetcher documentation for more information.
NOTE: Experimental status
SSL, Oversubscription, Persistent Volumes, Dynamic Reservations, and Fetcher Caching are all released as “experimental” features, meaning that they are feature complete, at least for some use case, but have not yet been tested in production environments. We welcome your feedback.
Changelog
Hundreds of other bug fixes/improvements are included in Mesos 0.23.0. See the CHANGELOG for a full list of resolved JIRA issues.
Upgrades
Rolling upgrades from a Mesos 0.22.x cluster to Mesos 0.23 are straightforward, but there are a few caveats/deprecations. Please refer to the upgrade guide for detailed information on upgrading to Mesos 0.23.
Compiler version requirement
Please note that Mesos 0.23.0 now requires gcc 4.8+ or clang 3.5+, so that we can take advantage of C++11 language features.
Try it out
We encourage you to try out this release and let us know what you think. If you run into any issues, please let us know on the user mailing list and IRC.
Thanks!
Thanks to the 52 contributors who made 0.23.0 possible: Aaron Bell, Adam B, Aditi Dixit, Akanksha Agrawal, Alexander Rojas, Alexander Rukletsov, Anand Mazumdar, Artem Harutyunyan, Bartek Plotka, Benjamin Hindman, Benjamin Mahler, Bernd Mathiske, Brendan Chang, Brian Wickman, Chi Zhang, Christos Kozyrakis, Cody Maloney, Cong Wang, Connor Doyle, Dave Lester, Dominic Hamon, Evelina Dumitrescu, Gajewski, Greg Mann, haosdent huang, Ian Babrou, Ian Downes, Isabel Jimenez, Itamar Ostricher, James Peach, Jan Schlicht, Jay Buffington, Jiang Yan Xu, Jie Yu, Joerg Schad, Jojy Varghese, Joris Van Remoortere, Kapil Arya, Marco Massenzio, Mark Wang, Michael Park, Nancy Ko, Niklas Q. Nielsen, Oliver Nicholas, Paul Brett, Ricardo Cervera-Navarro, Stan Teresen, Till Toenshoff, Timothy Chen, Vinod Kone, weitao zhou, and Zhiwei Chen


The Australian Statistical Geography Standard ('ASGS') is a set of shapefiles by the Australian Bureau of Statistics. This package provides an interface to those shapefiles, as well as methods for converting coordinates to shapefiles.
| Version: | 0.2.1 |
| Depends: | R (≥ 3.4.0) |
| Imports: | sp, methods, utils |
| Suggests: | testthat, spdep, codetools |
| Published: | 2018-05-17 |
| Author: | Hugh Parsonage [aut, cre] |
| Maintainer: | Hugh Parsonage <hugh.parsonage at gmail.com> |
| License: | MPL version 1.0 | MPL version 1.1 | MPL version 2.0 [expanded from: MPL] |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | ASGS.foyer results |
| Reference manual: | ASGS.foyer.pdf |
| Package source: | ASGS.foyer_0.2.1.tar.gz |
| Windows binaries: | r-devel: ASGS.foyer_0.2.1.zip, r-release: ASGS.foyer_0.2.1.zip, r-oldrel: ASGS.foyer_0.2.1.zip |
| OS X binaries: | r-release: ASGS.foyer_0.2.1.tgz, r-oldrel: ASGS.foyer_0.2.1.tgz |
| Old sources: | ASGS.foyer archive |
| Reverse suggests: | bomrang |
Please use the canonical form https://CRAN.R-project.org/package=ASGS.foyer to link to this page.


---
layout: page
subtitle: Blog
title: What’s new
lead: Aticles that are a result of the Iqlusion Liquid Staking working group discussion will be posted here.
---
{% for post in paginator.posts %}
{% include post-preview.html %}
{% endfor %}
{% if paginator.previous_page_path %}
Newer articles
{% endif %}
{% if paginator.next_page_path %}
Older articles
{% endif %}


Everyone needs to be comforted at times, the book of Psalms has many examples of how to comfort yourself in the Lord and return to peace and joy.
You can engage in a comforting conversation with the Lord yourself or have someone guide you through it.
A comforting conversation is a way of teaching someone to calm themselves when they are in distress.
A comforting conversation will help someone focus their thoughts on the Lord so they can bring every thought captive and ﬁnd peace of mind once again.
This conversation can prevent painful experiences from becoming traumas.
The time to use a comforting conversation is when a person such as your wife, child or a person you are coaching is in distress over an issue that does not necessarily involve you directly. It may also be necessary when you ﬁnd yourself in distress and you need to encourage yourself in the Lord like David did throughout his life.
We comfort people with the comfort we have received from the Lord.
We comfort people by leading them back to the throne of grace so they can be connected to God once again.
We can comfort others as we receive consolation from the Lord and then willingly offer it to others.
Start with the six questions that follow and then explore the five GREAT steps to freedom.


JULY 23, 2020
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem
JULY 23, 2020
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem
JULY 23, 2020
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem
JULY 23, 2020
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem


DeAndre Hopkins Calls Out NFL Refs After Game Against Ravens (TWEET)
by Darrelle LincolnThe Baltimore Ravens absolutely dominated the Houston Texans on Sunday afternoon, winning 41-7, in what was billed as one of the games of the season before the teams took the field.
That game also included a terribly missed call where the refs hurt the Texans early on with a missed defensive pass interception.
Deandre Watson went deep to DeAndre Hopkins early in the game on a 4th down attempt, but it fell incomplete, largely due to Hopkins being grabbed before the ball got there.
Houston challenged it, and they still upheld the call.
Hopkins, who had 7 catches for 80 yards in the game, took to Twitter and blasted the refs.
“As a leader in the NFL, we need someone new in New York deciding calls,” he tweeted.
The league put in this rule following the 2018 season but it has been horrendous all year long as calls are not getting reversed despite replay evidence.


{% extends 'skylernet/base.html' %}
{% load static %}
{% block title %}Welcome to SkylerNet!{% endblock %}
{% block styles %}
{% endblock %}
{% block content %}
The Sky's the Limit
I'm Skyler and I've got a lot to offer. Professionally, I am an experienced molecular biologist and bioinformatician, who also has full-stack development skills. Casually, I am a musician, artist, game enthusiast, and fairly-coordinated nice person.
Hopefully you're someone who may know of me already, and who's looking to learn some more. Maybe you're interested in me working or collaborating with you and your team. Maybe you like Wordl, or some of the other projects I've worked on. And if you're none of the above, may you still find something interesting here.
I've written a few blog posts. Learn about this site, my experience in biotechnology, and some other topics I'm passionate about.
Check out some of the projects I've hosted on the web. From bioinformatics applications to games, my nerdy-ness WILL be apparent.
I've got a lot to offer. Grab a copy of my resume or CV, shoot me an email, or connect through social media.


Have a great idea for a product, but need help making it a reality? We're here to help. Startup Matchmaker is the best place for designers and developers to find each other.
Create a profile
Create a profile
Are you a designer? Developer? Put yourself out there so that others can find you?
Sign up now
Find a Developer
Looking for a fantastic developer to work on the next big thing? Look no further.
Start your search
Find a Designer
Need someone who can make a product intuitive and appealing? Get ready.
Start your search


The Air Quality Web App uses two APIs in order to plot air quality measurements on a geographic map. The map and its basic functionality is created using the Google Maps API. The air quality measurements are obtained using the Open AQ Platform and then the data is overlayed with the map using the Google Maps API. The data and map are updated as the user interacts with the map or UI controls.
This project also uses the framework AngularJS. This provided us with organized control over the map and data table, two-way data binding for the map's search box, and access to the $http service.
Amber is a fourth-year student at the University of St. Thomas and is pursuing a double major in Computer Science and Accounting. Her hobbies include reading and baking.
Emily is also a fourth-year student at the University of St. Thomas and will graduate this May with a major in Computer Science and minors in music, Catholic Studies, and Latin. She has previously enjoyed reading, playing the piano, and knitting and is looking forward to engaging in these hobbies again come June 2018.


You have no abilities selected. Click 'Edit Abilities' to get started (your first ability is free.)
To change your commander's abilities, click 'Edit Abilities' below.
Your changes will not be locked in until you click 'Confirm Changes' below. Once you confirm, the experience cost of your changes will be deducted from your current experience. To replace an ability, first remove it and then add the new ability. To upgrade the tier of an existing ability, click the 'Upgrade' button on the ability.
{{ ability.text }}
{{ ability.text }}


| jnpr.space.rest.Space(url[, user, passwd, ...]) | Encapsulates a Junos Space cluster and provides access to all RESTful web-service APIs provided by Space. |
| jnpr.space.resource.Resource(type_name, ...) | Represents a resource that is exposed by Junos Space REST API. |
| jnpr.space.collection.Collection(parent, ...) | Represents a collection that is exposed by Junos Space REST API. |
| jnpr.space.method.Method(parent, name, mobj) | Represents a method that is exposed by Junos Space REST API. |
| jnpr.space.service.Service(rest_end_point, ...) | Represents a service that is exposed by Junos Space REST API. |
| jnpr.space.application.Application(...) | Represents an application that is hosted on Junos Space platform. |
| jnpr.space.async.TaskMonitor(rest_end_point, ...) | Encapsulates the logic required to monitor the progress of tasks using a hornet-q. |
| jnpr.space.factory | A module with functions using which new resource objects can be created. |
| jnpr.space.xmlutil | A module with utility functions for XML handling. |
This module defines the Space class.
An exception that is raised when a REST API invocation returns a response indicating an error. The exception contains the complete response inside.
list of weak references to the object (if defined)
Encapsulates a Junos Space cluster and provides access to all RESTful web-service APIs provided by Space. An instance of this class is also referred to as a ‘rest end point’ in this documentation.
Note
In most cases, you don’t directly invoke methods of this class. The typical usage pattern is to create an instance of this class and then access contained services and collections and invoke methods on them.
For example, the snippet below creates a Space instance and then performs a GET on the devices collection contained by the device-management web service:
>>> s = rest.Space(url='https://<IP_ADDRESS>',
user='super',
passwd='password')
>>> devs = s.device_management.devices.get()
Note
Instances of this class are thread-safe. So you can have multiple threads invoking APIs on the same Junos Space cluster using one instance of this class.
This method is overridden in the class so that applications & services contained by this instance can be accessed as normal Python attributes of this object.
| Parameters: | attr (str) – Name of the app or web-service being accessed. |
|---|---|
| Returns: | jnpr.space.service.Service or jnpr.space.application.Application being accessed. |
| Raises: | AttributeError if there is no application or service with the given name. |
This method is overridden so that contained elements can be accessed using their ‘xml names’ - e.g. user[‘first-name’]. The implementation just calls __getattr__ internally.
See doc for __getattr__ for more details.
Creates an instance of this class to represent a Junos Space cluster.
| Parameters: |
|
|---|---|
| Returns: | An instance of this class encapsulating the Junos Space cluster whose url was given as a parameter. It can be used to access all APIs provided by Space. |
Performs an HTTP DELETE on the given url. Acts as a wrapper over requests.delete() function.
| Parameters: | url (str) – URL for performing DELETE |
|---|---|
| Returns: | The response object (requests.Response) returned by the POST request. |
Performs an HTTP GET on the given url. Acts as a wrapper over requests.get() function.
| Parameters: |
|
|---|---|
| Returns: | The response object (requests.Response) returned by the GET request. |
Performs an HTTP HEAD on the given url. Acts as a wrapper over requests.head() function.
| Parameters: |
|
|---|---|
| Returns: | The response object (requests.Response) returned by the HEAD request. |
Logs into Space and creates a session (connection) that is maintained. All API calls will use this session and will use the JSESSIONID, JSESSIONIDSSO cookies - they will not be individually authenticated.
| Parameters: | required_node (str) – This is used to specify the name of the Junos Space node in the cluster on which the session should be established. It is None by default. |
|---|
Logs out the current session being used.
Performs an HTTP POST on the given url. Acts as a wrapper over requests.post() function.
| Parameters: |
|
|---|---|
| Returns: | The response object (requests.Response) returned by the POST request. |
Performs an HTTP PUT on the given url. Acts as a wrapper over requests.put() function.
| Parameters: |
|
|---|---|
| Returns: | The response object (requests.Response) returned by the PUT request. |
This module defines the Resource class.
Encapsulates the meta data for a resource type.
Creates a collection object.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.collection.Collection object. |
Creates a method object.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.method.Method object. |
Returns media-type modelled in the yaml file.
Represents a resource that is exposed by Junos Space REST API. Some examples of resources are:
Deletes this resource on Space by sending a DELETE request with the url of this resource.
| Returns: | None |
|---|---|
| Raises: | jnpr.space.rest.RestException if the DELETE method results in an error response. The exception’s response attribute will have the full response from Space. |
Forms an XML representation of the state of this resource based on its attribute values.
| Returns: | An lxml.etree.Element object representing the state of this resource. |
|---|
This is an overloaded method that does two things: If the attr parameter is passed, it returns the corresponding XML attribute from the top level XML data element contained by this resource. If the attr parameter is not passed, it performs an HTTP GET for this resource and get its current state.
| Parameters: |
|
|---|---|
| Returns: |
|
| Raises: | jnpr.space.rest.RestException if the GET method results in an error response. The exception’s response attribute will have the full response from Space. |
Gets the href for this resource. If href is available as an attr inside _xml_data, it is returned. Otherwise, this method checks if _xml_data has a valid uri attr and if so, returns that. Otherwise, it checks if the _parent reference is set and if yes, it will concat the parent’s href with the id attr from _xml_data. If all this fail, then it concatentates service_url and collection_name from its meta object and appends the id attr from _xml_data.
| Returns: | The href of this resource. |
|---|
Returns the meta object which holds meta data for this resource.
| Returns: | jnpr.space.resource.MetaResource |
|---|
Some resources support the POST method. For example, the configuration of a device supports the POST method which can be used to fetch selected portions of the configuration based on xpath expressions. On such resources, this method can be used to send the POST request.
| Parameters: |
|
|---|---|
| Returns: | A Python object constructed from the response body that Space returned for the POST method invocation. In the case of asynchronous invocation, this will represent a Task object and will contain the unique id of the Task executing the POST request in Space. |
| Raises: | jnpr.space.rest.RestException if the POST method results in an error response. The exception’s response attribute will have the full response from Space. |
Modifies the state of this resource on Space by sending a PUT request with the new state. The attributes of new_val_obj are formatted to form the XML request body for the PUT request. If the parameter new_val_obj is None, then the argument request_body, if present, is used as the request body. If this is also None, then the attributes of this object itself are formatted to form the XML request body. Once the PUT request successfully completes, it re-initializes the state of this Resource object based on the XML response from Space.
| Parameters: |
|
|---|---|
| Returns: | None |
| Raises: | jnpr.space.rest.RestException if the PUT method results in an error response. The exception’s response attribute will have the full response from Space. |
Prints the XML string into stdout.
Returns a formatted string that represents the state of this resource.
Returns a string that contains formatted XML representing the state of this resource.
Looks up the meta object for a resource based on its fully qualified type name of the form <service-name>.<type_name> or <app-name>.<service-name>.<type_name>
| Parameters: | full_name (str) – Fully qualified type name of the resource. |
|---|---|
| Returns: | A jnpr.space.resource.MetaResource object. |
This module defines the Collection class.
Represents a collection that is exposed by Junos Space REST API. Some examples of collections are:
Gets the contained resources of this collection from Space.
| Parameters: |
|
|---|---|
| Returns: | A list of jnpr.space.resource.Resource objects. |
| Raises: | jnpr.space.rest.RestException if the GET method results in an error response. The exception’s response attribute will have the full response from Space. |
Gets the href for this collection. If the meta object has a url set, it is returned. Otherwise, it concatenates the href of the parent object and the name of this collection to form the href and returns it.
| Returns: | The href of this collection. |
|---|
Sends a POST request to the Space server to create a new Resource in this collection.
| Parameters: |
|
|---|---|
| Returns: | If the new_obj parameter is a list, then the same list is returned. Otherwise, this method creates a new Resource object based on the state of the newly created resource, as extracted from the POST response body. In the case of asynchronous invocation, this will represent a Task object and will contain the unique id of the Task executing the POST request in Space. |
| Raises: | jnpr.space.rest.RestException if the POST method results in an error response. The exception’s response attribute will have the full response from Space. |
Performs a GET on this collection to fetch the current state and prints it as XML.
Encapsulates the meta data for a collection type.
Creates a method object corresponding to the given service and name.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.method.Method object. |
Returns the media-type defined inside the meta object.
Encapsulates a list of Resource objects and provides methods to print the state of all of them.
Prints the XML string into stdout.
Returns a formatted string that represents the state of all resources in this list.
Returns a string that contains formatted XML representing the state of all resources in this list.
Looks up the meta object for a collection based on its fully qualified type name of the form <service-name>.<coll_name> or <app-name>.<service-name>.<coll-name>.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.collection.MetaCollection object. |
This module defines the Method class.
Encapsulates the meta data for a method.
Returns media type modeled in yaml file.
Returns request media type modeled in yaml file.
Returns response media type modeled in yaml file.
Represents a method that is exposed by Junos Space REST API. Some examples of methods are:
Performs a GET corresponding to the Method object.
| Parameters: | accept (str) – This can be used to supply a media-type that must be used as the Accept header in the GET request. This defaults to None and in this case SpaceEZ will use the media-type modeled in the description file. |
|---|---|
| Returns: | A Python object constructed from the response body that Space returned for the GET request. |
| Raises: | jnpr.space.rest.RestException if the GET results in an error response. The exception’s response attribute will have the full response from Space. |
Gets the href for this method. If the meta object has its name set as ‘-‘, this returns the href of the parent. Otherwise, it concatenates the href of the parent object and the name of this method to form the href and returns it.
| Returns: | The href of this method. |
|---|
This sends a POST request corresponding to this Method object.
| Parameters: |
|
|---|---|
| Returns: | A Python object constructed from the response body that Space returned for the POST method invocation. In the case of asynchronous invocation, this will represent a Task object and will contain the unique id of the Task executing the POST request in Space. |
| Raises: | jnpr.space.rest.RestException if the POST method results in an error response. The exception’s response attribute will have the full response from Space. |
Looks up the meta object for a method based on its fully qualified type name of the form <service-name>.<method_name> or <app-name>.<service-name>.<method-name>.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.method.MetaMethod object. |
This module defines the Service class.
Encapsulates the meta data for a service.
Creates a collection object corresponding to the given service and name.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.collection.Collection object. |
Creates a method object corresponding to the given service and name.
| Parameters: |
|
|---|---|
| Returns: | A jnpr.space.method.Method object. |
Returns the name of the containing application if there is one.
Returns the MetaResource object with the given name.
| Parameters: | name (str) – Name of the resource. |
|---|---|
| Returns: | A jnpr.space.resource.MetaResource object. |
Represents a service that is exposed by Junos Space REST API. Some examples of services are:
Returns the href of this service.
Returns the MetaResource object with the given name.
| Parameters: | name (str) – Name of the resource. |
|---|---|
| Returns: | A jnpr.space.resource.MetaResource object. |
This module defines the Application class.
Represents an application that is hosted on Junos Space platform. Some examples of applications are:
Returns the href of this application.
Encapsulates the meta data for an application.
This module defines the TaskMonitor class.
Encapsulates the logic required to monitor the progress of tasks using a hornet-q. An instance of this class acts as a wrapper over a hornet-q. When you instantiate this class, it internally creates a hornet-q with the given qname. You can then use this TaskMonitor instance when invoking asynchronous APIs using the SpaceEZ library. Each asynchronous API invocation will create a new task (a.k.a Job) in Junos Space. You can wait for a single task to complete using the wait_for_task method which returns the ProgressUpdate message for the task with completion state and status of the task. If you use the same TaskMonitor object to create multiple tasks, you can wait for the completion of all of them using the wait_for_tasks method which returns a list of ProgressUpdate messages - one for each task.
The snippet below shows an example where a TaskMonitor is used in creating a discover-devices task and waiting for its completion:
>>> s = rest.Space(url='https://<IP_ADDRESS>',
user='super',
passwd='password')
>>> devs = s.device_management.devices.get()
>>> tm = async.TaskMonitor(s, 'test_DD_q')
>>> result = s.device_management.discover_devices.post(
task_monitor=tm,
hostName='test-host-name',
manageDiscoveredSystemsFlag=True,
userName='regress', password='MaRtInI')
>>> pu = tm.wait_for_task(result.id)
>>> print pu.state, pu.status
Note
If you use multi-threaded programming, make sure that you do not share a TaskMonitor instance across multiple threads. You should use separate TaskMonitor objects for separate threads.
Creates an instance of this class to encapsulate a hornet-q.
| Parameters: |
|
|---|---|
| Returns: | An instance of this class encapsulating a hornet-q with the given name (qname). |
Cleanup by deleting the hornet-q encapsulated by this object.
Gets the final progress-update message for a job, based on the href inside the pu_message argument supplied. The pu_message arg is the last progress-update message obtained from a hornet-q and it does not contain the full result of the job. The progress-update message fetched and returned by this method will contain the full result inside the data field.
Returns the full URL for the encapsulated hornet-q
Pull the next message from the hornet-q. It specifies an accept-wait header with the value that was given as the wait_time argument in the constructor so that the pull waits for this many seconds on the server side waiting for a message.
| Returns: | If a message is pulled, it is parsed into a Python object and returned. If no message was pulled, returns None. |
|---|
Waits for the given task to complete by periodically pulling progress-update messages from the hornet-q and checking if the message indicates that the task is Done. The time between consecutive pulls is the value given as the wait_time argument in the constructor. The maximum number of consecutive pulls is determined by the max_consecutive_attempts argument in the constructor. If we’re unable to pull a progress-update message from hornet-q after this many consecutive attempts, we will consider the task as hanging and this method will raise an Exception.
Note
You should use this method only when you have created one task using this TaskMonitor object. If you created multiple tasks, you must use the wait_for_tasks() method to wait for their completion.
| Returns: | The final progress-update message for the task is fetched and returned inside a Python object. The data attribute of this object will contain the full result from the task. |
|---|
Waits for all the tasks in the given list to complete by periodically pulling progress-update messages from the hornet-q and checking if the message indicates that any of the given tasks is Done. The time between consecutive pulls is the value given as the wait_time argument in the constructor.
The maximum number of consecutive pulls is determined by the max_consecutive_attempts argument in the constructor. If we’re unable to pull a progress-update message from hornet-q after this many consecutive attempts, we will consider the tasks as hanging and this method will raise an Exception.
| Returns: | A list of progress-update messages indicating the completion state and status of all the given tasks. Each entry in the list is a Python object representing the final progress-update message for a task. The data attribute of this object will contain the full result from the task. |
|---|
A module with functions using which new resource objects can be created. Resources are instances of jnpr.space.resource.Resource.
This is the method you should use to create a Resource instance if you have the href for it. It gets the current state of the resource with the given href. Once the current state is fetched from the Space server, this method creates a new instance of jnpr.space.resource.Resource with this state and returns it.
| Parameters: |
|
|---|---|
| Returns: | A new instance of jnpr.space.resource.Resource |
| Raises: | jnpr.space.rest.RestException if the GET request results in an error response. The exception’s response attribute will have the full response from Space. |
Creates a new instance of jnpr.space.resource.Resource based on the given parameters. This method creates it in-memory locally and not on the Space server. The post() method must be invoked on the Resource object to get it created on the Space server.
| Parameters: |
|
|---|---|
| Returns: | A new instance of jnpr.space.resource.Resource |
A module with utility functions for XML handling.
Some responses from Space contains escaped form for XML special characters. E.g. ‘<’ for ‘<’, etc. This method removes these escaped notations.
| Parameters: | src (str) – Source string |
|---|---|
| Returns: | String with escaped notations replaced. |
Returns text from Response object that will be str (unicode) in both python 2 and 3.
Returns an XML object (lxml.Element) from the text inside the Response object.
Convert an attribute name to its XML equivalent by replacing all ‘_’ with ‘-‘. CamelCase names are retained as such.
| Parameters: | attr_name (str) – Name of the attribute |
|---|---|
| Returns: | Attribute name in XML format. |
Remove XML attribute junos:group from the given string.
| Parameters: | src (str) – Source string |
|---|---|
| Returns: | String with junos:group occurrences removed. |
Convert an XML attribute name to its pythonic equivalent by replacing all ‘-‘ with ‘_’. CamelCase names are retained as such.
| Parameters: | attr_name (str) – Name of the attribute |
|---|---|
| Returns: | Attribute name in pythonic format. |
Uses lxml.objectify to parse the given XML string and returns a Python object.
| Parameters: | src (str) – Source XML string |
|---|---|
| Returns: | An instance of `lxml.objectify.ObjectifiedElement` |


select()
Input:
- FD sets for read, write, error.
- Timeout
Output:
- >=0: Active bit on FD set
- -1: set
errno
global
select
in Big O notation*
- FD_SET: O(1)
- FD_ZERO: O(FD_SETSIZE/8)
select
kernel-side: CPU: O(2*FD_SETSIZE)
select
kernel-side: Memory Copy: O(3*FD_SETSIZE/8)
(*) FD_SETSIZE is a constant in a header file, but give me some rope here.
Evolutionary pressure: 1996.
FD_SETSIZE = 1024
squid
** was written.
more clients.
multiple FDs per-client. (not just network)
HTTP keepalive.
(**) actually lots of software was written.
Redefine FD_SETSIZE
to be bigger!
Introducing poll()
Instead of a fixed size array, let the user allocate it!
Added in Linux 2.1.32, Jan, 1997.
poll()
Input:
- FDs array
- Size of FD array
- Timeout
Output:
- >=1: Updated
.revent
for each FD.
- -1: set
errno
global
poll
in Big O notation
- Array operations for FD: O(n)
poll
kernel-side: CPU: O(2*n)
poll
kernel-side: Memory Copy: O(n)
(*) Assuming you don't need to realloc
as n
increases.
(*) Because pollfd
is a struct, you can index it in another data structure to get better big O in user-space.
Evolutionary pressure continues
more clients.
global clients.
idle network protocols. (due to TCP handshake)
c10k and HTTP 1.1
- 10,000 clients: any 10ms period, 10 active.
- Userspace
poll()
needs to do O(10,000)
operations
- Kernel needs to copy
10,000 * sizeof(pollfd)
: 80kb
- Kernel needs to do
O(2*10,000)
operations.
See also: C10K problem
Evolutionary pressure continues
GUI Event Loops
filesystem watches
non-network objects.
signals
Linux Answer: Everything is an FD.
Introducing epoll()
Added in Linux 2.5.44, Oct, 2002.
epoll()
Multiple functions:
- epoll_create
- epoll_ctl
- epoll_wait
epoll_wait:
- epoll FD
- Output Array
- Timeout
epoll
in Big O notation
epoll_ctl
add/remove: O(log N)
epoll_wait
kernel-side: CPU: O(1)
epoll_wait
kernel-side: Memory Copy Out: O(active)
Parallel Evolution
|
FreeBSD |
Linux |
Windows |
| FD_SET |
select |
select |
WSASelect |
| FD Array |
poll |
poll |
WSAPoll |
| Evented |
kqueue |
epoll |
- |
| Other Objects |
kqueue |
everything is FD |
WaitForMultipleObjects |
| Async IO |
- |
- |
IOCP |
Not a single event.
20 years of Selection Pressure.
Your development world is defined by this evolutionary path.
Applied Multiplexing
libuv / node.js / luvi
twisted
eventlet
go


Amethyst\Managers\StockManager
The manager is the main class to access and manipulate your model.
Why use the manager instead of the model? Because the manager handle all the boring stuff like validation and authorization for you. Remember that the manager return always a Result.
- Create a new entity
- Update an entity
- Remove an entity
- Performing queries with the Repository
- Handle the result
- Authorization
- Attributes
- Errors
- Permissions
Extend the class
Create the new manager in app/Managers/StockManager
namespace App\Managers;
use Amethyst\Managers\StockManager as Manager;
class StockManager extends Manager {
// ...
}
Update the file configs/amethyst.warehouse
with the new class
return [
'data' => [
'stock' => [
'manager' => App\Managers\StockManager::class,
],
]
];


Posted 31 May 2017
So everyone is talking about this hip “new” kid on the block for PHP: Generics. The rfc is on the table and a lot of people are getting all excited about it, but you don’t fully see the excitement? Let’s explore what it’s all about!


Design of a house is an art form in itself, combining a client’s personal wishes and budget with functionality while lifting the spirit of both the visitors and the regular inhabitants. In contrast to public buildings, a client is much more involved in the house he commissions where we as architects are expected to respect their requirements and take into consideration their perceived status and sensibilities to far larger extent.
The lexical meaning of housing is a building for human habitation that protects them from natural and social harms, being faithful to the basics is always our key in designing or building a new house. The word “habitation” can be explained and interpreted by the architect to a wide range of creative ideas.
When well executed & constructed, the design of a residence can be timeless as it can be seen in the work of “old masters”, based on that we consider each house we build is unique.


[1]
sometimes being a marriott grand hotel flora on via veneto.
[2]
the view was also wonderful the city and the via veneto.


subject
REPOSITORY 28080JPV79A
ALPHONSO CARTER
Total documents: 434 files
Recent share at: January 11, 2017
subject
View Books Archive FHIAEORGXKN7ZS
BRIAN HARRIS
Total documents: 384 files
Recent share at: July 26, 2016
subject
View Archive HEP7GKSMLJC
LLOYD DACH 1
Total documents: 390 files
Recent share at: January 05, 2017
subject
View ePubs Directory IK2N8OFKRXXWN
TERRY PURDY 2
Total documents: 443 files
Recent share at: December 15, 2016
subject
View Documents Archive PQSKSFSUVOH4
ALENE KUPHAL DDS
Total documents: 455 files
Recent share at: August 09, 2016
subject
View Books Directory DWTBO7W3
JACK WEST
Total documents: 393 files
Recent share at: October 22, 2016
subject
View Directory ZWAI0B7WVA7Z9QF
DR MOSHE CRIST
Total documents: 394 files
Recent share at: December 21, 2016
subject
View Docs Archive GMTONBWVWR
SHEA BERGSTROM
Total documents: 441 files
Recent share at: December 27, 2016
subject
View Documents Directory IC428UQA0J
LEOPOLDO RUNTE 1
Total documents: 386 files
Recent share at: October 24, 2016
subject
View Docs Archive ZI3MTGMWP1CCD3E
KASSANDRA PARKER
Total documents: 362 files
Recent share at: November 13, 2016
subject
View Directory LDPGXRS3Q
COY BERGSTROM 2
Total documents: 367 files
Recent share at: December 06, 2016
subject
View Docs Directory DGL9ZXUXJET
KRYSTAL MANN
Total documents: 443 files
Recent share at: August 30, 2016
subject
View Directory EF6MFPYFCL
ELENORA WARD
Total documents: 460 files
Recent share at: October 16, 2016
subject
View Repository RPPTE363RO
PROF JOSIE KUNDE
Total documents: 364 files
Recent share at: January 14, 2017
subject
View Books Directory ALQSODZKI6
CEDRICK SPENCER 1
Total documents: 442 files
Recent share at: January 11, 2017
subject
View eBooks Catalog UXJCWNTJSVBU
ZAKARY LYNCH
Total documents: 426 files
Recent share at: July 28, 2016
subject
View Books Catalog WXJ5M5MI3X40WYJ
EVERT KUHN
Total documents: 429 files
Recent share at: August 26, 2016
subject
View Documents Catalog MGCMAS2ROSNTNR
IRVING HODKIEWICZ 1
Total documents: 440 files
Recent share at: November 08, 2016
subject
View Documents Repository 1NAGMPQJUQ
ALENE MURRAY I
Total documents: 463 files
Recent share at: January 06, 2017
subject
View Archive O1IIWODPANF9AXZ
PROF MARYSE REICHEL 1
Total documents: 395 files
Recent share at: September 22, 2016
subject
View eBooks Directory E0JVHNURSL
LEIF FAY
Total documents: 369 files
Recent share at: August 30, 2016
subject
View eBooks Catalog 9ZZU0ZUE
ADAM SCHROEDER 2
Total documents: 177 files
Recent share at: August 05, 2016
subject
View ePubs Repository HQKNZPGH


| Clear | |
| +1 | {{0 - $index}} |
When you complete an episode, mark one Maintenance Clock. When the Maintenance Clock is full, reset the Maintenance Clock and check Maintenance Past Due. If it is already past due, the MC will inflict damage to the ship or a ship system.
Some moves will allow you to reset the Maintenance Clock and clear the Maintenance Past Due.
While Maintenance Past Due is checked, all rolls involving the Ship and its systems are at Disadvantage.
When your Ship takes Damage, mark off one of the options below for each point of Damage your Ship suffers.
When your Ship takes Damage and there are no unchecked options to mark off, your Ship is destroyed.
When you perform Spot Repairs on your Ship, check the Spot Repairs option for the Damage you are repairing, and apply the appropriate effect.
Your armor took the damage for you, absorbing some of the damage without compromising the ship. Superficial Damage makes your ship look uglier, but it doesn't have any additional negative effects. You can't Spot Repair Superficial Damage. Some ships have extra armor, allowing additional Superficial Damage to be absorbed.
The deck shudders and panels flicker. Any roll using a Ship System is at Disadvantage.
When you perform Spot Repairs on a Direct Hit, you restore normal operation, negate Disadvantage from Direct Hit.
A hole is blasted in the side of your ship and one or more sections are exposed to vacuum.
When you perform Spot Repairs on a Hull Breach, you restore atmosphere to the vented sections, but you are dangerously low on Life Support, any rolls that require physical exertion are at Disadvantage.
All systems are down. You keep your inertia, but are also at the mercy of any gravity acting on you.
When you perform Spot Repairs on Adrift, you restore power - barely. You have Disadvantage on all system rolls until you have a chance to enact proper repairs.
When you performs spot repairs on your ship to patch over Damage, describe how you do it. If there are no immediate pressures and you have plenty of time, you do it with little complication. Apply Spot Repairs to one Damage option. If you are under immediate danger or time is limited, act under pressure to complete the repairs, unless you have a move better suited to the job.
When you power off your active sensors to conceal your vessel, roll+Smarts. On a 10+, hold 2. On a 7-9, hold 1. Spend hold 1 for 1 on the following:
When you run out of holds or act overtly, you become detectable again.
On a miss, prepare for the worst.
When you assess the situation using your Ship's sensors, you have additional questions you can ask. Any question with the active scan tag temporarily apply the overt tag to your Ship.
{{prompt.text}}
{{SF.getPaidAftermath}}
{{piece.text}}
Your ship starts with 4 Upgrade points to buy your starting Modules and may have up to 10 Modules installed. Modules without a box to mark do not count against your maximum Modules.
When you buy an Upgrade for your ship, check an upgrade box. Unless a Module says otherwise, you need to fill all of the Upgrade boxes before that Module is fully installed and functional in your ship.
If you are the maximum number of Modules, you have to pull out a Module before you can start installing a new one. You do not get a refund on Upgrade Points.
The Ship is like another character that is utilized by every member of the Crew.
Each Crew has a motivation that relates to how they got their Ship. The motivatin determines which clock your Crew contends with:
{{SF.blurb}}
Decide on a name together. Make it evocative and pronounceable. Does the Ship's VI have the same name?

If you want you can draw a cool picture of your ship, or its basic layout. List a few interesting or important locations on your ship where the crew often interacts.


Squash is great because it is fast paced, fun, and easy to learn. It is quite simply the best sport ever!
My favorite players are:


ScreenThenable
public protocol ScreenThenable
A protocol representing the route to which actions can be added.
-
A type of root container that will be used to perform actions.
See also
ScreenContainer
Declaration
Swift
associatedtype Root : ScreenContainer
-
A type of the current container, which is the container for the actions to be added.
See also
ScreenContainer
Declaration
Swift
associatedtype Current : ScreenContainer
-
Route actions that can be performed in the root container.
Declaration
Swift
var actions: [AnyScreenAction<Root, Void>] { get }
-
Adds actions.
Declaration
Swift
func then(_ actions: [AnyScreenAction<Current, Void>]) -> Self
Parameters
actions
Actions to be added to the current actions.
Return Value
An instance containing the new actions.
-
Adds an action.
Declaration
Swift
func then<Action: ScreenAction>( _ action: Action ) -> Self where Action.Container == Current
Parameters
action
Action to be added to the current actions
Return Value
An instance containing the new action.
-
call(to:
Extension method) Undocumented
Declaration
Swift
public func call(to phoneNumber: String) -> Self
-
mail(to:
Extension methodsubject: body: ) Undocumented
Declaration
Swift
public func mail( to emailAddress: String, subject: String? = nil, body: String? = nil ) -> Self
-
openURL(_:
Extension methodfallbackURLs: options: ) Undocumented
Declaration
Swift
public func openURL( _ url: URL, fallbackURLs: [URL] = [], options: [UIApplication.OpenExternalURLOptionsKey: Any] = [:] ) -> Self
-
openAppSettings()
Extension methodUndocumented
Declaration
Swift
public func openAppSettings() -> Self
-
openStoreApp(id:
Extension methodforReview: ) Undocumented
Declaration
Swift
public func openStoreApp(id: String, forReview: Bool = false) -> Self
-
first(_:
Extension method) Undocumented
Declaration
Swift
public func first<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output> ) -> ScreenRoute<Root, Output>
-
first(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func first<Output, Route: ScreenThenable>( _ predicate: ScreenPredicate<Output>, route: Route ) -> Self where Route.Root == Output
-
first(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func first<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output>, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
last(_:
Extension method) Undocumented
Declaration
Swift
public func last<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output> ) -> ScreenRoute<Root, Output>
-
last(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func last<Output, Route: ScreenThenable>( _ predicate: ScreenPredicate<Output>, route: Route ) -> Self where Route.Root == Output
-
last(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func last<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output>, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
top(_:
Extension method) Undocumented
Declaration
Swift
public func top<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output> ) -> ScreenRoute<Root, Output>
-
top(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func top<Output, Route: ScreenThenable>( _ predicate: ScreenPredicate<Output>, route: Route ) -> Self where Route.Root == Output
-
top(_:
Extension methodroute: ) Undocumented
Declaration
Swift
public func top<Output: ScreenContainer>( _ predicate: ScreenPredicate<Output>, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
refresh()
Extension methodUndocumented
Declaration
Swift
public func refresh() -> Self
-
fail(with:
Extension method) Undocumented
Declaration
Swift
public func fail(with error: Error) -> Self
-
fold(action:
Extension method) Performs action to retrieve the container that will be used to perform further actions of the route.
Declaration
Swift
public func fold<Action: ScreenAction>( action: Action ) -> ScreenRoute<Root, Action.Output> where Action.Container == Current
Parameters
action
Action to retrieve the container.
Return Value
An instance containing the new action.
-
fold(action:
Extension methodnested: ) Performs a nested action in the container that will be retrieved by performing another action.
Declaration
Swift
public func fold<Action: ScreenAction, Nested: ScreenAction>( action: Action, nested: Nested ) -> Self where Action.Container == Current, Action.Output == Nested.Container
Parameters
action
Action to retrieve the container.
nested
Nested action to be performed in the retrieved container.
Return Value
An instance containing the new action.
-
fold(action:
Extension methodnested: ) Performs nested actions in the container that will be retrieved by performing another action.
Declaration
Swift
public func fold<Action: ScreenAction>( action: Action, nested: [AnyScreenAction<Action.Output, Void>] ) -> Self where Action.Container == Current, Action.Output: ScreenContainer
Parameters
action
Action to retrieve the container.
nested
Nested actions to be performed in the retrieved container.
Return Value
An instance containing the new action.
-
fold(action:
Extension methodnested: ) Performs a nested rout in the container that will be retrieved by performing another action.
Declaration
Swift
public func fold<Action: ScreenAction, Route: ScreenThenable>( action: Action, nested: Route ) -> Self where Action.Container == Current, Action.Output == Route.Root
Parameters
action
Action to retrieve the container.
nested
Nested route to be performed in the retrieved container.
Return Value
An instance containing the new action.
-
fold(action:
Extension methodnested: ) Performs a nested rout in the container that will be retrieved by performing another action.
Declaration
Swift
public func fold<Action: ScreenAction>( action: Action, nested: (_ route: ScreenRootRoute<Action.Output>) -> ScreenRouteConvertible ) -> Self where Action.Container == Current
Parameters
action
Action to retrieve the container.
nested
The closure that should return the modified route that will be performed in the retrieved container.
Return Value
An instance containing the new action.
-
from(_:
Extension method) Undocumented
Declaration
Swift
public func from<Output: ScreenContainer>( _ container: Output? ) -> ScreenRoute<Root, Output>
-
from(_:
Extension methodto: ) Undocumented
Declaration
Swift
public func from<Output, Route: ScreenThenable>( _ container: Output?, to route: Route ) -> Self where Route.Root == Output
-
from(_:
Extension method_: ) Undocumented
Declaration
Swift
public func from<Output: ScreenContainer>( _ container: Output?, _ route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
wait(for:
Extension method) Waits for a given time interval.
Usage examples
- Shows an error message and dismisses it after 3 seconds:
screenNavigator.navigate(from: self) { route in route .showAlert(.somethingWentWrong) .wait(for: 3.0) .dismiss() }
Declaration
Swift
public func wait(for duration: TimeInterval) -> Self
Parameters
duration
Waiting time in seconds.
Return Value
An instance containing the new action.
-
try(action:
Extension methodresolution: ) Undocumented
Declaration
Swift
public func `try`<Action: ScreenAction>( action: Action, resolution: ScreenTryResolution<Current, Action.Output> ) -> Self where Action.Container == Current
-
try(action:
Extension methodresolution: ) Undocumented
Declaration
Swift
public func `try`<Action: ScreenAction>( action: Action, resolution: ( _ resolution: ScreenTryResolution<Current, Action.Output> ) -> ScreenTryResolution<Current, Action.Output> ) -> Self where Action.Container == Current
-
try(action:
Extension methoddone: ) Undocumented
Declaration
Swift
public func `try`<Action: ScreenAction, Route: ScreenThenable>( action: Action, done: @escaping (_ value: Action.Output) -> Route ) -> Self where Action.Container == Current, Route.Root == Current
-
try(action:
Extension methoddone: ) Undocumented
Declaration
Swift
public func `try`<Action: ScreenAction>( action: Action, done: @escaping ( _ value: Action.Output, _ route: ScreenRootRoute<Current> ) -> ScreenRouteConvertible ) -> Self where Action.Container == Current
-
ensure(with:
Extension method) Undocumented
Declaration
Swift
public func ensure<Route: ScreenThenable>( with route: Route ) -> ScreenRootRoute<Root> where Route.Root == Root
-
ensure(with:
Extension method) Undocumented
Declaration
Swift
public func ensure( with route: (_ route: ScreenRootRoute<Root>) -> ScreenRouteConvertible ) -> ScreenRootRoute<Root>
-
fallback(to:
Extension method) Undocumented
Declaration
Swift
public func fallback<Route: ScreenThenable>( to route: @escaping (_ error: Error) -> Route ) -> ScreenRootRoute<Root> where Route.Root == Root
-
fallback(to:
Extension method) Undocumented
Declaration
Swift
public func fallback( to route: @escaping ( _ error: Error, _ route: ScreenRootRoute<Root> ) -> ScreenRouteConvertible ) -> ScreenRootRoute<Root>
-
fallback(to:
Extension method) Undocumented
Declaration
Swift
public func fallback<Route: ScreenThenable>( to route: Route ) -> ScreenRootRoute<Root> where Route.Root == Root
-
cauterize()
Extension methodUndocumented
Declaration
Swift
public func cauterize() -> ScreenRootRoute<Root>
-
showActionSheet(_:
Extension methodanimated: ) Undocumented
Declaration
Swift
public func showActionSheet( _ actionSheet: ActionSheet, animated: Bool = true ) -> Self
-
showAlert(_:
Extension methodanimated: ) Undocumented
Declaration
Swift
public func showAlert( _ alert: Alert, animated: Bool = true ) -> Self
-
showDocumentPreview(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showDocumentPreview<Route: ScreenThenable>( _ documentPreview: DocumentPreview, animated: Bool = true, route: Route ) -> Self where Route.Root == UIDocumentInteractionController
-
showDocumentPreview(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showDocumentPreview( _ documentPreview: DocumentPreview, animated: Bool = true, route: ( _ route: ScreenRootRoute<UIDocumentInteractionController> ) -> ScreenRouteConvertible = { $0 } ) -> Self
-
showMediaPicker(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showMediaPicker<Route: ScreenThenable>( _ mediaPicker: MediaPicker, animated: Bool = true, route: Route ) -> Self where Route.Root == UIImagePickerController
-
showMediaPicker(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showMediaPicker( _ mediaPicker: MediaPicker, animated: Bool = true, route: ( _ route: ScreenRootRoute<UIImagePickerController> ) -> ScreenRouteConvertible = { $0 } ) -> Self
-
showStoreProduct(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showStoreProduct<Route: ScreenThenable>( _ storeProduct: StoreProduct, animated: Bool = true, route: Route ) -> Self where Route.Root == SKStoreProductViewController
-
showStoreProduct(_:
Extension methodanimated: route: ) Undocumented
Declaration
Swift
public func showStoreProduct( _ storeProduct: StoreProduct, animated: Bool = true, route: ( _ route: ScreenRootRoute<SKStoreProductViewController> ) -> ScreenRouteConvertible = { $0 } ) -> Self
-
requestStoreReview()
Extension methodUndocumented
Declaration
Swift
public func requestStoreReview() -> Self
-
makeVisible(stackAnimation:
Extension methodtabsAnimation: dissmissAnimated: ) Undocumented
Declaration
Swift
public func makeVisible( stackAnimation: ScreenStackAnimation? = .default, tabsAnimation: ScreenTabAnimation? = nil, dissmissAnimated: Bool = true ) -> Self
-
dismiss(animated:
Extension method) Dismisses the screen container that was presented modally by the container in which the action is performed.
Note
Unlike thedismiss(animated:completion:)
method ofUIViewController
, this action dismisses only the presented container.Usage examples
navigator.navigate(from: container) { $0.dismiss() }
Declaration
Swift
public func dismiss(animated: Bool = true) -> Self
Parameters
animated
Pass
true
to animate the transition orfalse
if you do not want the transition to be animated. The default value istrue
.Return Value
An instance containing the new action.
-
present(_:
Extension methodanimated: route: ) Presents a screen modally and performs a route on the screen container.
Usage examples
- Presents a chat screen modally, then shows an error message on its container:
let nestedRoute = ScreenModalRoute.showAlert(.somethingWentWrong) navigator.navigate(from: container) { route in route.present(ChatScreen(chatID: chatID), route: nestedRoute) }
See also
Declaration
Parameters
screen
The screen to display over the current container’s content.
animated
Pass
true
to animate the transition orfalse
if you do not want the transition to be animated. The default value istrue
.route
The route that will be performed in the presented screen container.
Return Value
An instance containing the new action.
-
present(_:
Extension methodanimated: route: ) Presents a screen modally and performs a route on the screen container.
Usage examples
- Presents a chat screen modally:
navigator.navigate(from: container) { route in route.present(ChatScreen(chatID: chatID)) }
- Presents a chat screen modally, then shows an error message on its container:
navigator.navigate(from: self) { route in route.present(ChatScreen(chatID: chatID)) { route in route.showAlert(.somethingWentWrong) } }
See also
Declaration
Swift
public func present<New: Screen>( _ screen: New, animated: Bool = true, route: (_ route: ScreenRootRoute<New.Container>) -> ScreenRouteConvertible = { $0 } ) -> Self where New.Container: UIViewController
Parameters
screen
The screen to display over the current container’s content.
animated
Pass
true
to animate the transition orfalse
if you do not want the transition to be animated. The default value istrue
.route
The closure that should return the modified route that will be performed in the presented screen container. The default value returns empty route.
Return Value
An instance containing the new action.
-
presented
Extension methodRetrieves the modal container that is presented by the current container, or one of its ancestors in the container hierarchy.
Usage examples
- Dismisses the screen container that is presented by the presented container:
navigator.navigate(from: container) { route in route .presented .dismiss() }
Declaration
Swift
public var presented: ScreenRoute<Root, UIViewController> { get }
Return Value
An instance containing the new action.
-
presented(of:
Extension method) Retrieves the screen container that is presented by the current container, or one of its ancestors in the container hierarchy.
Usage examples
- Pops the top screen container from the stack that is presented by the container:
navigator.navigate(from: container) { route in route .presented(of: UINavigationController.self) .pop() }
Declaration
Swift
public func presented<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
Parameters
type
The type to which the container will be cast.
Return Value
An instance containing the new action.
-
presented(of:
Extension methodroute: ) Performs a route on the screen container that is presented by the current container, or one of its ancestors in the container hierarchy.
Usage examples
- Pops the top screen container from the stack that is presented by the container:
let nestedRoute = ScreenStackRoute.pop() navigator.navigate(from: container) { route in route.presented(of: UINavigationController.self, route: nestedRoute) }
- Dismisses the screen container that is presented by the presented container:
let nestedRoute = ScreenModalRoute.dismiss() navigator.navigate(from: container) { route in route.presented(route: nestedRoute) }
Declaration
Parameters
type
The type to which the container will be cast.
route
The route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
presented(of:
Extension methodroute: ) Performs a route on the screen container that is presented by the current container, or one of its ancestors in the container hierarchy.
Usage examples
- Pops the top screen container from the stack that is presented by the container:
navigator.navigate(from: container) { route in route.presented(of: UINavigationController.self) { $0.pop() } }
- Dismisses the container that is presented by the presented container:
navigator.navigate(from: self) { route in route.presented { $0.dismiss() } }
Declaration
Swift
public func presented<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
Parameters
type
The type to which the container will be cast.
route
The closure that should return the modified route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
presenting
Extension methodRetrieves the modal container that presented the current container.
Usage examples
- Dismisses the current container:
navigator.navigate(from: container) { route in route .presenting .dismiss() }
Declaration
Swift
public var presenting: ScreenRoute<Root, UIViewController> { get }
Return Value
An instance containing the new action.
-
presenting(of:
Extension method) Retrieves the screen container that presented the current container.
Usage examples
- Pops the top screen container from the stack that presented the current container:
navigator.navigate(from: container) { route in route .presenting(of: UINavigationController.self) .pop() }
Declaration
Swift
public func presenting<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
Parameters
type
The type to which the container will be cast.
Return Value
An instance containing the new action.
-
presenting(of:
Extension methodroute: ) Performs a route on the screen container that presented the current container.
Usage examples
- Pops the top screen container from the stack that presented the current container:
let nestedRoute = ScreenStackRoute.pop() navigator.navigate(from: container) { route in route.presenting(of: UINavigationController.self, route: nestedRoute) }
- Dismisses the current container:
let nestedRoute = ScreenModalRoute.dismiss() navigator.navigate(from: container) { route in route.presenting(route: nestedRoute) }
Declaration
Swift
public func presenting<Output: UIViewController, Next: ScreenContainer>( of type: Output.Type = Output.self, route: ScreenRoute<Output, Next> ) -> Self
Parameters
type
The type to which the container will be cast.
route
The route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
presenting(of:
Extension methodroute: ) Performs a route on the screen container that presented the current container.
Usage examples
- Pops the top screen container from the stack that presented the current container:
navigator.navigate(from: container) { route in route.presenting(of: UINavigationController.self) { $0.pop() } }
- Dismisses the current container:
navigator.navigate(from: self) { route in route.presenting { $0.dismiss() } }
Declaration
Swift
public func presenting<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
Parameters
type
The type to which the container will be cast.
route
The closure that should return the modified route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
stack
Extension methodRetrieves the nearest ancestor in the container hierarchy that is a stack container.
Usage examples
- Pops the top screen container from the stack of the current container:
navigator.navigate(from: container) { route in route .stack .pop() }
Declaration
Swift
public var stack: ScreenRoute<Root, UINavigationController> { get }
Return Value
An instance containing the new action.
-
stack(of:
Extension method) Retrieves the nearest ancestor in the container hierarchy that is a stack container.
Usage examples
- Pops the top screen container from the stack of the current container:
navigator.navigate(from: container) { route in route .stack(of: MyNavigationController.self) .pop() }
Declaration
Swift
public func stack<Output: UINavigationController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
Parameters
type
The type to which the container will be cast.
Return Value
An instance containing the new action.
-
stack(of:
Extension methodroute: ) Performs a route on the nearest ancestor in the container hierarchy that is a stack container.
Usage examples
- Pops the top screen container from the stack of the current container:
let nestedRoute = ScreenStackRoute.pop() navigator.navigate(from: container) { route in route.stack(route: nestedRoute) }
Declaration
Parameters
type
The type to which the container will be cast.
route
The route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
stack(of:
Extension methodroute: ) Performs a route on the nearest ancestor in the container hierarchy that is a stack container.
Usage examples
- Pops the top screen container from the stack of the current container:
navigator.navigate(from: container) { route in route.stack { $0.pop() } }
Declaration
Swift
public func stack<Output: UINavigationController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
Parameters
type
The type to which the container will be cast.
route
The closure that should return the modified route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
tabs
Extension methodRetrieves the nearest ancestor in the container hierarchy that is a tabs container.
Usage examples
- Selects tab from the tab container of the current container:
navigator.navigate(from: container) { route in route .tabs .selectTab(with: .index(1)) }
Declaration
Swift
public var tabs: ScreenRoute<Root, UITabBarController> { get }
Return Value
An instance containing the new action.
-
tabs(of:
Extension method) Retrieves the nearest ancestor in the container hierarchy that is a tabs container.
Usage examples
- Selects tab from the tab container of the current container:
navigator.navigate(from: container) { route in route .tabs(of: MyTabBarController.self) .selectTab(with: .index(1)) }
Declaration
Swift
public func tabs<Output: UITabBarController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
Parameters
type
The type to which the container will be cast.
Return Value
An instance containing the new action.
-
tabs(of:
Extension methodroute: ) Retrieves the nearest ancestor in the container hierarchy that is a tabs container.
Usage examples
- Selects tab from the tab container of the current container:
let nestedRoute = ScreenTabsRoute.selectTab(with: .index(1)) navigator.navigate(from: container) { route in route.tabs(route: nestedRoute) }
Declaration
Parameters
type
The type to which the container will be cast.
route
The route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
tabs(of:
Extension methodroute: ) Retrieves the nearest ancestor in the container hierarchy that is a tabs container.
Usage examples
- Selects tab from the tab container of the current container:
navigator.navigate(from: container) { route in route.tabs(route: nestedRoute) { $0.selectTab(with: .index(1)) } }
Declaration
Swift
public func tabs<Output: UITabBarController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
Parameters
type
The type to which the container will be cast.
route
The closure that should return the modified route that will be performed in the retrieved screen container.
Return Value
An instance containing the new action.
-
stackRoot
Extension methodUndocumented
Declaration
Swift
public var stackRoot: ScreenRoute<Root, UIViewController> { get }
-
stackRoot(of:
Extension method) Undocumented
Declaration
Swift
public func stackRoot<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
-
stackRoot(of:
Extension methodroute: ) -
stackRoot(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func stackRoot<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
stackTop
Extension methodUndocumented
Declaration
Swift
public var stackTop: ScreenRoute<Root, UIViewController> { get }
-
stackTop(of:
Extension method) Undocumented
Declaration
Swift
public func stackTop<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
-
stackTop(of:
Extension methodroute: ) -
stackTop(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func stackTop<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
stackVisible
Extension methodUndocumented
Declaration
Swift
public var stackVisible: ScreenRoute<Root, UIViewController> { get }
-
stackVisible(of:
Extension method) Undocumented
Declaration
Swift
public func stackVisible<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
-
stackVisible(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func stackVisible<Output: UIViewController, Route: ScreenThenable>( of type: Output.Type = Output.self, route: Route ) -> Self where Route.Root == Output
-
stackVisible(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func stackVisible<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
pop(to:
Extension methodanimation: separated: ) Undocumented
Declaration
Swift
public func pop( to predicate: ScreenStackPopPredicate, animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self
-
pop(animation:
Extension methodseparated: ) Undocumented
Declaration
Swift
public func pop( animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self
-
popToRoot(animation:
Extension methodseparated: ) Undocumented
Declaration
Swift
public func popToRoot( animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self
-
clear(animation:
Extension method) Undocumented
Declaration
Swift
public func clear(animation: ScreenStackAnimation? = .default) -> Self
-
push(_:
Extension methodanimation: separated: ) Undocumented
Declaration
Swift
public func push<New: Screen>( _ screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self where New.Container: UIViewController
-
push(_:
Extension methodanimation: separated: route: ) Undocumented
Declaration
Swift
public func push<New: Screen, Route: ScreenThenable>( _ screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false, route: Route ) -> Self where New.Container: UIViewController, Route.Root == New.Container
-
push(_:
Extension methodanimation: separated: route: ) Undocumented
Declaration
Swift
public func push<New: Screen>( _ screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false, route: (_ route: ScreenRootRoute<New.Container>) -> ScreenRouteConvertible ) -> Self where New.Container: UIViewController
-
replace(with:
Extension methodanimation: separated: ) Undocumented
Declaration
Swift
public func replace<New: Screen>( with screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self where New.Container: UIViewController
-
replace(with:
Extension methodanimation: separated: route: ) Undocumented
Declaration
Swift
public func replace<New: Screen, Route: ScreenThenable>( with screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false, route: Route ) -> Self where New.Container: UIViewController, Route.Root == New.Container
-
replace(with:
Extension methodanimation: separated: route: ) Undocumented
Declaration
Swift
public func replace<New: Screen>( with screen: New, animation: ScreenStackAnimation? = .default, separated: Bool = false, route: (_ route: ScreenRootRoute<New.Container>) -> ScreenRouteConvertible ) -> Self where New.Container: UIViewController
-
setStack(modifiers:
Extension methodanimation: separated: ) Undocumented
Declaration
Swift
public func setStack( modifiers: [ScreenStackModifier], animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self
-
setStack(modifier:
Extension methodanimation: separated: ) Undocumented
Declaration
Swift
public func setStack( modifier: ScreenStackModifier, animation: ScreenStackAnimation? = .default, separated: Bool = false ) -> Self
-
selectedTab
Extension methodUndocumented
Declaration
Swift
public var selectedTab: ScreenRoute<Root, UIViewController> { get }
-
selectedTab(of:
Extension method) Undocumented
Declaration
Swift
public func selectedTab<Output: UIViewController>( of type: Output.Type ) -> ScreenRoute<Root, Output>
-
selectedTab(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func selectedTab<Output: UIViewController, Route: ScreenThenable>( of type: Output.Type = Output.self, route: Route ) -> Self where Route.Root == Output
-
selectedTab(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func selectedTab<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
setupTab(with:
Extension methodroute: ) -
setupTab(with:
Extension methodroute: ) Undocumented
Declaration
Swift
public func setupTab<New: Screen>( with screen: New, route: (_ route: ScreenRootRoute<New.Container>) -> ScreenRouteConvertible = { $0 } ) -> Self where New.Container: UIViewController
-
selectTab(of:
Extension methodwith: animation: route: ) Undocumented
Declaration
Swift
public func selectTab<Output: UIViewController, Route: ScreenThenable>( of type: Output.Type = Output.self, with predicate: ScreenTabPredicate, animation: ScreenTabAnimation? = nil, route: Route ) -> Self where Route.Root == Output
-
selectTab(of:
Extension methodwith: animation: route: ) Undocumented
Declaration
Swift
public func selectTab<Output: UIViewController>( of type: Output.Type = Output.self, with predicate: ScreenTabPredicate, animation: ScreenTabAnimation? = nil, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible = { $0 } ) -> Self
-
root
Extension methodUndocumented
Declaration
Swift
public var root: ScreenRoute<Root, UIViewController> { get }
-
root(of:
Extension method) Undocumented
Declaration
Swift
public func root<Output: UIViewController>( of type: Output.Type = Output.self ) -> ScreenRoute<Root, Output>
-
root(of:
Extension methodroute: ) -
root(of:
Extension methodroute: ) Undocumented
Declaration
Swift
public func root<Output: UIViewController>( of type: Output.Type = Output.self, route: (_ route: ScreenRootRoute<Output>) -> ScreenRouteConvertible ) -> Self
-
setRoot(to:
Extension methodanimation: route: ) Undocumented
Declaration
Swift
public func setRoot<New: Screen, Route: ScreenThenable>( to screen: New, animation: ScreenRootAnimation? = nil, route: Route ) -> Self where New.Container: UIViewController, Route.Root == New.Container
-
setRoot(to:
Extension methodanimation: route: ) Undocumented
Declaration
Swift
public func setRoot<New: Screen>( to screen: New, animation: ScreenRootAnimation? = nil, route: (_ route: ScreenRootRoute<New.Container>) -> ScreenRouteConvertible = { $0 } ) -> Self where New.Container: UIViewController


I am a visual thinker and a people person. Over the past few years, I have been drawn towards opportunities that allow me to develop these two qualities. My career is consumed by employment that further enhances my love of design and utilizes my enthusiasm to lead. My passion for design is highlighted through over 5 years of professional marketing experience. My desire to collaborate with others led me to supplement my bachelor’s degree and pursue an MBA with a focus in Marketing & Leadership.Currently, I am in charge of all communication and marketing content for Legacy, an engineering based manufacturing company in NYC. In my free time, I freelance for several companies.


| Band of Trust | Great Selection | Low Prices | Fast Delivery | Mobile App Offers |
Clearance Sale |
Today's Offers |
Wishlist |
HOME > PRODUCTS > EXTERNAL DEVICES > HARD DISKS > Seagate Expansion 1 TB External Hard Disk
Please Note: Delivery time frame is an estimation only. Actual delivery time may vary based on product availability with the selling merchant, shipping address, and courier or any other delivery issues. Vision Hardware offers choice to cancel an order prior to its shipment by contacting us at: Customer Support.
Product Description:
GENERAL SPECIFICATIONS
Brand Seagate
Model Name Expansion Falcun External USB 3.0
Capacity 1 TB
Connectivity USB 3.0
Dimensions 122.3 x 81.1 x 15.5 mm
Features USB Powered, Simply Drag and Drop to Save Files, Automatically Recognized by Windows OS, Compatible with USB 2.0
Form Factor Portable
OS Supported Windows XP
In The Box EHDD, Connecting Cable
Variant 1 TB
Weight 170 g
WARRANTY
Warranty Summary 3 Years
Features:
Key Feature
Brand: |
Seagate |
Model No: |
Expansion Falcun External USB 3.0 |
Capacity: |
1 TB |
Dimensions: |
122.3 x 81.1 x 15.5 mm |
Warranty Available: |
Manufacturer Warranty |
Reviews:
User Reviews
No reviews yet. Be the first one to review it
| Buyer Central | Lets Connect | Contact Us | About Us |
| Sign In | Customer Support | Team | |
| Register | Product Inquiries | Band of trust | |
| Payment Options | Google Plus | Bulk Orders | News |
| Cancellation Policy | Feeback | Pre Orders | Career with Us |
|
Quick & Easy Sign-up with Multiple Benefits: Stay on top of the best deals and offers - sign up. Also, earn Cash Back and benefits of My Account. Email ID : |


interface Account : Thing, Created, Parcelable
Base interface that groups the common fields between the class Redditor and Me, that has extra fields of the current logged in user.
commentKarma |
karma obtained through submitting a comment. abstract val commentKarma: Int |
created |
The unix-time Long representing the creation date of the comment. abstract val created: Long |
createdUtc |
The unix-time Long representing the UTC creation date of the comment. abstract val createdUtc: Long |
fullname |
fullname of this class. abstract val fullname: String |
hasVerifiedEmail |
if the user has a verified email. abstract val hasVerifiedEmail: Boolean |
id |
This item identifier, e.g. "8xwlg" abstract val id: String |
isEmployee |
if the user is an employee of Reddit. abstract val isEmployee: Boolean |
isGold |
if the user has a gold status. abstract val isGold: Boolean |
isHidingFromRobots |
abstract val isHidingFromRobots: Boolean |
isMod |
if the user is Mod. abstract val isMod: Boolean |
linkKarma |
karma obtained through submitting a post (Submission). abstract val linkKarma: Int |
subreddit |
abstract val subreddit: RedditorSubreddit? |
createdDate |
Useful extension to convert the creation date property, from the Long unixtime, to a more practical Date object. val Created.createdDate: Date |
createdUtcDate |
Useful extension to convert the utc creation date property, from the Long unixtime, to a more practical Date object. val Created.createdUtcDate: Date |
Me |
This class represent the current logged in user. data class Me : Account |
Redditor |
This class represents a Redditor, that is not the current logged in one. data class Redditor : RedditorData, Account |


The Greatest Sequence
Given a number integer, find the greatest sequence of five consecutive digits.
Input number:
Find
Output sequence: