UKCloud Limited (“UKC”) and Virtual Infrastructure Group Limited (“VIG”) (together “the Companies”) – in Compulsory Liquidation
On 25 October 2022, the Companies were placed into Liquidation with the Official Receiver appointed as Liquidator and J Robinson and A M Hudson simultaneously appointed as Special Managers to manage the liquidation process on behalf of the Official Receiver.
Further information regarding the Liquidations can be found here: https://www.gov.uk/government/news/virtual-infrastructure-group-limited-and-ukcloud-limited-information-for-creditors-and-interested-parties
Contact details:
For any general queries relating to the Liquidations please email<EMAIL_ADDRESS>For customer related queries please email<EMAIL_ADDRESS>For supplier related queries please email<EMAIL_ADDRESS>UKCloud for VMware Service Scope
About this document
This document describes the boundaries of the UKCloud for VMware service, along with the division of responsibilities between UKCloud and the customer, to facilitate the provisioning and ongoing use of the service.
About UKCloud for VMware
The UKCloud for VMware service provides a secure, scalable and cost-effective platform for hosting virtual machines (VMs) of various sizes with different service levels.
You can use the platform to build new services quickly and securely; and migrate, augment or transform existing applications. The platform is immediately available so you can provision and scale VMs in minutes.
Service architecture
Your UKCloud service architecture is as follows:
Company. Your contract with UKCloud is associated with a company, which provides a single owner for the contract, regardless of how many accounts are created.
Account. We use accounts to separate financial ownership. An account could represent an organisation, a customer contract, or a specific project. An account can also have several UKCloud services associated with it, such as UKCloud for VMware, Cloud Storage and UKCloud for OpenStack. You can also use accounts to separate users based on access requirements or permissions.
Organisation (vOrg). This represents your UKCloud for VMware service inside VMware Cloud Director and on the UKCloud Portal. There is a 1:1 mapping of service to vOrg.
Virtual data centre (VDC). A VDC is where you define your workload type and build your virtual machines (VMs). You can create VDCs through the UKCloud Portal or the Portal API.
Service options
You can build a tailored solution to meet your requirements by mixing and matching service options. The choice does not lock you to one service or size, allowing you to scale resources up or down as your requirements change.
Workload type.
| Workload type | Resource allocation | Automated Rebalancing |
|---|---|---|
| ESSENTIAL | Contended | Configured to meet requested performance |
| POWER | Uncontended (CPU/GiB) | Pre-emptively optimises performance and availability |
| PRIORITY | Uncontended (CPU/GiB) | Configured to reduce workload movement around the platform, reducing workload disruption |
VM size. There are 11 T-shirt sizes available for VMs, with varying vCPU and RAM configurations, ranging from 1vCPU and 512MiB RAM to 12vCPUs and 128GiB RAM. You can change the size of your VMs after creation through VMware Cloud Director.
Full details of the available service options are outlined in the Service Definition.
Storage options
All workloads (except micro) include 60GiB of Tier 2 storage for free, all storage is persistent and resilient to local hardware failures. Micro sized VMs include 10GiB of Tier 2 storage.
Additional storage can be purchased to support your application. Multiple storage options can be used to support different aspects of the application.
Tier 1. Our most performant storage for workloads requiring consistently higher disk throughput.
Tier 2. Persistent block storage with typical performance characteristics for use by production applications or storage.
Storage policies
We provide you with access to two storage policies: tier 1 and tier 2.
Both policies have a 10TiB quota of storage to allow for rapid expansion of services as required.
We do not guarantee storage performance, as it can be affected by many factors
We do not provide IOPs figures for our storage offerings
Workloads can use multiple storage profiles
Protection
Customers have a range of automated, on-platform protection options to choose from for their environments:
Catalogue and template-based recovery. All customers have access to catalogue and template-based recovery as standard. This is a configuration management solution that can re-provision stateless servers to a new VM when required, using standard, and catalogue-based VM templates.
Snapshot Protection. 14-day or 28-day snapshot policies available. Data protected by the snapshot has an RPO of 24 hours, with RTO determined by the time taken to restore the VM after the Service Request is raised. See the Snapshot Protection Service Scope for full details.
Journaling Protection. A non-invasive, self-service disaster recovery solution with configurable recovery points, providing near real-time data protection. Journaling profiles provide a target RPO of 5 minutes and journal histories of 2, 7, 14 or 28 days. The Journaling Protection Service Scope covers the full details of this protection option.
Advanced management
This bundle includes Distributed Firewall (DFW), Distributed Logical Router (DLR), Layer 2 VPN and vROPs Tenant Monitoring and Metrics.
Note
These services may not be available in all regions and zones.
Service availability
UKCloud platform availability is based on the workload type you purchase.
The service level agreement (SLA) for POWER workloads guarantees 99.99% availability.
ESSENTIAL and PRIORITY workload SLAs guarantee 99.95% availability.
You are entitled to claim Service Credits for outages to services that take you out of SLA. For more about how we calculate SLAs, see the SLA Definition.
Service background
We maintain the standard VM template sizes that control allocation of CPU and resources.
VMs are fully provisioned.
The system is configured to automatically balance resources, so your VMs may vMotion between physical hosts. PRIORITY workloads are configured to reduce movement around the platform.
To maintain performance across the platform, UKCloud can perform movements/migrations of VMs, vApps or storage within the infrastructure assigned to a service.
We actively capacity-manage the cloud platform to ensure you have access to the resources you request.
The UKCloud platform is designed using sites, regions and zones. The relationship between them is shown below:
You can specify Farnborough or Corsham as the site where you would like to have your service provisioned. We will try to accommodate requests and will advise you if we are unable do so.
We control the deployed versions of technology on the platform. This covers internal platform-supporting technologies, and any technology versions available to you.
Internally this includes, but isn't limited to, the vSphere and ESX versions, and the hardware version of the platform.
Externally this includes the available versions of the edge gateway and VMware Cloud Director.
Promiscuous mode is disabled.
You can set affinity or anti-affinity rules through VMware Cloud Director so that VMs do, or do not, run on the same physical host.
You can make additional configurations inside a VM (such as acting as a secondary hypervisor or implementing third-party software technologies). We do not support customer implementations inside a VM.
Operating systems
Licensing. We can provide:
OS licensing through the SPLA and academic frameworks for Microsoft
Red Hat Enterprise Linux licensing
For the latest available licences, please check the UKCloud Pricing Guide.
You can bring your own licensing for Red Hat and certain Microsoft application licensing under Microsoft Mobility using software assurance. If you're providing your own licensing, you should inform UKCloud by raising a Service Request via the My Calls section of the UKCloud Portal for a retrospective discount.
For non-UKCloud issued software, you must obey the licensing requirements of the software provider. This includes being aware of any constraints around using the software in a virtualised environment.
VM server images. We provide base VM images for the operating systems (OS) for which we provide licensing. You can access these from VMware Cloud Director.
You can use your own images for non-Windows and RHEL services, where licensing stipulates that to use the VM on our platform it must be licensed (and reported back to the software vendor) by UKCloud.
Update services. We make update repositories available for all software for which we provide licensing. We don't provide software update facilities for non-UKCloud licensed software.
Anti-virus. We do not provide anti-virus software as part of the service.
Networks
A full overview of the connectivity options and network architecture is available in Understanding connectivity options in UKCloud for VMware.
We manage the physical firewalls that face public and secure networks.
Internet-facing solutions have 2 usable public IP addresses. You can ask for additional public IP addresses by raising a Service Request via the My Calls section of the UKCloud Portal. We reserve the right to decline the request if you have spare capacity in your existing deployment.
PSN-facing solutions. You should raise a Service Request via the My Calls section of the UKCloud Portal to be assigned your IP address. Contended bandwidth (uncapped).
Janet and HSCN solutions have one usable IP address. You can request additional IP addresses by raising a Service Request via the My Calls section of the UKCloud Portal.
From a customer management experience, you manage all your connectivity rules, such as firewall, IPsec VPN and NAT functionality, through your edge gateway, using either the UKCloud Portal GUI or API.
Edge gateway (previously vShield Edge)
By default, we assign one edge gateway per connectivity type.
For VDCs you create through the Portal API, you are responsible for creating your own edge gateway.
You can have up to nine Org VDC networks per edge gateway.
vApp edge. vApp networks allow you to create smaller networks within individual vApps which have a vApp Edge, similar to the edge gateway on your VDC. Although a vApp Edge isn't as feature rich as an edge gateway, it lets you create firewall and NAT rules to separate your VDC networks from your vApp virtual machines (VMs). See vApp networking for configuration details.
Site-to-site IPsec VPN. You can create IPsec VPN tunnels to connect the services located behind different NFTs. You can also externally configure IPsec VPNs. There is a limit of 64 tunnels per edge gateway.
SSL VPN. You can create SSL VPN tunnels that terminate on the edge gateway, providing up to 50 concurrent users with access to that VDC. We recommend you use this for occasional administrative purposes, rather than as part of a regular end-user design.
Load balancing. The edge gateway acts as a basic layer 3 load balancer, including features such as session persistence and health checks. If you need more advanced load balancing, you should consider a third-party product.
Bring Your Own Firewall
Bring Your Own Firewall allows you to customise your networking infrastructure by installing your own virtual firewall appliance in place of the edge gateway included as standard.
We don't offer a rebate for unused edges. If you choose to bring your own firewall, you are completely responsible for the deployment, configuration and management of that firewall.
If you change from a UKCloud-provided firewall to your own firewall, we will redeploy your firewall on to a dedicated network and you will need to migrate your environment to that network.
Full customer and UKCloud responsibilities can be found in the Bring Your Own Firewall Service Scope.
Protective monitoring
We've implemented GPG 13-aligned Protective Monitoring across the Assured and Elevated security domains at the hypervisor level and below. For more information, see Protective Monitoring from UKCloud.
If you require protective monitoring services above the hypervisor (for example, for your VM), we offer our Security Operations Service to monitor your virtual estate (additional charges apply). For more information, see the Security Operations Service Service Definition.
In line with UKCloud's System Interconnect and Security Policy (SISP), we provide notifications of customer-impacting security incidents. It's the customer's responsibility to report similar incidents to us.
Platform management
Users can access, manage and view the UKCloud for VMware service, accessing only those features allowed by their role, in any of the following ways:
vCloud API. Enables the programmatic creation and management of VMs inside the platform.
VMware Cloud Director tenant portal. Provides a graphical interface to access the VMware Cloud Director environment (depending on assigned permissions).
UKCloud Portal. Enables the creation of compute services and subsequently VDCs and edge gateways. The Portal also includes an overview of actual and estimated spend, along with service configuration information. Access to incident and request management is also possible through the Portal.
You cannot access the underlying infrastructure. This includes (but isn't limited to) the hardware and the vSphere environment.
Service migration
You can move your workloads from a local VMware or Hyper-V powered environment onto the UKCloud platform using Migration to the Cloud (powered by Zerto). You can find pricing information in the UKCloud Pricing Guide.
Customers are free to migrate their workloads. You can also request a migration through a Service Request via the My Calls section of the UKCloud Portal. Migrations may be between:
Services (for example, ESSENTIAL to POWER)
UKCloud sites or zones
The Assured and Elevated security domains
Service reporting
Visibility. Maintenance notifications and Service Status reports are delivered through the Portal.
Billing. We provide you with monthly bills covering your monthly spend.
Customer service
Cloud Architect. UKCloud Cloud Architects support you during the design of solutions for the cloud platform. UKCloud Cloud Architects are ideally placed to help reconcile your requirements with the UKCloud platform. We recommend engagement with a Cloud Architect when implementing complex solutions, such as those using HybridConnect or a Walled Garden.
Service Delivery Manager (SDM). An assigned point of contact who will provide any assistance you require during your use of the service, including onboarding, service reviews and incident reporting and escalation.
Support Desk. After the initial onboarding and design phase, customers can utilise the standard UKCloud support entitlement. For more information, see Raising and escalating support tickets with customer support.
Customer responsibilities
You are responsible for assessing whether the UKCloud platform can support the various requirements of your application.
The control and management of access and responsibilities for end users including appropriate connectivity, security and accreditation if required.
If access is required over government secure networks (HSCN, Janet, MCN or PSN), the customer is responsible for adhering to the relevant Code of Connection (CoCo) and for providing evidence of their CoCo to UKCloud upon request. UKCloud is unable to provide access to secure networks where such evidence has not been provided by the customer.
Management and administration of layers above the hypervisor (OS patching, application performance monitoring, user administration).
The customer is also responsible for ensuring only lawful data that supports the UK public sector is stored and processed by applications on this environment, and that they fully comply with the UKCloud Security Operating Procedures (SyOPs) and other information assurance requirements as specified in the UKCloud System Interconnect and Security Policy (SISP) and associated accreditation documentation sets.
Service provisioning
Within 4 hours of accepting an order (shorter deployment times are typically achieved and can be prioritised upon request), UKCloud will create the customer's Primary Administrator account and send a Welcome Pack which includes the URL for the UKCloud Customer Portal, and the getting started guide. Customers can self-provision UKCloud for VMware services via the UKCloud Portal or the Portal API.
UKCloud has created several videos, help guides, manuals and FAQs to help train and instruct users so that they are up and running quickly and easily. These are available within the Knowledge Centre.
UKCloud also has a large ecosystem of partners who can deliver additional services, such as support and professional services. UKCloud would be pleased to introduce you to the right partner to suit your needs.
Service constraints
For information about Planned and Emergency Maintenance, see Understanding UKCloud service maintenance windows.
Supporting documents and resources
The following documents contain more information about UKCloud for VMware and the service options:
Feedback
If you find a problem with this article, click Improve this Doc to make the change yourself or raise an issue in GitHub. If you have an idea for how we could improve any of our services, send an email to feedback@ukcloud.com.


Come view extra material and blog posts here!
Everything She's Known Is Now Being Questioned...
Arielle's life is turned upside down when she stumbles through an invisible magic barrier and into the arms of a handsome elf named Tyrian. Their goals instantly clash as Arielle wishes to go home to the humanworld, and Tyrian is on an important quest to bring the elf princess to Varkylrion for training in magic and combat. Count Tyrian, having compassion on terrified Arielle, who is inevitably trapped in Shoresa, agrees to help get discovery more about her not-so-human heritage. With a dark, foreboding force at their heels, and Arielle discovering magical abilities of her own, Tyrian has to decide between two immense options. Should he complete the quest he set out on, or should he follow the quest his heart yearns for? Book One in Warriors of Shoresa Series is sure to be an adventure you won't soon forget.
In A Moments Notice
This miniseries of stories is focused on the Cousins of Shoresa. You will gain an insight as to their origins and why they are the way they are. As their stories progress, I hope you will be able to see their strengths and weaknesses in a gentle, compassionate way (as well as for the people around you). Everyone goes through hard things like pain and loss-- some more than others-- but it will affect some people differently. I hope you take heart with the knowledge that they have already gone through this stuff and be excited to see them continue to develop along in the other books throughout the series.
Lexylia is the first Cousin of Shoresa to have her own novelette released. Though we meet Lexylia in Forgotten Identity, her story goes back to her origins, in a childhood she keeps locked away in her memories. If it has a dreamlike quality, it is because that is how memories are; sometimes they fade in moments and are vibrant, serious, and stark in others. Enjoy the moments of Lexylia's past...
Welcome to Shoresa, a lovely country of magic and myth. Use this map to document your journeys.


Highlights of June 2019:
- On June 10th 2019, Srijan conducted a Rubbish! game session for Nesta UK.
- On June 11th 2019, Srijan presented FoV’s paper on ‘Imagining Futures – A generative scenario-based methodology to improve planning and decision-support systems for policymakers’ at the Data for Policy Conference 2019, at University College London, UK.
- On June 17th and 18th 2019, Vaibhav and Yashwin were in Sri Lanka to participate in a roundtable on ‘Making of a World Class City’. They also conducted a City Game session for urban development authority, community members, activists and anthropologists.
- As part of Joint Road Forward project, FoV organised a workshop called ‘All Aboard!’ on equity in public bus transport service in Bangalore on June 20th and 21st 2019 with Bangalore Metropolitan Transport Corporation, academia, civil society groups and media to discuss on how to make public bus transport more equitable in Bangalore. As a part of this, parallel workshops on data journalism for journalists and a workshop for civil society groups were also organised along with presentations and talks.
- On June 28th 2019, YUVA, Bachpan and Muskaan, who collectively work on sustainable and child-friendly cities visited FoV as part of their study tour and game sessions like Rubbish, Made to Order and a play test for Project 560 was conducted along with them.
- On June 28th 2019, Vaibhav and Srijan conducted the City Game session for the new batch of Master's student for Public Policy at National Law School of India University.
Highlights of July 2019:
- On July 4th 2019, Himani a master’s student of Public Space Design from Srishti Institute of Art, Design & Technology, Bangalore presented her work on ‘Strategies to design Gujri: A scrap market’ at FoV office.
- On July 8th 2019, Harsha and Yashwin attended the Discussion Meeting of the Summer Research Program on Dynamics of Complex Systems at the International Centre for Theoretical Sciences for topics on Climate, Environment, Energy, Language, and other social and anthropological themes. Harsha presented FoV’s work on Simulogue at the meeting.
- On July 11th 2019, Vaibhav presented and discussed about tools and technology for the power sector with NITI Aayog, New Delhi.
- On July 19th 2019, Yashwin conducted the City Game session for students of Master of Arts in Economics, as part of their orientation at Azim Premji University.
- On July 29th 2019, Bharath was invited to be a speaker at Institute for Social and Economic Change to talk about ‘Urban Marginality and Citizenship in India’.
- From July 31st to August 3rd 2019, Bharath, Jahnavi, Prashanth, Puja, Shruthi, Suruchi, Vaibhav and Yashwin co-conducted the ‘Collaborative Workshop On Farmers' Incomes In India’ held in Goa. The workshop was jointly organised by Alliance for Sustainable and Holistic Agriculture, Bharat Krishak Samaj, Fields of View and Socratus.
Highlights of August 2019:
- On August 10th 2019, we had our Annual General Body meeting.
- On August 20th 2019, Forbes India featured FoV’s work in an article ‘Indian board games take political, social hues’.
- From August 25th to August 29th 2019, Harsha participated in Thredbo 16 Conference in Singapore. Harsha presented FoV’s paper ‘Social Inclusion through Play: A New Methodology for Public Transport’ at the conference.
- On 29th August, Srijan and Vigdis participated in the workshop on 'Gendering the Smart City' conducted by Prof. Ayona Datta from UCL and Dr. Padmini Ray Murray from Design Beku at Bangalore International Centre.
- The FoV team
|
|
|
|


Pink confirms she's 'taking a break from music' on stage at CMA Awards 2019
Pink made the Country Music Association Awards a family night out as her kids joined her and husband Carey Hart on the red carpet before making her announcement
by James Brinsford, https://www.facebook.com/james.brinsfordPink has confirmed that she will be leaving music and performing behind, for a year at least.
The 40-year-old singer has spent the past two years on the road with her successful Beautiful Trauma World Tour and she is now looking in a different direction for her future.
Pink arrived at the Country Music Association Awards for 2019 with her kids in tow as she and husband Carey Hart made the event a family affair.
Speaking about her future on the red carpet, Pink confirmed: "It’s time to do something else for a minute."
Ahead of the ceremony Pink posed for pics with Carey and their two kids, daughter Willow, 8, and son Jameson, 3.
While Pink was stunning in a burnt-orange dress and black hat, it was Jameson that stole the show.
The toddler wore a cowboy hat, studded jacket and cowboy boots and looked every inch the country music legend.
Willow was equally as adorable with a white dress that had detailing of two horses.
As well as giving music a rest for now, Pink hailed her husband Carey as they approached their 14-year-anniversary.
Pink said: "He deserves a trophy! It’s been a while. We used to make a big deal out of it. Now, we’re just lucky to be together.”
When asked what the secret was for their longevity, Pink joked: "We fight nicer."
Pink opened up recently to Billboard about turning 40 and how her husband and kids threw her a surprise party.
She said: "Forty was the first birthday I’ve had where I’ve been like, ‘F*** yeah, this is awesome! Yes! I know exactly who I am!’ And now I can just chill out a little bit.
“And then 60 is going to be like, ‘F*** that, turn it back up.’ I’m going to be on roller skates, with rollers in my hair, house plants everywhere."
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033.


| Package | Description |
|---|---|
| io.klerch.alexa.state.handler | |
| io.klerch.alexa.state.model |
| Modifier and Type | Method and Description |
|---|---|
void |
AWSIotStateHandler.createThingIfNotExisting(AlexaScope scope)
The thing will be created in AWS IoT if not existing for this application (when scope
APPLICATION is given) or for this user in this application (when scope USER is given)
|
boolean |
AWSIotStateHandler.doesThingExist(AlexaScope scope)
Returns if the thing dedicated to the scope given is existing in AWS IoT.
|
<TModel extends AlexaStateModel> |
AlexaStateHandler.exists(Class<TModel> modelClass,
AlexaScope scope)
Looks for a model in the persistence store in a given scope.
|
<TModel extends AlexaStateModel> |
AlexaSessionStateHandler.exists(Class<TModel> modelClass,
AlexaScope scope)
Looks for a model in the persistence store in a given scope.
|
<TModel extends AlexaStateModel> |
AlexaStateHandler.exists(Class<TModel> modelClass,
String id,
AlexaScope scope)
Looks for a model with the given id in the persistence store in a given scope.
|
<TModel extends AlexaStateModel> |
AlexaSessionStateHandler.exists(Class<TModel> modelClass,
String id,
AlexaScope scope)
Looks for a model with the given id in the persistence store in a given scope.
|
boolean |
AWSS3StateHandler.exists(String id,
AlexaScope scope)
Looks for a state object with the given id in the given scope.
|
boolean |
AWSDynamoStateHandler.exists(String id,
AlexaScope scope)
Looks for a state object with the given id in the given scope.
|
boolean |
AlexaStateHandler.exists(String id,
AlexaScope scope)
Looks for a state object with the given id in the given scope.
|
boolean |
AlexaSessionStateHandler.exists(String id,
AlexaScope scope)
Looks for a state object with the given id in the given scope.
|
String |
AWSIotStateHandler.getThingName(AlexaScope scope)
Returns name of the thing whose shadow is updated by this handler.
|
Optional<AlexaStateObject> |
AWSIotStateHandler.readValue(String id,
AlexaScope scope)
Reads a single object value from the persistence store.
|
Optional<AlexaStateObject> |
AlexaStateHandler.readValue(String id,
AlexaScope scope)
Reads a single object value from the persistence store.
|
Optional<AlexaStateObject> |
AlexaSessionStateHandler.readValue(String id,
AlexaScope scope)
Reads a single object value from the persistence store.
|
Map<String,AlexaStateObject> |
AlexaStateHandler.readValues(Collection<String> ids,
AlexaScope scope)
Reads multiple single object values from the persistence store in a specific scope.
|
Map<String,AlexaStateObject> |
AlexaSessionStateHandler.readValues(Collection<String> ids,
AlexaScope scope)
Reads multiple single object values from the persistence store in a specific scope.
|
void |
AlexaStateHandler.writeValue(String id,
Object value,
AlexaScope scope)
The given value will be saved with the given id in the persistence store.
|
void |
AlexaSessionStateHandler.writeValue(String id,
Object value,
AlexaScope scope)
The given value will be saved with the given id in the persistence store.
|
| Modifier and Type | Method and Description |
|---|---|
Map<String,AlexaStateObject> |
AWSS3StateHandler.readValues(Map<String,AlexaScope> idsInScope)
Reads multiple single object values from the persistence store in scopes.
|
Map<String,AlexaStateObject> |
AWSDynamoStateHandler.readValues(Map<String,AlexaScope> idsInScope)
Reads multiple single object values from the persistence store in scopes.
|
Map<String,AlexaStateObject> |
AlexaStateHandler.readValues(Map<String,AlexaScope> idsInScope)
Reads multiple single object values from the persistence store in scopes.
|
Map<String,AlexaStateObject> |
AlexaSessionStateHandler.readValues(Map<String,AlexaScope> idsInScope)
Reads multiple single object values from the persistence store in scopes.
|
| Modifier and Type | Method and Description |
|---|---|
AlexaScope |
AlexaStateObject.getScope()
Returns the scope used by the state handler to read/write value from/to persistence store.
|
static AlexaScope |
AlexaScope.valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static AlexaScope[] |
AlexaScope.values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
AlexaScope.excludes(AlexaScope scope)
Checks if the given scope is not covered by this scope.
|
boolean |
AlexaStateModel.fromJSON(String json,
AlexaScope scope)
Expects a json-string which contains keys with values.
|
List<Field> |
AlexaStateModel.getSaveStateFields(AlexaScope scope)
Gives you all the fields of this model which are annotated with AlexaStateSave and whose scope is set to a scope
which at least in included in the given scope.
|
boolean |
AlexaScope.includes(AlexaScope scope)
Checks if the given scope is covered by this scope.
|
boolean |
AlexaScope.isIn(AlexaScope... scopes) |
String |
AlexaStateModel.toJSON(AlexaScope scope)
Returns a json with key-value-pairs - one for each AlexaStateSave-annotated field in this model configured to be valid
in the given scope
|
Map<String,Object> |
AlexaStateModel.toMap(AlexaScope scope)
Returns a map with key-value-pairs - one for each AlexaStateSave-annotated field in this model configured to be valid
in the given scope
|
| Constructor and Description |
|---|
AlexaStateObject(String id,
Object value,
AlexaScope scope)
Creates a id-value state.
|
Copyright © 2017. All rights reserved.


Being an artistic person I tend to be creative. I show great Enthusiasm towards learning new things everyday.
Construction of RCC Columns, Beams and Slabs.
Marking of Footings and its construction.
Labour management.
I spend most of my time exproring different types of Cusines and Indulge myself in Art work.
When forced indoors, I follow a number of television shows including multiple sitcoms.


Python Speech to Text
Record
Stop
Loading...
{% if transcript != "" %}
Transcript 📝
{{ transcript }}
{% endif %}
Transcript 📝
Filler Words : 0
Loading...
Energy Graph
Log
Recordings


Guaranteed Funds is a peer to peer donation community where members can help one another financially. The fund provides a system where members can freely give and receive financial donations from one another. Guaranteed Funds is founded by a team of financial specialists who have chosen to establish financial freedom in developing countries by creating a community where money circulates freely. It is a community where members assist one another financially by providing and receiving financial help to one another thus empowering all. This will also establish and grow businesses and also create financial freedom.
After signing up with Guaranteed Funds community, you will donate the sum of either ₦10,000, ₦30,000, ₦100,000, ₦200,000 or ₦500,000 to a fellow participant assigned by an automated system. After this member confirms receipt of your donation, the system will automatically assign two other participants to pay you the amount invested, thus giving you 100% of your investment (i.e. 100% of ₦10,000 is ₦20,000; 100% of ₦30,000 is ₦60,000, etc). Return of investment is within 48 hours to 14 working days after confirmation of receipt of donation.
Referral bonus is paired to get help every 14days. The more you refer, the higher your referral bonus.
All donations are made directly to participants. Guaranteed Funds is not liable for any losses made and will not collect any payment from participants as we do not run a central account. This is a community of mutual financial help.
Guaranteed Funds thrives with the influx of new members in the community. So we encourage members to use their referral links to earn more money and also invite friends and family to the Guaranteed Funds community so they can also gain financial freedom.
Members get help between 48hours and 14 working days. This time frame is dependent on the influx of new members into the community.
After registration, click on the PLANS button on your dashboard and select the desired package and wait to be matched with another member of the community who is eligible to get help.
When you provide help, you are required to upload a proof of payment, otherwise you will be blocked if you do not. Make sure the other participant is reachable before you provide help and write to support if the other participant bluntly refuses to confirm the donation after receiving it.
After providing help to another participant you will be automatically paired to get help within 48hours to 14 days after confirmation of your payment. If the participant matched to you fails to pay within 24hrs, the system will remove and block the participant and automatically match another participant to pay you.
It is advisable to use ATM transfers, or mobile and internet banking on weekends. Users who do not use such methods of payment are advised to request to provide help only on week-days using bank deposit Guaranteed Funds is community of mutual financial help and does not collect money from its members. Members freely help each other by donating a specified amount of their choice. This is not illegal as giving a fellow participant financial assistance is not prohibited by international or local constitutions or legal systems


|
1-Wire API for .NET Version 4.00
|
Inherits com::dalsemi::onewire::container::OneWireContainer, and com::dalsemi::onewire::container::SwitchContainer.
Public Member Functions | |
| OneWireContainer29 () | |
Creates a new OneWireContainer for communication with a DS2408. | |
| OneWireContainer29 (DSPortAdapter sourceAdapter, byte[] newAddress) | |
Creates a new OneWireContainer for communication with a DS2408. | |
| OneWireContainer29 (DSPortAdapter sourceAdapter, long newAddress) | |
Creates a new OneWireContainer for communication with a DS2408. | |
| OneWireContainer29 (DSPortAdapter sourceAdapter, String newAddress) | |
Creates a new OneWireContainer for communication with a DS2408. | |
| String | getName () |
Gets the Maxim Integrated Products part number of the iButton or 1-Wire Device as a java.lang.String . | |
| Enumeration | getMemoryBanks () |
| Gets an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank. | |
| String | getAlternateNames () |
| Retrieves the alternate Maxim Integrated Products part numbers or names. | |
| String | getDescription () |
| Gets a short description of the function of this iButton or 1-Wire Device type. | |
| int | getMaxSpeed () |
| Returns the maximum speed this iButton or 1-Wire device can communicate at. | |
| int | getNumberChannels (byte[] state) |
| Gets the number of channels supported by this switch. | |
| boolean | isHighSideSwitch () |
| Checks if the channels of this switch are 'high side' switches. | |
| boolean | hasActivitySensing () |
| Checks if the channels of this switch support activity sensing. | |
| boolean | hasLevelSensing () |
| Checks if the channels of this switch support level sensing. | |
| boolean | hasSmartOn () |
| Checks if the channels of this switch support 'smart on'. | |
| boolean | onlySingleChannelOn () |
| Checks if the channels of this switch require that only one channel is on at any one time. | |
| boolean | getLevel (int channel, byte[] state) |
| Checks the sensed level on the indicated channel. | |
| boolean | getLatchState (int channel, byte[] state) |
| Checks the latch state of the indicated channel. | |
| boolean | getSensedActivity (int channel, byte[] state) throws OneWireException |
| Checks if the indicated channel has experienced activity. | |
| void | clearActivity () throws OneWireException |
| Clears the activity latches the next time possible. | |
| void | setLatchState (int channel, boolean latchState, boolean doSmart, byte[] state) |
| Sets the latch state of the indicated channel. | |
| void | setLatchState (byte set, byte[] state) |
| Sets the latch state for all of the channels. | |
| byte[] | readDevice () throws OneWireIOException, OneWireException |
| Retrieves the 1-Wire device sensor state. | |
| byte[] | readRegister () throws OneWireIOException, OneWireException |
| Retrieves the 1-Wire device register mask. | |
| void | writeDevice (byte[] state) throws OneWireIOException, OneWireException |
| Writes the 1-Wire device sensor state that have been changed by 'set' methods. | |
| void | writeRegister (byte[] register) throws OneWireIOException, OneWireException |
| Writes the 1-Wire device register mask that have been changed by 'set' methods. | |
| void | setResetMode (byte[] register, boolean set) throws OneWireIOException, OneWireException |
| Turns the Reset mode on/off. | |
| boolean | getVCC (byte[] register) throws OneWireIOException, OneWireException |
| Retrieves the state of the VCC pin. | |
| void | clearPowerOnReset (byte[] register) |
| Checks if the Power On Reset if on and if so clears it. | |
| void | orConditionalSearch (byte[] register) |
| Checks if the 'or' Condition Search is set and if not sets it. | |
| void | andConditionalSearch (byte[] register) |
| Checks if the 'and' Conditional Search is set and if not sets it. | |
| void | pioConditionalSearch (byte[] register) |
| Checks if the 'PIO' Conditional Search is set for input and if not sets it. | |
| void | activityConditionalSearch (byte[] register) |
| Checks if the activity latches are set for Conditional Search and if not sets it. | |
| void | setChannelMask (int channel, boolean set, byte[] register) |
| Sets the channel passed to the proper state depending on the set parameter for responding to the Conditional Search. | |
| void | setChannelPolarity (int channel, boolean set, byte[] register) |
| Sets the channel passed to the proper state depending on the set parameter for the correct polarity in the Conditional Search. | |
| boolean | getChannelMask (int channel, byte[] register) |
| Retrieves the information if the channel is masked for the Conditional Search. | |
| boolean | getChannelPolarity (int channel, byte[] register) |
| Retrieves the polarity of the channel for the Conditional Search. | |
Static Public Attributes | |
| static final byte | RESET_ACTIVITY_LATCHES = ( byte ) 0xC3 |
| Reset the activity latches. |
1-Wire® container for a Single Addressable Switch, DS2408. This container encapsulates the functionality of the 1-Wire family type 29 (hex)
Creates a new OneWireContainer
for communication with a DS2408.
Note that the method setupContainer(com.dalsemi.onewire.adapter.DSPortAdapter,byte[])
must be called to set the correct DSPortAdapter
device address.
| OneWireContainer29 | ( | DSPortAdapter | sourceAdapter, |
| byte[] | newAddress | ||
| ) |
Creates a new OneWireContainer
for communication with a DS2408.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this DS2408 |
| OneWireContainer29 | ( | DSPortAdapter | sourceAdapter, |
| long | newAddress | ||
| ) |
Creates a new OneWireContainer
for communication with a DS2408.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this DS2408 |
| OneWireContainer29 | ( | DSPortAdapter | sourceAdapter, |
| String | newAddress | ||
| ) |
Creates a new OneWireContainer
for communication with a DS2408.
| sourceAdapter | adapter object required to communicate with this 1-Wire device |
| newAddress | address of this DS2408 |
| void activityConditionalSearch | ( | byte[] | register | ) |
Checks if the activity latches are set for Conditional Search and if not sets it.
| register | current register for conditional search, which if returned from readRegister() |
| void andConditionalSearch | ( | byte[] | register | ) |
Checks if the 'and' Conditional Search is set and if not sets it.
| register | current register for conditional search, which if returned from readRegister() |
| void clearActivity | ( | ) | throws OneWireException |
Clears the activity latches the next time possible.
For example, on a DS2406/07, this happens the next time the status is read with readDevice()
.
| OneWireException | if this device does not support activity sensing |
Implements SwitchContainer.
| void clearPowerOnReset | ( | byte[] | register | ) |
Checks if the Power On Reset if on and if so clears it.
| register | current register for conditional search, which if returned from readRegister() |
| String getAlternateNames | ( | ) |
Retrieves the alternate Maxim Integrated Products part numbers or names.
A 'family' of MicroLAN devices may have more than one part number depending on packaging. There can also be nicknames such as "Crypto iButton".
Reimplemented from OneWireContainer.
| boolean getChannelMask | ( | int | channel, |
| byte[] | register | ||
| ) |
Retrieves the information if the channel is masked for the Conditional Search.
| channel | current channel to set |
| register | current register for conditional search, which if returned from readRegister() |
true
if the channel is masked and false
other wise. | boolean getChannelPolarity | ( | int | channel, |
| byte[] | register | ||
| ) |
Retrieves the polarity of the channel for the Conditional Search.
| channel | current channel to set |
| register | current register for conditional search, which if returned from readRegister() |
true
if the channel is masked and false
other wise. | String getDescription | ( | ) |
Gets a short description of the function of this iButton or 1-Wire Device type.
Reimplemented from OneWireContainer.
| boolean getLatchState | ( | int | channel, |
| byte[] | state | ||
| ) |
Checks the latch state of the indicated channel.
| channel | channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)] |
| state | current state of the device returned from readDevice() |
true
if channel latch is 'on' or conducting and false
if channel latch is 'off' and not conducting. Note that the actual output when the latch is 'on' is returned from the isHighSideSwitch()
method.Implements SwitchContainer.
| boolean getLevel | ( | int | channel, |
| byte[] | state | ||
| ) |
Checks the sensed level on the indicated channel.
To avoid an exception, verify that this switch has level sensing with the hasLevelSensing()
. Level sensing means that the device can sense the logic level on its PIO pin.
| channel | channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)] |
| state | current state of the device returned from readDevice() |
true
if level sensed is 'high' and false
if level sensed is 'low'Implements SwitchContainer.
| int getMaxSpeed | ( | ) |
Returns the maximum speed this iButton or 1-Wire device can communicate at.
Reimplemented from OneWireContainer.
| Enumeration getMemoryBanks | ( | ) |
Gets an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank.
Enumeration
of memory banks Reimplemented from OneWireContainer.
| String getName | ( | ) |
Gets the Maxim Integrated Products part number of the iButton or 1-Wire Device as a java.lang.String
.
For example "DS1992".
Reimplemented from OneWireContainer.
| int getNumberChannels | ( | byte[] | state | ) |
Gets the number of channels supported by this switch.
Channel specific methods will use a channel number specified by an integer from [0 to (getNumberChannels(byte[])
- 1)]. Note that all devices of the same family will not necessarily have the same number of channels.
| state | current state of the device returned from readDevice() |
Implements SwitchContainer.
| boolean getSensedActivity | ( | int | channel, |
| byte[] | state | ||
| ) | throws OneWireException |
Checks if the indicated channel has experienced activity.
This occurs when the level on the PIO pins changes. To clear the activity that is reported, call clearActivity()
. To avoid an exception, verify that this device supports activity sensing by calling the method hasActivitySensing()
.
| channel | channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)] |
| state | current state of the device returned from readDevice() |
true
if activity was detected and false
if no activity was detected| OneWireException | if this device does not have activity sensing |
Implements SwitchContainer.
| boolean getVCC | ( | byte[] | register | ) | throws OneWireIOException, OneWireException |
Retrieves the state of the VCC pin.
If the pin is powered 'TRUE' is returned else 'FALSE' is returned if the pin is grounded.
true
if VCC is powered and false
if it is grounded.| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |
| boolean hasActivitySensing | ( | ) |
Checks if the channels of this switch support activity sensing.
If this method returns true
then the method getSensedActivity(int,byte[])
can be used.
true
if channels support activity sensingImplements SwitchContainer.
| boolean hasLevelSensing | ( | ) |
Checks if the channels of this switch support level sensing.
If this method returns true
then the method getLevel(int,byte[])
can be used.
true
if channels support level sensingImplements SwitchContainer.
| boolean hasSmartOn | ( | ) |
Checks if the channels of this switch support 'smart on'.
Smart on is the ability to turn on a channel such that only 1-Wire device on this channel are awake and ready to do an operation. This greatly reduces the time to discover the device down a branch. If this method returns true
then the method setLatchState(int,boolean,boolean,byte[])
can be used with the doSmart
parameter true
.
true
if channels support 'smart on'Implements SwitchContainer.
| boolean isHighSideSwitch | ( | ) |
Checks if the channels of this switch are 'high side' switches.
This indicates that when 'on' or true
, the switch output is connect to the 1-Wire data. If this method returns false
then when the switch is 'on' or true
, the switch is connected to ground.
true
if the switch is a 'high side' switch, false
if the switch is a 'low side' switchImplements SwitchContainer.
| boolean onlySingleChannelOn | ( | ) |
Checks if the channels of this switch require that only one channel is on at any one time.
If this method returns true
then the method setLatchState(int,boolean,boolean,byte[])
will not only affect the state of the given channel but may affect the state of the other channels as well to insure that only one channel is on at a time.
true
if only one channel can be on at a time.Implements SwitchContainer.
| void orConditionalSearch | ( | byte[] | register | ) |
Checks if the 'or' Condition Search is set and if not sets it.
| register | current register for conditional search, which if returned from readRegister() |
| void pioConditionalSearch | ( | byte[] | register | ) |
Checks if the 'PIO' Conditional Search is set for input and if not sets it.
| register | current register for conditional search, which if returned from readRegister() |
| byte [] readDevice | ( | ) | throws OneWireIOException, OneWireException |
Retrieves the 1-Wire device sensor state.
This state is returned as a byte array. Pass this byte array to the 'get' and 'set' methods. If the device state needs to be changed then call the 'writeDevice' to finalize the changes.
| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |
Implements OneWireSensor.
| byte [] readRegister | ( | ) | throws OneWireIOException, OneWireException |
Retrieves the 1-Wire device register mask.
This register is returned as a byte array. Pass this byte array to the 'get' and 'set' methods. If the device register mask needs to be changed then call the 'writeRegister' to finalize the changes.
| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |
| void setChannelMask | ( | int | channel, |
| boolean | set, | ||
| byte[] | register | ||
| ) |
Sets the channel passed to the proper state depending on the set parameter for responding to the Conditional Search.
| channel | current channel to set |
| set | whether to turn the channel on/off for Conditional Search |
| register | current register for conditional search, which if returned from readRegister() |
| void setChannelPolarity | ( | int | channel, |
| boolean | set, | ||
| byte[] | register | ||
| ) |
Sets the channel passed to the proper state depending on the set parameter for the correct polarity in the Conditional Search.
| channel | current channel to set |
| set | whether to turn the channel on/off for polarity Conditional Search |
| register | current register for conditional search, which if returned from readRegister() |
| void setLatchState | ( | byte | set, |
| byte[] | state | ||
| ) |
Sets the latch state for all of the channels.
The method writeDevice()
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| set | the state to set all of the channels, in the range [0 to (getNumberChannels(byte[]) - 1)] |
| state | current state of the device returned from readDevice() |
| void setLatchState | ( | int | channel, |
| boolean | latchState, | ||
| boolean | doSmart, | ||
| byte[] | state | ||
| ) |
Sets the latch state of the indicated channel.
The method writeDevice()
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)] |
| latchState | true to set the channel latch 'on' (conducting) and false to set the channel latch 'off' (not conducting). Note that the actual output when the latch is 'on' is returned from the isHighSideSwitch() method. |
| doSmart | If latchState is 'on'/true then doSmart indicates if a 'smart on' is to be done. To avoid an exception check the capabilities of this device using the hasSmartOn() method. |
| state | current state of the device returned from readDevice() |
Implements SwitchContainer.
| void setResetMode | ( | byte[] | register, |
| boolean | set | ||
| ) | throws OneWireIOException, OneWireException |
Turns the Reset mode on/off.
| set | if 'TRUE' the reset mode will be set or 'FALSE' to turn it off. |
| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |
| void writeDevice | ( | byte[] | state | ) | throws OneWireIOException, OneWireException |
Writes the 1-Wire device sensor state that have been changed by 'set' methods.
Only the state registers that changed are updated. This is done by referencing a field information appended to the state data.
| state | 1-Wire device sensor state |
| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |
Implements OneWireSensor.
| void writeRegister | ( | byte[] | register | ) | throws OneWireIOException, OneWireException |
Writes the 1-Wire device register mask that have been changed by 'set' methods.
| register | 1-Wire device sensor state |
| OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. |
| OneWireException | on a communication or setup error with the 1-Wire adapter |


- getAgeRating() - Method in class application.models.Film
-
Gets the BBFC age rating for the film
- getAvailableTimesByDate(LocalDate) - Static method in class application.controllers.FilmController
-
- getBooking(String) - Static method in class application.controllers.BookingController
-
- getBookingID() - Method in class application.models.Booking
-
Gets the booking ID of the Booking.
- getBookingsByCustomer(Customer) - Static method in class application.controllers.BookingController
-
- getBookingsForScreening(Screening) - Static method in class application.controllers.BookingController
-
- getCustomerBookingForScreening(Customer, Screening) - Static method in class application.controllers.BookingController
-
- getDateTime() - Method in class application.models.Booking
-
Gets LocalDateTime of the Screening the Booking is for
- getDateTime() - Method in class application.models.Screening
-
Gets the dateTime of the Screening (LocalDateTime)
- getDescription() - Method in class application.models.Film
-
Gets the description of the Film.
- getEmail() - Method in class application.models.Customer
-
Gets Customer's email address.
- getEmptySeatPlan(int[]) - Static method in class application.controllers.FilmController
-
- getFilm() - Method in class application.models.Booking
-
Gets a reference to the Film object the Booking is for
(from the filmList in Main)
- getFilm() - Method in class application.models.Screening
-
Gets a reference to the Film object the Screening is for
(from the filmList in Main)
- getFilmTitle() - Method in class application.models.Booking
-
Gets the title of the film the Booking is for
- getFilmTitle() - Method in class application.models.Film
-
Gets the title of the Film.
- getFilmTitle() - Method in class application.models.Screening
-
Gets the film title of the film the Screening is for.
- getFirstName() - Method in class application.models.Customer
-
Gets Customer's first name.
- getFullSeatPlan(HashMap<String, Boolean>...) - Static method in class application.controllers.BookingController
-
- getImage() - Method in class application.models.Film
-
Gets the image saved for the film
- getImageFileName() - Method in class application.models.Film
-
Gets the image file name of the film
- getItem(String, String) - Static method in class application.services.Firebase
-
- getLastName() - Method in class application.models.Customer
-
Gets Customer's last name.
- getList(String) - Static method in class application.services.Firebase
-
- getPassword() - Method in class application.models.User
-
Gets User's password
- getRole() - Method in class application.models.User
-
Gets User's role (Customer or Employee)
- getScreeningForBooking(Booking) - Static method in class application.controllers.FilmController
-
- getScreeningID() - Method in class application.models.Screening
-
Gets the ScreeningID of the Screening.
- getScreenings() - Method in class application.models.Film
-
Gets the list of Screening objects for the film
- getScreeningsByDate(LocalDate) - Static method in class application.controllers.FilmController
-
- getSeatKeyInGridPane(int, int) - Method in class application.controllers.BookingController
-
- getSeats() - Method in class application.models.Booking
-
Gets the list of seats for the booking, along with their
booking status (always true; this list does not contain
information about unbooked seats in the Screening)
- getSeats() - Method in class application.models.Screening
-
Gets the list of seats for the screening, along with their
booking status (true iff booked)
- getSeatsString() - Method in class application.models.Booking
-
Gets a list of the booked seats as a String wherein
the seat names are capitalized; the list is also
ordered alphabetically
- getTheatreDimensions() - Method in class application.models.Screening
-
Gets the theatre dimensions for this Screening object
as an integer array where the first element is the number
of seat rows in the theatre, and the second is the number
of seat columns.
- getTrueOnlySeatPlan(HashMap<String, Boolean>) - Method in class application.controllers.BookingController
-
- getUsername() - Method in class application.models.Booking
-
Gets username of the Customer that made the Booking
- getUsername() - Method in class application.models.User
-
Gets User's username
- grdpnSeats - Variable in class application.controllers.BookingController
-
- gridPaneClick(int, int) - Method in class application.controllers.BookingController
-


Sale off 30% on every saturday!
Best prices
Sale off 20% on every headphones!


We launched the first bookdown contest on July 27, 2018, and received 43 submissions in two months. Below is the list of award recipients and their bookdown applications (see details on RStudio Community):
Grand prize
Recipient: @pabloc for Data Science Live Book
Pablo showed the possibility of publishing a book with bookdown all by yourself (i.e., self-publishing). If you are interested in self-publishing books, I courage you to read the two blog posts mentioned in the submission, which covered a lot of useful and practical technical tips.
- How to self-publish a book: A handy list of resources
- How to self publish a book: customizing bookdown
The book is open source on Github (of course!). I hope you could hesitate no more after seeing Pablo’s example, and will enjoy the excitement of having a physical copy of your book in your own hands a couple of months later. I’m sure Pablo will be happy to help if you have any questions on self-publishing.
Runner Up Prizes
The three recipients and their work:
-
@grimbough’s msmbstyle package: https://community.rstudio.com/t/14998 This is a bookdown extension package for the Tufte style. Besides a nice style, it has also provided additional features such as Question/Solution/Exercise blocks. Currently a real book, Modern Statistics for Modern Biology, is being written with this style. @grimbough has also tried to port some of the Tufte features to the Bootstrap style.
-
@Xiangyun’s master thesis at CUMT (China University of Mining and Technology): https://community.rstudio.com/t/12466 and @pranav.pandya’s master thesis at Berlin School of Economics and Law: https://community.rstudio.com/t/15350
There were several submissions on dissertation/thesis templates, and the above two were picked because (1) the authors have successfully graduated with their degrees, which means they must have won in the constant fight with their graduate schools (I kind of lost in 2013, so they “made it up” for me to some extent); (2) they provided both PDF and web versions of their theses. Pranav’s thesis was based on Chester Ismay’s thesisdown package. Chester really should have received the award, too, but I think the large number of theses, including Pranav’s, is the best award for Chester.
Honorable Mention Prizes
Recipients and their work:
-
@colin’s backyard package. It has basically provided a GUI for bookdown. It is absolutely amazing. If it were not still work in progress, I’d have to fight with myself for longer.
-
@robjhyndman’s Monash University templates. Students and faculty in other universities may feel jealousy about these templates, since it seems Monash can escape from the LaTeX world now.
-
@jweisber’s book “Odds & Ends”. It is a beautiful and elegant extension of the Tufte style. I thumbed through the book, and it appeared to be a great book, too!
-
@dapeng submitted multiple entries:
-
@zachbogart and @jtr13’s edav.info/. When will course notes follow the Wikipedia model?
-
@ejkasner’s University of Washington dissertation template. Features the use of child documents (each chapter as a child document), LaTeX customization, and
bookdown::pdf_document2
. -
@martin.arnold’s interactive companion to the well-received textbook Introduction to Econometrics (Stock & Watson, 2015).
-
@Desautm’s Notes for advanced calculus in French (with some interesting LaTeX tricks).
-
@robinlovelace’s Geocomputation with R, a book containing animations, interactive widgets, and shiny apps. Also a great example of collaboration among multiple authors.
-
@bubifengyun’s book in Chinese with a large amount of LaTeX customizations, and Shanghai Jiao Tong University thesis.
-
@yimeng’s Renmin University of China thesis.


The number of glucocorticoid receptors in peripheral human lymphocytes is elevated by a zinc containing trace element preparation.
Abstract
A trace element preparation (Beres Drops Plus, BDP) elevates the number of glucocorticoid receptors (gcR) in peripheral lymphocytes isolated both from healthy blood donors and rheumatoid arthritis patients. This enhancement by BDP was found either for constitutive expression of gcRs or in experiments when the lymphocytes were stimulated by interleukin (IL) -6. There was no significant effect of BDP on IL-1 and tumour necrosis factor alpha (TNF alpha) -induced changes of gcRs. The effect of BDP was greatly dependent on the presence of Zn++ ions in the preparation, since the augmenting effect was abolished if BDP did not contain zinc.


Here you can find all sorts of information about what we do. Whehter you are a player, fan, or potential partner, we thank you for your interest in what we consider one of the best team organizations in esports.
Take a look around and tell us what you think!
Here at Uplift, we pride ourselves in our ability to foster talent and provide for our players. Bridging the gap between upcoming players and the spotlight is always at the forefront of our business decisions.
When not sending players off to compete, we also produce high quality content across various eSport titles. Check it out!
We value our partners who make this whole operation possible. We like them and we're sure you will too!


Renaud Visage is the technical architect and co-founder at Eventbrite ñ 12 years and 1000 employees later, he continues to leverage his entrepreneurial nature by driving innovative projects and initiatives at the company. In 2006, he joined forces with Kevin & Julia Hartz to found Eventbrite. He anticipated several fundamental shifts in the way we use the internet ñ including the arrival of social media, big data analysis, the shift to mobile devices as first screens and the ubiquity of APIs ñ and leveraged their disruptive power to Eventbriteís advantage, fuelling the companyís growth into the powerful global ticketing and event technology platform it is today. When Renaud is not writing code, heís mentoring and investing in startups in several European countries.


 Ad rerum aperiam perspiciatis mollitia iste optio doloribus ullam! Iste, tempore veniam. Voluptate suscipit eveniet quisquam nam ad tenetur porro, temporibus fugiat?
Free Shipping On All Order
Back Guarantee in 7 days
On every order over $130.00
Support 24 hours a day
Send within 30 days
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
Aliquam Quaerat
february 2020
Contrary to popular belief, Lorem Ipsum is not simply random text.  Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature.


--- layout: post title: AngularJS Sticky Notes Pt 1 - Architecture date: 2012-06-26 04:00:09.000000000 -07:00 type: post published: true status: publish categories: - AngularJS - JavaScript - jQuery tags: [] meta: _edit_last: '8' layout: default hide_post_title: default unlink_post_title: default hide_post_meta: default hide_post_date: default hide_post_image: default _nina_cross_promo: a:1:{s:8:"template";s:17:"custom_1399328552";} _yoast_wpseo_primary_category: '' _wpcom_is_markdown: '1' author: login: ohmadmin email<EMAIL_ADDRESS>display_name: Lukas Ruebbelke first_name: Lukas last_name: Ruebbelke ---
This is Part One of a series that is going to deconstruct the lessons I learned from building AngularJS Sticky Notes. This is going to be different from other posts that I have done in that we will be starting with a finished product and working backwards. I will do my best to approach it in a way that can be translated to how applications are really written. From nothing, through many, many iterations and edits.
This fiddle can be found here:
http://jsfiddle.net/simpulton/VJ94U/
The git repository is here:
https://github.com/simpulton/angular-sticky-notes
My goal is that the passerby will see something they like about AngularJS and try it. If you have already spent some time with AngularJS, I am proof that there is still so much to learn. Let's get started!
I owe a great deal of gratitude to the amazing AngularJS community, and it was because of them that a lot of the rough edges of the application were smoothed out. I thought I had built something really clever, and was humbled and amazed to find that there were dozens of things that I could have done better.
So we arrive at my first piece of advice for any application: be courageous and solicit feedback from other developers. Doing peer reviews has never been easier! You can get advice from people all around the world who are genuinely interested in helping, and will go the extra mile to give thoughtful and relevant feedback.
Here is the mailing list thread to see the conversation that formed the final version. It is full of great advice!
https://groups.google.com/forum/?fromgroups#!topic/angular/kNH-gB0vKqQ
In the application I have a service called notesService that is responsible for maintaining the data for the application.
I originally had this functionality in the NotebookCtrl, but realized that this simply was not scalable.
It is considered bad form for two controllers to share information via $scope inheritance.
So how do you share data between controllers?
And how do you implement cross-controller communication?
To share data between controllers, the solution is [ironically] very simple. Extract the data models that need to be shared across the application into a service and then inject that service into the controllers that need it.
[js]
angular.module('myApp', [])
.service('notesService', function () {
return {
notes:function () {
},
addNote:function (noteTitle) {
},
deleteNote:function (id) {
}
};
})
.controller('NotebookCtrl', ['$scope', 'notesService', function ($scope, notesService) {
$scope.getNotes = function () {
return notesService.notes();
};
$scope.addNote = function (noteTitle) {
if (noteTitle != '') {
notesService.addNote(noteTitle);
}
};
$scope.deleteNote = function (id) {
notesService.deleteNote(id);
};
$scope.resetForm = function () {
$scope.noteTitle = '';
};
}]);
[/js]
If an event happens that needs to modify the data, the controller delegates that responsibility to the service.
There are a few benefits to this approach:
Let me press pause here for a second. Cross-controller communication is a fairly advanced topic and a person could write an entire blog post just on this subject. This is just one small facet of the problem.
Even though JavaScript is not a classical language like Java, it is still important to strive for encapsulation in your design. The idea is to only expose the parts that you need to be available, and nothing more.
Encapsulation is achieved via the module pattern. We use the noteService constructor function to define a module that manages the data variable. This data var is accessed [via closure access] by the API that the constructor function returns.
Witness the following code:
[js]
.service('notesService', function () {
var data = [
// This is private
];
return {
notes:function () {
// This exposed private data
return data;
},
addNote:function (noteTitle) {
// This is a public function that modifies private data
},
deleteNote:function (id) {
// This is a public function that modifies private data
}
};
})
[/js]
There are three functions that are available in the service, and nothing more. The underlying data is even being protected and can only be accessed through a public function.
DOM manipulation and responding to DOM events are tricky and, left unchecked, will render your application a total mess in no time. One of my favorite things about AngularJS is that they have thoughtfully provided a place to put all of this particular code: directive(s).
Notice the myNote directive:
[js]
.directive('myNote', function () {
return {
link:function (scope, element, attrs) {
var $el = $(element);
$el.hide().fadeIn('slow');
$('.thumbnails').sortable({
placeholder:"ui-state-highlight", forcePlaceholderSize:true
});
}
};
})
[/js]
By using the directives to directly manipulate DOM elements and Controllers to define databinding models, the controllers should know nothing about the DOM/views. One of the great advantages of this approach is that it makes it much easier to test controllers. It is so much nicer to run tests on controllers without having to construct or prepare the HTML DOM (visual elements that comprise the 'view').
JavaScript is a dynamic, functional language and, in my opinion, is where all the magic is.
Examine the code below:
[js]
angular.module('myApp', [])
.service('notesService', function () {
// Service functionality goes here
})
.directive('myNotebook', function ($log) {
// Directive functionality goes here
})
.directive('myNote', function () {
// Directive functionality goes here
})
.controller('NotebookCtrl', ['$scope', 'notesService', function ($scope, notesService) {
// Controller functionality goes here
}]);
[/js]
In this snippet, I have defined my module, a service, two directives, and a controller in a way that builds on top of the previous definition. By daisy chaining my declarations it is easy to maintain what actually is attached to the underlying module. If you really wanted to get wild, you could even add new functionality to the module at runtime, and because JavaScript is dynamic, it would totally work.
Special note: because you have the power to add functionality at runtime in such a powerful way, it is important to be extra disciplined about writing tests.
I have just scratched the surface of the AngularJS Sticky Notes application. I wanted to cover the broad strokes first since I believe they apply to any AngularJS application. Stay tuned for the next parts of this series as I start to dig deeper into each of the features one by one.
I owe a special thanks to Thomas Burleson, Igor Minar, Misko Hevery and everyone on the mailing list for all of their awesome input. The community is my favorite feature of the framework!
AngularJS Mailing List
https://groups.google.com/forum/?fromgroups#!forum/angular


Cross-sections give us a side view (profile view) of landforms. They help us to better understand the relief of a mapped area and to visualise relationships between different features. In order to show differences in relief more clearly, we usually exaggerate (enlarge) the vertical scale of cross-sections. The number of times we enlarge the vertical scale is called the vertical exaggeration.
In this cross-section, the horizontal scale (HS) is 1 : 50 000 and the vertical scale (VS) is 1 : 1 000. When we insert these values into the formula, we find that the vertical scale has been exaggerated 50 times.


An analagy for HTML and CSS (and javascrpit) would be to think of it all like building a house. HTML is the foundations, the wood, and the nails which are used to build the structure of the house. CSS is the decorating of the house, so the paint color, and what your inhouse decorm will look like. then Javascript what makes everything go, like the T.V remote or your radio controls.
DOM on the otherhand is like a Tree, you can add branches, cut branches off, Grow new branches, grow or trim the leaves, or modify the whole tree entirely, by changing the trunk!
Boxifying means to think of a webpage like a group of boxes stacked together. There are the main boxes such as, Head, body, footer and asie. but also these boxs contain other boxes, such as paragraphs, imgs, headers etc. boxifying means to identify the boxes of a website.
The box model is essentially a box that wraps around all HTML elements. It consists of Margins, borders, padding and the actual content.
Grid systems bring structure to a website. As a tool grids are useful for organizing and presenting information in a way that creates predictable patterns for users to follow.
Responsive websites are websites where the layout scales to the screensize regardless of the type of device it is viewed on. There are many types of screensizes people view websites on including desktop computer, laptops, tablets and mobile phones. A responsive website will scale itself according to the size of the screen it is being viewed on.
Semantic structure is when you use "semantic" elements to format your html code. Semantic elements are elements which have a meaning, such as img, table, form, etc. As oppose to non-semantic elements such as div, span, head.


New IconsA series of iOS 7 inspired vector icons
album
arc
back-2
bandaid
car
diamond
door-lock
eyedropper
female
gym
hammer
headphones
helm
hourglass
leaf
magic-wand
male
map-2
next-2
paint-bucket
pendrive
photo
piggy
plugin
refresh-2
rocket
settings
shield
smile
usb
vector
wine
cloud-upload
cash
close
bluetooth
cloud-download
way
close-circle
id
angle-up
wristwatch
angle-up-circle
world
angle-right
volume
angle-right-circle
users
angle-left
user-female
angle-left-circle
up-arrow
angle-down
switch
angle-down-circle
scissors
wallet
safe
volume2
volume1
voicemail
video
user
upload
unlock
umbrella
trash
tools
timer
ticket
target
sun
study
stopwatch
star
speaker
signal
shuffle
shopbag
share
server
search
film
science
disk
ribbon
repeat
refresh
add-user
refresh-cloud
paperclip
radio
note2
print
network
prev
mute
power
medal
portfolio
like2
plus
left-arrow
play
key
plane
angle-up
joy
photo-gallery
pin
phone
plug
pen
right-arrow
paper-plane
delete-user
paint
bottom-arrow
notebook
note
next
news-paper
musiclist
music
mouse
more
moon
monitor
micro
menu
map
map-marker
mail
mail-open
mail-open-file
magnet
loop
look
lock
lintern
link
like
light
less
keypad
junk
info
home
help2
help1
graph3
graph2
graph1
graph
global
gleam
glasses
gift
folder
flag
filter
file
expand1
expand2
edit
drop
drawer
download
display2
display1
diskette
date
cup
culture
crop
credit
copy-file
config
compass
comment
coffee
cloud
clock
check
chat
cart
camera
call
calculator
browser
box2
box1
bookmarks
bicycle
bell
battery
ball
back
attention
anchor
albums
alarm
airplay


Object
Use this class to make Dropbox API calls. You’ll need to obtain an OAuth 2 access token first; you can get one using either DropboxOAuth2Flow or DropboxOAuth2FlowNoRedirect.
Args:
oauth2_access_token: Obtained via DropboxOAuth2Flow or DropboxOAuth2FlowNoRedirect.
locale: The user's current locale (used to localize error messages).
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 681 def initialize(oauth2_access_token, root="auto", locale=nil) if oauth2_access_token.is_a?(String) @session = DropboxOAuth2Session.new(oauth2_access_token, locale) elsif oauth2_access_token.is_a?(DropboxSession) @session = oauth2_access_token @session.get_access_token if not locale.nil? @session.locale = locale end else raise ArgumentError.new("oauth2_access_token doesn't have a valid type") end @root = root.to_s # If they passed in a symbol, make it a string if not ["dropbox","app_folder","auto"].include?(@root) raise ArgumentError.new("root must be :dropbox, :app_folder, or :auto") end if @root == "app_folder" #App Folder is the name of the access type, but for historical reasons #sandbox is the URL root component that indicates this @root = "sandbox" end end
Returns some information about the current user’s Dropbox account (the “current user” is the user associated with the access token you’re using).
For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#account-info
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 711 def account_info() response = @session.do_get "/account/info" Dropbox::parse_response(response) end
Adds the file referenced by the copy ref to the specified path
Args:
copy_ref: A copy ref string that was returned from a create_copy_ref call. The copy_ref can be created from any other Dropbox account, or from the same account.
to_path: The path to where the file will be created.
Returns:
A hash with the metadata of the new file.
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1288 def add_copy_ref(to_path, copy_ref) params = {'from_copy_ref' => copy_ref, 'to_path' => "#{to_path}", 'root' => @root} response = @session.do_post "/fileops/copy", params Dropbox::parse_response(response) end
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 847 def commit_chunked_upload(to_path, upload_id, overwrite=false, parent_rev=nil) #:nodoc path = "/commit_chunked_upload/#{@root}#{format_path(to_path)}" params = {'overwrite' => overwrite.to_s, 'upload_id' => upload_id, 'parent_rev' => parent_rev, } headers = nil content_server = true @session.do_post path, params, headers, content_server end
Creates and returns a copy ref for a specific file. The copy ref can be used to instantly copy that file to the Dropbox of another account.
Args:
path: The path to the file for a copy ref to be created on.
Returns:
A Hash object that looks like the following example:
{"expires"=>"Fri, 31 Jan 2042 21:01:05 +0000", "copy_ref"=>"z1X6ATl6aWtzOGq0c3g5Ng"}
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1273 def create_copy_ref(path) path = "/copy_ref/#{@root}#{format_path(path)}" response = @session.do_get path Dropbox::parse_response(response) end
A way of letting you keep a local representation of the Dropbox folder heirarchy. You can periodically call delta() to get a list of “delta entries”, which are instructions on how to update your local state to match the server’s state.
Arguments:
cursor: On the first call, omit this argument (or pass in nil). On subsequent calls, pass in the cursor string returned by the previous call.
Returns: A hash with three fields.
entries: A list of "delta entries" (described below)
reset: If true, you should reset local state to be an empty folder before processing the list of delta entries. This is only true only in rare situations.
cursor: A string that is used to keep track of your current state. On the next call to delta(), pass in this value to return entries that were recorded since the cursor was returned.
has_more: If true, then there are more entries available; you can call delta() again immediately to retrieve those entries. If false, then wait at least 5 minutes (preferably longer) before checking again.
Delta Entries: Each entry is a 2-item list of one of following forms:
[path, metadata]: Indicates that there is a file/folder at the given path. You should add the entry to your local state. (The metadata value is the same as what would be returned by the metadata() call.)
If the path refers to parent folders that don’t yet exist in your local state, create those parent folders in your local state. You will eventually get entries for those parent folders.
If the new entry is a file, replace whatever your local state has at path with the new entry.
If the new entry is a folder, check what your local state has at path. If it’s a file, replace it with the new entry. If it’s a folder, apply the new metadata to the folder, but do not modify the folder’s children.
[path, nil]: Indicates that there is no file/folder at the path on Dropbox. To update your local state to match, delete whatever is at path, including any children (you will sometimes also get separate delta entries for each child, but this is not guaranteed). If your local state doesn’t have anything at path, ignore this entry.
Remember: Dropbox treats file names in a case-insensitive but case-preserving way. To facilitate this, the path strings above are lower-cased versions of the actual path. The metadata dicts have the original, case-preserved path.
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1234 def delta(cursor=nil) params = { 'cursor' => cursor, } response = @session.do_post "/delta", params Dropbox::parse_response(response) end
Copy a file or folder to a new location.
Args:
from_path: The path to the file or folder to be copied.
to_path: The destination path of the file or folder to be copied. This parameter should include the destination filename (e.g. from_path: '/test.txt', to_path: '/dir/test.txt'). If there's already a file at the to_path, this copy will be renamed to be unique.
Returns:
A hash with the metadata of the new copy of the file or folder. For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#fileops-copy
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 949 def file_copy(from_path, to_path) params = { "root" => @root, "from_path" => format_path(from_path, false), "to_path" => format_path(to_path, false), } response = @session.do_post "/fileops/copy", params Dropbox::parse_response(response) end
Create a folder.
Arguments:
path: The path of the new folder.
Returns:
A hash with the metadata of the newly created folder. For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#fileops-create-folder
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 968 def file_create_folder(path) params = { "root" => @root, "path" => format_path(path, false), } response = @session.do_post "/fileops/create_folder", params Dropbox::parse_response(response) end
Deletes a file
Arguments:
path: The path of the file to delete
Returns:
A Hash with the metadata of file just deleted. For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#fileops-delete
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 987 def file_delete(path) params = { "root" => @root, "path" => format_path(path, false), } response = @session.do_post "/fileops/delete", params Dropbox::parse_response(response) end
Moves a file
Arguments:
from_path: The path of the file to be moved
to_path: The destination path of the file or folder to be moved If the file or folder already exists, it will be renamed to be unique.
Returns:
A Hash with the metadata of file or folder just moved. For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#fileops-delete
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1007 def file_move(from_path, to_path) params = { "root" => @root, "from_path" => format_path(from_path, false), "to_path" => format_path(to_path, false), } response = @session.do_post "/fileops/move", params Dropbox::parse_response(response) end
Returns a ChunkedUploader object.
Args:
file_obj: The file-like object to be uploaded. Must support .read()
total_size: The total size of file_obj
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 768 def get_chunked_uploader(file_obj, total_size) ChunkedUploader.new(self, file_obj, total_size) end
Download a file
Args:
from_path: The path to the file to be downloaded
rev: A previous revision value of the file to be downloaded
Returns:
The file contents.
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 876 def get_file(from_path, rev=nil) response = get_file_impl(from_path, rev) Dropbox::parse_response(response, raw=true) end
Download a file and get its metadata.
Args:
from_path: The path to the file to be downloaded
rev: A previous revision value of the file to be downloaded
Returns:
The file contents.
The file metadata as a hash.
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 890 def get_file_and_metadata(from_path, rev=nil) response = get_file_impl(from_path, rev) parsed_response = Dropbox::parse_response(response, raw=true) metadata = parse_metadata(response) return parsed_response, metadata end
Returns a direct link to a media file All of Dropbox’s API methods require OAuth, which may cause problems in situations where an application expects to be able to hit a URL multiple times (for example, a media player seeking around a video file). This method creates a time-limited URL that can be accessed without any authentication.
Arguments:
path: The file to stream.
Returns:
A Hash object that looks like the following:
{'url': 'https://dl.dropboxusercontent.com/1/view/abcdefghijk/example', 'expires': 'Thu, 16 Sep 2011 01:01:25 +0000'}
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1134 def media(path) response = @session.do_get "/media/#{@root}#{format_path(path)}" Dropbox::parse_response(response) end
Retrives metadata for a file or folder
Arguments:
path: The path to the file or folder.
list: Whether to list all contained files (only applies when path refers to a folder).
file_limit: The maximum number of file entries to return within a folder. If the number of files in the directory exceeds this limit, an exception is raised. The server will return at max 25,000 files within a folder.
hash: Every directory listing has a hash parameter attached that can then be passed back into this function later to save on bandwidth. Rather than returning an unchanged folder’s contents, if the hash matches a DropboxNotModified exception is raised.
rev: Optional. The revision of the file to retrieve the metadata for. This parameter only applies for files. If omitted, you’ll receive the most recent revision metadata.
include_deleted: Specifies whether to include deleted files in metadata results.
Returns:
A Hash object with the metadata of the file or folder (and contained files if appropriate). For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#metadata
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1040 def metadata(path, file_limit=25000, list=true, hash=nil, rev=nil, include_deleted=false) params = { "file_limit" => file_limit.to_s, "list" => list.to_s, "include_deleted" => include_deleted.to_s, "hash" => hash, "rev" => rev, } response = @session.do_get "/metadata/#{@root}#{format_path(path)}", params if response.kind_of? Net::HTTPRedirection raise DropboxNotModified.new("metadata not modified") end Dropbox::parse_response(response) end
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 858 def partial_chunked_upload(data, upload_id=nil, offset=nil) #:nodoc params = { 'upload_id' => upload_id, 'offset' => offset, } headers = {'Content-Type' => "application/octet-stream"} content_server = true @session.do_put '/chunked_upload', params, headers, data, content_server end
Uploads a file to a server. This uses the HTTP PUT upload method for simplicity
Args:
to_path: The directory path to upload the file to. If the destination directory does not yet exist, it will be created.
file_obj: A file-like object to upload. If you would like, you can pass a string as file_obj.
overwrite: Whether to overwrite an existing file at the given path. [default is False] If overwrite is False and a file already exists there, Dropbox will rename the upload to make sure it doesn't overwrite anything. You must check the returned metadata to know what this new name is. This field should only be True if your intent is to potentially clobber changes to a file that you don't know about.
parent_rev: The rev field from the 'parent' of this upload. [optional] If your intent is to update the file at the given path, you should pass the parent_rev parameter set to the rev value from the most recent metadata you have of the existing file at that path. If the server has a more recent version of the file at the specified path, it will automatically rename your uploaded file, spinning off a conflict. Using this parameter effectively causes the overwrite parameter to be ignored. The file will always be overwritten if you send the most-recent parent_rev, and it will never be overwritten you send a less-recent one.
Returns:
a Hash containing the metadata of the newly uploaded file. The file may have a different name if it conflicted.
Simple Example
client = DropboxClient(oauth2_access_token) #session is a DropboxSession I've already authorized client.put_file('/test_file_on_dropbox', open('/tmp/test_file'))
This will upload the “/tmp/test_file” from my computer into the root of my App’s app folder and call it “test_file_on_dropbox”. The file will not overwrite any pre-existing file.
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 749 def put_file(to_path, file_obj, overwrite=false, parent_rev=nil) path = "/files_put/#{@root}#{format_path(to_path)}" params = { 'overwrite' => overwrite.to_s, 'parent_rev' => parent_rev, } headers = {"Content-Type" => "application/octet-stream"} content_server = true response = @session.do_put path, params, headers, file_obj, content_server Dropbox::parse_response(response) end
Restore a file to a previous revision.
Arguments:
path: The file to restore. Note that folders can’t be restored.
rev: A previous rev value of the file to be restored to.
Returns:
A Hash object with a list the metadata of the file or folders restored For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#search
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1113 def restore(path, rev) params = { 'rev' => rev.to_s } response = @session.do_post "/restore/#{@root}#{format_path(path)}", params Dropbox::parse_response(response) end
Retrive revisions of a file
Arguments:
path: The file to fetch revisions for. Note that revisions are not available for folders.
rev_limit: The maximum number of file entries to return within a folder. The server will return at max 1,000 revisions.
Returns:
A Hash object with a list of the metadata of the all the revisions of all matches files (up to rev_limit entries) For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#revisions
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1094 def revisions(path, rev_limit=1000) params = { 'rev_limit' => rev_limit.to_s } response = @session.do_get "/revisions/#{@root}#{format_path(path)}", params Dropbox::parse_response(response) end
Search directory for filenames matching query
Arguments:
path: The directory to search within
query: The query to search on (3 character minimum)
file_limit: The maximum number of file entries to return/ If the number of files exceeds this limit, an exception is raised. The server will return at max 1,000
include_deleted: Whether to include deleted files in search results
Returns:
A Hash object with a list the metadata of the file or folders matching query inside path. For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#search
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1070 def search(path, query, file_limit=1000, include_deleted=false) params = { 'query' => query, 'file_limit' => file_limit.to_s, 'include_deleted' => include_deleted.to_s } response = @session.do_get "/search/#{@root}#{format_path(path)}", params Dropbox::parse_response(response) end
Download a thumbnail for an image.
Arguments:
from_path: The path to the file to be thumbnailed.
size: A string describing the desired thumbnail size. At this time, ‘small’ (32x32), ‘medium’ (64x64), ‘large’ (128x128), ‘s’ (64x64), ‘m’ (128x128), ‘l’ (640x640), and ‘xl’ (1024x1024) are officially supported sizes. Check www.dropbox.com/developers/reference/api#thumbnails for more details. [defaults to large]
Returns:
The thumbnail data
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1169 def thumbnail(from_path, size='large') response = thumbnail_impl(from_path, size) Dropbox::parse_response(response, raw=true) end
Download a thumbnail for an image along with the image’s metadata.
Arguments:
from_path: The path to the file to be thumbnailed.
size: A string describing the desired thumbnail size. See thumbnail() for details.
Returns:
The thumbnail data
The metadata for the image as a hash
# File build/dropbox-ruby-sdk-1.6.2/lib/dropbox_sdk.rb, line 1183 def thumbnail_and_metadata(from_path, size='large') response = thumbnail_impl(from_path, size) parsed_response = Dropbox::parse_response(response, raw=true) metadata = parse_metadata(response) return parsed_response, metadata end
Generated with the Darkfish Rdoc Generator 2.