Q: What is the elmcity project?
Q: How do I contribute events to a hub?
Q: How do I become a calendar curator for my community (or topic)?
Q: OK, I started a hub, where's my stuff?
Q: Where do I find iCalendar feeds?
Q: How can I customize the collector for my location?
Q: How do I categorize feeds and events?
Q: How do I view categorized events?
Q: Where do curators hang out?
Q: What is the elmcity project?
A: It's a web service that:
Q: Why iCalendar?
A: Please see the one-page summary.
Q: What do contributors do?
A: Please see the pictorial overview.
Q: What do curators do?
A: Please see the pictorial overview.
Q: How do I contribute events to a hub?
A: You can contribute in any of these ways:
Publish your own iCalendar feed, and give its URL to the hub's curator. You can do this most easily using Google Calendar or Hotmail Calendar. You can also use Microsoft Outlook or Apple iCal
Stan Dyck, who curates the Puget Sound Engineering Council hub, created an excellent decision chart that describes the iCalendar options.
Eventful: Post an event to a venue within your hub's radius.
Yahoo: Post an event to a venue within your hub's radius.
EventBrite: Post an event to a venue within your hub's radius.
Facebook: Post an public event to the Events app on a Facebook Page.
Meetup: Make your Meetup group's calendar public.
Q: How do I become a calendar curator for my community (or topic)?
A: Notify the elmcity administrator that you'd like to start a new hub, specifying:An identifier for the hub, e.g. BrattleboroCals or WashingtonStateWineries
A Twitter, Facebook,Windows Live, or Google account for authenticating to (and controlling) the hub
A location, if the hub is location-specific (e.g. Brattleboro, VT or Sunbury-on-Thames, UK
When the hub starts up, the elmcity service will find and merge events for your location from Eventful, Upcoming, Eventbrite, and (optionally) Facebook. But you'll also want to include iCalendar feeds for schools, businesses, sports clubs, cultural venues, because most of what's going on in your community won't be available from those other sources.
Q: OK, I started a hub, where's my stuff?
A: Go to http://elmcity.cloudapp.net/services/ID (substituting your elmcity identifier for ID). You'll find a family of URLs for HTML, XML, RSS, iCalendar, and other resources related to your hub.Q: Where do I find iCalendar feeds?
A: This is a major challenge, and also an exciting opportunity. Although there seems to be a lot of calendar information floating around on the web, most of it isn't usefully available. Web pages and PDF files are much more common than iCalendar feeds. But those formats cannot be read, processed, and syndicated in the ways that iCalendar feeds can be. The central goal of this project is to light up iCalendar feeds that could easily exist on the web, and should, but don't. Here are some strategies:Q: OK, I've found or created some iCalendar feeds. How do I get the collector to collect and process them?
A: You sign into elmcity, using the Twitter, Facebook, Windows Live, or Google account you provided when you started your hub, and use the feed editor to add feeds.Q: How can I customize the collector for my location?
A: You sign into elmcity, using the Twitter, Facebook, Windows Live, or Google account you provided when you started your hub, and use the hub editor to adjust the default settings as needed.Q: How do I categorize feeds and events?
A: On a per-feed basis, if all of the events from a feed can be categorized, you can name that category in the elmcity feed editor. On a per-event basis, if events in the iCalendar feed use the CATEGORIES property, it'll come through automatically. On a per-event basis, the Description field can also use these patterns anywhere in the text: url=http://www.harlowspub.com category=music,bluegrassQ: How do I view categorized events?
A: All the formats accept a ?view= parameter. So for example: http://elmcity.cloudapp.net/services/elmcity/html?view=government http://elmcity.cloudapp.net/services/elmcity/rss?view=musicQ: I just added a feed. Can I run the aggregator now instead of waiting up to 8 hours for the next cycle?
A: Yes. If you specify a Twitter account when you start your hub the elmcity service, represented on Twitter as @elmcity_azure, will follow the Twitter account you specified. That means you can send messages to the service from Twitter. To start the aggregator without waiting, send a Twitter direct message to @elmcity_azure that simply says: start.Q: Where do curators hang out?
A: We are currently using the FriendFeed room friendfeed.com/rooms/elmcity. The room subscribes to the following sources:


{% extends 'speeches/base.html' %} {% load staticfiles %} {% block title %}About{% endblock %} {% block content %} {% include 'speeches/_breadcrumbs.html' %}
We rely exclusively on donations from the users of the site to cover the ongoing hosting and maintenance costs for the site.
If you'd prefer to make a donation by cash or cheque, you can do so by mail:
Springtide Collective
5553 Bloomfield Street
Halifax, Nova Scotia | B3K 1S7
902.989.3668
Please include your name, phone number and contact information so we can issue a tax receipt.


Home page
Salmon's cookie sales data Department
Add a new store to the table
store's city name
minimum customers per hour
Maximum customers per hour
average cookies
Click here!


Swift Tutorial - Persistent Annotations in MapKit with Core Data
14 Jul 2015Persistent Annotations in MapKit
Hi everyone, in this tutorial we will use CoreData to persist pin annotations on a map using Apple’s MapKit in six simple steps. Basic familiarity with CoreData and iOS development is assumed. This tutorial was done for an iPhone 6 and iOS 8.
In Persistent-Pins we will drop pins on a mapView using the UILongPressGestureRecognizer. Dropped Pins will be immediately saved to a CoreData database. Pins can be deleted with taps. On restart, all placed Pins will have persisted on the map. My Github contains the finished project with comments, the steps can be found as commits.
Github link to finished project: https://github.com/juliusdanek/Persistent-Pins-Tutorial
Step one - Setting up our model and CoreData
Let’s start by initializing the project. Create a new project in Xcode, starting from a single view application. Choose Swift as language and enable CoreData by ticking the “Use Core Data” box.
Your project is now ready. Checkout how CoreData is initialized in the AppDelegate.
Let’s navigate to our model, “Persistent-Pins”. This is where we are going to define our entity. Let’s add one entity and name it “Pin”. Add two attributes to your new “Pin” entity. “latitude” and “longitude” are both going to be attributes and will be of type “Double”. We will store our Pin’s latitude and longitude in these properties. ###Step two - Setting up our managed object
Next, we are going to set up our managed object or entity. Navigate to your model “Persistent Pins” and go on “Editor”. Select “create NSManaged Object subclass…”. Choose Persistent Pins, then Pin, then change the language to Swift and save the file to your project folder (select the right group - persistent pins - in the group dropdown).
At the top of the file, create another import statement for MapKit. We will need CoreData to save our Pins to our model and we will need MapKit to make the Pins that we save a subclass of MKAnnotation - this will allow us to populate our map with Pins directly from CoreData.
Place an @objc(Pin) under your import statements to ensure compatibility with objective-c - see http://stackoverflow.com/questions/24015185/generating-swift-models-from-core-data-entities for more details.
You can see that “Pin” is already a subclass of NSManagedObject. Let’s make it a subclass of MKAnnotation as well. We will now receive an error message that our Pin does not conform to the MKAnnotation protocol. Let’s change that.
At the bottom of the class declaration, add the variable “coordinate” of class CLLocationCoordinate2D like so:
var coordinate: CLLocationCoordinate2D {
return CLLocationCoordinate2D(latitude: latitude as Double, longitude: longitude as Double)
}
By now you will have noticed that latitude and longitude are declared as NSNumber. The problem is that CoreData will not recognize the Swift type Double. You will simply have to convert between Doubles and NSNumbers.
Let’s provide our custom init method in the next step. Add this code below where you define your @NSManaged vars.
override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}
init(annotationLatitude: Double, annotationLongitude: Double, context: NSManagedObjectContext) {
let entity = NSEntityDescription.entityForName("Pin", inManagedObjectContext: context)!
super.init(entity: entity, insertIntoManagedObjectContext: context)
latitude = NSNumber(double: annotationLatitude)
longitude = NSNumber(double: annotationLongitude)
}
Our custom init method allows us to find our entity and initialize a Pin CoreData entry with our custom latitude and longitude values. This initializer will also automatically generate your coordinate.
Finally, navigate to your model and change the class in your Pin entity to “Pin”
Great, we are finished creating our custom object and are done with step one. This should be the finished code:
import Foundation
import CoreData
import MapKit
class Pin: NSManagedObject, MKAnnotation {
@NSManaged var latitude: NSNumber
@NSManaged var longitude: NSNumber
override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}
init(annotationLatitude: Double, annotationLongitude: Double, context: NSManagedObjectContext) {
let entity = NSEntityDescription.entityForName("Pin", inManagedObjectContext: context)!
super.init(entity: entity, insertIntoManagedObjectContext: context)
latitude = NSNumber(double: annotationLatitude)
longitude = NSNumber(double: annotationLongitude)
}
var coordinate: CLLocationCoordinate2D {
return CLLocationCoordinate2D(latitude: latitude as Double, longitude: longitude as Double)
}
}
Step three – setting up our UI and our ViewController
Navigate to storyboard and drag a MapKit View onto your viewcontroller. Set the constraints so the MapView fills out the entire controller. Also, do not forget to enable MapKit in your projects capabilities. Go to persistent Pins and enable “Maps” under capabilities.
Let’s create an outlet for our mapView in our ViewController file. ctrl + drag your mapView into your ViewController using the assistant editor and add an outlet named “mapView”. Do not forget to import MapKit into your ViewController and set your ViewController as MKMapViewDelegate.
In our viewDidLoad method, let’s add a long pressure gesture recognizer that will allow us to drop pins.
Your ViewController should look like this now:
import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
var longPress = UILongPressGestureRecognizer(target: self, action: "dropPin:")
longPress.minimumPressDuration = 0.5
mapView.addGestureRecognizer(longPress)
mapView.delegate = self
}
}
As you can see, the UILongPressGestureRecognizer us linked to a method called dropPin. We will implement that method next.
Step four - the dropPin method
Let’s define our dropPin method. We will have to do three things:
- Extract the coordinates from the point where the user touched
- Add an annotation when the UIGestureRecognizerState fires
- Save that annotation to CoreData
Let’s start by defining the function and extracting location data:
func dropPin(gestureRecognizer: UIGestureRecognizer) {
let tapPoint: CGPoint = gestureRecognizer.locationInView(mapView)
let touchMapCoordinate: CLLocationCoordinate2D = mapView.convertPoint(tapPoint, toCoordinateFromView: mapView)
}
Now, this method does not really do much yet. Let’s add a pin!
func dropPin(gestureRecognizer: UIGestureRecognizer) {
let tapPoint: CGPoint = gestureRecognizer.locationInView(mapView)
let touchMapCoordinate: CLLocationCoordinate2D = mapView.convertPoint(tapPoint, toCoordinateFromView: mapView)
if UIGestureRecognizerState.Began == gestureRecognizer.state {
let pin = MKPointAnnotation()
pin.coordinate = touchMapCoordinate
mapView.addAnnotation(pin)
}
}
Now we can see pins dropping where we touched. This implementation is fairly straightforward. Our pins are not persistent yet though! Let’s change our dropPin function with this code:
func dropPin(gestureRecognizer: UIGestureRecognizer) {
let tapPoint: CGPoint = gestureRecognizer.locationInView(mapView)
let touchMapCoordinate: CLLocationCoordinate2D = mapView.convertPoint(tapPoint, toCoordinateFromView: mapView)
if UIGestureRecognizerState.Began == gestureRecognizer.state {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let pin = Pin(annotationLatitude: touchMapCoordinate.latitude, annotationLongitude: touchMapCoordinate.longitude, context: appDelegate.managedObjectContext!)
mapView.addAnnotation(pin)
appDelegate.saveContext()
}
}
We will instantiate the appDelegate so we can use its methods. Then we proceed to instantiate a pin as our Pin class. We will initialize it with the coordinates from our touchMapCoordinate and use the appDelegate context as our context. Then we add the pin to our map view and we save our context - we could do this at another point too but it seems smart to do it here. We just successfully added a Pin to our CoreData model!
Step five - fetching our Pins and adding them to our map when starting our app
Alright, let’s make sure that the pins that we insert into CoreData also get fetched when we need them, i.e. when the mapView loads. Let’s first change some of the logic that we implemented before. Import CoreData to our ViewController. Let’s also declare two implicitly unwrapped variables in ViewController:
var appDelegate: AppDelegate!
var sharedContext: NSManagedObjectContext!
Next, in our viewDidLoad method, at the very top, initialize the two new variables as so:
appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
sharedContext = appDelegate.managedObjectContext
this allows us to access our NSManagedObjectContext and our saveContext() method throughout the ViewController. Do not forget to adjust the dropPin method accordingly! Delete the declaration of appDelegate that we had before and use the sharedContext variable in our init method.
Alright, let’s create a method for a fetchrequest! Simply use this code:
func fetchAllPins() -> [Pin] {
let error: NSErrorPointer = nil
let fetchRequest = NSFetchRequest(entityName: "Pin")
let results = sharedContext.executeFetchRequest(fetchRequest, error: error)
if error != nil {
println("Error in fectchAllActors(): \(error)")
}
return results as! [Pin]
}
We create a fetchrequest, then execute it. In case there are any errors, we print the error to the console. The results are then returned as an array of pins. Now that we have a method can allows us to access our Pins as an array, let’s put them on the map! At the bottom of our viewDidLoad method, add the following code:
mapView.addAnnotations(fetchAllPins())
Great, now we are able to see the pins that we add. Let’s try it out.
Step six - deleting pins
This step is remarkably easy. We will implement one of our delegate methods - didSelectAnnotation. The wonderful thing is that all mapView.annotations are saved as an array - an array of Pins! That means the selected annotation can always be casted as a Pin and deleted from the managed context. The method should look like this:
func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) {
let pin = view.annotation as! Pin
sharedContext.deleteObject(pin)
mapView.removeAnnotation(pin)
appDelegate.saveContext()
}
That was our last method! Our viewController should now look like this:
import CoreData
import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet weak var mapView: MKMapView!
var appDelegate: AppDelegate!
var sharedContext: NSManagedObjectContext!
override func viewDidLoad() {
super.viewDidLoad()
appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
sharedContext = appDelegate.managedObjectContext
var longPress = UILongPressGestureRecognizer(target: self, action: "dropPin:")
longPress.minimumPressDuration = 0.5
mapView.addGestureRecognizer(longPress)
mapView.delegate = self
mapView.addAnnotations(fetchAllPins())
}
func dropPin(gestureRecognizer: UIGestureRecognizer) {
let tapPoint: CGPoint = gestureRecognizer.locationInView(mapView)
let touchMapCoordinate: CLLocationCoordinate2D = mapView.convertPoint(tapPoint, toCoordinateFromView: mapView)
if UIGestureRecognizerState.Began == gestureRecognizer.state {
let pin = Pin(annotationLatitude: touchMapCoordinate.latitude, annotationLongitude: touchMapCoordinate.longitude, context: appDelegate.managedObjectContext!)
mapView.addAnnotation(pin)
appDelegate.saveContext()
}
}
func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) {
let pin = view.annotation as! Pin
sharedContext.deleteObject(pin)
mapView.removeAnnotation(pin)
appDelegate.saveContext()
}
func fetchAllPins() -> [Pin] {
let error: NSErrorPointer = nil
let fetchRequest = NSFetchRequest(entityName: "Pin")
let results = sharedContext.executeFetchRequest(fetchRequest, error: error)
if error != nil {
println("Error in fectchAllActors(): \(error)")
}
return results as! [Pin]
}
}
Tada! We are finished. Additional modification could include: Adding data like photos to a Pin, and defining a relationship between a Photo and the Pin object, using NSFetchResultsController to get results and update UI, modifying appearance of the Pins, displaying user location on map, etc.
I hope you enjoyed this tutorial!


