伞形科植物的分类知识 Supporting tagline
The Parsley Family includes some wonderful edible plants like the carrot and parsnip, plus more aromatic spices found in your spice cabinet, such as anise, celery, chervil, coriander, caraway, cumin, dill, fennel and of course, parsley. But unlike the Mustard or Mint families, the Parsleys are not all safe for picking and eating. In fact, the Parsley family is among the most important families of plants to learn, since it includes the deadliest plants in North America: poison hemlock and water hemlock. Note that the hemlock tree is totally unrelated.
For identification, the most distinctive pattern of the Parsley family is the "compound umbels". Notice how all the stems of the flower cluster radiate from a single point at the end of the stalk, kind of like an umbrella. At the end of each of these flower stems there is another umbrella of even smaller stems, hence the "compound umbrella" or "compound umbel". To be a true umbel, the stems or spokes must all radiate from exactly the same point. Other flowers like the common yarrow may appear to have compound umbels, but look closer and you will see that the flower stems are staggered off the main stalk, so the yarrow is not a member of this family. Another pattern of the Parsley family is that the stems are usually, but not always hollow. Kids have been poisoned using hemlock stems for straws.
When you recognize the compound umbels of the Parsley family then you know you have to be careful. You must be 100% certain of what these plants are before you harvest them for food or medicine.
So how do you distinguish the poisonous members of the family? Don't rush it. You might think that learning plants is just a matter of filling up the disk space in your head with data, but there is a bit more to it than that. No matter what you study, whether it is plant identification, art, or math, you learn by connecting neurons in the brain to build a neural network for processing the information. Getting started is the most dangerous time, because all the plants tend to look alike-- kind of green mostly. Just practice pointing out compound umbels everywhere you go, starting with the dill or fennel in the garden. The more you practice this and other family patterns, the more you will learn to see just how unique and different each plant is.
When you are proficient at recognizing the major plant families, then go back and start studying more of the individual plants. Even then, avoid rushing to conclusions. Keep in mind that when your goal is to find an answer, then you will find one, whether it is right or not.
If you are positive that you have identified a member of the Parsley family correctly, that's good. Now wait and see if you are still sure of your answer in a few days or a week. When you get good at recognizing certain species every time you see them, then you might consider trying out their appropriate edible or medicinal uses. Worldwide there are about 300 genera in the Parsley family, representing more than 3000 species. About 75 genera are native to North America.
blog comments powered by Disqus