Epoll
public struct Epoll: FileDescriptor
Linux only.
-
The file descriptor for this epoll instance.
Declaration
Swift
public let fileDescriptor: Int32
-
Creates an epoll instance with the specified flags.
Declaration
Swift
public init(flags: Flags = []) throws
-
Adds the file descriptor to the list of FDs watched by this epoll instance. The
event
argument defines what event types to watch for and optional user data associated with the event.Declaration
Swift
public func add(fd: FileDescriptor, event: PollEvent) throws
-
Updates the event types and user data associated with the file descriptor for this epoll instance.
Declaration
Swift
public func update(fd: FileDescriptor, event: PollEvent) throws
-
Removes the file descriptor from the list of FDs watched by this epoll instance.
Declaration
Swift
public func remove(fd: FileDescriptor) throws
-
Polls for and returns available events into
events
, blocking as required. If a timeout is set, unblocks after this delay if no events are available. Signals may be blocked atomically by providing a SignalSet toblockedSignals
. Returns the number of events available inevents
. No more thanevents.count
events will be returned.Declaration
Swift
public func poll(into events: inout [PollEvent], timeout: TimeInterval? = nil, blockedSignals signals: SignalSet? = nil) throws -> Int
-
Releases the resources for this file descriptor.
Declaration
Swift
public func close() throws


Extended selectionMode
Multiple selectionMode
Single selectionMode
Toggle selectionMode
None selectionMode


Before we add Navbars and Toolbar to our App we need to decide which type of their layout we will use.
Framework7 allows you to be very flexible with it and there are 3 different types of Navbar/Toolbar layout which defines where to put them on your page/view
Static layout is the probably most rarely used layout type. In this case Navbar and Toolbar are just parts of the scrollable page content and each page has its own Navbar and Toolbar:

...

Awesome App

Other content goes here

...

Hello

...

In Fixed layout each page also has its own navbar and toolbar but they are always visible on screen, so they not depend on page scroll:

...

Awesome App

Other content goes here

...

Hello

...

As you may see the difference from Static layout is that:
Navbar and Toolbar are now child elements of Page (

)
Each page has additional "navbar-fixed" (for fixed Navbar) and "toolbar-fixed" (for fixed Toolbar) classes.
Note, that if you want to use Fixed layout for every page within single View, you can just add "navbar-fixed" and "toolbar-fixed" to parent Pages (

) instead of adding them to every single page.
This type of layout is only supported by iOS theme
This one is the most interesting and widely used layout type - when Navbar and Toolbar stay the same through all pages within single View. With such layout you can use cool Dynamic Navbar (don't forget to enable it on View initialization)

...

Awesome App

Other content goes here

...

Hello

...

As you may see the difference from Static and Fixed layout are:
Navbar and Toolbar are now child elements of View (

)
View with "through" Navbar and Toolbar has additional "navbar-through" (for through-type Navbar) and "toolbar-through" (for through-type Toolbar) classes.
As you guess you can different layout types for different Views, like "Fixed" layout in one View and "Through" in other one. But you can also mix these layouts within single View. For example, you may have "Through" Navbar and Fixed Toolbar:

...

Awesome App

Other content goes here

...

Hello

...

And of course if you don't need Navbar or Toolbar or both you may just not include them, and don't add appropriate classes ("navbar-fixed", "navbar-through", "toolbar-fixed", "toolbar-through") to page/pages/view.
So as you may see all these layout types are pretty easy to understand, all their difference is in additional classes on parent elements and different nesting level. Here is cheat sheet
.view
.pages
.page
.page-content
.navbar
// other page content
.toolbar
.view
.pages.navbar-fixed.toolbar-fixed
.page
.navbar
.page-content
.toolbar
.view
.navbar
.pages.navbar-through.toolbar-through
.page
.page-content
.toolbar


Just Blog It
Published Posts
The history of political blogging might usefully be divided into the periods pre- and post-Huffington. Before the millionaire socialite Arianna Huffington decided to get in on the act, bloggers operated in a spirit of underdog solidarity. They hated the mainstream media - and the feeling was mutual.
Bloggers saw themselves as gadflies, pricking the arrogance of established elites from their home computers, in their pyjamas, late into the night. So when, in 2005, Huffington decided to mobilise her fortune and media connections to create, from scratch, a flagship liberal blog she was roundly derided. Who, spluttered the original bloggerati, did she think she was?
But the pyjama purists were confounded. Arianna's money talked just as loudly online as off, and the Huffington Post quickly became one of the most influential and popular journals on the web. It recruited professional columnists and celebrity bloggers. It hoovered up traffic. Its launch was a landmark moment in the evolution of the web because it showed that many of the old rules still applied to the new medium: a bit of marketing savvy and deep pockets could go just as far as geek credibility, and get there faster.


My name is Oscar, a Computer Scientist who never wants to stop learning about computers. I just cannot imagine my life devoid of them. I am a Computer Science Graduate from the University of Liverpool. I'm most fascinated with Artificial Intelligence and very interested in Robotics. Being able to study and do what I love is an absolute dream come true.
I first got into programming with Visual Basic when I was 17, at that time I was doing my A-Levels and Computer Science was one of the 4 subjects I chose. I didn't have much knowledge about programming so I went with the language which everyone were using in my class. Not long after the "Hello, World!" program I made, I've decided that I want to advance my knowledge on how computers work with softwares so that I can develop my own to one day help the world be a better place. Since then I have gone on to learn Python, Java, Swift, R, Haskell, HTML, CSS, Javascript and SQL. I have also become familiar with softwares such as PhotoShop, Unity, Final Cut Pro and Premiere Pro. My skills allows me to turn my ideas into a reality and express my creativity in infinite ways.


Reports assignments that can be replaced with augmented assignments.
Example:
a = 23 b = 3 a = a + b
After the quick-fix is applied, the code changes to:
a = 23 b = 3 a += b


PHManager
public class PHManager: NSObject
PHManager is responsible for downloading images, cancel ongoing reques and handle cache.
-
Shared Instance
Declaration
Swift
public static let sharedInstance = PHManager()
-
Get image from given url. If image is in cache will be taken from there.
Declaration
Swift
public func imageWithUrl(url: NSURL, progress: PHProgressCompletion, completion: PHManagerCompletion) -> String?
Parameters
url
Image URL
progress
Progress closure returns downloaded percent.
completion
Completion closure returns
PHImageObject
that holds image or gif.Return Value
Unique generated download key. It can be used to cancel request.
-
Get image from given url
Declaration
Swift
public func imageWithUrl(url: NSURL, completion: ((image: UIImage?) -> Void))
Parameters
url
Image URL
completion
Completion closure it returns image
-
Get image data from given url
Declaration
Swift
public func imageData(url: NSURL, comletion: ((data: NSData) -> Void))
Parameters
url
Image URL
comletion
Completion closure returns raw image data
-
Cancel retrieve of ongoing image download request
Declaration
Swift
public func cancelImageRetrieve(url: NSURL, key: String)
Parameters
url
Image URL
key
Unique key returned from
imageWithUrl:
-
Purche memory and file cache.
Declaration
Swift
public func purgeCache(includingFileCache fileCache: Bool, completion: PHVoidCompletion? = nil)
Parameters
fileCache
If set to
true
file cache will be removed too.completion
Optional completion closure.
-
Change memory and file cache size
- parameters:
- memoryCacheSize: Size for memory cache in MB. Minimum 50 mb. maximum 250 mb. Default is 50 mb.
- fileCacheSize: Size for file cache in MB. Minimum 50 mb. maximum 500 mb. Default is 200 mb.
Declaration
Swift
public func setCacheSize(memoryCacheSize: UInt, fileCacheSize: UInt)
Parameters
memoryCacheSize
Size for memory cache in MB. Minimum 50 mb. maximum 250 mb. Default is 50 mb.
fileCacheSize
Size for file cache in MB. Minimum 50 mb. maximum 500 mb. Default is 200 mb.
- parameters:


--- title: Add API image: /assets/images/logo-fb.png layout: default ---
This page is help you to submit your API into APIs.guru collection. The most important requirment is presence of machine-readable API specification in one of the popular format, such as: OpenAPI(fka Swagger), RAML, WADL, etc.
Important note: we only aggregate API specs, not host them. So please, provide us with stable URL to the spec. We will use it to keep your spec up to date: see our update procedure


--- layout: landing ---
Knowledge Mnagement
Let's proceed with knowledge management in the "knowledge". It supports PC / tablet / smartphone. Anytime, anywhere you can share information.
Self-hosted
Knowledge is installed on your server, the data is stored in a database that you own.
You do not need to worry, that your important data is leak.
Download
Integration of user management
You can use the account of ActiveDirectory and Ldap. If there is no AD or LDAP, you will user management in the system.
You can reach information
You find the information they want to use a full-text search engine.
Search target is not only registered text on web page.
You can search for a text that was written in the attached Excel or Word.
Registration details will be notified to you when the article is registered. Notification method, "e-mail notification," "desktop notifications", "WebHook" are available.
Select the publication range
You can specify the publication range of the registered information. You can publish the information to all users. On the contrary, it will be able to make visible your information only to yourself.
"Knowledge" is the ability of the group management. You are able to publish the information by specifying the group.
Activation
You can be edited easily with Markdown. The information you want to register, you can add an attachment file.
Your registered information will be registered "Comments" and "Like". A feature of social communication, information sharing is activated.
Demo Site
Live Demo
Demo Users
[id/password] user1 / user1
[id/password] user2 / user2
[id/password] user3 / user3
It is a information of this service.(Sorry, This slide is Japanese)


| (>!) [Distributed.Process] | pid >! msg is equivalent to send pid msg .
|
| (>>=) [Distributed.Nonblock_io] | bind t f is a thread which first waits for the thread t to terminate and then, if the thread succeeds,
behaves as the application of function f to the return value of t .
|
| (>>=) [Distributed.Process] | c >>= f is a computation which first waits for the computation c to terminate and then, if the computation succeeds,
behaves as the application of function f to the return value of c .
|
A | |
| add_remote_node [Distributed.Process] | add_remote_node ip port name will connect to the remote node at ip :port with name name and add it to the current nodes list of connected remote nodes.
|
| async [Distributed.Nonblock_io] | async f starts a thread without waiting for the result.
|
| at_exit [Distributed.Nonblock_io] | at_exit fn will call fn on program exit.
|
B | |
| broadcast [Distributed.Process] | broadcast node_id msg will send, asynchronously, message msg to all the processes on node_id .
|
C | |
| case [Distributed.Process] | case match_fn will create a Distributed.Process.matcher which will use match_fn to match on potential messages.
|
| catch [Distributed.Nonblock_io] | catch t f is a thread that behaves as the thread t () if this thread succeeds.
|
| catch [Distributed.Process] | catch p f is a process that behaves as the process p () if this process succeeds.
|
| close_input [Distributed.Nonblock_io] | close ch closes the given channel immediately.
|
| close_output [Distributed.Nonblock_io] | close ch closes the given channel.
|
| create_stream [Distributed.Nonblock_io] | create () returns a new stream and a push function.
|
E | |
| establish_server [Distributed.Nonblock_io] | establish_server ?backlog sockaddr f creates a server which will listen for incoming connections.
|
F | |
| fail [Distributed.Nonblock_io] | fail e is a thread that fails with the exception e .
|
| fail [Distributed.Process] | fail e is a process that fails with the exception e .
|
G | |
| get [Distributed.Nonblock_io] | get st removes and returns the first element of the stream, if any.
|
| get_name [Distributed.Node_id] | get_name node returns the name of the node.
|
| get_remote_node [Distributed.Process] | get_remote_node node_name will return the node id associated with name , if there is no record of a node with name at
this time then None is returned.
|
| get_remote_nodes [Distributed.Process] |
The list of all nodes currently active and inactive.
|
| get_self_node [Distributed.Process] | get_self_node process will return the node id associated with process .
|
| get_self_pid [Distributed.Process] | get_self_pid process will return the process id associated with process .
|
I | |
| ignore_result [Distributed.Nonblock_io] | ignore_result t is like Pervasives.ignore t except that:
if t already failed, it raises the exception now,
if t is sleeping and fails later, the exception will be given to async_exception_hook.
|
L | |
| lib_description [Distributed.Nonblock_io] |
A description of the implementation (e.g., the url of the code repository ), for logging purposes.
|
| lib_name [Distributed.Nonblock_io] |
The name of the implementation, for logging purposes.
|
| lib_version [Distributed.Nonblock_io] |
The version implementation, for logging purposes.
|
| lift_io [Distributed.Process] | lift_io io lifts the io computation into the process.
|
| log [Distributed.Nonblock_io] | log ?exn ?location logger level message logs a message using logger .
|
M | |
| monitor [Distributed.Process] | monitor pid will allows the calling process to monitor pid .
|
O | |
| open_connection [Distributed.Nonblock_io] | open_connection addr opens a connection to the given address and returns two channels for using it.
|
P | |
| pick [Distributed.Nonblock_io] | pick l is the same as choose , except that it cancels all sleeping threads when one terminates.
|
R | |
| read_value [Distributed.Nonblock_io] | read_value ic reads a marshalled value from ic .
|
| receive [Distributed.Process] | receive timeout matchers will wait for a message to be sent to this process which matches one of matchers provided in
matchers .
|
| receive_loop [Distributed.Process] | receive_loop timeout matchers is a convenience function which will loop until a matcher in matchers returns false.
|
| remove_remote_node [Distributed.Process] | remove_remote_node node_id will remove node_id from the list of connected remote nodes.
|
| return [Distributed.Nonblock_io] | return v creates a light weight thread returning v .
|
| return [Distributed.Process] | return v creates a computation returning v .
|
| run_node [Distributed.Process] | run_node process node_monitor_fn node_config performs the necessary bootstrapping to start this
node according to node_config , then, if provided, runs the initial process returning the resulting io ).
|
S | |
| send [Distributed.Process] | send process_id msg will send, asynchronously, message msg to the process with id process_id (possibly running on a remote node).
|
| shutdown_server [Distributed.Nonblock_io] | shutdown_server server will shutdown server .
|
| sleep [Distributed.Nonblock_io] | sleep d is a thread that remains suspended for d seconds and then terminates.
|
| spawn [Distributed.Process] | spawn monitor name node_id process will spawn process on node_id returning the Distributed.Process_id.t associated with the newly spawned process.
|
| stream_append [Distributed.Nonblock_io] | stream_append s1 s2 returns a stream which returns all elements of s1 , then all elements of s2 .
|
| string_of_message [Distributed.Message_type] | string_of_message msg returns the string representation of msg .
|
T | |
| termination_case [Distributed.Process] | termination_case handler will create a matcher which can use used to match against termination_reason for a
process that is being monitored.
|
| timeout [Distributed.Nonblock_io] | timeout d is a thread that remains suspended for d seconds and then fails with .
|
U | |
| unmonitor [Distributed.Process] | unmonitor mref will cause this process to stop monitoring the process which is referenced by mref .
|
W | |
| write_value [Distributed.Nonblock_io] | write_value oc ?flags x marshals the value x to oc .
|


Lawn Mowing
Service Provider:
Garden Assistance Team
Service Request Date
Thu, Sep 21 2017 5:45 PM
Service Completed Date
--
Frequency
Single services
Lawn Size
1.50 - 2.00 acres
Service Address
Tom Wilson
12345 Little Lonsdale St,
Melbourne, Australia
Phone
(123) 123-456
<EMAIL_ADDRESS>Description
Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting dummy text of the printing and typesetting industry.Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Uploaded By Landscaper
Price Details
Single $ 120.00
Tax Rate0.00 %
Grand Total$ 120.00


I am a well focused student who really works hard to reach her set goals.I'm still working on my skills as an upcoming software developer as I wait to join the university.
I am still working on uplifting my passion for the tech industry.
I am looking forward to gaining more knowledge in Moringa.
I am currently enrolled at Moringa School to pursue the Software Development course.
I recently completed my high school studies in the 2020 class.
I am looking forward to joining the university to pursue the course of my choice.
I decided to take the programmimg classes before joining the university to build my skills and build my knowledge in all fields extensively.
I love playing badminton and mostly cooking and trying out new recipes
I have currently worked on two projects on my week one work.
Here is a link to my pet web page. It contains information about my pet
I have created this web page for my puppy pet pet
Here is a link to my island resort web page.It cintains information about a private island resort.
All the information you need to know about Relax Island resort is given in the link below.
resort


Fábio Estevão
Electronic Technician - DBA - C#/JAVA Developer
I like Informatics, and all new products when are launched. News, reviews, robotic, electronic, etc...
I have already created and managed some websites and blogs, personal and private.
I speak and write in English, but I know some things in French, notions. I'm a regular users the various technology forums.
One day I would like enter a project, that make a difference. An a project that afford help people daily.


This calculator is by no means an accurate representation of how much damage you will do to a boss; there are many factors that have yet to be added to the model. Since survivability is not considered, the team that does the most damage according to this calculator will likely not be able to make it in one piece to the last stage. However, you may use it to approximate the impact of using one sub's skill one more time over another sub's skill and get a rough idea of how you should structure your skill sequence.
The following are currently considered:
- Skill DMG
- Skill DMG buffs
- Enemy debuffs
- Crit Rate (arbitrary est. 0.4 for ranged, 0.2 for melee)
- Crit DMG buffs
More to come in the future!
This is an open-source, volunteer-driven project. If you would like to report bugs or make a feature request, please do so at the project
GitHub.
Credits:
Formulae from OtogiDB


statsmodels.tsa.statespace.kalman_filter.FilterResults¶
-
class
statsmodels.tsa.statespace.kalman_filter.
FilterResults
(model)[source]¶ Results from applying the Kalman filter to a state space model.
Parameters: model : Representation
A Statespace representation
Attributes
nobs (int) Number of observations. k_endog (int) The dimension of the observation series. k_states (int) The dimension of the unobserved state process. k_posdef (int) The dimension of a guaranteed positive definite covariance matrix describing the shocks in the measurement equation. dtype (dtype) Datatype of representation matrices prefix (str) BLAS prefix of representation matrices shapes (dictionary of name,tuple) A dictionary recording the shapes of each of the representation matrices as tuples. endog (array) The observation vector. design (array) The design matrix, . obs_intercept (array) The intercept for the observation equation, . obs_cov (array) The covariance matrix for the observation equation . transition (array) The transition matrix, . state_intercept (array) The intercept for the transition equation, . selection (array) The selection matrix, . state_cov (array) The covariance matrix for the state equation . missing (array of bool) An array of the same size as endog, filled with boolean values that are True if the corresponding entry in endog is NaN and False otherwise. nmissing (array of int) An array of size nobs, where the ith entry is the number (between 0 and k_endog) of NaNs in the ith row of the endog array. time_invariant (bool) Whether or not the representation matrices are time-invariant initialization (str) Kalman filter initialization method. initial_state (array_like) The state vector used to initialize the Kalamn filter. initial_state_cov (array_like) The state covariance matrix used to initialize the Kalamn filter. filter_method (int) Bitmask representing the Kalman filtering method inversion_method (int) Bitmask representing the method used to invert the forecast error covariance matrix. stability_method (int) Bitmask representing the methods used to promote numerical stability in the Kalman filter recursions. conserve_memory (int) Bitmask representing the selected memory conservation method. tolerance (float) The tolerance at which the Kalman filter determines convergence to steady-state. loglikelihood_burn (int) The number of initial periods during which the loglikelihood is not recorded. converged (bool) Whether or not the Kalman filter converged. period_converged (int) The time period in which the Kalman filter converged. filtered_state (array) The filtered state vector at each time period. filtered_state_cov (array) The filtered state covariance matrix at each time period. predicted_state (array) The predicted state vector at each time period. predicted_state_cov (array) The predicted state covariance matrix at each time period. forecasts (array) The one-step-ahead forecasts of observations at each time period. forecasts_error (array) The forecast errors at each time period. forecasts_error_cov (array) The forecast error covariance matrices at each time period. llf_obs (array) The loglikelihood values at each time period. Methods
predict
([start, end, dynamic])In-sample and out-of-sample prediction for state space models generally update_filter
(kalman_filter)Update the filter results update_representation
(model[, only_options])Update the results to match a given model Methods
predict
([start, end, dynamic])In-sample and out-of-sample prediction for state space models generally update_filter
(kalman_filter)Update the filter results update_representation
(model[, only_options])Update the results to match a given model Attributes
kalman_gain
Kalman gain matrices standardized_forecasts_error
Standardized forecast errors


Hi,
I have setup a system with two emonTx's, one that measures power consumption for heating and incoming power from the solar panels, both with CT's. The other emonTx is measuring pulses from the main unit for all incoming power. Unfortunately I have no other way of measuring total incoming power.
My problem is that I don't know how to setup a pulse measuring sketch that is battery efficient. The one I have now sends results every 15 seconds, but it chewed through 2 AA batteries in 4 days. I have read that you should put the RF module to sleep, which I do, but still it is not good enough. I can live with not being able to see current power level so often, but I will need to measure the total consumption on a daily level. How can this be done? Can I calculate kWh, i.e. collect total pulses, and then do the calculation in emonCMS?
Is their any other ways of conserving battery power for pulse counting?
thanks
Re: Battery-efficient pulse measurement
AFAIK, as soon as you put the cpu to sleep, you loose track of time. So it is not possible to calculate momentary power. Only counting pulses should be possible to make efficient, since you can put the cpu to sleep and wake it up on interrupt from the sensor.
I don't know if it's possible to calculate momentary power in emoncms, but I have a feeling that it will be hard to get good enough accuracy.
Re: Battery-efficient pulse measurement
Would it be possible to simply calculate pulse count, and then once every 5-10 minutes send it to the base, and then subsequently divide the count by the no. of counts per. kWh on then emonCMS side? It would be nice to know momentary power, but not for the cost of new batteries every other week.
Re: Battery-efficient pulse measurement
Are you sure the CPU is actually going to sleep between transmissions?
The version of emontx_lib that I looked at just has..
void emontx_sleep(int seconds) {
for (int i=0; i<seconds; i++) {
delay(1000);
if (UNO) wdt_reset();
}
}
I can't see anything in the Arduino documentation that says delay() puts the CPU in sleep mode (but that doesn't mean that it doesn't!).
Re: Battery-efficient pulse measurement
I concur with Martin the MCU is not being put to sleep only the RFM12.
I think if you add this in at the end of your loop in the main sketch it will put the MCU to sleep for the time period defined in ms.
Sleepy::loseSomeTime(time_between_readings);
So for 5 mins it would be
Sleepy::loseSomeTime(300000);
For 10 mins it would be
Sleepy::loseSomeTime(600000);
Its tied into this part of code at the beginning of the sketch I believe.
ISR(WDT_vect) { Sleepy::watchdogEvent(); } // Attached JeeLib sleep function to Atmega328 watchdog - enables MCU to be put into sleep mode inbetween readings to reduce power consumption
*EDIT: Ignore that, it will miss the pulses if its asleep...
Re: Battery-efficient pulse measurement
It will wake up on the pulse interrupt though won't it?
Re: Battery-efficient pulse measurement
Interrupt will wake it up, yes.
Have you read this?
http://openenergymonitor.org/emon/buildingblocks/pulse-counting-sleep
Re: Battery-efficient pulse measurement
Do it differently, does the meter have an infrared port? Use that to read the values every few minutes, you can sleep inbetween reads then.
Re: Battery-efficient pulse measurement
Yes, the meter has an infrared port. How would that work, is there a sketch I can refer to? Also, I assume the same sensor can be used as the one for pulses right?
Re: Battery-efficient pulse measurement
Mickiii,
I modified the low power sketch yesterday for my own battery powered wireless pulse node for my gas meter outside. I am only using it to count the pulses and not the power calculation stuff.
I'm putting the MCU into low power mode using the function in jeelib in between pulses and then sending the data to the emonbase roughly every 15mins (its not accurate). Note that there is some code in there requesting an ACK from the emonbase so data doesn't go missing.
If you wanted to measure on a daily basis you could in theory stretch the 15mins to a whole day.
The node is powered by a 9v battery because as it happens it was the only connector I had laying around so the voltage regulator is still being used.
I have put the sketch on Github. Its the first time I have really used it so I have no idea if I have done it correctly.
https://github.com/StuntMonkeh/emonTxFirmware/tree/master/emonTx_Pulse_LowPower
Hope its of some help.
Re: Battery-efficient pulse measurement
Thank you, I really appreciate it. I will have a look at it, and try to modify it to my needs.
Re: Battery-efficient pulse measurement
StuntMonkeh: Take a look at this: http://arduino.cc/forum/index.php/topic,45239.0.html You should handle reading of shared data properly, switching off interrupts to avoid possible corruption. The original code should be updated for this as well, haven't had time to submit a patch yet.
Re: Battery-efficient pulse measurement
I read the link last night and again this morning. I'm thoroughly confused.
Am I right in thinking I need to turn off the ability for the input to trigger an interrupt after it has been triggered.
So I assume it needs to go a little something like this;
1. Pulse from meter.
2. Interrupt occurs.
3. Turn off interrupt functionality for the input pin.
4. Count the pulse.
5. Turn the interrupt functionality for the input pin back on.
Re: Battery-efficient pulse measurement
No, you need to turn it off when reading the pulse count (or any other multi byte global variables which is written to in the interrupt handler) from loop().
Here is also some good information: http://www.gammon.com.au/forum/?id=11488 especially in the section called "Critical sections ... accessing volatile variables"


stackImage
Stacks all images together into one file
stackContinuous
Stacks every image with n of its successors,
great for smoothing video
stackProgressive
Stacks every image with all its predecessors,
great for showing progression,
especially startrails
--inputFolder
Path to folder with JPG files
(sorry, no file extension filter implemented yet)
--inputFiles
List of files to use
--inputFromPipe
Experimental - Uses StdIn as input,
requires --inputSize to be specified.
Currently only RGB24 is supported
limited usability in WSL due incredibly slow pipe speeds in WSL
--inputSize
Necessary option for --inputFromPipe otherwise ignored.
Specifies width and height of piped frames.
Format: 1920x1080
--outputFile
Naming prefix for generated images
--outputFolder
Where to save generated images
--outputToPipe
Experimental - Uses StdOut as Output,
might be used together with ffmpeg
Currently only RGB24 is supported
limited usability in WSL due incredibly slow pipe speeds in WSL
maxFilter
Filters maximum value for each pixel,
useful for stars, light trails
maxVecFilter
same as maxFilter,
AVX accelerated
might cause issues on some machines
minFilter
Filters minimum value for each pixel
useful for insects, birds etc.
minVecFilter
same as minFilter,
AVX accelerated,
might cause issues on some machines
> stackImage
--inputFolder=./my-awesome-timelapse
--outputFile=stackedTimelapse
--outputFolder=.
> stackContinuous
--StackCount=20
--inputFolder=./my-awesome-timelapse
--outputFile=stackedTimelapse
--outputFolder=.
stackContinuous
--StackCount=20
--inputFolder=./my-awesome-timelapse
--outputFile=stackedTimelapse
--outputFolder=tmp
ffmpeg -pattern_type 'glob' -i 'tmp/*.jpg' -
> stackProgressive
--inputFolder=./my-awesome-timelapse
--outputFile=stackedTimelapse
--outputFolder=.
Sorry work in progress...😒
Check me out on Github


In this webpage you will find information about myself, my research in Astronomy and more. I am currently looking for a postdoc position to start in 2024. Feel free to contact me!
I am a final-year PhD student in Astronomy at Instituto de Astronomia, Geofísica e Ciências Atmosféricas at Universidade de São Paulo, São Paulo, Brazil. Currently, I am under a 1-year internship at University of Washington, Seattle, US. I am member of the S-PLUS collaboration and PI of the project on the search for quasar candidates and estimation of quasar redshifts using Machine Learning. I have worked with QSOs for many years and now I am being adventurous in stellar science too! I see myself as a problem-solver, i.e. I enjoy working with any type of data.
Download ResumePhD in Astronomy, current
Universidade de São Paulo
BSc in Astronomy, 2016
Universidade de São Paulo
BSc in Statistics, 2013
Universidade de São Paulo
A brief summary of my academic experience
Thesis title: “Classification and redshift estimation of new quasars in photometric surveys, using S-PLUS as study case”
Our object classifier is the current primary source to photometrically select stars, quasars or galaxies in S-PLUS DR2, DR3, and DR4. During these years, I had experience with querying, cross-matching and/or analyzing data from S-PLUS, SDSS, WISE, GAIA, GALEX, GAMA, and ALHAMBRA surveys. I have been working on this project since my first year of undergraduate in Astronomy (2014), being supervised by Prof. Nina T. S. Hirata from the Computer Science department of IME-USP at that time.
With the goal of doing spectroscopic follow-up of quasar candidates, we were awarded:
During my final year, I worked on two projects coordinated by researchers in Medicine and in Archeology:
Courses and workshops


T
- The input type for each condition used with this instance.public class FluentWait<T> extends java.lang.Object implements Wait<T>
Wait
interface that may have its timeout and polling interval
configured on the fly.
Each FluentWait instance defines the maximum amount of time to wait for a condition, as well as
the frequency with which to check the condition. Furthermore, the user may configure the wait to
ignore specific types of exceptions whilst waiting, such as
NoSuchElementExceptions
when searching for an
element on the page.
Sample usage:
// Waiting 30 seconds for an element to be present on the page, checking
// for its presence once every 5 seconds.
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("foo"));
}
});
This class makes no thread safety guarantees.
| Modifier and Type | Field and Description |
|---|---|
static Duration |
FIVE_HUNDRED_MILLIS |
| Constructor and Description |
|---|
FluentWait(T input) |
FluentWait(T input,
Clock clock,
Sleeper sleeper) |
| Modifier and Type | Method and Description |
|---|---|
FluentWait<T> |
ignoreAll(java.util.Collection<java.lang.Class<? extends java.lang.Throwable>> types)
Configures this instance to ignore specific types of exceptions while waiting for a condition.
|
FluentWait<T> |
ignoring(java.lang.Class<? extends java.lang.Throwable> exceptionType) |
FluentWait<T> |
ignoring(java.lang.Class<? extends java.lang.Throwable> firstType,
java.lang.Class<? extends java.lang.Throwable> secondType) |
FluentWait<T> |
pollingEvery(long duration,
java.util.concurrent.TimeUnit unit)
Sets how often the condition should be evaluated.
|
protected java.lang.RuntimeException |
timeoutException(java.lang.String message,
java.lang.RuntimeException lastException)
Deprecated.
Use
timeoutException(String, Throwable) . This method is scheduled for
removal in the Selenium 2.26 release. |
protected java.lang.RuntimeException |
timeoutException(java.lang.String message,
java.lang.Throwable lastException)
Throws a timeout exception.
|
<V> V |
until(com.google.common.base.Function<? super T,V> isTrue)
Repeatedly applies this instance's input value to the given function until one of the following
occurs:
the function returns neither null nor false,
the function throws an unignored exception,
the timeout expires,
the current thread is interrupted
|
void |
until(com.google.common.base.Predicate<T> isTrue)
Repeatedly applies this instance's input value to the given predicate until the timeout expires
or the predicate evaluates to true.
|
FluentWait<T> |
withMessage(java.lang.String message)
Sets the message to be displayed when time expires.
|
FluentWait<T> |
withTimeout(long duration,
java.util.concurrent.TimeUnit unit)
Sets how long to wait for the evaluated condition to be true.
|
public static Duration FIVE_HUNDRED_MILLIS
public FluentWait(T input)
input
- The input value to pass to the evaluated conditions.public FluentWait<T> withTimeout(long duration, java.util.concurrent.TimeUnit unit)
FIVE_HUNDRED_MILLIS
.duration
- The timeout duration.unit
- The unit of time.public FluentWait<T> withMessage(java.lang.String message)
message
- to be appended to default.public FluentWait<T> pollingEvery(long duration, java.util.concurrent.TimeUnit unit)
In reality, the interval may be greater as the cost of actually evaluating a condition function
is not factored in. The default polling interval is FIVE_HUNDRED_MILLIS
.
duration
- The timeout duration.unit
- The unit of time.public FluentWait<T> ignoreAll(java.util.Collection<java.lang.Class<? extends java.lang.Throwable>> types)
types
- The types of exceptions to ignore.public FluentWait<T> ignoring(java.lang.Class<? extends java.lang.Throwable> exceptionType)
ignoreAll(Collection)
public FluentWait<T> ignoring(java.lang.Class<? extends java.lang.Throwable> firstType, java.lang.Class<? extends java.lang.Throwable> secondType)
ignoreAll(Collection)
public void until(com.google.common.base.Predicate<T> isTrue)
isTrue
- The predicate to wait on.public <V> V until(com.google.common.base.Function<? super T,V> isTrue)
until
in interface Wait<T>
V
- The function's expected return type.isTrue
- the parameter to pass to the ExpectedCondition
protected java.lang.RuntimeException timeoutException(java.lang.String message, java.lang.Throwable lastException)
message
- The timeout message.lastException
- The last exception to be thrown and subsequently suppressed while waiting
on a function.@Deprecated protected java.lang.RuntimeException timeoutException(java.lang.String message, java.lang.RuntimeException lastException)
timeoutException(String, Throwable)
. This method is scheduled for
removal in the Selenium 2.26 release.ignoring(Class)
with Throwable
s should override timeoutException(String, Throwable)
.message
- The timeout message.lastException
- The last exception to be thrown and subsequently suppressed while waiting
on a function.


A Shout for help from the beasts of the wild, who come to fight in your defense.
Your Voice is not a Shout, but a whisper, revealing the life forces of any and all.

The Thu'um reaches out to the Void, changing your form to one that cannot harm, or be harmed.
Your voice bends the very stones to your will. As it gains power, animals, people, and even dragons must do your bidding.
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....
This is the answer to question #1. Pellentesque habitant morbi....