Version 3.0.0
Introduction
This article describes how to integrate HockeyApp into your iOS apps using a Git submodule and Xcode subprojects. The SDK allows testers to update your app to another beta version right from within the application. It will notify the tester if a new update is available. The SDK also allows to send crash reports. If a crash has happened, it will ask the tester on the next start whether he wants to send information about the crash to the server.
This document contains the following sections:
- Requirements
- Set up Git submodule
- Set up Xcode
- Modify Code
- Submit the UDID
- Mac Desktop Uploader
- Xcode Documentation
Requirements
The SDK runs on devices with iOS 5.0 or higher.
If you need support for iOS 4.x, please check out HockeySDK v2.5.5
If you need support for iOS 3.x, please check out HockeyKit and QuincyKit
Set up Git submodule
Open a Terminal window
Change to your projects directory `cd /path/to/MyProject'
If this is a new project, initialize Git:
git init
Add the submodule:
git submodule add git://github.com/BitStadium/HockeySDK-iOS.git Vendor/HockeySDK
. This would add the submodule into theVendor/HockeySDK
subfolder. Change this to the folder you prefer.Releases are always in the
master
branch while thedevelop
branch provides the latest in development source code (Using the git flow branching concept). We recommend using themaster
branch!
Set up Xcode
Find the
HockeySDK.xcodeproj
file inside of the cloned HockeySDK-iOS project directory.Drag & Drop it into the
Project Navigator
(⌘+1).Select your project in the
Project Navigator
(⌘+1).Select your target.
Select the tab
Build Phases
.Expand
Link Binary With Libraries
.Add
libHockeySDK.a
Select
Add Other...
.Select
CrashReporter.framework
from theVendor/HockeySDK/Vendor
folderExpand
Copy Bundle Resource
.Drag
HockeySDKResources.bundle
from theHockeySDK
sub-projectsProducts
folder and drop into theCopy Bundle Resource
sectionSelect
Build Settings
Add the following
Header Search Path
$(SRCROOT)/Vendor/HockeySDK/Classes
Create a new
Project.xcconfig
file, if you don’t already have one (You can give it any name)Note: You can also add the required frameworks manually to your targets
Build Phases
an continue with step17.
instead.Select your project.
Select the tab
Info
.Expand
Configurations
.Select
Project.xcconfig
for all your configurations
Open
Project.xcconfig
in the editorAdd the following line:
#include "../Vendor/HockeySDK/Support/HockeySDK.xcconfig"
(Adjust the path depending where the
Project.xcconfig
file is located related to the Xcode project package)Important note: Check if you overwrite any of the build settings and add a missing
$(inherited)
entry on the projects build settings level, so theHockeySDK.xcconfig
settings will be passed through successfully.If you are getting build warnings, then the
.xcconfig
setting wasn’t included successfully or its settings inOther Linker Flags
get ignored because$(interited)
is missing on project or target level. Either add$(inherited)
or link the following frameworks manually inLink Binary With Libraries
underBuild Phases
:CoreText
CoreGraphics
Foundation
QuartzCore
SystemConfiguration
UIKit
Modify Code
Open your
AppDelegate.m
file.Add the following line at the top of the file below your own #import statements:
#import "HockeySDK.h"
Let the AppDelegate implement the protocols
BITHockeyManagerDelegate
,BITUpdateManagerDelegate
andBITCrashManagerDelegate
:@interface AppDelegate(HockeyProtocols) `BITHockeyManagerDelegate`, `BITUpdateManagerDelegate`, `BITCrashManagerDelegate` {} @end
Search for the method
application:didFinishLaunchingWithOptions:
Add the following lines:
[[BITHockeyManager sharedHockeyManager] configureWithBetaIdentifier:@"BETA_IDENTIFIER" liveIdentifier:@"LIVE_IDENTIFIER" delegate:self]; [[BITHockeyManager sharedHockeyManager] startManager];
Replace
BETA_IDENTIFIER
with the app identifier of your beta app. If you don’t know what the app identifier is or how to find it, please read this how-to.Replace
LIVE_IDENTIFIER
with the app identifier of your release app. We suggest to setup different apps on HockeyApp for your test and production builds. You usually will have way more test versions, but your production version usually has way more crash reports. This helps to keep data separated, getting a better overview and less trouble setting the right app versions downloadable for your beta users.
Note: The SDK is optimized to defer everything possible to a later time while making sure e.g. crashes on startup can also be caught and each module executes other code with a delay some seconds. This ensures that applicationDidFinishLaunching will process as fast as possible and the SDK will not block the startup sequence resulting in a possible kill by the watchdog process.
Submit the UDID
If you only want crash reporting, you can skip this step. If you want to use HockeyApp for beta distribution and analyze which testers have installed your app, you need to implement an additional delegate method in your AppDelegate.m:
#pragma mark - BITUpdateManagerDelegate
- (NSString *)customDeviceIdentifierForUpdateManager:(BITUpdateManager *)updateManager {
#ifndef CONFIGURATION_AppStore
if ([[UIDevice currentDevice] respondsToSelector:@selector(uniqueIdentifier)])
return [[UIDevice currentDevice] performSelector:@selector(uniqueIdentifier)];
#endif
return nil;
}
The method only returns the UDID when the build is not targeted to the App Sore. This assumes that a preprocessor macro name CONFIGURATION_AppStore exists and is set for App Store builds. The macros are already defined in HockeySDK.xcconfig
or can be set manually by setting GCC_PREPROCESSOR_DEFINITIONS
in your build configurations to CONFIGURATION_$(CONFIGURATION)
.
Mac Desktop Uploader
The Mac Desktop Uploader can provide easy uploading of your app versions to HockeyApp. Check out the installation tutorial
.
Xcode Documentation
This documentation provides integrated help in Xcode for all public APIs and a set of additional tutorials and HowTos.
Download the
HockeySDK-iOS documentation
.Unzip the file. A new folder
HockeySDK-iOS-documentation
is created.Copy the content into ~
/Library/Developer/Shared/Documentation/DocSet
The documentation is also available via the following URL: http://hockeyapp.net/help/sdk/ios/3.0.0/


Day 1
Published last at 5:15pm CDT November 2 2020, subject to change throughout the day.
97,665,370 have been cast for Election 2020 thus far accounting for 70.9% of the total votes cast in the 2016 general election.
Many are forecast that the odds are highly in favor of Joe Biden including: - The Economist giving 19 in 20 odds of winning the electoral college and most votes - FiveThirtyEight forecasting 89 out of 100 odds
Yet some of those forecasters are also reminding you that, Trump can still possibly win, as FiveThirtyEight reminds us, "a huge part of why our model and others’ think Trump can still win is the Electoral College. Trump has only a 3 percent chance of winning the popular vote in our model."
Luckily, in the backdrop of this we are seeing some promising rulings that are pushing back at the unconstitutional, criminal attempt to steal votes. A Federal judge today threw out yet another attempt to invalidate some 127,000 votes collected at drive-through voting sites in Houston. Justice Hanen asked, "Why am I just getting this case?" noting that the drive-through voting has been ongoing all summer.
So what can we expect tomorrow? Anyone paying attention to the rhetoric of both camps and how they are making their closing arguments knows that the Trump response is to try to demand a result tomorrow.
Trump and Biden make their closing arguments pic.twitter.com/Qsai4MkjoO
— The Daily Show (@TheDailyShow) November 2, 2020
But that isn't how our election works. We won't have the result tomorrow. In fact, it is NORMAL to not have a result on Election Day. It will take some time. We have 1.) a pandemic 2.) unprecedented number of early voter ballots cast. Also, Trump and his cronies won't let the results stand without some meddling, so we all must be prepared and stand vigilant.
Tomorrow I will be an Election Judge in Chicago, working 5am to 7pm CT for when polls are open to close and then however long it takes after to officially submit votes.
PSA: Tomorrow I’ll be working as an Election Judge from 5am to 7pm. Helping ad I can with Spanish and other things here in #Chicago. I also will be heavily using #Election2020 over the next 72 hours before/after my shift.
— BOOOrena "La BRUJA Tigresa” Mesa @ #BLM 🖤 (@loooorenanicole) November 2, 2020
If you haven’t go #VOTE. pic.twitter.com/xzxRfJbTHx
So while there are those of us working the polls, we need every single one of you to turn out and vote and help others to if you can.
If you weren't able to today and need to vote tomorrow, you are still able to register in the following states:
🚨🚨🚨
— The Daily Show (@TheDailyShow) November 2, 2020
If you’re not registered to vote, you can do it ON Election Day in:
California
Colorado
Connecticut
D.C.
Hawaii
Idaho
Illinois
Iowa
Maine
Maryland
Michigan
Minnesota
Montana
Nambia
Nevada
New Hampshire
R.I.
Utah
Vermont
Washington
Wisconsin
Wyoming
I'll see you all on the other side.
News
- Election 2020 - Results won't be had tomorrow The Hill - Pennsylvania governor appears in new ad warning election results may take 'a few days'
- Election 2020 - Election Day Safety ABCC News - 'Non-scalable' fencing erected around White House, stores boarded up in anticipation of election protests
- Election 2020 - Last Day Election Push Bloomberg Politics - Trump, Biden Make Final Push Before Election Day
- Election 2020 - Election Interference NBC News - Trump lashes out after FBI announces investigation of Biden bus incident
- Election 2020 - Wisconsin vote POLITICO - States of the Race: ‘There’s a big presence in this state that we didn’t see 4 years ago’
- Black Lives Matter - Racial Equity CNN - Supreme Court rules in favor of Black Lives Matter organizer
Election 2020: Voting Guides
Cook County Illinois - If you're in Cook County, look no further for information on how to vote on your judges. Injustice Watch has a guide for you. - Girl, I Guess has a progressive voters guide as well. Also available in Spanish!
California - Cal Matters - Greenlining on Ballot Propositions
I'm collecting voting guides over at #GetYourVotingGuide! If you have one please contribute and share widely!
Events
Well, really, the biggest thing to watch out for is Election Day 2020 - it's tomorrow y'all. Here's some places of where to watch for updates: - Crooked Media (the crew that brings you Pod Save America) is going live tomorrow at 5:30pm CT, subscribe here to get a reminder on YouTube. - CBS has compiled a list here too.
Call to Action
- Squash misinformation about the Election by staying up to date with the CISA Rumor Control website
- University of Chicago's Election Cyber Surge (ECS) program](https://harris.uchicago.edu/research-impact/centers-institutes/cyber-policy-initiative/election-cyber-surge) is crowdsourcing data related to election incidents such as longlines, voting equipment malfunctions, cyberattacks, mis/disinformation, and more. Fill out the form here to help.
- If you voted early, keep your eyes peeled to confirm your vote has been 1.) received and 2.) approved. Examples of ballot tracking programs include BallotTrax and BallotTrace. Here's an article to help you get started.
- Get your flu shot, here's a list of where to get it.
- Download and use this "Donald Trump Must [Bin]Go" card that includes actionable items you can do now until Election Day 2020 by Clara Bellum!
- Read and prepare to vote. Here's a "How to Vote in the 2020 Election" guide prepared by FiveThirtyEight.
Just for fun
The best Election 2020 campaign I have seen, enjoy.
You have the power to silence him.
— Joe Biden (@JoeBiden) October 30, 2020
Vote: https://t.co/eoxT07uII9 pic.twitter.com/zIJUQEWlyx


Weekly Deals
Home
Vote Results
Product Likes
Banana : 0
Bathroom : 0
Bubblegum : 0
Chair : 0
Boots : 0
Breakfast : 0
Dog Duck : 0
Dragon : 0
Pen : 0
Pet Sweep : 0
Scissors : 0
Shark : 0
Sweep : 0
Tauntaun : 0
Unicorn : 0
Water Can : 0
Wine Glass : 0
Which Product Would You Choose?!


| # | Category Set | Scenario | Fails (of 2) | Status |
|---|---|---|---|---|
| 1 | Value Size | Small names | 0 | SUCCESS |
| 2 | Value Size | Large names | 0 | SUCCESS |
| 3 | Link Multiplicity | One link | 0 | SUCCESS |
| 4 | Link Multiplicity | Multiple links | 0 | SUCCESS |
| 5 | Subnetwork Multiplicity | One subnetwork | 0 | SUCCESS |
| 6 | Subnetwork Multiplicity | Multiple subnetworks | 0 | SUCCESS |
| 7 | Loops or Tree | Has loops | 0 | SUCCESS |
| 8 | Loops or Tree | Tree only | 0 | SUCCESS |
| 9 | Loop Type | Has self-loop | 0 | SUCCESS |
| 10 | Loop Type | Has 2-node loop | 0 | SUCCESS |
| 11 | Loop Type | Has 3-node loop | 0 | SUCCESS |
| 12 | Tree Type | Has linear tree | 0 | SUCCESS |
| 13 | Tree Type | Has nonlinear tree | 0 | SUCCESS |


|
iRobot Roomba 500 Series SDK
1.0.0-alpha
A C++ wrapper for the iRobot Roomba 500 Series Open Interface (OI) Specification.
|
The Roomba Open Interface (OI) OIEncoder static class. More...
#include <OIEncoder.h>
Classes | |
| struct | clock_time_t |
| Time representation for the scheduling methods. More... | |
Public Types | |
| enum | ReturnCode : int8_t { SERIAL_TRANSFER_FAILURE = -100, INVALID_PARAMETER = -10, INVALID_MODE_FOR_REQUESTED_OPERATION = -2, OI_NOT_STARTED = -1, SUCCESS = 0 } |
| Return codes. | |
| typedef std::pair< Pitch, uint8_t > | note_t |
| A musical note is defined by the frequency related pitch and length or duration. More... | |
Public Member Functions | |
| ReturnCode | operator() (const std::vector< uint8_t > &raw_instructions_, const OIMode resulting_mode_=static_cast< OIMode >(-1), const BaudCode resulting_baud_=static_cast< BaudCode >(-1)) |
| Direct access to the Open Interface. More... | |
| OIEncoder::ReturnCode | connectToSerialBus (const std::function< size_t(const uint8_t *, const size_t)> fnSerialWrite_, const BaudCode baud_code_=BAUD_115200) |
| Establishes a serial channel with the hardware. More... | |
| void | end (void) const |
| Releases control of the Roomba. More... | |
| ReturnCode | start (void) |
| Starts the OI. More... | |
| ReturnCode | baud (const BaudCode baud_code_) |
| Sets the baud rate in bits per second (bps). More... | |
| ReturnCode | control (void) |
| The effect and usage of the Control command are identical to the Safe command. More... | |
| ReturnCode | safe (void) |
| Puts the OI into Safe mode. More... | |
| ReturnCode | full (void) |
| Puts the OI into Full mode. More... | |
| ReturnCode | clean (void) |
| Starts the default cleaning mode. More... | |
| ReturnCode | max (void) |
| Starts the Max cleaning mode. More... | |
| ReturnCode | spot (void) |
| Starts the Spot cleaning mode. More... | |
| ReturnCode | seekDock (void) |
| Sends Roomba to the dock. More... | |
| ReturnCode | schedule (const bitmask::Days day_mask_, const clock_time_t *const clock_times_) const |
| Sends Roomba a new schedule. More... | |
| ReturnCode | setDayTime (const Day day_, const clock_time_t clock_time_) const |
| Sets Roomba’s clock. More... | |
| ReturnCode | power (void) |
| Powers down Roomba. More... | |
| ReturnCode | drive (const int16_t velocity_, const int16_t radius_) const |
| Controls Roomba’s drive wheels. More... | |
| ReturnCode | driveDirect (const int16_t left_wheel_velocity_, const int16_t right_wheel_velocity_) const |
| Controls the forward and backward motion of Roomba’s drive wheels independently. More... | |
| ReturnCode | drivePWM (const int16_t left_wheel_pwm_, const int16_t right_wheel_pwm_) const |
| Controls the raw forward and backward motion of Roomba’s drive wheels independently. More... | |
| ReturnCode | motors (const bitmask::MotorStates motor_state_mask_) const |
| Controls the forward and backward motion of Roomba’s main brush, side brush, and vacuum independently. More... | |
| ReturnCode | pwmMotors (const int8_t main_brush_, const int8_t side_brush_, const int8_t vacuum_) const |
| Controls the speed of Roomba’s main brush, side brush, and vacuum independently. More... | |
| ReturnCode | leds (const bitmask::display::LEDs led_mask_, const uint8_t color_, const uint8_t intensity_) const |
| Controls the LEDs. More... | |
| ReturnCode | schedulingLEDs (const bitmask::Days day_mask_, const bitmask::display::SchedulingLEDs led_mask_) const |
| Controls the state of the scheduling LEDs present on the Roomba 560 and 570. More... | |
| ReturnCode | digitLEDsRaw (const bitmask::display::DigitN raw_leds_[4]) const |
| Controls the 7 segment displays. More... | |
| ReturnCode | digitLEDsASCII (const char ascii_leds_[4]) const |
| Controls the 7 segment displays using ASCII character codes. More... | |
| ReturnCode | buttons (const bitmask::Buttons button_mask_) const |
| Push Roomba’s buttons. More... | |
| ReturnCode | song (const uint8_t song_number_, const std::vector< note_t > &song_) const |
| Specify songs to be played at a later time. More... | |
| ReturnCode | play (const uint8_t song_number_) const |
| Select a song to play. More... | |
| ReturnCode | sensors (const sensors::PacketId packet_id_) const |
| Request sensor data. More... | |
| ReturnCode | queryList (const std::vector< sensors::PacketId > &sensor_list_) const |
| Request list of sensor packets. More... | |
| ReturnCode | stream (const std::vector< sensors::PacketId > &sensor_list_) const |
| Start a data stream based on a query list. More... | |
| ReturnCode | pauseResumeStream (const bool resume_) const |
| Stop and restart the stream. More... | |
Protected Member Functions | |
| ReturnCode | pollSensors (const command::OpCode opcode_, const std::vector< sensors::PacketId > &sensor_list_) const |
| Core functionality of both queryList() and stream() More... | |
Protected Attributes | |
| std::function< size_t(const uint8_t *, const size_t)> | _fnSerialWrite |
| A function supplying access to the serial bus. More... | |
| OIMode | _oi_mode |
| The operating mode of the Open Interface. More... | |
| BaudCode | _baud_code |
| The baud rate associated with the serial bus. More... | |
The Roomba Open Interface (OI) OIEncoder static class.
The Roomba Open Interface (OI) OIEncoder is a C++ wrapper for data to be written the serial bus. It provides functionality such as request throttling with respect to baud rate, ensuring full parameter sets are delivered to the underlying serial interface, as well as offering error codes without crashing the system.
| typedef std::pair<Pitch, uint8_t> roomba::series500::oi::OIEncoder::note_t |
A musical note is defined by the frequency related pitch and length or duration.
The information is stored in std::pair data structure where the first member represents the pitch and the second represent a scalar to apply to 1/64th of a second (i.e. the value 32 is half a second).
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::baud | ( | const BaudCode | baud_code_ | ) |
Sets the baud rate in bits per second (bps).
This command sets the baud rate in bits per second (bps) at which OI commands and data are sent according to the baud code sent in the data byte.
| [in] | baud_code_ |
| SUCCESS | |
| INVALID_PARAMETER | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::buttons | ( | const bitmask::Buttons | button_mask_ | ) | const |
Push Roomba’s buttons.
This command lets you push Roomba’s buttons.
| [in] | button_mask_ |
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::clean | ( | void | ) |
Starts the default cleaning mode.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::connectToSerialBus | ( | const std::function< size_t(const uint8_t *, const size_t)> | fnSerialWrite_, |
| const BaudCode | baud_code_ = BAUD_115200 |
||
| ) |
Establishes a serial channel with the hardware.
This method must be called before any other methods of this class. It establishes a serial channel between the Open Interface class and the underlying hardware. The default baud for communicating with the Roomba outside the Open Interface is 115200, if the external microcontroller is unable to communicate at that speed, an alternative baud, 19200, is available. To enable the slower baud on the Roomba you must power-on the Roomba by holding down the clean/power button, or the Roomba can be signaled on the baud rate change line.
| [in] | fnSerialWrite_ | A function that writes to the serial bus at either 115200 or 19200 baud. |
| [in] | [baud_code_] | The baud rate at which the specified serial function will write to the serial bus (default value: BAUD_115200). Non-variable Configuration:
|
| SUCCESS | |
| INVALID_PARAMETER |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::control | ( | void | ) |
The effect and usage of the Control command are identical to the Safe command.
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::digitLEDsASCII | ( | const char | ascii_leds_[4] | ) | const |
Controls the 7 segment displays using ASCII character codes.
This command controls the four 7 segment displays on the Roomba 560 and 570 using ASCII character codes. Because a 7 segment display is not sufficient to display alphabetic characters properly, all characters are an approximation
| [in] | ascii_leds_ | An ASCII char array (valid values range from (32-126). |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::digitLEDsRaw | ( | const bitmask::display::DigitN | raw_leds_[4] | ) | const |
Controls the 7 segment displays.
This command controls the four 7 segment displays on the Roomba 560 and 570.
| [in] | raw_leds_ | An array representing the four 7 segment display values. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::drive | ( | const int16_t | velocity_, |
| const int16_t | radius_ | ||
| ) | const |
Controls Roomba’s drive wheels.
This command controls Roomba’s drive wheels. A Drive command with a positive velocity and a positive radius makes Roomba drive forward while turning toward the left. A negative radius makes Roomba turn toward the right. Special cases for the radius make Roomba turn in place or drive straight, as specified below. A negative velocity makes Roomba drive backward.
| [in] | velocity_ | (-500 – 500) The average velocity of the drive wheels in millimeters per second (mm/s). |
| [in] | radius_ | (-2000 – 2000) The radius in millimeters at which Roomba will turn. The radius is measured from the center of the turning circle to the center of Roomba. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID__MODE__FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::driveDirect | ( | const int16_t | left_wheel_velocity_, |
| const int16_t | right_wheel_velocity_ | ||
| ) | const |
Controls the forward and backward motion of Roomba’s drive wheels independently.
This command lets you control the forward and backward motion of Roomba’s drive wheels independently. A positive velocity makes that wheel drive forward, while a negative velocity makes it drive backward.
| [in] | left_wheel_velocity_ | (-500 – 500) The velocity of the left wheel in millimeters per second (mm/s). |
| [in] | right_wheel_velocity_ | (-500 – 500) The velocity of the right wheel in millimeters per second (mm/s). |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::drivePWM | ( | const int16_t | left_wheel_pwm_, |
| const int16_t | right_wheel_pwm_ | ||
| ) | const |
Controls the raw forward and backward motion of Roomba’s drive wheels independently.
This command lets you control the raw forward and backward motion of Roomba’s drive wheels independently. A positive PWM makes that wheel drive forward, while a negative PWM makes it drive backward.
| [in] | left_wheel_pwm_ | (-255 – 255) The PWM of the left wheel. |
| [in] | right_wheel_pwm_ | (-255 – 255) The PWM of the right wheel. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| void roomba::series500::oi::OIEncoder::end | ( | void | ) | const |
Releases control of the Roomba.
This method will set the OI Mode to passive and return the Roomba to its docking station. It will also reinitialize the class member variables to restore it to a clean state.
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::full | ( | void | ) |
Puts the OI into Full mode.
This command gives you complete control over Roomba by putting the OI into Full mode, and turning off the cliff, wheel-drop and internal charger safety features.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::leds | ( | const bitmask::display::LEDs | led_mask_, |
| const uint8_t | color_, | ||
| const uint8_t | intensity_ | ||
| ) | const |
Controls the LEDs.
This command controls the LEDs common to all models of Roomba 500. Clean/Power uses a bicolor (red/green) LED. The intensity and color of this LED can be controlled with 8-bit resolution.
| [in] | led_mask_ | |
| [in] | color_ | 0 = green, 255 = red. Intermediate values are intermediate colors (orange, yellow, etc). |
| [in] | intensity_ | 0 = off, 255 = full intensity. Intermediate values are intermediate intensities. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::max | ( | void | ) |
Starts the Max cleaning mode.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::motors | ( | const bitmask::MotorStates | motor_state_mask_ | ) | const |
Controls the forward and backward motion of Roomba’s main brush, side brush, and vacuum independently.
This command lets you control the forward and backward motion of Roomba’s main brush, side brush, and vacuum independently. Motor velocity cannot be controlled with this command, all motors will run at maximum speed when enabled. The main brush and side brush can be run in either direction. The vacuum only runs forward.
| [in] | motor_state_mask_ |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::operator() | ( | const std::vector< uint8_t > & | raw_instructions_, |
| const OIMode | resulting_mode_ = static_cast<OIMode>(-1) , |
||
| const BaudCode | resulting_baud_ = static_cast<BaudCode>(-1) |
||
| ) |
Direct access to the Open Interface.
Direct access sends bytes directly to the Open Interface. Direct access is potentially dangerous, because the parameters are not checked and the device can be left in a "waiting" state.
| [in] | raw_instructions_ | A stream of bytes guaranteed to be a valid command chain by the caller. |
| [in] | resulting_baud_ | The baud rate the Roomba will be using after the execution of the byte stream provided in the data_ parameter. |
| [in] | [resulting_mode_] | The OI mode the Roomba will be left in after the execution of the byte stream provided in the data_ parameter. |
| SUCCESS | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::pauseResumeStream | ( | const bool | resume_ | ) | const |
Stop and restart the stream.
This command lets you stop and restart the steam without clearing the list of requested packets.
| [in] | resume_ | An argument of false stops the stream without clearing the list of requested packets. An argument of true starts the stream using the list of packets last requested. |
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::play | ( | const uint8_t | song_number_ | ) | const |
Select a song to play.
This command lets you select a song to play from the songs added to Roomba using the Song command. You must add one or more songs to Roomba using the Song command in order for the Play command to work.
| [in] | song_number_ | (0-4) The number of the song Roomba is to play. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
|
protected |
Core functionality of both queryList() and stream()
Both queryList() and stream() have identical implementations. The only difference is the original Open Interface opcode, which tells the the Roomba to send the data once or until asked not to.
| [in] | opcode_ | Send either QUERY_LIST or STREAM |
| [in] | sensor_list_ | A vector of packet ids |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::power | ( | void | ) |
Powers down Roomba.
This command powers down Roomba. The OI can be in Passive, Safe, or Full mode to accept this command.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::pwmMotors | ( | const int8_t | main_brush_, |
| const int8_t | side_brush_, | ||
| const int8_t | vacuum_ | ||
| ) | const |
Controls the speed of Roomba’s main brush, side brush, and vacuum independently.
This command lets you control the speed of Roomba’s main brush, side brush, and vacuum independently. With each parameter, you specify the duty cycle for the low side driver (max 127). Positive speeds turn the motor in its default (cleaning) direction. For example, if you want to control a motor with 25% of battery voltage, choose a duty cycle of 127 * 25% ~ 32.
| [in] | main_brush_ | (-127 – 127) |
| [in] | side_brush_ | (-127 – 127) |
| [in] | vacuum_ | (0 – 127) |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::queryList | ( | const std::vector< sensors::PacketId > & | sensor_list_ | ) | const |
Request list of sensor packets.
This command lets you ask for a list of sensor packets. The result is returned once, as in the Sensors command. The robot returns the packets in the order you specify.
| [in] | sensor_list_ | A vector of packet ids |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::safe | ( | void | ) |
Puts the OI into Safe mode.
This command puts the OI into Safe mode, enabling user control of Roomba. It turns off all LEDs. The OI can be in Passive, Safe, or Full mode to accept this command.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::schedule | ( | const bitmask::Days | day_mask_, |
| const clock_time_t *const | clock_times_ | ||
| ) | const |
Sends Roomba a new schedule.
This command sends Roomba a new schedule. To disable scheduled cleaning, send all 0s.
| [in] | day_mask_ | A bitmask representing the days of the week |
| [in] | clock_times_ | A sparse array of clock_time_t variables following { Sun time, Mon time, ..., Sat time }. |
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::schedulingLEDs | ( | const bitmask::Days | day_mask_, |
| const bitmask::display::SchedulingLEDs | led_mask_ | ||
| ) | const |
Controls the state of the scheduling LEDs present on the Roomba 560 and 570.
| [in] | day_mask_ | |
| [in] | led_mask_ |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_MODE_FOR_REQUESTED_OPERATION | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::seekDock | ( | void | ) |
Sends Roomba to the dock.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::sensors | ( | const sensors::PacketId | packet_id_ | ) | const |
Request sensor data.
This command requests the OI to send a packet of sensor data bytes. There are 58 different sensor data packets. Each provides a value of a specific sensor or group of sensors.
| [in] | packet_id_ | Identifies which of the 58 sensor data packets should be sent back by the OI. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::setDayTime | ( | const Day | day_, |
| const clock_time_t | clock_time_ | ||
| ) | const |
Sets Roomba’s clock.
| [in] | day_ | |
| [in] | clock_time_ | (hour [0-23] and minute [0-59]) |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::song | ( | const uint8_t | song_number_, |
| const std::vector< note_t > & | song_ | ||
| ) | const |
Specify songs to be played at a later time.
This command lets you specify up to four songs to the OI that you can play at a later time. Each song is associated with a song number. The Play command uses the song number to identify your song selection. Each song can contain up to sixteen notes. Each note is associated with a note number that uses MIDI note definitions and a duration that is specified in increments of 1/64th of a second.
| [in] | song_number_ | (0-4) The song number associated with the specific song. |
| [in] | song_ | A vector of std::pairs composed of Note and duration. |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::spot | ( | void | ) |
Starts the Spot cleaning mode.
| SUCCESS | |
| OI_NOT_STARTED | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::start | ( | void | ) |
Starts the OI.
You must always send the Start command before sending any other commands to the OI.
| SUCCESS | |
| SERIAL_TRANSFER_FAILURE |
| OIEncoder::ReturnCode roomba::series500::oi::OIEncoder::stream | ( | const std::vector< sensors::PacketId > & | sensor_list_ | ) | const |
Start a data stream based on a query list.
This command starts a stream of data packets. The list of packets requested is sent every 15 ms, which is the rate Roomba uses to update data.
| [in] | sensor_list_ | A vector of packet ids |
| SUCCESS | |
| OI_NOT_STARTED | |
| INVALID_PARAMETER | |
| SERIAL_TRANSFER_FAILURE |
|
protected |
The baud rate associated with the serial bus.
This variable is used to calculate buffer overrun protection.
|
protected |
A function supplying access to the serial bus.
This function is provided from the call to connectToSerialBus() after class has been instantiated.
|
protected |
The operating mode of the Open Interface.
This variable is used to track the current operating mode of the open interface (i.e. Off, Passive, Safe, Full)


@@include('meta-head.partial.html')
We have been together for 10 years. A decade! On 11.11, we will be celebrating our 11-year anniversary and wedding.
We grew up on the east coast, lived in the midwest, and recently moved to the west coast. We tried really hard to find a place to have a wedding that would not be difficult for our guests to get to, but in the end, no matter where we chose, the majority if not all of our guests would have to travel by plane or at least car. We decided we might as well run with it and make it a destination wedding.
It'll be quite an adventure and we really hope you can make the trip. We're so happy we'll get a chance to have all of you meet or reunite! We are so excited to see all of you again; it really has been much too long.
Safe travels,
Nancy, Wesley, & Boolean
Rattlesnake Ledge, WA
John Crozier Photography
A very special thank you to Brenda Boone, Irene Tien, and Stephen Tien who have done so much to help us have a beautiful, grand wedding.
Thanks so much to our wedding party and officiant for being such incredible and steadfast friends all these years and for all your help planning and setting up for our wedding. Also, a special thank you to Irene Setchfield, for being such an amazing neighbor and supportive friend, and for always cheering us on so wholeheartedly.
Thanks so much to all of you, for being there for us always, and for sharing your lives with us. All of you have brought so much happiness into our lives and we are so forever grateful.


mixcord v0.1.0 Mixcord.Shard.Dispatch
Handles events from Discord’s WS connection.
All events received are handled in their own task. Any handlers you define will be run synchronously after the lib handles the event.
To define your own event define a function like handle_event/2
.
The first parameter is a tuple
containing the event type as an atom
and the
payload of the event as a map
. The second parameter is the current state
of the shard
on which the event was received.
Example
import Mixcord.Api, only: [create_message: 2]
def handle_event({:MESSAGE_CREATE, message}, _state) do
case message.content do
"PONG" ->
create_message(message.channel_id, "PING")
"PING" ->
create_message(message.channel_id, "PONG")
_ ->
create_message(message.channel_id, "I copy and pasted this code")
end
end


Salmon Cookies
Home
Sales
Location
about
This is our lovely familey
This is our location an the time when we open


Start connecting with other researchers -- it's free.
By clicking Create Profile you agree to our Terms and that you have read out Data Policy, including our Cookie Use


Question: How TSP can be solved with a minimum spanning tree?
Project team: Olha Shepelenko, Sergii Shepelenko, Vitalii Zakharov
In computer science, Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph. Link: https://en.wikipedia.org/wiki/Prim%27s_algorithm
It is a greedy algorithm in graph theory as it finds a minimum spanning tree for a connected weighted graph adding increasing cost arcs at each step. Link: https://en.wikipedia.org/wiki/Kruskal%27s_algorithm
The travelling salesman problem (TSP) asks the following question: Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city? Link: https://en.wikipedia.org/wiki/Travelling_salesman_problem


Schedule your chat hours, days, or even months in advance.
Receive upcoming chat event through push notification.
Chat with anyone, anytime, anywhere... FREE.
SkedChat is built on top of HTML 5 and the all new WebRTC. WebRTC is an API definition that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins. Currently runs on latest Chrome, Firefox, and Opera.
Don't worry. We do not spam :)


{% import "components/forms/_forms.html" as forms %} {% macro modal (modal_name='', modal_title='', modal_content='' value='') %}


Running computer-based experiments just got a whole lot easier with Tatool.
Running computer-based experiments just got a whole lot easier with Tatool.
The new Tatool is based on the widely-used and well-known web technology standards HTML5, CSS, JavaScript and node.js. This makes it easy to create your own experiments even with only little prior programming knowledge.
We focused on the functionality that you need to get your research done. The new Tatool assists you throughout the process: Go from programming and configuring your experiments to collecting data and analysing it, in no time.
Thanks to Tatool's web technologies you can test participants from all around the world by telling them to just start up their favourite web browser. You prefer collecting data offline? No problem, Tatool runs also in offline lab-mode.


Nephos
Shop
My Account
My Orders
My Wishlists
ELie Daniels
0
Orders
Quick Cart
$
1521,94
Open Cart
Conqueror
$385,00
Gentleman
$329,00
Child Desk
$278,47
Design Shelf
$529,47,00
Type the name of the product you are looking for
CHECKOUT
ORDER-485359
Checkout as
Elie Daniels
Switch Account ?
First Name*
Last Name*
Email*
Cancel
Next


Select Your Membership Option Supporter : $10.00 USD - monthly Starving Student Hacker : $15.00 USD - monthly Regular Hacker : $25.00 USD - monthly Regular Family Hackers : $40.00 USD - monthly Progress Driver : $60.00 USD - monthly Annual Supporter : $60.00 USD - yearly Any notes for us? become a member


It is not recommended that Forms be shared. If shared, forms may be filled from Facebook or Twitter or Email.


| | |
- exceptions.Exception(exceptions.BaseException)
-
- Error
-
- RequestError
- gdata.service.GDataService(atom.service.AtomService)
-
- ContactsService
- gdata.service.Query(__builtin__.dict)
-
- ContactsQuery
- GroupsQuery
class ContactsQuery(gdata.service.Query) |
| | |
- Method resolution order:
- ContactsQuery
- gdata.service.Query
- __builtin__.dict
- __builtin__.object
Methods defined here:
- __init__(self, feed=None, text_query=None, params=None, categories=None, group=None)
Data descriptors defined here:
- group
- The group query parameter to find only contacts in this group
Methods inherited from gdata.service.Query:
- ToUri(self)
- __str__(self)
Data descriptors inherited from gdata.service.Query:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- alt
- The feed query's alt parameter
- author
- The feed query's author parameter
- max_results
- The feed query's max-results parameter
- orderby
- The feed query's orderby parameter
- published_max
- The feed query's published-max parameter
- published_min
- The feed query's published-min parameter
- start_index
- The feed query's start-index parameter
- text_query
- The feed query's q parameter
- updated_max
- The feed query's updated-max parameter
- updated_min
- The feed query's updated-min parameter
Methods inherited from __builtin__.dict:
- __cmp__(...)
- x.__cmp__(y) <==> cmp(x,y)
- __contains__(...)
- D.__contains__(k) -> True if D has a key k, else False
- __delitem__(...)
- x.__delitem__(y) <==> del x[y]
- __eq__(...)
- x.__eq__(y) <==> x==y
- __ge__(...)
- x.__ge__(y) <==> x>=y
- __getattribute__(...)
- x.__getattribute__('name') <==> x.name
- __getitem__(...)
- x.__getitem__(y) <==> x[y]
- __gt__(...)
- x.__gt__(y) <==> x>y
- __iter__(...)
- x.__iter__() <==> iter(x)
- __le__(...)
- x.__le__(y) <==> x<=y
- __len__(...)
- x.__len__() <==> len(x)
- __lt__(...)
- x.__lt__(y) <==> x<y
- __ne__(...)
- x.__ne__(y) <==> x!=y
- __repr__(...)
- x.__repr__() <==> repr(x)
- __setitem__(...)
- x.__setitem__(i, y) <==> x[i]=y
- __sizeof__(...)
- D.__sizeof__() -> size of D in memory, in bytes
- clear(...)
- D.clear() -> None. Remove all items from D.
- copy(...)
- D.copy() -> a shallow copy of D
- get(...)
- D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
- has_key(...)
- D.has_key(k) -> True if D has a key k, else False
- items(...)
- D.items() -> list of D's (key, value) pairs, as 2-tuples
- iteritems(...)
- D.iteritems() -> an iterator over the (key, value) items of D
- iterkeys(...)
- D.iterkeys() -> an iterator over the keys of D
- itervalues(...)
- D.itervalues() -> an iterator over the values of D
- keys(...)
- D.keys() -> list of D's keys
- pop(...)
- D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
- popitem(...)
- D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
- setdefault(...)
- D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
- update(...)
- D.update(E, **F) -> None. Update D from E and F: for k in E: D[k] = E[k]
(if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k]
- values(...)
- D.values() -> list of D's values
Data and other attributes inherited from __builtin__.dict:
- __hash__ = None
- __new__ = <built-in method __new__ of type object at 0x7569a0>
- T.__new__(S, ...) -> a new object with type S, a subtype of T
- fromkeys = <built-in method fromkeys of type object at 0xd3c920>
- dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.
|
class ContactsService(gdata.service.GDataService) |
| |
Client for the Google Contacts service. |
| |
- Method resolution order:
- ContactsService
- gdata.service.GDataService
- atom.service.AtomService
- __builtin__.object
Methods defined here:
- ChangePhoto(self, media, contact_entry_or_url, content_type=None, content_length=None)
- Change the photo for the contact by uploading a new photo.
Performs a PUT against the photo edit URL to send the binary data for the
photo.
Args:
media: filename, file-like-object, or a gdata.MediaSource object to send.
contact_entry_or_url: ContactEntry or str If it is a ContactEntry, this
method will search for an edit photo link URL and
perform a PUT to the URL.
content_type: str (optional) the mime type for the photo data. This is
necessary if media is a file or file name, but if media
is a MediaSource object then the media object can contain
the mime type. If media_type is set, it will override the
mime type in the media object.
content_length: int or str (optional) Specifying the content length is
only required if media is a file-like object. If media
is a filename, the length is determined using
os.path.getsize. If media is a MediaSource object, it is
assumed that it already contains the content length.
- CreateContact(self, new_contact, insert_uri=None, url_params=None, escape_params=True)
- Adds an new contact to Google Contacts.
Args:
new_contact: atom.Entry or subclass A new contact which is to be added to
Google Contacts.
insert_uri: the URL to post new contacts to the feed
url_params: dict (optional) Additional URL parameters to be included
in the insertion request.
escape_params: boolean (optional) If true, the url_parameters will be
escaped before they are included in the request.
Returns:
On successful insert, an entry containing the contact created
On failure, a RequestError is raised of the form:
{'status': HTTP status code from server,
'reason': HTTP reason from the server,
'body': HTTP body of the server's response}
- CreateGroup(self, new_group, insert_uri=None, url_params=None, escape_params=True)
- DeleteContact(self, edit_uri, extra_headers=None, url_params=None, escape_params=True)
- Removes an contact with the specified ID from Google Contacts.
Args:
edit_uri: string The edit URL of the entry to be deleted. Example:
'/m8/feeds/contacts/default/full/xxx/yyy'
url_params: dict (optional) Additional URL parameters to be included
in the deletion request.
escape_params: boolean (optional) If true, the url_parameters will be
escaped before they are included in the request.
Returns:
On successful delete, a httplib.HTTPResponse containing the server's
response to the DELETE request.
On failure, a RequestError is raised of the form:
{'status': HTTP status code from server,
'reason': HTTP reason from the server,
'body': HTTP body of the server's response}
- DeleteGroup(self, edit_uri, extra_headers=None, url_params=None, escape_params=True)
- DeletePhoto(self, contact_entry_or_url)
- ExecuteBatch(self, batch_feed, url, converter=<function ContactsFeedFromString at 0x7f79a1af30c8>)
- Sends a batch request feed to the server.
Args:
batch_feed: gdata.contacts.ContactFeed A feed containing batch
request entries. Each entry contains the operation to be performed
on the data contained in the entry. For example an entry with an
operation type of insert will be used as if the individual entry
had been inserted.
url: str The batch URL to which these operations should be applied.
converter: Function (optional) The function used to convert the server's
response to an object. The default value is ContactsFeedFromString.
Returns:
The results of the batch request's execution on the server. If the
default converter is used, this is stored in a ContactsFeed.
- GetContact(self, uri)
- GetContactsFeed(self, uri=None)
- GetFeedUri(self, kind='contacts', contact_list=None, projection='full', scheme=None)
- Builds a feed URI.
Args:
kind: The type of feed to return, typically 'groups' or 'contacts'.
Default value: 'contacts'.
contact_list: The contact list to return a feed for.
Default value: self.contact_list.
projection: The projection to apply to the feed contents, for example
'full', 'base', 'base/12345', 'full/batch'. Default value: 'full'.
scheme: The URL scheme such as 'http' or 'https', None to return a
relative URI without hostname.
Returns:
A feed URI using the given kind, contact list, and projection.
Example: '/m8/feeds/contacts/default/full'.
- GetGroupsFeed(self, uri=None)
- GetPhoto(self, contact_entry_or_url)
- Retrives the binary data for the contact's profile photo as a string.
Args:
contact_entry_or_url: a gdata.contacts.ContactEntry objecr or a string
containing the photo link's URL. If the contact entry does not
contain a photo link, the image will not be fetched and this method
will return None.
- UpdateContact(self, edit_uri, updated_contact, url_params=None, escape_params=True)
- Updates an existing contact.
Args:
edit_uri: string The edit link URI for the element being updated
updated_contact: string, atom.Entry or subclass containing
the Atom Entry which will replace the contact which is
stored at the edit_url
url_params: dict (optional) Additional URL parameters to be included
in the update request.
escape_params: boolean (optional) If true, the url_parameters will be
escaped before they are included in the request.
Returns:
On successful update, a httplib.HTTPResponse containing the server's
response to the PUT request.
On failure, a RequestError is raised of the form:
{'status': HTTP status code from server,
'reason': HTTP reason from the server,
'body': HTTP body of the server's response}
- UpdateGroup(self, edit_uri, updated_group, url_params=None, escape_params=True)
- __init__(self, email=None, password=None, source=None, server='www.google.com', additional_headers=None, contact_list='default', **kwargs)
- Creates a client for the Contacts service.
Args:
email: string (optional) The user's email address, used for
authentication.
password: string (optional) The user's password.
source: string (optional) The name of the user's application.
server: string (optional) The name of the server to which a connection
will be opened. Default value: 'www.google.com'.
contact_list: string (optional) The name of the default contact list to
use when no URI is specified to the methods of the service.
Default value: 'default' (the logged in user's contact list).
**kwargs: The other parameters to pass to gdata.service.GDataService
constructor.
Methods inherited from gdata.service.GDataService:
- AuthSubTokenInfo(self)
- Fetches the AuthSub token's metadata from the server.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
- ClientLogin(self, username, password, account_type=None, service=None, auth_service_url=None, source=None, captcha_token=None, captcha_response=None)
- Convenience method for authenticating using ProgrammaticLogin.
Sets values for email, password, and other optional members.
Args:
username:
password:
account_type: string (optional)
service: string (optional)
auth_service_url: string (optional)
captcha_token: string (optional)
captcha_response: string (optional)
- Delete(self, uri, extra_headers=None, url_params=None, escape_params=True, redirects_remaining=4)
- Deletes the entry at the given URI.
Args:
uri: string The URI of the entry to be deleted. Example:
'/base/feeds/items/ITEM-ID'
extra_headers: dict (optional) HTTP headers which are to be included.
The client automatically sets the Content-Type and
Authorization headers.
url_params: dict (optional) Additional URL parameters to be included
in the URI. These are translated into query arguments
in the form '&dict_key=value&...'.
Example: {'max-results': '250'} becomes &max-results=250
escape_params: boolean (optional) If false, the calling code has already
ensured that the query will form a valid URL (all
reserved characters have been escaped). If true, this
method will escape the query and any URL parameters
provided.
Returns:
True if the entry was deleted.
- FetchOAuthRequestToken(self, scopes=None, extra_parameters=None, request_url='https://www.google.com/accounts/OAuthGetRequestToken', oauth_callback=None)
- Fetches and sets the OAuth request token and returns it.
Args:
scopes: string or list of string base URL(s) of the service(s) to be
accessed. If None, then this method tries to determine the
scope(s) from the current service.
extra_parameters: dict (optional) key-value pairs as any additional
parameters to be included in the URL and signature while making a
request for fetching an OAuth request token. All the OAuth parameters
are added by default. But if provided through this argument, any
default parameters will be overwritten. For e.g. a default parameter
oauth_version 1.0 can be overwritten if
extra_parameters = {'oauth_version': '2.0'}
request_url: Request token URL. The default is
'https://www.google.com/accounts/OAuthGetRequestToken'.
oauth_callback: str (optional) If set, it is assume the client is using
the OAuth v1.0a protocol where the callback url is sent in the
request token step. If the oauth_callback is also set in
extra_params, this value will override that one.
Returns:
The fetched request token as a gdata.auth.OAuthToken object.
Raises:
FetchingOAuthRequestTokenFailed if the server responded to the request
with an error.
- GenerateAuthSubURL(self, next, scope, secure=False, session=True, domain='default')
- Generate a URL at which the user will login and be redirected back.
Users enter their credentials on a Google login page and a token is sent
to the URL specified in next. See documentation for AuthSub login at:
http://code.google.com/apis/accounts/docs/AuthSub.html
Args:
next: string The URL user will be sent to after logging in.
scope: string or list of strings. The URLs of the services to be
accessed.
secure: boolean (optional) Determines whether or not the issued token
is a secure token.
session: boolean (optional) Determines whether or not the issued token
can be upgraded to a session token.
- GenerateOAuthAuthorizationURL(self, request_token=None, callback_url=None, extra_params=None, include_scopes_in_callback=False, scopes_param_prefix='oauth_token_scope', request_url='https://www.google.com/accounts/OAuthAuthorizeToken')
- Generates URL at which user will login to authorize the request token.
Args:
request_token: gdata.auth.OAuthToken (optional) OAuth request token.
If not specified, then the current token will be used if it is of
type <gdata.auth.OAuthToken>, else it is found by looking in the
token_store by looking for a token for the current scope.
callback_url: string (optional) The URL user will be sent to after
logging in and granting access.
extra_params: dict (optional) Additional parameters to be sent.
include_scopes_in_callback: Boolean (default=False) if set to True, and
if 'callback_url' is present, the 'callback_url' will be modified to
include the scope(s) from the request token as a URL parameter. The
key for the 'callback' URL's scope parameter will be
OAUTH_SCOPE_URL_PARAM_NAME. The benefit of including the scope URL as
a parameter to the 'callback' URL, is that the page which receives
the OAuth token will be able to tell which URLs the token grants
access to.
scopes_param_prefix: string (default='oauth_token_scope') The URL
parameter key which maps to the list of valid scopes for the token.
This URL parameter will be included in the callback URL along with
the scopes of the token as value if include_scopes_in_callback=True.
request_url: Authorization URL. The default is
'https://www.google.com/accounts/OAuthAuthorizeToken'.
Returns:
A string URL at which the user is required to login.
Raises:
NonOAuthToken if the user's request token is not an OAuth token or if a
request token was not available.
- Get(self, uri, extra_headers=None, redirects_remaining=4, encoding='UTF-8', converter=None)
- Query the GData API with the given URI
The uri is the portion of the URI after the server value
(ex: www.google.com).
To perform a query against Google Base, set the server to
'base.google.com' and set the uri to '/base/feeds/...', where ... is
your query. For example, to find snippets for all digital cameras uri
should be set to: '/base/feeds/snippets?bq=digital+camera'
Args:
uri: string The query in the form of a URI. Example:
'/base/feeds/snippets?bq=digital+camera'.
extra_headers: dictionary (optional) Extra HTTP headers to be included
in the GET request. These headers are in addition to
those stored in the client's additional_headers property.
The client automatically sets the Content-Type and
Authorization headers.
redirects_remaining: int (optional) Tracks the number of additional
redirects this method will allow. If the service object receives
a redirect and remaining is 0, it will not follow the redirect.
This was added to avoid infinite redirect loops.
encoding: string (optional) The character encoding for the server's
response. Default is UTF-8
converter: func (optional) A function which will transform
the server's results before it is returned. Example: use
GDataFeedFromString to parse the server response as if it
were a GDataFeed.
Returns:
If there is no ResultsTransformer specified in the call, a GDataFeed
or GDataEntry depending on which is sent from the server. If the
response is niether a feed or entry and there is no ResultsTransformer,
return a string. If there is a ResultsTransformer, the returned value
will be that of the ResultsTransformer function.
- GetAuthSubToken(self)
- Returns the AuthSub token as a string.
If the token is an gdta.auth.AuthSubToken, the Authorization Label
("AuthSub token") is removed.
This method examines the current_token to see if it is an AuthSubToken
or SecureAuthSubToken. If not, it searches the token_store for a token
which matches the current scope.
The current scope is determined by the service name string member.
Returns:
If the current_token is set to an AuthSubToken/SecureAuthSubToken,
return the token string. If there is no current_token, a token string
for a token which matches the service object's default scope is returned.
If there are no tokens valid for the scope, returns None.
- GetClientLoginToken(self)
- Returns the token string for the current token or a token matching the
service scope.
If the current_token is a ClientLoginToken, the token string for
the current token is returned. If the current_token is not set, this method
searches for a token in the token_store which is valid for the service
object's current scope.
The current scope is determined by the service name string member.
The token string is the end of the Authorization header, it doesn not
include the ClientLogin label.
- GetEntry(self, uri, extra_headers=None)
- Query the GData API with the given URI and receive an Entry.
See also documentation for gdata.service.Get
Args:
uri: string The query in the form of a URI. Example:
'/base/feeds/snippets?bq=digital+camera'.
extra_headers: dictionary (optional) Extra HTTP headers to be included
in the GET request. These headers are in addition to
those stored in the client's additional_headers property.
The client automatically sets the Content-Type and
Authorization headers.
Returns:
A GDataEntry built from the XML in the server's response.
- GetFeed(self, uri, extra_headers=None, converter=<function GDataFeedFromString at 0x7f79a1ac1488>)
- Query the GData API with the given URI and receive a Feed.
See also documentation for gdata.service.Get
Args:
uri: string The query in the form of a URI. Example:
'/base/feeds/snippets?bq=digital+camera'.
extra_headers: dictionary (optional) Extra HTTP headers to be included
in the GET request. These headers are in addition to
those stored in the client's additional_headers property.
The client automatically sets the Content-Type and
Authorization headers.
Returns:
A GDataFeed built from the XML in the server's response.
- GetMedia(self, uri, extra_headers=None)
- Returns a MediaSource containing media and its metadata from the given
URI string.
- GetNext(self, feed)
- Requests the next 'page' of results in the feed.
This method uses the feed's next link to request an additional feed
and uses the class of the feed to convert the results of the GET request.
Args:
feed: atom.Feed or a subclass. The feed should contain a next link and
the type of the feed will be applied to the results from the
server. The new feed which is returned will be of the same class
as this feed which was passed in.
Returns:
A new feed representing the next set of results in the server's feed.
The type of this feed will match that of the feed argument.
- GetOAuthInputParameters(self)
- Post(self, data, uri, extra_headers=None, url_params=None, escape_params=True, redirects_remaining=4, media_source=None, converter=None)
- Insert or update data into a GData service at the given URI.
Args:
data: string, ElementTree._Element, atom.Entry, or gdata.GDataEntry The
XML to be sent to the uri.
uri: string The location (feed) to which the data should be inserted.
Example: '/base/feeds/items'.
extra_headers: dict (optional) HTTP headers which are to be included.
The client automatically sets the Content-Type,
Authorization, and Content-Length headers.
url_params: dict (optional) Additional URL parameters to be included
in the URI. These are translated into query arguments
in the form '&dict_key=value&...'.
Example: {'max-results': '250'} becomes &max-results=250
escape_params: boolean (optional) If false, the calling code has already
ensured that the query will form a valid URL (all
reserved characters have been escaped). If true, this
method will escape the query and any URL parameters
provided.
media_source: MediaSource (optional) Container for the media to be sent
along with the entry, if provided.
converter: func (optional) A function which will be executed on the
server's response. Often this is a function like
GDataEntryFromString which will parse the body of the server's
response and return a GDataEntry.
Returns:
If the post succeeded, this method will return a GDataFeed, GDataEntry,
or the results of running converter on the server's result body (if
converter was specified).
- PostOrPut(self, verb, data, uri, extra_headers=None, url_params=None, escape_params=True, redirects_remaining=4, media_source=None, converter=None)
- Insert data into a GData service at the given URI.
Args:
verb: string, either 'POST' or 'PUT'
data: string, ElementTree._Element, atom.Entry, or gdata.GDataEntry The
XML to be sent to the uri.
uri: string The location (feed) to which the data should be inserted.
Example: '/base/feeds/items'.
extra_headers: dict (optional) HTTP headers which are to be included.
The client automatically sets the Content-Type,
Authorization, and Content-Length headers.
url_params: dict (optional) Additional URL parameters to be included
in the URI. These are translated into query arguments
in the form '&dict_key=value&...'.
Example: {'max-results': '250'} becomes &max-results=250
escape_params: boolean (optional) If false, the calling code has already
ensured that the query will form a valid URL (all
reserved characters have been escaped). If true, this
method will escape the query and any URL parameters
provided.
media_source: MediaSource (optional) Container for the media to be sent
along with the entry, if provided.
converter: func (optional) A function which will be executed on the
server's response. Often this is a function like
GDataEntryFromString which will parse the body of the server's
response and return a GDataEntry.
Returns:
If the post succeeded, this method will return a GDataFeed, GDataEntry,
or the results of running converter on the server's result body (if
converter was specified).
- ProgrammaticLogin(self, captcha_token=None, captcha_response=None)
- Authenticates the user and sets the GData Auth token.
Login retreives a temporary auth token which must be used with all
requests to GData services. The auth token is stored in the GData client
object.
Login is also used to respond to a captcha challenge. If the user's login
attempt failed with a CaptchaRequired error, the user can respond by
calling Login with the captcha token and the answer to the challenge.
Args:
captcha_token: string (optional) The identifier for the captcha challenge
which was presented to the user.
captcha_response: string (optional) The user's answer to the captch
challenge.
Raises:
CaptchaRequired if the login service will require a captcha response
BadAuthentication if the login service rejected the username or password
Error if the login service responded with a 403 different from the above
- Put(self, data, uri, extra_headers=None, url_params=None, escape_params=True, redirects_remaining=3, media_source=None, converter=None)
- Updates an entry at the given URI.
Args:
data: string, ElementTree._Element, or xml_wrapper.ElementWrapper The
XML containing the updated data.
uri: string A URI indicating entry to which the update will be applied.
Example: '/base/feeds/items/ITEM-ID'
extra_headers: dict (optional) HTTP headers which are to be included.
The client automatically sets the Content-Type,
Authorization, and Content-Length headers.
url_params: dict (optional) Additional URL parameters to be included
in the URI. These are translated into query arguments
in the form '&dict_key=value&...'.
Example: {'max-results': '250'} becomes &max-results=250
escape_params: boolean (optional) If false, the calling code has already
ensured that the query will form a valid URL (all
reserved characters have been escaped). If true, this
method will escape the query and any URL parameters
provided.
converter: func (optional) A function which will be executed on the
server's response. Often this is a function like
GDataEntryFromString which will parse the body of the server's
response and return a GDataEntry.
Returns:
If the put succeeded, this method will return a GDataFeed, GDataEntry,
or the results of running converter on the server's result body (if
converter was specified).
- RevokeAuthSubToken(self)
- Revokes an existing AuthSub token.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
- RevokeOAuthToken(self, request_url='https://www.google.com/accounts/AuthSubRevokeToken')
- Revokes an existing OAuth token.
request_url: Token revoke URL. The default is
'https://www.google.com/accounts/AuthSubRevokeToken'.
Raises:
NonOAuthToken if the user's auth token is not an OAuth token.
RevokingOAuthTokenFailed if request for revoking an OAuth token failed.
- SetAuthSubToken(self, token, scopes=None, rsa_key=None)
- Sets the token sent in requests to an AuthSub token.
Sets the current_token and attempts to add the token to the token_store.
Only use this method if you have received a token from the AuthSub
service. The auth token is set automatically when UpgradeToSessionToken()
is used. See documentation for Google AuthSub here:
http://code.google.com/apis/accounts/AuthForWebApps.html
Args:
token: gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken or string
The token returned by the AuthSub service. If the token is an
AuthSubToken or SecureAuthSubToken, the scope information stored in
the token is used. If the token is a string, the scopes parameter is
used to determine the valid scopes.
scopes: list of URLs for which the token is valid. This is only used
if the token parameter is a string.
rsa_key: string (optional) Private key required for RSA_SHA1 signature
method. This parameter is necessary if the token is a string
representing a secure token.
- SetClientLoginToken(self, token, scopes=None)
- Sets the token sent in requests to a ClientLogin token.
This method sets the current_token to a new ClientLoginToken and it
also attempts to add the ClientLoginToken to the token_store.
Only use this method if you have received a token from the ClientLogin
service. The auth_token is set automatically when ProgrammaticLogin()
is used. See documentation for Google ClientLogin here:
http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
Args:
token: string or instance of a ClientLoginToken.
- SetOAuthInputParameters(self, signature_method, consumer_key, consumer_secret=None, rsa_key=None, two_legged_oauth=False, requestor_id=None)
- Sets parameters required for using OAuth authentication mechanism.
NOTE: Though consumer_secret and rsa_key are optional, either of the two
is required depending on the value of the signature_method.
Args:
signature_method: class which provides implementation for strategy class
oauth.oauth.OAuthSignatureMethod. Signature method to be used for
signing each request. Valid implementations are provided as the
constants defined by gdata.auth.OAuthSignatureMethod. Currently
they are gdata.auth.OAuthSignatureMethod.RSA_SHA1 and
gdata.auth.OAuthSignatureMethod.HMAC_SHA1
consumer_key: string Domain identifying third_party web application.
consumer_secret: string (optional) Secret generated during registration.
Required only for HMAC_SHA1 signature method.
rsa_key: string (optional) Private key required for RSA_SHA1 signature
method.
two_legged_oauth: boolean (optional) Enables two-legged OAuth process.
requestor_id: string (optional) User email adress to make requests on
their behalf. This parameter should only be set when two_legged_oauth
is True.
- SetOAuthToken(self, oauth_token)
- Attempts to set the current token and add it to the token store.
The oauth_token can be any OAuth token i.e. unauthorized request token,
authorized request token or access token.
This method also attempts to add the token to the token store.
Use this method any time you want the current token to point to the
oauth_token passed. For e.g. call this method with the request token
you receive from FetchOAuthRequestToken.
Args:
request_token: gdata.auth.OAuthToken OAuth request token.
- UpgradeToOAuthAccessToken(self, authorized_request_token=None, request_url='https://www.google.com/accounts/OAuthGetAccessToken', oauth_version='1.0', oauth_verifier=None)
- Upgrades the authorized request token to an access token and returns it
Args:
authorized_request_token: gdata.auth.OAuthToken (optional) OAuth request
token. If not specified, then the current token will be used if it is
of type <gdata.auth.OAuthToken>, else it is found by looking in the
token_store by looking for a token for the current scope.
request_url: Access token URL. The default is
'https://www.google.com/accounts/OAuthGetAccessToken'.
oauth_version: str (default='1.0') oauth_version parameter. All other
'oauth_' parameters are added by default. This parameter too, is
added by default but here you can override it's value.
oauth_verifier: str (optional) If present, it is assumed that the client
will use the OAuth v1.0a protocol which includes passing the
oauth_verifier (as returned by the SP) in the access token step.
Returns:
Access token
Raises:
NonOAuthToken if the user's authorized request token is not an OAuth
token or if an authorized request token was not available.
TokenUpgradeFailed if the server responded to the request with an
error.
- UpgradeToSessionToken(self, token=None)
- Upgrades a single use AuthSub token to a session token.
Args:
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken
(optional) which is good for a single use but can be upgraded
to a session token. If no token is passed in, the token
is found by looking in the token_store by looking for a token
for the current scope.
Raises:
NonAuthSubToken if the user's auth token is not an AuthSub token
TokenUpgradeFailed if the server responded to the request with an
error.
- upgrade_to_session_token(self, token)
- Upgrades a single use AuthSub token to a session token.
Args:
token: A gdata.auth.AuthSubToken or gdata.auth.SecureAuthSubToken
which is good for a single use but can be upgraded to a
session token.
Returns:
The upgraded token as a gdata.auth.AuthSubToken object.
Raises:
TokenUpgradeFailed if the server responded to the request with an
error.
Data descriptors inherited from gdata.service.GDataService:
- captcha_token
- Get the captcha token for a login request.
- captcha_url
- Get the captcha URL for a login request.
- source
- The source is the name of the application making the request.
It should be in the form company_id-app_name-app_version
Data and other attributes inherited from gdata.service.GDataService:
- auth_token = None
- handler = None
- tokens = None
Methods inherited from atom.service.AtomService:
- UseBasicAuth(self, username, password, for_proxy=False)
- Sets an Authenticaiton: Basic HTTP header containing plaintext.
Deprecated, use use_basic_auth instead.
The username and password are base64 encoded and added to an HTTP header
which will be included in each request. Note that your username and
password are sent in plaintext.
Args:
username: str
password: str
- request(*args, **kwargs)
- # The deprecated_function wraps the actual call to f.
- use_basic_auth(self, username, password, scopes=None)
Data descriptors inherited from atom.service.AtomService:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- debug
- If True, HTTP debug information is printed.
- override_token
Data and other attributes inherited from atom.service.AtomService:
- auto_set_current_token = True
- auto_store_tokens = True
- current_token = None
- port = 80
- ssl = False
|
class GroupsQuery(gdata.service.Query) |
| | |
- Method resolution order:
- GroupsQuery
- gdata.service.Query
- __builtin__.dict
- __builtin__.object
Methods defined here:
- __init__(self, feed=None, text_query=None, params=None, categories=None)
Methods inherited from gdata.service.Query:
- ToUri(self)
- __str__(self)
Data descriptors inherited from gdata.service.Query:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- alt
- The feed query's alt parameter
- author
- The feed query's author parameter
- max_results
- The feed query's max-results parameter
- orderby
- The feed query's orderby parameter
- published_max
- The feed query's published-max parameter
- published_min
- The feed query's published-min parameter
- start_index
- The feed query's start-index parameter
- text_query
- The feed query's q parameter
- updated_max
- The feed query's updated-max parameter
- updated_min
- The feed query's updated-min parameter
Methods inherited from __builtin__.dict:
- __cmp__(...)
- x.__cmp__(y) <==> cmp(x,y)
- __contains__(...)
- D.__contains__(k) -> True if D has a key k, else False
- __delitem__(...)
- x.__delitem__(y) <==> del x[y]
- __eq__(...)
- x.__eq__(y) <==> x==y
- __ge__(...)
- x.__ge__(y) <==> x>=y
- __getattribute__(...)
- x.__getattribute__('name') <==> x.name
- __getitem__(...)
- x.__getitem__(y) <==> x[y]
- __gt__(...)
- x.__gt__(y) <==> x>y
- __iter__(...)
- x.__iter__() <==> iter(x)
- __le__(...)
- x.__le__(y) <==> x<=y
- __len__(...)
- x.__len__() <==> len(x)
- __lt__(...)
- x.__lt__(y) <==> x<y
- __ne__(...)
- x.__ne__(y) <==> x!=y
- __repr__(...)
- x.__repr__() <==> repr(x)
- __setitem__(...)
- x.__setitem__(i, y) <==> x[i]=y
- __sizeof__(...)
- D.__sizeof__() -> size of D in memory, in bytes
- clear(...)
- D.clear() -> None. Remove all items from D.
- copy(...)
- D.copy() -> a shallow copy of D
- get(...)
- D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
- has_key(...)
- D.has_key(k) -> True if D has a key k, else False
- items(...)
- D.items() -> list of D's (key, value) pairs, as 2-tuples
- iteritems(...)
- D.iteritems() -> an iterator over the (key, value) items of D
- iterkeys(...)
- D.iterkeys() -> an iterator over the keys of D
- itervalues(...)
- D.itervalues() -> an iterator over the values of D
- keys(...)
- D.keys() -> list of D's keys
- pop(...)
- D.pop(k[,d]) -> v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised
- popitem(...)
- D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty
- setdefault(...)
- D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
- update(...)
- D.update(E, **F) -> None. Update D from E and F: for k in E: D[k] = E[k]
(if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k]
- values(...)
- D.values() -> list of D's values
Data and other attributes inherited from __builtin__.dict:
- __hash__ = None
- __new__ = <built-in method __new__ of type object at 0x7569a0>
- T.__new__(S, ...) -> a new object with type S, a subtype of T
- fromkeys = <built-in method fromkeys of type object at 0xd3cce0>
- dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
v defaults to None.
|
|


{% extends 'base.html' %} {% block content %}
From Australia
Jonathan Reinink
May 26th 019
From Africa
James Africa
From United kingdom
Mary kennedy
May 27th 019
From Germany
Kevin Golan
May 27 019
From Quran
Michael Oriel
From Amstadam
Chris Enemy
{{img.profile.username}}
{{img.image_caption|safe}}
a great art from united kingdom that reveals the ancient age
The dry quick of ancient amstardam that solve flood dangers


 But boy is it worth it for this dramatic dessert.

For the ice cream, mix 3 tablespoons of the coconut milk with the cornflour to form a smooth paste. Put the rest of the coconut milk and the coconut cream into a saucepan along with the paste and heat gently.
In a separate bowl, whisk the egg yolks, agave nectar and caster sugar. Remove the coconut milk from the heat before it boils and gently add a splash to the whisked eggs, whisking continuously. Add the remainder of the warmed coconut milk mixture, a little at a time, and whisk thoroughly until combined. Place the bowl in a deep pan over a bowl of iced water and continue to stir until slightly thickened.
Add the mango purée, lime juice and zest to a blender. Add the cooled coconut milk mixture and blend until fully combined. Pour the contents into an ice cream maker and follow the manufacturer’s instructions to make ice cream.
Pour the ice cream onto a sheet of cling film and shape into a cylinder shape, rolling the end up to ensure a tight seal. Keep rolling the ice cream until the cylinder is about 30cm/12in long and 13cm/5in in diameter. Place in the freezer.
For the pineapple jam, put the pineapple flesh and juice in a large saucepan. Add the sugar and star anise and bring to the boil. Reduce the heat and simmer for 20 minutes, or until the pineapple is translucent. Add the vanilla bean paste and lime zest. Stir to combine then remove from the heat and leave to cool. Blend until smooth using a hand-held blender.
For the decorative pattern, line a 33x23cm/13x9in Swiss roll tin with baking parchment.
Whisk the egg whites in a bowl until stiff peaks form when the whisk is removed. Add the sugar and continue to whisk. Fold in the flour with a spatula until combined. Colour the mixture using a little of the gel food colouring.
Add the coloured mixture to a piping bag fitted with a 1cm/½in nozzle. Pipe diagonal lines 2cm/¾in apart onto the baking parchment. Place the tray in the freezer for 30 minutes.
For the joconde sponge, preheat the oven to 200C/180C Fan/Gas 6.
In a large bowl, whisk the egg whites using an electric hand mixer until stiff peaks form when the whisk is removed from the bowl. Add the sugar, a bit at a time, whisking in between each addition. Once glossy, set aside.
Add the almonds and icing sugar to another bowl and then add the whole eggs. Whisk at high speed until doubled in volume. Fold in the flour gently using a spatula. Gently fold in the reserved egg whites until fully combined.
Remove the Swiss roll tin from the freezer and carefully add the sponge mixture using a palette knife to gently smooth the surface. Bake for 8-10 minutes, or until pale and golden-brown in colour.
Remove the cake and turn it out onto a wire rack. Peel off the baking parchment to reveal the pattern. Leave to cool completely.
To assemble the ice cream roll, lay the sponge, pattern facing down, onto a piece of baking parchment slightly larger in size. Spread jam over all of the sponge in an even layer.
Remove the ice cream from the freezer and unwrap it. Place the ice cream onto the sponge at one end and gently roll up until the ends of the sponge meet - you may have to overlap slightly or cut excess off. Place on a baking tray seam-side down and return to the freezer to harden.
Serve in slices.


CSS counters are like "variables". The variable values can be incremented by CSS rules (which will track how many times they are used).
To work with CSS counters we will use the following properties:
counter-reset
- Creates or resets a countercounter-increment
- Increments a counter valuecontent
- Inserts generated contentcounter()
or counters()
function - Adds the value of a counter to an element
To use a CSS counter, it must first be created with counter-reset
.
The following example creates a counter for the page (in the body selector), then increments the counter value for each <h2> element and adds "Section <value of the counter>:" to the beginning of each <h2> element:
body {
counter-reset: section;
}
h2::before {
counter-increment: section;
content: "Section " counter(section) ": ";
}
The following example creates one counter for the page (section) and one counter for each <h1> element (subsection). The "section" counter will be counted for each <h1> element with "Section <value of the section counter>.", and the "subsection" counter will be counted for each <h2> element with "<value of the section counter>.<value of the subsection counter>":
body {
counter-reset: section;
}
h1 {
counter-reset: subsection;
}
h1::before {
counter-increment: section;
content: "Section " counter(section) ". ";
}
h2::before {
counter-increment: subsection;
content: counter(section) "." counter(subsection) " ";
}
A counter can also be useful to make outlined lists because a new instance of a counter is automatically created in child elements. Here we use the counters()
function to insert a string between different levels of nested counters:
ol {
counter-reset: section;
list-style-type: none;
}
li::before {
counter-increment: section;
content: counters(section,".") " ";
}


--- layout: default permalink: "404.html" --- Ooops... The page you are looking for could not be found. Find your way back Right Here
The page you are looking for could not be found.
Find your way back Right Here


It’s Roald Dahl Day. To celebrate, we’ve put together a list of the top ten most-issued Roald Dahl books in our libraries.
1. The BFG
“Giants are known for eating children. So when Sophie is snatched from her bed by the BFG, she fears for her life. But luckily he is far more jumbly than his disgusting neighbours. They become good friends and cook up a plan to rid the world of bad giants.”
The hero in this story, Sophie, is named after Dahl’s granddaughter (now an author in her own right). According to Michael Rosen in his brilliant book Fantastic Mr Dahl, Roald told his young granddaughter the tale of a big friendly giant who collects dreams and then, when she had gone to bed, he climbed up a ladder to appear at her bedroom window - just like the BFG!
The film version of The BFG came out last year.
2. The Twits
“Mr and Mrs Twit are extremely nasty. So the Muggle-Wump monkeys and the Roly-Poly bird hatch a plan to give them just the ghastly surprise they deserve!”
 Roald Dahl famously hated beards and never grew one himself.
3. Fantastic Mr Fox
“Boggis, Bunce and Bean are just about the nastiest three farmers you could ever wish to meet. They hate Mr Fox and are determined to get him, and plan to catch him by whatever means necessary.”
You can also reserve the stop-motion film version of Fantastic Mr Fox](https://suffolk.spydus.co.uk/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?BRN=914251), directed by Wes Anderson.
4. Charlie and the Chocolate Factory
“Charlie Bucket can’t believe his luck when he finds a Golden Ticket and wins the chance of a lifetime: a magical day witnessing the miraculous creation of the most delectable eatables ever made.”
Dahl’s most famous book. He loved chocolate even more than he hated beards. As a boy he went to school very near to the Cadbury’s Factory, where the pupils were sometimes given new chocolate inventions to try out.
5. Matilda
“Matilda’s parents have called her some terrible things.  Find out how she gets the better of them and her spiteful headmistress, as well as discovering that she has a very special power.”
Matilda: The Musical hit the West End seven years ago to great acclaim and this autumn, Tim Minchin, who wrote the music for the show, releases his fist picture book with Steve Antony. Inspired by one of the songs, When I Grow Up is a humorous and moving look at adult life from a child’s perspective.
6.  But the other animals have had enough of his cunning tricks, so they scheme to get the better of this foul fiend, once and for all!”
7. The Magic Finger
“Every Saturday morning the Greg family goes off to shoot animals and birds. But the girl who lives next door hates hunting. Now it’s made her so angry she’s put the magic finger on them all - and very strange things have begun to happen.”
8. James and the Giant Peach
“The story of James who has lived with his two beastly aunts ever since his parents were eaten up outside London Zoo. Aunt Sponge and Aunt Spiker are really horrible people and make poor James’s life a misery.”
Dahl’s first novel written specifically for children, although he did write a short story called The Gremlins over a decade earlier which was originally published as a short magazine story then, marketed for children, as a book by Walt Disney.
9. George’s Marvellous Medicine
“This is a funny story which tells the tale of George and his Grandma. When he can’t stand her bad habits any longer, he decides to cure her nastiness for good. He concocts a very special medicine which is as nasty as she is - with explosive results.”
George’s horrible grandma is s a ‘grunion’ which, apart from being type of marine fish, sounds like a cross between a grump and an onion. A fantastic word which completely sums up Grandma. Roald Dahl’s invented vocabulary is legendary. You can look up many more of his words and their meaning in the Oxford Roald Dahl Dictionary.
10. Charlie and the Great Glass Elevator
“Mr Wonka might be a genius with chocolate, but Charlie and his family don’t trust his flying skills one bit. Especially when the thing he’s flying is a glass elevator and it is zooming out of control into the stratosphere.”


dygraphs exports these symbols into the global namespace:
It exports these symbols inside each of those symbols:


Do you like this software? Come to Brax and sign the logbook in the planet boards!
NOTES
About Expanse names
Expanse are named using a system of coordinates that has is origin in the center of the galaxy.
The letters N,E,W,S are the cardinal points as we are used to see them on maps.
N2E2 means 2 squares in North direction and 2 East, that are the coordinates of Raxia.
An extensive discussion of this system of coordinates can be found here: http://forum.pbbghub.com/viewtopic.php?f=72&t=11583
About loading pricelists from HTML source
Copying pricelists from the HTML source requires more clicks but gives more information such as grid and sector of starbases.
This information can be used to perform better calculations when moving at lightspeed.
About sector, grid and lightspeed
Sector and grid are used to calculate the exact turns needed to move when the trip is done at light speed.
The current formula should be accurate to within a turn or two of the actual game turns.
The formula is used only when you fill both grid and sector field AND when you load pricelists from HTML source.
To deactivate the formula put an empty value in grid and sector.
The total turn cost is the sum of the turns needed to go from the current location to the start of the route and the turn cost of the route.
About hyperjumps
The formula used for hyperjumps is an approximation of the real formula but it quite precise.
If you have information about the real formula write me.
The total turn cost is the sum of the turns needed to go from the current location to the start of the route and the turn cost of the route.
About the weight
The weight of an item is specified in pricelists only when it is for sale.
This means that if the item is only wanted, it's impossible to know its price.
To overcome this the software learns and remember the weights of the items while it sees them.
If the weight of an item is unknown a value of 1IT per unit is assumed.
Version 0.9.7
Version 0.9.6
- Statistics page.
- Expanse pricelists support.
Version <IP_ADDRESS>
- Performance optimizations.
Version 0.9.5
- Added a Help:Help menu item. Started a real help file. Needs work.
- Lightspeed transfers turn cost calculation.
- Added the available credits limit field.
- Added clear all pricelists button in galaxy price list panel.
- Fixed bug with Export Pricelist where all weights were 0. Weight is accurate now.
- New functionality for ImportPriceList - can now parse the raw HTML form of price list. IE: "view source", cut and paste.
The HTML source has the exact location data for each planet and SB.
- Made quantity field of system and galaxy pricelists editable. Handy if
someone beat you to that deal on Tetrium. NOTE: lists need to be re-sorted
after changing a quantity, but the change is immediately reflected in routes and
pricelists.
- Added "optimal" turns calculation. System-to-system and grid-to-grid travel uses
a rounded distance formula. Sometimes it is shorter to break the trip up
into smaller jumps. The optTurns figures out what the turn cost would be if
broken into 1-unit jumps. Does not apply to sector travel, which uses ad
different formula.
- Added tooltip to route table showing optimal turn cost and TP/TC.
- Added ExportAll button to galaxy pricelist panel.
- Added UpdateAll button in galaxy pricelist. Updates all pricelists from a
single concatenated text or HTML input.
- Now pricelists can be saved/loaded via the import/export pricelist dialogs.
This works for galaxy (ALL) pricelists as well.
NOTE: save file dialog doesn't ask about existing files, so you can stomp on a file
when saving if you are not careful. You'd think the standard save dialog would include
that feature. Oh well. Be careful, kids.
- Available Turns limit filter.
- Fixed minor bug with the lightSpeed field.
Version 0.9.4
- Changed the internal pricelist format. As a side effect all your pricelists have been wiped. Sorry.
- Fixed turn calculation in order to reflect game changes.
 Spread the word if you know one of them.
Version <IP_ADDRESS>
- Fixed bug about total profit for weights greater than 1.
- Weight support.
- Tooltips.
Version 0.9.2
- Added location filters
- Added better filter support in system pricelists
Version 0.9.0
- Added turn cost of a route
- Added TP/TC (Total profit / Turn cost)
- Added TP/TC filter
Have fun!


We give you the sweetness that you deserve!
What we offer is very good and we have no doubt that you will like it,below are some of our special pizzas and their prices
Large size pizza with bacon toppings
Large pizza with tomato toppings spiced with black-berrys
Large pizza with sausage toppings with extra cheese
Extra cheese with tomato toppings large pizza
Large pizza with mushroom toppings
Large pizza with a combination of mushroom and tomato toppings
Pizza size:
Veges:
Non-veges:
Crust:
Total charges: