Web Developer & Resources by Madison Woo
Accessibility
As a web designer, it’s important to know how to create an accessible website for all. Not only is it simply the right thing to do, but making websites accessible to those with disabilities come with many great business benefits. Creating a website that has good accessibility comes hand-in-hand with good SEO within search engines. Lastly, when you create a website for a business that is accessible, it opens up a wider range of consumers.
Creating a website that is accessible to those with disabilities comes with great SEO benefits. For example, when a site has a descriptive title of the web content, it’s the first thing read to a user using a screen reader. It gives them a good idea of what’s on the website and can help them quickly identify if the content is what they’re looking for. But including a descriptive title has SEO benefits, because it will determine where the site will appear in a search engine. This can greatly affect the amount of clicks the website will get.
“According to Moz, “Your title tag determines (with a few exceptions) your display title in SERPs [search engine results pages], and is a search visitor’s first experience of your site. Even if your site ranks well, a good title can be the make-or-break factor in determining whether or not someone clicks on your link.” This means that in almost every scenario, writing a title that accurately reflects page content is a win-win.” (2019 DBS Interactive) Creating a descriptive site title is an example of how good user accessibility creates better business opportunities through SEO.
Lastly, there is more business opportunity for companies with accessible websites than those who don’t. According to W3, “In the US, the annual discretionary spending of people with disabilities is over $200 billion. The global estimate of the disability market is nearly $7 trillion.” (2018 W3C) Potential consumers could have disabilities, and having a website that isn’t accessible to them is business that can be lost. Having an accessible consumer website, allows a company to reach a larger consumer demographics.


Total number:
, updated on
Clear cache
Show Internal License
Show PS4
Show PS3
Show PSVita
Show PSP
Show Game
Show DLC
Show Extra
#
PS+
Name
Platform
Type
Size
Date
Entitlement data not found. Please
log in PlayStation Store
to view your content list.


Genre: Political Fiction, Dystopian
In a world where everything is monitored by the government, where every action is mandated and where personal privacy does not exist, a single man commits a crime. He begins to think. Winston Smith begins to write a dairy. As his dairy's size increases, so does his treason. How long can he escape?
Big Brother is Watching You.
Genre: Utopian and Dystopian Fiction
Guy Montag is a fireman. His job is to burn books, which are forbidden, being the source of all discord and unhappiness. Even so, Montag is unhappy; there is discord in his marriage. Are books hidden in his house? The Mechanical Hound of the Fire Department, armed with a lethal hypodermic, escorted by helicopters, is ready to track down those dissidents who defy society to preserve and read books.
Genre: Historical Fiction
Lina is just like any other fifteen-year-old Lithuanian girl in 1941. She paints, she draws, she gets crushes on boys. Until one night when Soviet officers barge into her home, tearing her family from the comfortable life they've known. Separated from her father, forced onto a crowded and dirty train car, Lina, her mother, and her young brother slowly make their way north, crossing the Arctic Circle, to a work camp in the coldest reaches of Siberia. Here they are forced, under Stalin's orders, to dig for beets and fight for their lives under the cruelest of conditions.
Genre: Mystery, Science Fiction
Sixteen-year-old Noa has been a victim of the system ever since her parents died. Now living off the grid and trusting no one, she uses her hacking skills to stay anonymous and alone. But when she wakes up on a table in a warehouse with an IV in her arm and no memory of how she got there, Noa starts to wish she had someone on her side.
Enter Peter Gregory. A rich kid and the leader of a hacker alliance, Peter needs people with Noa’s talents on his team. Especially after a shady corporation threatens his life in no uncertain terms. But what Noa and Peter don’t realize is that Noa holds the key to a terrible secret, and there are those who’d stop at nothing to silence her for good.
Genre: Science Fiction
A growing nation of genetically evolved apes led by Caesar is threatened by a band of human survivors of the devastating virus unleashed a decade earlier. They reach a fragile peace, but it proves short-lived, as both sides are brought to the brink of a war that will determine who will emerge as Earth's dominant species.
Genre: Contemporary, Realistic Fiction
Twelve-year-old Fern feels invisible.  Then there’s Charlie: three years old, a "surprise" baby, the center of everyone’s world. He’s devoted to Fern, but he’s annoying, too, always getting his way, always dirty, always commanding attention. If it wasn’t for Ran, Fern’s calm and positive best friend, there’d be nowhere to turn. Ran’s mantra, "All will be well," is soothing in a way that nothing else seems to be. And when Ran says it, Fern can almost believe it’s true.
But then tragedy strikes- and Fern feels not only more alone than ever, but also responsible for the accident that has wrenched her family apart. All will not be well.
Genre: Science Fiction, Dystopian
Matty has lived in Village and flourished under the guidance of Seer, a blind man known for his special sight. Village once welcomed newcomers, but something sinister has seeped into Village and the people have voted to close it to outsiders. Matty has been invaluable as a messenger. Now he must risk everything to make one last journey through the treacherous forest with his only weapon, a power he unexpectedly discovers within himself.
Genre: Mystery, Thriller, Contemporary Fiction
What do you really need?
One by one, the teens in Nottawa, Wisconsin, join the newest, hottest networking site and answer one question: What do you need? A new iPhone? Backstage passes to a concert? In exchange for a seemingly minor task, the NEED site will fulfill your request. Everyone is doing it. So why shouldn’t you?
 She doesn’t believe a social networking site can help, but it couldn’t hurt to try. Or could it?


This SRFI is currently in final status. Here is an explanation of each status that a SRFI can hold. To provide input on this SRFI, please send email to<EMAIL_ADDRESS>. To subscribe to the list, follow these instructions. You can access previous messages via the mailing list archive.
make-comparator
in
the Default comparators
section.)Post-finalization note #1: Because of the extremely high cost of
conforming to the first and third conditions of default-hash
,
implementers may disregard those conditions and examine only a
bounded portion of the argument.
Post-finalization note #2: After finalization, on
2021-06-03, the author requested the addition of a non-normative
recommendation in the description of
comparator-register-default!
. See the
third
paragraph.
Post-finalization note #3 (added on 2022-07-19):
The hash functions in the eq-comparator
and the
eqv-comparator
objects are implementation-defined.
This SRFI provides comparators, which bundle a type test predicate, an equality predicate, an ordering predicate, and a hash function (the last two are optional) into a single Scheme object. By packaging these procedures together, they can be treated as a single item for use in the implementation of data structures.
The four procedures above have complex dependencies on one another, and it is inconvenient to have to pass them individually to other procedures that might or might not make use of all of them. For example, a set implementation by its nature requires only an equality predicate, but if it is implemented using a hash table, an appropriate hash function is also required if the implementation does not provide one; alternatively, if it is implemented using a tree, procedures specifying a total order are required. By passing a comparator rather than a bare equality predicate, the set implementation can make use of whatever procedures are available and useful to it.
This SRFI is a simplified and enhanced rewrite of SRFI 114, and shares some of its design rationale and all of its acknowledgements. The largest change is the replacement of the comparison procedure with the ordering procedure. This allowed most of the special-purpose comparators to be removed. In addition, many of the more specialized procedures, as well as all but one of the syntax forms, have been removed as unnecessary.
Special thanks to Taylan Ulrich Bayırlı/Kammer, whose insistence
that SRFI 114 was unacceptable inspired this redesign.
Jörg Wittenberger added Chicken-specific type declarations,
which I have moved to comparators.scm
, as it is
a Chicken-specific library.
He also provided Chicken-specific metadata and setup commands.
Comments from Shiro Kawai, Alex Shinn, and Kevin Wortman
guided me to the current design for bounds and salt.
The procedures in this SRFI are in the (srfi 128)
library (or (srfi :128)
on R6RS), but the sample implementation currently places them in the (comparators)
library. This means it can't be used alongside SRFI 114, but there's no reason for anyone to do that.
A comparator is an object of a disjoint type. It is a bundle of procedures that are useful for comparing two objects in a total order. It is an error if any of the procedures have side effects. There are four procedures in the bundle:
The type test predicate returns #t
if its argument has the correct type to be passed as an argument to the other three procedures, and #f
otherwise.
The equality predicate returns #t
if the two objects are the same in the sense of the comparator, and #f
otherwise. It is the programmer's responsibility to ensure that it is reflexive, symmetric, transitive, and can handle any arguments that satisfy the type test predicate.
The ordering predicate returns #t
if the first object precedes the second in a total order, and #f
otherwise. Note that if it is true, the equality predicate must be false. It is the programmer's responsibility to ensure that it is irreflexive, antisymmetric, transitive, and can handle any arguments that satisfy the type test predicate.
The hash function takes an object and returns an exact non-negative integer. It is the programmer's responsibility to ensure that it can handle any argument that satisfies the type test predicate, and that it returns the same value on two objects if the equality predicate says they are the same (but not necessarily the converse).
It is also the programmer's responsibility to ensure that all four procedures provide the same result whenever they are applied to the same object(s) (in the sense of eqv?
), unless the object(s) have been mutated since the last invocation. In particular, they must not depend in any way on memory addresses in implementations where the garbage collector can move objects in memory.
The comparator objects defined in this SRFI are not applicable to circular structure or to NaNs, or to objects containing any of these. Attempts to pass any such objects to any procedure defined here, or to any procedure that is part of a comparator defined here, is an error except as otherwise noted.
Predicates: comparator? comparator-ordered? comparator-hashable?
Constructors: make-comparator make-pair-comparator make-list-comparator make-vector-comparator make-eq-comparator make-eqv-comparator make-equal-comparator
Standard hash functions: boolean-hash char-hash char-ci-hash string-hash string-ci-hash symbol-hash number-hash
Bounds and salt: hash-bound hash-salt
Default comparators: make-default-comparator default-hash comparator-register-default!
Accessors and invokers: comparator-type-test-predicate comparator-equality-predicate comparator-ordering-predicate comparator-hash-function comparator-test-type comparator-check-type comparator-hash
Comparison predicates: =? <? >? <=? >=?
Syntax: comparator-if<=>
(comparator?
obj)
Returns #t
if obj is a comparator, and #f
otherwise.
(comparator-ordered?
comparator)
Returns #t
if comparator has a supplied ordering predicate, and #f
otherwise.
(comparator-hashable?
comparator)
Returns #t
if comparator has a supplied hash function, and #f
otherwise.
The following comparator constructors all supply appropriate type test predicates, equality predicates, ordering predicates, and hash functions based on the supplied arguments. They are allowed to cache their results: they need not return a newly allocated object, since comparators are pure and functional. In addition, the procedures in a comparator are likewise pure and functional.
(make-comparator
type-test equality ordering hash)
Returns a comparator which bundles the type-test, equality, ordering, and hash procedures provided. However, if ordering or hash is #f
, a procedure is provided that signals an error on application. The predicates comparator-ordered?
and/or comparator-hashable?
, respectively, will return #f
in these cases.
Here are calls on make-comparator
that will return useful comparators for standard Scheme types:
(make-comparator boolean? boolean=? (lambda (x y) (and (not x) y)) boolean-hash)
will return a comparator for booleans, expressing the ordering #f
< #t
and the standard hash function for booleans.
(make-comparator real? = < (lambda (x) (exact (abs x))))
will return a comparator expressing the natural ordering of real numbers and a plausible (but not optimal) hash function.
(make-comparator string? string=? string<? string-hash)
will return a comparator expressing the implementation's ordering of strings and the standard hash function.
(make-comparator string? string-ci=? string-ci<? string-ci-hash
will return a comparator expressing the implementation's case-insensitive ordering of strings and the standard case-insensitive hash function.
(make-pair-comparator
car-comparator cdr-comparator)
This procedure returns comparators whose functions behave as follows.
The type test returns #t
if its argument is a pair,
if the car satisfies the type test predicate of car-comparator, and the
cdr satisfies the type test predicate of cdr-comparator.
#t
if the cars are equal
according to car-comparator and the cdrs are equal according
to cdr-comparator, and #f
otherwise.The ordering function first compares the cars of its pairs using the equality predicate of car-comparator. If they are not equal, then the ordering predicate of car-comparator is applied to the cars and its value is returned. Otherwise, the predicate compares the cdrs using the equality predicate of cdr-comparator. If they are not equal, then the ordering predicate of cdr-comparator is applied to the cdrs and its value is returned.
(make-list-comparator
element-comparator type-test empty? head tail)
This procedure returns comparators whose functions behave as follows:
The type test returns #t
if its argument satisfies
type-test and the elements satisfy the type test predicate
of element-comparator.
The total order defined by the equality and ordering functions is as follows (known as lexicographic order):
The hash function computes the hash values of the elements using the hash function of element-comparator and then hashes them together in an implementation-defined way.
(make-vector-comparator
element-comparator type-test length ref)
This procedure returns comparators whose functions behave as follows:
The type test returns #t
if its argument satisfies
type-test and the elements satisfy the type test predicate
of element-comparator.
The equality predicate returns #t
if both of the following
tests are satisfied in order: the lengths of the vectors are the
same in the sense of =, and the elements of the vectors
are the same in the sense of the equality predicate of
element-comparator.
The ordering predicate returns #t
if
the results of applying length to the first vector is less than
the result of applying length to the second vector.
If the lengths are equal, then the elements are examined pairwise using
the ordering predicate of element-comparator. If any pair of elements
returns #t
, then that is the result of the list comparator's
ordering predicate;
otherwise the result is #f
Here is an example, which returns a comparator for byte vectors:
(make-vector-comparator (make-comparator exact-integer? = < number-hash) bytevector? bytevector-length bytevector-u8-ref)
(make-eq-comparator)
(make-eqv-comparator)
(make-equal-comparator)
These procedures return comparators whose functions behave as follows:
The type test returns #t
in all cases.
eq?
, eqv?
,
and equal?
respectively.The ordering function is implementation-defined, except that it must conform to the rules for ordering functions. It may signal an error instead.
The hash function is default-hash
.
These comparators accept circular structure (in the case of
equal-comparator
, provided the implementation's equal?
predicate
does so) and NaNs.
These are hash functions for some standard Scheme types, suitable for
passing to make-comparator
. Users may write their own
hash functions with the same signature. However, if programmers wish their hash
functions to be backward compatible with the reference implementation
of SRFI 69,
they are advised to write their hash functions to accept a second argument
and ignore it.
(boolean-hash
obj)
(char-hash
obj)
(char-ci-hash
obj)
(string-hash
obj)
(string-ci-hash
obj)
(symbol-hash
obj)
(number-hash
obj)
These are suitable hash functions for the specified types. The hash functions char-ci-hash
and string-ci-hash
treat their argument case-insensitively.
Note that while symbol-hash
may return the hashed value of
applying symbol->string
and then string-hash
to the symbol, this is not a requirement.
The following macros allow the callers of hash functions to affect their behavior without interfering with the calling signature of a hash function, which accepts a single argument (the object to be hashed) and returns its hash value. They are provided as macros so that they may be implemented in different ways: as a global variable, a SRFI 39 or R7RS parameter, or an ordinary procedure, whatever is most efficient in a particular implementation.
(hash-bound)
[syntax]
Hash functions should be written so as to return a number between 0 and the largest reasonable number of elements (such as hash buckets) a data structure in the implementation might have. What that value is depends on the implementation. This value provides the current bound as a positive exact integer, typically for use by user-written hash functions. However, they are not required to bound their results in this way.
(hash-salt)
[syntax]
A salt is random data in the form of a non-negative exact integer used as an additional input to a hash function in order to defend against dictionary attacks, or (when used in hash tables) against denial-of-service attacks that overcrowd certain hash buckets, increasing the amortized O(1) lookup time to O(n). Salt can also be used to specify which of a family of hash functions should be used for purposes such as cuckoo hashing. This macro provides the current value of the salt, typically for use by user-written hash functions. However, they are not required to make use of the current salt.
The initial value is implementation-dependent, but must be less
than the value of (hash-bound)
, and should be distinct
for distinct runs of a program unless otherwise specified by the
implementation. Implementations may provide a means to specify the salt
value to be used by a particular invocation of a hash function.
(make-default-comparator)
Returns a comparator known as a default comparator that accepts Scheme values and orders them in some implementation-defined way, subject to the following conditions:
Given disjoint types a and b, one of three conditions must hold:
The empty list must be ordered before all pairs.
When comparing booleans, it must use the total order #f
< #t
.
When comparing characters, it must use char=?
and char<?
.
Note: In R5RS, this is an implementation-dependent order that is typically the same as Unicode codepoint order; in R6RS and R7RS, it is Unicode codepoint order.
When comparing pairs, it must behave the same as a comparator returned by make-pair-comparator
with default comparators as arguments.
When comparing symbols, it must use an implementation-dependent total order. One possibility is to use the order obtained by applying symbol->string
to the symbols and comparing them using the total order implied by string<?
.
When comparing bytevectors, it must behave the same as a comparator created by the expression (make-vector-comparator (make-comparator bytevector? = < number-hash) bytevector? bytevector-length bytevector-u8-ref)
.
When comparing numbers where either number is complex, since non-real numbers cannot be compared with <
, the following least-surprising ordering is defined: If the real parts are < or >, so are the numbers; otherwise, the numbers are ordered by their imaginary parts. This can still produce somewhat surprising results if one real part is exact and the other is inexact.
When comparing real numbers, it must use =
and <
.
When comparing strings, it must use string=?
and string<?
.
Note: In R5RS, this is lexicographic order on the implementation-dependent order defined by char<?
; in R6RS it is lexicographic order on Unicode codepoint order; in R7RS it is an implementation-defined order.
When comparing vectors, it must behave the same as a comparator returned by (make-vector-comparator (make-default-comparator) vector? vector-length vector-ref)
.
When comparing members of types registered with comparator-register-default!
, it must behave in the same way as the comparator registered using that function.
Default comparators use default-hash
as their hash function.
(default-hash
obj)
This is the hash function used by default comparators, which accepts a Scheme value and hashes it in some implementation-defined way, subject to the following conditions:
default-hash
when applied to the car and the cdr.boolean-hash
,
char-hash
, string-hash
,
symbol-hash
, or number-hash
respectively.default-hash
when applied
to each of the elements.(comparator-register-default!
comparator)
Registers comparator for use by default comparators, such that if the objects being compared
both satisfy the type test predicate of comparator, it will be employed by default comparators
to compare them. Returns an unspecified value.
It is an error if any value satisfies both the type test predicate
of comparator and any of the following type test predicates:
boolean?
, char?
, null?
, pair?
,
symbol?
, bytevector?
, number?
,
string?
, vector?
, or
the type test predicate of a comparator that has already been registered.
This procedure is intended only to extend default comparators into
territory that would otherwise be undefined, not to override their
existing behavior.
In general, the ordering of calls to comparator-register-default!
should be irrelevant. However, implementations that support inheritance
of record types may wish to ensure that default comparators always check
subtypes before supertypes.
This SRFI recommends (but does not require) that libraries which expose comparators do not register them with this procedure, because the default comparator (which is meant mostly for ad hoc programming) is meant to be under the control of the program author rather than the library author. It is the program author's responsibility to ensure that the registered comparators do not conflict with each other.
(comparator-type-test-predicate
comparator)
(comparator-equality-predicate
comparator)
(comparator-ordering-predicate
comparator)
(comparator-hash-function
comparator)
Return the four procedures of comparator.
(comparator-test-type
comparator obj)
Invokes the type test predicate of comparator on obj and returns what it returns.
More convenient than comparator-type-test-predicate
, but less efficient when the predicate is called repeatedly.
(comparator-check-type
comparator obj)
Invokes the type test predicate of comparator on obj and returns true if it returns true, but signals an error otherwise.
More convenient than comparator-type-test-predicate
, but less efficient when the predicate is called repeatedly.
(comparator-hash
comparator obj)
Invokes the hash function of comparator on obj and returns what it returns.
More convenient than comparator-hash-function
, but less efficient when the function is called repeatedly.
Note: No invokers are required for the equality and ordering predicates,
because =?
and <?
serve this function.
(=?
comparator object1 object2 object3 ...)
(<?
comparator object1 object2 object3 ...)
(>?
comparator object1 object2 object3 ...)
(<=?
comparator object1 object2 object3 ...)
(>=?
comparator object1 object2 object3 ...)
These procedures are analogous to the number, character, and string comparison predicates of Scheme. They allow the convenient use of comparators to handle variable data types.
These procedures apply the equality and ordering predicates of comparator to the objects as follows. If the specified relation returns #t
for all objecti and objectj where n is the number of objects and 1 <= i < j <= n, then the procedures return #t
, but otherwise #f
.
Because the relations are transitive, it suffices to compare each object with its successor.
The order in which the values are compared is unspecified.
(comparator-if<=>
[ <comparator> ] <object1> <object2> <less-than> <equal-to> <greater-than>)
It is an error unless <comparator> evaluates to a comparator and <object1> and <object2> evaluate to objects that the comparator can handle. If the ordering predicate returns true when applied to the values of <object1> and <object2> in that order, then <less-than> is evaluated and its value returned. If the equality predicate returns true when applied in the same way, then <equal-to> is evaluated and its value returned. If neither returns true, <greater-than> is evaluated and its value returned.
If <comparator> is omitted, a default comparator is used.
The sample implementation is found in the repository of this SRFI. It contains the following files.
comparators-impl.scm
- the record type definition and most of the proceduresdefault.scm
- a simple implementation of the default constructor, which should be improved by implementers to handle records and implementation-specific typesr7rs-shim.scm
- procedures for R7RS compatibility, including a trivial implementation of bytevectors on top of SRFI 4 u8vectorscomplex-shim.scm
- a trivial implementation of real-part
and imag-part
for Schemes that don't have complex numberscomparators.meta
- Chicken-specific metadatacomparators.setup
- Chicken-specific executable setupcomparators.sld
- an R7RS librarycomparators.scm
- a Chicken librarycomparators-test.scm
- a test file using the Chicken test
eggPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Image with perfume #1 for men and women
Image with perfume #2 for men and women
Image with perfume #3 for men and women
Image with perfume #4 for men and women
Image with perfume #1 + price, size in ml
Image with perfume #2 + price, size in ml
Image with perfume #3 + price, size in ml
Image with perfume #4 + price, size in ml
Image with perfume #5 + price, size in ml
Image with perfume #6 + price, size in ml
Image with perfume #7 + price, size in ml
Image with perfume #8 + price, size in ml
Image with perfume #9 + price, size in ml
Image with perfume #10 + price, size in ml


Application Performance
User Accounts
| # | Avatar | Account | Name | Company | Department | Status |
|---|---|---|---|---|---|---|
| 1. | @maleficient2 | Maleficient Angelina | Disney Bank | Evil Operation | Active | |
| 2. | @ralphloveinternet | Ralph Love Internet | Disney Bank | Broken Valuation | Active | |
| 3. | @blackwidows | Scarlett Jonhansson | Marvel Appraisal Company | Taxation | Inactive | |
| 4. | @philcoulson | Phil Coulson | Shield Company | Risk Assurance | Inactive | |
| 5. | @edenhazard | Eden Hazard | Real Madrid Appraisal | Attack Assurance | Active |


--- layout: bootstrap title: Frameworks permalink: /frameworks/ group: main menu: frameworks order: 3 ---
Do you use a framework, cool.
Also added some framework examples using their setup and builds. Check it out.


{% extends "layouts/right-menu.html" %} {% block title %} Venues {% endblock %} {% block admin %} {% include "views/venues/create.html" %} {% endblock %} {% block content %}


We have platforms!
- empower vertical ROI
- synthesize frictionless models
- unleash dynamic methodologies
- envisioneer bricks-and-clicks technologies
- optimize cross-media supply-chains
- unleash revolutionary partnerships
- deliver interactive interfaces
- visualize holistic web-readiness
- facilitate next-generation e-business
- disintermediate enterprise relationships
- matrix end-to-end partnerships


{% load wagtailimages_tags wagtailcore_tags static gem_tags %} {% comment %} If User is not authenticated OR anonymous_submissions is not set AND join banner is not set Normal surveys do not show? Desired behavior? {% endcomment %} {% if user.is_authenticated and user.is_active or request.is_preview or survey.allow_anonymous_submissions %}


--- layout: post title: ultnomah County Elections Official Ballot Drop Box Sites date: '2010-11-01T06:54:56-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/1453336634/ultnomah-county-elections-official-ballot-drop-box ---
ultnomah County Elections Official Ballot Drop Box Sites—Multnomah County Elections Official Ballot Drop Box Sites - Google Maps


Persisting Data in Local DB for Flutter (Android & iOS)
Posted on May 06, 2020 in Flutter
Target Audience: Beginner
Recipe: Persisting products data in local database using sqflite
Flutter plugin.
Focus Widget: Flutter plugin sqflite.
Goal: In this recipe, we'll create, save, and retrieve two objects of custom data type, Product
in the local sqlite database. We'll create two files for this recipe:
-
User Interface -
ecom.dart
: User interface to load data from local database. -
Database -
ecom_db.dart
: This file contains all code related to sqlite database.
The user interface will load two demo products in a ListView
as shown in this screenshot:
Flutter Cookbook
This code recipe is added in the Flutter Cookbook app as well. Source code link is available at the end of this article.
Checkout the YouTube video:
pubspec.yaml
dependency
Add sqflite
plugin dependency as below:
dependencies:
flutter:
sdk: flutter
#Local database
sqflite: ^1.3.0
Note: The sqflite
plugin has dependency on path
plugin. Please add this dependency it's not already present in your configuration file.
User Interface
In this code recipe, there're only two product items used for demonstration purposes. Each item has an image, title, description, and price.
The UI is composed of widgets as shown below:
Note: This article is not intended for learning to build user interface. Hence, I'll quickly review the UI structure. Please refer to source code to see full code.
Main interface is rendered using ListView
widget. The ListView
widget has a Column
widget as its child. The custom widget positionedBlock()
is added as Column
widget's child.
positionedBlock(): This method returns interface for each item in the list. It's is aligned in topCenter
using Align
widget. A Stack
widgets contains two Positioned
widgets for product description and image.
The first Positioned
widget is added in the background to display product information (in a Column
widget). The another Positioned
widget contains the product's image.
The main screen is a StatefulWidget
since we want to update data retrieved from local database. Sample data in database is added as soon as the app starts. We'll go over database details in next section. The initDB()
method is called rom initState()
method. The initState()
method executes once during screen startup-time. We want to keep data ready in database for querying by build()
method.
class ProductListing extends StatefulWidget {
@override
_ProductListingState createState() => _ProductListingState();
}
class _ProductListingState extends State<ProductListing> {
@override
void initState() {
super.initState();
//insert demo data
initDB();
}
}
Rendering Data from Database
The _ProductListingState
widget's build()
method is responsible for updating data at the interface. It uses FutureBuilder
widget to render data returned from asynchronous methods like Future
. Usually data is returned asynchronously from database or remote network operations. FutureBuilder
widget helps render data asynchronously at user interface side.
body: FutureBuilder(
//fetching products from db
future: allProducts(),
builder: (context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
//loading circular progress bar
return Center(child: CircularProgressIndicator());
} else {
return Container(
child: ListView.builder(
itemCount: snapshot.data.length,
scrollDirection: Axis.vertical,
itemBuilder: (BuildContext context, int index) {
return Column(
children: [
//custom widget
positionedBlock(context, snapshot.data[index]),
Divider(
thickness: 2,
),
],
);
},
),
);
}
}),
The allProducts()
method returns a list of Product
of Future
type. Each product entry uses positionedBlock(...)
method to display product details. Checkout the source code for this here.
Let's explore the database side of things next.
Local Database
The sqflite
plugin access to sqlite database on Android and iOS devices for Flutter. Let's check out the database operations next.
Note: Refer ecom_db.dart
.
Creating Database
The openDatabase()
method takes database path, version of the database to support db upgrades & downgrades, and a way to create table using onCreate:
attribute.
The getDatabasesPath()
provides the physical location of database on device. The join()
methods is a utility method to join the given paths into single path as per the current platform's file separator. You need path
plugin to access join()
method.
Future<Database> db() async {
return openDatabase(
join(await getDatabasesPath(), 'products_database.db'),
onCreate: (db, version) {
return db.execute(
'CREATE TABLE IF NOT EXISTS $tableProducts(id INTEGER PRIMARY KEY, title TEXT, description TEXT, image TEXT, price REAL)',
);
},
// Version provides path to perform database upgrades and downgrades.
version: 1,
);
}
The db()
will return Database
as Future
. Initializing database is an asynchronous operation. The database reference is being held in database
variable, and product table name is products
and stored in tableProducts
constant. A table products
is created if doesn't exist already.
Product class
The Product is represented with class Product
. A product object has id
, title
, description
, image
, and price
.
class Product {
final int id;
final String title;
final String description;
final String image;
final double price;
Product({this.id, this.title, this.description, this.image, this.price});
Map<String, dynamic> toMap() {
return {
'id': id,
'title': title,
'description': description,
'image': image,
'price': price,
};
}
@override
String toString() {
return 'Product("id": ${this.id}, "title": ${this.title}, "description": ${this.description}, '
'"image": ${this.image}, "price":${this.price});';
}
}
Inserting Product
Inserting data into a table is an asynchronous operation as well. First get a reference to database and then pick a conflictAlgorithm. It is a rule to resolve conflicts. In our case, we want to replace old content with new content if record is already present. Hence, it makes sense to pick ConflictAlgorithm.replace
conflictAlgorithm.
Future<void> insertProduct(Product product) async {
// Get a reference to the database.
final Database db = await database;
// Insert the Product into the correct table.
// Specify `conflictAlgorithm`.
// In this case, if the same product is inserted
// multiple times, it replaces the previous data.
await db.insert(
tableProducts,
product.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
Querying All Products
We want to render all products from the table into interface. In our case, there are only two products.
Future<List<Product>> allProducts() async {
// Get a reference to the database.
final Database db = await database;
// Query the table for all The Products.
final List<Map<String, dynamic>> maps = await db.query(tableProducts);
// Convert the List<Map<String, dynamic> into a List<Product>.
return List.generate(
maps.length,
(i) {
return Product(
id: maps[i]['id'],
title: maps[i]['title'],
description: maps[i]['description'],
image: maps[i]['image'],
price: maps[i]['price']);
},
);
}
Updating Product
In this code recipe, we're not editing an existing item. However, db.update(...)
method is useful to update the items. Remember to make use of whereArgs
to avoid SQL injections.
Future<void> updateProduct(Product product) async {
// Get a reference to the database.
final db = await database;
// Update the given Product.
await db.update(
tableProducts,
product.toMap(),
// Ensure that the Product has a matching id.
where: "id = ?",
// Pass the Products's id as a whereArg to prevent SQL injection.
whereArgs: [product.id],
);
}
Deleting Product
We're not deleting any item either in this sample. Similar to update
, remember to use whereArgs
to keep SQL injections on the bay.
Future<void> deleteProduct(int id) async {
// Get a reference to the database.
final db = await database;
// Remove the Product from the database.
await db.delete(
tableProducts,
// Use a `where` clause to delete a specific product.
where: "id = ?",
// Pass the Products's id as a whereArg to prevent SQL injection.
whereArgs: [id],
);
}
Inserting Sample Data into Table
In our sample, we're creating following two products, and inserting into database using await
keyword to keep it asynchronous. The product images are loaded from local assets folder.
void initDB() async {
var prod1 = Product(
id: 1,
title: 'Shoes',
description: 'Rainbow Shoes',
image: 'shoes.jpeg',
price: 65.0,
);
var prod2 = Product(
id: 2,
title: 'Dress',
description: 'Summer Dress',
image: 'dress.png',
price: 50.0,
);
// Insert a product into the database.
await insertProduct(prod1);
await insertProduct(prod2);
}
That's all ! In this code recipe, we added two products in local database, and displayed both product entries in Flutter App.
Note:
The sqflite
plugin provides the lower level implementation for creating and accessing database on Android and iOS platforms. However, the moor
plugin provides database access across Android, iOS and Web platforms. Please check out my article about persisting data using moor
plugin.
Source Code Repo
References
Happy cooking with Flutter :)
_Liked the article ? Couldn't find a topic of your interest ? Please leave a comment or reach out at twitter about the topics you would like me to share !
BTW I love cupcakes and coffee both :)_
Follow me at Medium


VolgaCTF Final devenv
Settings
Checker host
Team host
Team name
Service name
Recurring
Flag lifetime
Round timespan
Poll timespan
Poll delay
Start
Stop
Logs
Clear
Onetime
Round
Push
Flags
Clear


For each of the listed colors, use the sliders below to indicate how frequently the object is that color. Use a scale of 0-5 in your ratings where 0 corresponds to sometimes and 5 corresponds to almost always.
Note that extremely rare or extraordinary events correspond to 0 on this scale.
All responses will be normalized as a distribution over the selected colors. For example, a rating of 5/5 for 2 colors is identical to a rating of 2/5 for both colors.
Loading…


Browser Title Bar Manipulation JavaScript Library With No Dependency.
<script> Title.pref("(2)"); </script>Click To See On Title BarRefresh
<script> Title.suf("(2)"); </script>Click To See On Title BarRefresh
<script> Title.change("Changed Title"); </script>Click To See On Title BarRefresh
<script> Title.animation("marquee"); </script>Click To See On Title BarRefresh
<script> Title.animation("typeWriter"); </script>Click To See On Title BarRefresh


A simple formatter/reporter for ESLint that’s friendly with Sublime Text and iterm2 “click to open file” functionality
I decided to use eslint to verify my code and sadly the reporter was not terminal friendly. Basically I cannot click on the file to open it with my text editor and go directly to the line where the error was reported. This module fixes that issue, by using the syntax that “sublime text” introduced to open files.
Filenames may be given a :line or :line:column suffix to open at a specific location.
This module is based on the original stylish
formatter that is now part of ESLint, it adds the following
If you use iTerm2 or Guake* the link for the file becomes clickable and will open your editor at the given line. Please make sure you have properly configured the option to open uris that matches files with your editor of choice. Sublime is a great choice!, but this should work as well with other editors that understand the pattern used by sublime
* Note: Until Guake v0.7.3 is released, it may be necessary to compile master from source.
bash
npm i --save-dev eslint-friendly-formatter
Install eslint
and eslint-friendly-formatter
.
bash
npm i -D eslint eslint-friendly-formatter
Add a script to your package json like:
javascript
{
"scripts": {
"eslint": "eslint --format 'node_modules/eslint-friendly-formatter' file1 file2 dir1/ dir2/",
}
}
Note: In windows you might not need the quotes around the path to the module.
javascript
{
"scripts": {
"eslint": "eslint --format node_modules/eslint-friendly-formatter file1 file2 dir1/ dir2/",
}
}
see issue #17
npm
run eslint
$ProjectFileDir$
Use an output filter like: (Please note the 2 spaces before $FILE_PATH$
)
bash
$FILE_PATH$.*:$LINE$.*:$COLUMN$
In the command line
bash
# just make sure you pass the path to the module to the format option of eslint
eslint.js --format './node_modules/eslint-friendly-formatter/index.js' index.js test/ -c './eslint.json'
Or as a module
```javascript var eslint = require(‘eslint’); var opts = readJson(‘./path/to/options’);
var engine = new eslint.CLIEngine( opts ); var report = engine.executeOnFiles( [‘file1.js’, ‘file2.js’/, …/] ); var results = report.results || [];
var formatter = require(‘eslint-friendly-formatter’); var output = formatter(results);
// this will print the report if any… console.log(output);
```
It works with gulp
and gulp-eslint
javascript
var friendlyFormatter = require("eslint-friendly-formatter");
// Your js task
gulp.task("javascript", function() {
return gulp.src(["src/js/**/*.js"])
// Your eslint pipe
.pipe(eslint(".eslintrc"))
.pipe(eslint.format(friendlyFormatter))
// Continue your other tasks
.pipe(concat("app.js"))
.pipe(gulp.dest("dist/js"))
});
It should work well in with eslint-grunt or grunt-eslint
javascript
grunt.initConfig({
// when using eslint-grunt:
eslint: {
options: {
formatter: './node_modules/eslint-friendly-formatter'
}),
target1: {
//..
}
},
// when using grunt-eslint:
eslint: {
options: {
format: './node_modules/eslint-friendly-formatter'
}),
target2: {
//..
}
}
});
## Formatter parameters
UPDATE:
We can pass variables to the formatter using a double dash at the end of the eslint command -- --eff-by-issue
. So a new flag can be used to group eslint issues by ruleId
instead as by file. This is useful if you want to fix at once all the errors/warnigs of the same kind.
~~Eslint does not support passing parameters to formatters from the cli yet.So in order to pass parameters to the formatter we will have to rely on environment variables~~
Only shows the errors
/warnigs
that match the given ruleId
filter. This option will only filter the reported rules the error and warning counts will be the same as when all rules are reported same as the exit code.
bash
eslint -f node_modules/eslint-friendly-formatter client/**/*.js server/**/*.js -- --eff-by-issue --eff-filter 'global-require' # notice the --
Normally the reporter will group issues by file, which is handy for normal development. But there are some cases where you might want to fix all the errors of a same kind all at once. For those cases this flag can be used to make the reporter group the issues by ruleId.
bash
eslint -f node_modules/eslint-friendly-formatter client/**/*.js server/**/*.js -- --eff-by-issue # notice the --
Important: don’t forget to add the flag at the end and after --
otherwise it will be interpreted as a eslint parameter and will fail as that parameter is not known to eslint.
Same as environment variable EFF_ABSOLUTE_PATHS
. If set to true the paths will be absolute. Otherwise they will be relative to CWD.
EFF_NO_GRAY
Disable the gray color output
We use the gray color to show some info about the context where the error/warning happens. If for some reason you want to disable the gray color, in cases like this one , you can do it using an environment variable.
bash
export EFF_NO_GRAY=true
And the gray color won’t be used.
EFF_ABSOLUTE_PATHS
Make the paths of the files in the reporter be absolute instead of relative as it is by default in the received results.
Some terminals work better with relative paths (like iTerm2
with fish
) and other dislike it like Guake
. So starting in version v.1.1.0 the paths will be relative by deafult. If you need the absolute please export the following variable
bash
export EFF_ABSOLUTE_PATHS=true
EFF_EDITOR_SCHEME
If this parameter is set, a url will be output below the filename.
Some terminals only support clicking on urls, and editors can be configured to respond to custom url schemes.
bash
export EFF_EDITOR_SCHEME=editor://open?file={file}&line={line}&column={column}
MIT


The following mixins apply only to enabled checkboxes. It is not currently possible to customize the color of a disabled checkbox.
| Mixin | Description |
|---|---|
container-colors($unmarked-stroke-color, $unmarked-fill-color, $marked-stroke-color, $marked-fill-color, $generate-keyframes) |
Generates CSS classes to set and animate the stroke color and/or container fill color of a checkbox |
ink-color($color) |
Sets the ink color of the checked and indeterminate icons |
focus-indicator-color($color) |
Sets the color of the focus indicator |


I offer several services that will help to boost businesses for clients or customers.I have prolific skills the following:
Also I offer statistical services such as :


Constants module¶
Provides user-friendly naming to values used in different functions.
-
class
pyvisa.constants.
AccessModes
[source]¶ An enumeration.
-
exclusive_lock
= 1¶ Obtains a exclusive lock on the VISA resource.
-
no_lock
= 0¶ Does not obtain any lock on the VISA resource.
Obtains a lock on the VISA resouce which may be shared between multiple VISA sessions.
-
-
class
pyvisa.constants.
StopBits
[source]¶ The number of stop bits that indicate the end of a frame.
-
one
= 10¶
-
one_and_a_half
= 15¶
-
two
= 20¶
-
-
class
pyvisa.constants.
Parity
[source]¶ The parity types to use with every frame transmitted and received on a serial session.
-
even
= 2¶
-
mark
= 3¶
-
none
= 0¶
-
odd
= 1¶
-
space
= 4¶
-
-
class
pyvisa.constants.
SerialTermination
[source]¶ The available methods for terminating a serial transfer.
-
last_bit
= 1¶ The transfer occurs with the last bit not set until the last character is sent.
-
none
= 0¶ The transfer terminates when all requested data is transferred or when an error occurs.
-
termination_break
= 3¶ The write transmits a break after all the characters for the write are sent.
-
termination_char
= 2¶ The transfer terminate by searching for “/” appending the termination character.
-
-
class
pyvisa.constants.
InterfaceType
[source]¶ The hardware interface
-
asrl
= 4¶ Serial devices connected to either an RS-232 or RS-485 controller.
-
firewire
= 9¶ Firewire device.
-
gpib
= 1¶ GPIB Interface.
-
gpib_vxi
= 3¶ GPIB VXI (VME eXtensions for Instrumentation).
-
pxi
= 5¶ PXI device.
-
rio
= 8¶ Rio device.
-
rsnrp
= 33024¶ Rohde and Schwarz Device via Passport
-
tcpip
= 6¶ TCPIP device.
-
unknown
= -1¶
-
usb
= 7¶ Universal Serial Bus (USB) hardware bus.
-
vxi
= 2¶ VXI (VME eXtensions for Instrumentation), VME, MXI (Multisystem eXtension Interface).
-
-
class
pyvisa.constants.
AddressState
[source]¶ An enumeration.
-
listenr
= 2¶
-
talker
= 1¶
-
unaddressed
= 0¶
-
-
class
pyvisa.constants.
IOProtocol
[source]¶ An enumeration.
-
fdc
= 2¶ Fast data channel (FDC) protocol for VXI
-
hs488
= 3¶ High speed 488 transfer for GPIB
-
normal
= 1¶
-
protocol4882_strs
= 4¶ 488 style transfer for serial
-
usbtmc_vendor
= 5¶ Test measurement class vendor specific for USB
-
-
class
pyvisa.constants.
LineState
[source]¶ An enumeration.
-
asserted
= 1¶
-
unasserted
= 0¶
-
unknown
= -1¶
-
-
class
pyvisa.constants.
StatusCode
[source]¶ Specifies the status codes that NI-VISA driver-level operations can return.
-
error_abort
= -1073807312¶ The operation was aborted.
-
error_allocation
= -1073807300¶ Insufficient system resources to perform necessary memory allocation.
-
error_attribute_read_only
= -1073807329¶ The specified attribute is read-only.
-
error_bus_error
= -1073807304¶ Bus error occurred during transfer.
-
error_closing_failed
= -1073807338¶ Unable to deallocate the previously allocated data structures corresponding to this session or object reference.
-
error_connection_lost
= -1073807194¶ The connection for the specified session has been lost.
-
error_file_access
= -1073807199¶ An error occurred while trying to open the specified file. Possible causes include an invalid path or lack of access rights.
-
error_file_i_o
= -1073807198¶ An error occurred while performing I/O on the specified file.
-
error_handler_not_installed
= -1073807320¶ A handler is not currently installed for the specified event.
-
error_in_progress
= -1073807303¶ Unable to queue the asynchronous operation because there is already an operation in progress.
-
error_input_protocol_violation
= -1073807305¶ Device reported an input protocol error during transfer.
-
error_interface_number_not_configured
= -1073807195¶ The interface type is valid but the specified interface number is not configured.
-
error_interrupt_pending
= -1073807256¶ An interrupt is still pending from a previous call.
-
error_invalid_access_key
= -1073807327¶ The access key to the resource associated with this session is invalid.
-
error_invalid_access_mode
= -1073807341¶ Invalid access mode.
-
error_invalid_address_space
= -1073807282¶ Invalid address space specified.
-
error_invalid_context
= -1073807318¶ Specified event context is invalid.
-
error_invalid_degree
= -1073807333¶ Specified degree is invalid.
-
error_invalid_event
= -1073807322¶ Specified event type is not supported by the resource.
-
error_invalid_expression
= -1073807344¶ Invalid expression specified for search.
-
error_invalid_format
= -1073807297¶ A format specifier in the format string is invalid.
-
error_invalid_handler_reference
= -1073807319¶ The specified handler reference is invalid.
-
error_invalid_job_i_d
= -1073807332¶ Specified job identifier is invalid.
-
error_invalid_length
= -1073807229¶ Invalid length specified.
-
error_invalid_line
= -1073807200¶ The value specified by the line parameter is invalid.
-
error_invalid_lock_type
= -1073807328¶ The specified type of lock is not supported by this resource.
-
error_invalid_mask
= -1073807299¶ Invalid buffer mask specified.
-
error_invalid_mechanism
= -1073807321¶ Invalid mechanism specified.
-
error_invalid_mode
= -1073807215¶ The specified mode is invalid.
-
error_invalid_object
= -1073807346¶ The specified session or object reference is invalid.
-
error_invalid_offset
= -1073807279¶ Invalid offset specified.
-
error_invalid_parameter
= -1073807240¶ The value of an unknown parameter is invalid.
-
error_invalid_protocol
= -1073807239¶ The protocol specified is invalid.
-
error_invalid_resource_name
= -1073807342¶ Invalid resource reference specified. Parsing error.
-
error_invalid_setup
= -1073807302¶ Unable to start operation because setup is invalid due to inconsistent state of properties.
-
error_invalid_size
= -1073807237¶ Invalid size of window specified.
-
error_invalid_width
= -1073807278¶ Invalid source or destination width specified.
-
error_io
= -1073807298¶ Could not perform operation because of I/O error.
-
error_library_not_found
= -1073807202¶ A code library required by VISA could not be located or loaded.
-
error_line_in_use
= -1073807294¶ The specified trigger line is currently in use.
-
error_machine_not_available
= -1073807193¶ The remote machine does not exist or is not accepting any connections.
The device does not export any memory.
-
error_no_listeners
= -1073807265¶ No listeners condition is detected (both NRFD and NDAC are deasserted).
-
error_no_permission
= -1073807192¶ Access to the remote machine is denied.
-
error_nonimplemented_operation
= -1073807231¶ The specified operation is unimplemented.
-
error_nonsupported_attribute
= -1073807331¶ The specified attribute is not defined or supported by the referenced session, event, or find list.
-
error_nonsupported_attribute_state
= -1073807330¶ The specified state of the attribute is not valid or is not supported as defined by the session, event, or find list.
-
error_nonsupported_format
= -1073807295¶ A format specifier in the format string is not supported.
-
error_nonsupported_interrupt
= -1073807201¶ The interface cannot generate an interrupt on the requested level or with the requested statusID value.
-
error_nonsupported_line
= -1073807197¶ The specified trigger source line (trigSrc) or destination line (trigDest) is not supported by this VISA implementation, or the combination of lines is not a valid mapping.
-
error_nonsupported_mechanism
= -1073807196¶ The specified mechanism is not supported for the specified event type.
-
error_nonsupported_mode
= -1073807290¶ The specified mode is not supported by this VISA implementation.
-
error_nonsupported_offset
= -1073807276¶ Specified offset is not accessible from this hardware.
-
error_nonsupported_offset_alignment
= -1073807248¶ The specified offset is not properly aligned for the access width of the operation.
-
error_nonsupported_operation
= -1073807257¶ The session or object reference does not support this operation.
-
error_nonsupported_varying_widths
= -1073807275¶ Cannot support source and destination widths that are different.
-
error_nonsupported_width
= -1073807242¶ Specified width is not supported by this hardware.
-
error_not_cic
= -1073807264¶ The interface associated with this session is not currently the Controller-in-Charge.
-
error_not_enabled
= -1073807313¶ The session must be enabled for events of the specified type in order to receive them.
-
error_not_system_controller
= -1073807263¶ The interface associated with this session is not the system controller.
-
error_output_protocol_violation
= -1073807306¶ Device reported an output protocol error during transfer.
-
error_queue_error
= -1073807301¶ Unable to queue asynchronous operation.
-
error_queue_overflow
= -1073807315¶ The event queue for the specified type has overflowed, usually due to not closing previous events.
-
error_raw_read_protocol_violation
= -1073807307¶ Violation of raw read protocol occurred during transfer.
-
error_raw_write_protocol_violation
= -1073807308¶ Violation of raw write protocol occurred during transfer.
-
error_resource_busy
= -1073807246¶ The resource is valid, but VISA cannot currently access it.
-
error_resource_locked
= -1073807345¶ Specified type of lock cannot be obtained or specified operation cannot be performed because the resource is locked.
-
error_resource_not_found
= -1073807343¶ Insufficient location information, or the device or resource is not present in the system.
-
error_response_pending
= -1073807271¶ A previous response is still pending, causing a multiple query error.
-
error_serial_framing
= -1073807253¶ A framing error occurred during transfer.
-
error_serial_overrun
= -1073807252¶ An overrun error occurred during transfer. A character was not read from the hardware before the next character arrived.
-
error_serial_parity
= -1073807254¶ A parity error occurred during transfer.
-
error_session_not_locked
= -1073807204¶ The current session did not have any lock on the resource.
-
error_srq_not_occurred
= -1073807286¶ Service request has not been received for the session.
-
error_system_error
= -1073807360¶ Unknown system error.
-
error_timeout
= -1073807339¶ Timeout expired before operation completed.
-
error_trigger_not_mapped
= -1073807250¶ The path from the trigger source line (trigSrc) to the destination line (trigDest) is not currently mapped.
-
error_user_buffer
= -1073807247¶ A specified user buffer is not valid or cannot be accessed for the required size.
-
error_window_already_mapped
= -1073807232¶ The specified session currently contains a mapped window.
-
error_window_not_mapped
= -1073807273¶ The specified session is currently unmapped.
-
success
= 0¶ Operation completed successfully.
-
success_device_not_present
=<PHONE_NUMBER>¶ Session opened successfully, but the device at the specified address is not responding.
-
success_event_already_disabled
=<PHONE_NUMBER>¶ Specified event is already disabled for at least one of the specified mechanisms.
-
success_event_already_enabled
=<PHONE_NUMBER>¶ Specified event is already enabled for at least one of the specified mechanisms.
-
success_max_count_read
=<PHONE_NUMBER>¶ The number of bytes read is equal to the input count.
-
success_nested_exclusive
=<PHONE_NUMBER>¶ Operation completed successfully, and this session has nested exclusive locks.
Operation completed successfully, and this session has nested shared locks.
-
success_no_more_handler_calls_in_chain
=<PHONE_NUMBER>¶ Event handled successfully. Do not invoke any other handlers on this session for this event.
-
success_queue_already_empty
=<PHONE_NUMBER>¶ Operation completed successfully, but the queue was already empty.
-
success_queue_not_empty
=<PHONE_NUMBER>¶ Wait terminated successfully on receipt of an event notification. There is still at least one more event occurrence of the requested type(s) available for this session.
-
success_syncronous
=<PHONE_NUMBER>¶ Asynchronous operation request was performed synchronously.
-
success_termination_character_read
=<PHONE_NUMBER>¶ The specified termination character was read.
-
success_trigger_already_mapped
=<PHONE_NUMBER>¶ The path from the trigger source line (trigSrc) to the destination line (trigDest) is already mapped.
-
warning_configuration_not_loaded
=<PHONE_NUMBER>¶ The specified configuration either does not exist or could not be loaded. The VISA-specified defaults are used.
-
warning_ext_function_not_implemented
=<PHONE_NUMBER>¶ The operation succeeded, but a lower level driver did not implement the extended functionality.
-
warning_nonsupported_attribute_state
=<PHONE_NUMBER>¶ Although the specified state of the attribute is valid, it is not supported by this resource implementation.
-
warning_nonsupported_buffer
=<PHONE_NUMBER>¶ The specified buffer is not supported.
-
warning_null_object
=<PHONE_NUMBER>¶ The specified object reference is uninitialized.
-
warning_queue_overflow
=<PHONE_NUMBER>¶ VISA received more event information of the specified type than the configured queue size could hold.
-
warning_unknown_status
=<PHONE_NUMBER>¶ The status code passed to the operation could not be interpreted.
-


Recipe 5.1. Sorting a DictionaryCredit: Alex Martelli ProblemYou want to sort a dictionary. This probably means that you want to sort the keys and then get the values in that same sorted order. SolutionThe simplest approach is exactly the one expressed by the problem statement: sort the keys, then pick the corresponding values: def sortedDictValues(adict): keys = adict.keys( ) keys.sort( ) return [adict[key] for key in keys] DiscussionThe concept of sorting applies only to a collection that has an orderin other words, a sequence. A mapping, such as a dictionary, has no order, so it cannot be sorted. And yet, "How do I sort a dictionary?" is a frequent, though literally meaningless, question on the Python lists. More often than not, the question is in fact about sorting some sequence composed of keys and/or values from the dictionary. As for the implementation, while one could think of more sophisticated approaches, it turns out (not unusually, for Python) that the one shown in the solution, the simplest one, is also essentially the fastest one. A further slight increase in speed, about 20%, can be squeezed out in Python 2.3 by replacing the list comprehension with a map call in the return statement at the end of the function. For example: return map(adict.get, keys) Python 2.4, however, is already measurably faster than Python 2.3 with the version in the "Solution" and gains nothing from this further step. Other variants, such as using adict._ _getitem_ _ instead of adict.get, offer no further increase in speed, or they even slow performance down a little, in both Python 2.3 and 2.4. See AlsoRecipe 5.4 for sorting a dictionary based on its values rather than on its keys. |


WHAT ABOUT BOB? A film review by Randy Parker Copyright 1996 Randy Parker
RATING: **1/2 (out of ****)
(Review written in 1991)
WHAT ABOUT BOB? serves up Bill Murray's most delectable character, and performance, in a long, long time. Murray is both funny and tender in the role of an obsessive-compulsive agoraphobe coming out of his shell. Unfortunately, the rest of the cast doesn't measure up: Richard Dreyfuss, as Bob's put-upon psychiatrist, is untypically uninspired--and Jill Hagerty (who plays Dreyfuss' cookie cutter wife) gives what will probably end up being the worst performance of the decade.
The first of the movie half zips along smoothly, but then, frustratingly, the film takes a disastrous nose dive. Tom (DEAD POETS SOCIETY) Schulman's disappointing script becomes more and more contrived until--THUD--the movie ends with a painful belly flop.
--- Randy Parker<EMAIL_ADDRESS>http://www.shoestring.org
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


One must possess a passport which is valid for minimum 6 months from the date of entry into India. Many countries have been included in the list of countries whose citizens are provided E-Visa facility provided they apply 72 hours in advance. Other nationals need to obtain Indian visa in advance to enter India.
There is no need of any vaccination except for travellers coming from Africa, South America need yellow fever vaccinations.
It depends on which part of India if you wish to visit. In case you are interested in visiting Ladakh or other parts of Himalaya then summer season is the best time. If you want to visit Rajasthan, other parts of North India or Souht India then winter season ( October till March ) is ideal period. Even travelling during monsoon months (July – September) is also not a bad idea to visit Rajasthan and other places it presents a good tourism opportunity during this time as one can stay at Luxury or Palace hotels without spending a fortune during those months.
The best way to travel within India is to travel by road as this offers you an opportunity to have a glimpse of real INDIA as you can visit en-route villages and small forts at your own pace which is not possible by air or by train. But, if you are travelling to long distance, then taking a flight or trains can be more convenient and to save time.
The best way to travel within India is to travel by road as this offers you an opportunity to have a glimpse of real INDIA as you can visit en-route villages and small forts at your own pace which is not possible by air or by train. But, if you are travelling to long distance, then taking a flight or trains can be more convenient and to save time.
Yes. It is advisable that you buy a comprehensive medical / travel insurance in advance from your country before travelling to India.
State Express, born in 1980, is one of the leading and most reputed travel agencies specializing in inbound tours. We are approved by department of Tourism, (Government of India). We are member of prestigious Association IATO (INDIAN ASSOCIATION OF TOUR OPERATORS) and TAAI (TRAVEL AGENTS ASSOCIATION OF INDIA) PATA. We are IATA (14 3 52542) approved travel agency and have our own fleet of cars and coaches with experience drivers. We have multi lingual executives to ensure that our guests do not have any language problem.
We are a one stop travel shop and provide every kind of travel related services for any occasion – business or pleasure or both. We organize all arrangements for conferences, trade fairs, exhibitions and events. We specialise in incentive tours, weddings and honeymoons, health tourism, pilgrimage tours, adventure tours or any special interest tours anywhere in India and also to neighbouring countries. You can read in detail about our services by Clicking Here.
It is simple with us. You may get details of well designed tour packages in our digital brochure. if want a particular tailor made tour, let us know your requirements and we can help you designing your trip keeping in mind your specifications and budget.
If you are interested in booking any of our brochure tours, you may, You may simply send us an email giving us your details.
Our tour cost usually includes hotel accommodations with breakfast, all transfers, city tours and excursions by private air-conditioned car / van / coach depending on number of persons with as per itinerary, train fare if applicable, local English speaking or other foreign language speaking guides if available for city tours, entrances fee to monuments, our assistance on arrival and during the tour, Our cost may also include some special attractions viz elephant ride, camel safari, boat ride and all taxes. We can also include lunches & dinner, domestic flights and other services on request. at supplement cost.
We normally need an advance amount once we are able to confirm you arrangements for the tour. The amoutn depends on the services you may require for the tour. This can be paid through bank transfer (before arrival) credit card, traveller’s cheques or cash. We need balance payment before arrival. The exact terms will be given at the time of reservation.


The Micro View-Controller Javascript Library.
 It is not a full MVC framework, although it might become one eventually. It was built to display data and handle events in the quickest way possible. You can fetch data but that's as far as it's data manipulation skills go at the moment.
Since jQuery is pretty much available everywhere, we depend on it to make bundle.js smaller. We use handlebars to handle templates out of the box (you can change this to something else you might already be using).
To demonstrate what Bundle is all about, we'll be building a todo list. The first step is to build up our bundle. A todo list is basically two things (at least that's how I perceive it). The first one is the list. It's used to hold out todo items, these are the second component of the todo list.
var List = new Bundle({
template: 'templates/list.hbs',
events: {
'input[type=text] keypress': function(ev, el) {
if (ev.which === 13) {
Todo('ul', {
todo: el.val()
});
}
}
}
});
and here's the list.hbs:

<input type="text">

As you may have noticed, the only things the list bundle will do is handle events and template loading.
Let's do the todo bundle now:
This bundle is all about the actual item, here's what it looks like:
var Todo = new Bundle({
template: 'templates/todo.hbs',
render_method: 'append',
events: {
'button click': function(ev, el) {
el.parents('li').remove();
},
'input change': function(ev, el) {
var style = 'none';
if (el.is(":checked")) {
style = 'line-through'
}
el.siblings('span').css('text-decoration', style);
}
}
});
Here's it's corresponding todo.hbs file:

<button>X</button>
{{todo}}
<input type="checkbox">

Now you can see how the whole picture, the todo bundle handles adding the line throught when the todo is checked. It also handles removing the element when the 'x' is clicked. Notice that bundle.js doesn't work with data, it is made specially for handling components and not working with the data powering these. Use it for display porposes.
Here's a full bundle using every part of the library:
var Hello = new Bundle({
// This template will be automatically fetched and compiled.
template: 'template.hbs',
// This is fetched and the data is merged into the
// data object that the template will receive.
data_src: 'test.json',
// This can be any jQuery method that can be used
// to attach html to the DOM such as 'append', 'prepend', 'html'
render_method: 'html',
// This method is called whenever a new object
// is initialized right after it is rendered.
init: function(el, data) {
var self = this;
console.log('Hello, the bundle has been drawn.');
},
// This object contains a set of event bindings.
events: {
// All events should be in the form of : '[selector] [event name]'
'h1 click': function(ev, el) {
this.say_hi()
}
},
// Although you generally shouldn't have to, you can override the render method,
// and do whatever you want, in order to render to screen.
// You receive the element, the data object and the compiled template.
render: function(el, data, template) {
el.html(template(data)); // This is pretty much the default render method.
},
// You can also define your own methods and call them
// from any other method in the bundle.
say_hi: function(todo) {
console.log('The h1 said "hi"');
},
// You can define methods that'll be available when a new instance is created using the external
// setting. This allows you to create a new instance like: new Hello().toggle();
external: {
'toggle': function(el) {
el.find('.dropdown').remove();
}
}
});
The bundle constructor generates a new function you can call to initialize the bundle. It takes three parameters:
Hello(element, data, config);
The element, is the element on the document where we want to initialize the bundle. The data and config are both object which can override the data and configuration of the bundle. These are basically merged internally before the render happens.


|
NCT00072605
|
EBOLA
|
Phase I
|
| Oct 2003 |
27 |
DNA, trivalent; NF inj.dev. IM 2–8 mg in week 0, 4, and 8 Antigens:
- GPΔTM EBOV
- GPΔTM SUDV
- NP
|
Safety:
Acceptable safety profile
Immunogenicity:
- Specific antibody response to at least 1/3 antigens in all subjects
- Specific CD8
+ T cell responses in 30% (6/20) subjects.
- No detectable virus neutralizing responses
|
|
NCT00605514
|
EBOLA
|
Phase I
|
| Jan 2008 |
20 |
DNA, mono or bivalent; NF inj.dev. IM 4 mg in week 0, 4, 8; (32) Antigens:
- GP MARV
- GP EBOV + GP SUDV
|
Safety:
Acceptable safety profile
Immunogenicity:
- Specific antibody responses against one of the GPs at week 12 in 80% of subjects
- CD8
+ T cell responses in some of the subjects
|
|
NCT00997607
|
EBOLA
|
Phase Ib
|
| Feb 2010 |
108 |
DNA, mono or bivalent; NF inj.dev. IM 4 mg in week 0, 4, 8 Antigens:
- GP MARV
- GP EBOV + GP SUDV
|
Safety:
Acceptable safety profile
Immunogenicity:
Specific antibody responses in 30% (MARV) and 50% (EBOV or SUDV) of subjects Antibody titers to near baseline levels by w 44 post vaccination
|
|
NCT02464670
|
EBOLA
|
Phase I
|
| May 2015 |
240 |
DNA, mono-, bi- or trivalent; IM or ID + EP in 2 or 3 doses 0.8–4 mg GP; 0.2–1 mg IL12 Antigen:
- GP EBOV pre 2013
- and/or GP EBOV 2014
- and IL-12 in trivalent vaccine
|
Safety:
Acceptable safety profile
Immunogenicity:
Specific antibody responses in 88% (50/57) (IM) and 95% (119/122) (ID) of participants
|
|
NCT00709800 and NCT00694213
|
INFLUENZA H5N1
|
Phase I
|
| Aug 2007 |
103 |
DNA, mono- or trivalent; needle or NF inj.dev. IM 0.1–1 mg in week 0, 3 Antigen:
- HA of A/Vietnam/1203/04
- HA + NP + M2
|
Safety:
Acceptable safety profile
Immunogenicity:
- HI titers ≥40, in 47- 67% (HA only) and 0- 20% (HA + NP + M2) of participants, peak at d56
- H5-specific T cell responses in 75–100% (HA only) and 50–57% % (HA + NP + M2) of subjects
- Responses against HA unaffected by injection method
|
|
NCT00973895
|
INFLUENZA H1N1
|
Phase I
|
| Aug 2009 |
20 |
DNA, monovalent; NF inj.dev. IM 4 mg in week 0, 4, 8 Antigen: HA of A/California/04/2009
|
Safety:
Acceptable safety profile
Immunogenicity:
- HI titers ≥40 in 30% (6/20) of DNA vaccinated subjects
- DNA + licensed vaccine HI titers ≥40 in 72% (13/18)
- T cell responses in 25% (5/20) of subjects
|
|
NCT02809443 (NCT02887482)
|
ZIKA
|
Phase I
|
| July 2016 (Aug 2016) |
40 (160) |
DNA, monovalent; ID + EP 1 or 2 mg in week 0, 4, 12 Antigen: Consensus prM-E; IgE SP; removed glycosylation site
|
Safety:
Acceptable safety profile (NCT02809443)
Immunogenicity (preliminary results NCT02809443):
- VNTs in 62% of the participants (Vero cell assay)
- Protection of 92% (103/112) of mice by passive serum transfer in challenge model (IFN α/β receptor knockout)
|
|
NCT02840487; NCT02996461
|
ZIKA
|
Phase I/Ib
|
| Aug 2016 Dec 2016 |
125 |
DNA, monovalent; needle or NF inj.dev. IM 4 mg in 2 or 3 doses Antigen:
- prM-E; JEV SP (VRC5283)
- prM-E; JEV SP and S/TM (VRC5288)
|
Safety:
Acceptable safety profile
Immunogenicity:
- Humoral and T cell responses induced
- VNTs in 60%−100% of subjects 4 w after the final vaccination
- Best responses in VRC5283: Antibody responses in 100% (14/14) of participants in NF inj, in split doses group; best VNT and T cell responses
|
|
NCT03110770
|
ZIKA
|
Phase II
|
| Mar 2017 |
2500 |
DNA, monovalent; NF inj.dev. IM in 3 doses 4 mg or 8 mg in 2 or 4 inj. Antigen:
- prM-E; JEV SP (VRC5283)
|
Results pending, estimated study completion date Jan 2020 |
This table exclusively lists clinical trials discussed in the text. EBOV, Ebola virus; EP, electroporation; GP, glycoprotein; GPΔTM, glycoprotein delta transmembrane domain; HA, hemagglutinin influenza; HI, hemagglutination inhibition; ID, intradermal; IL-12, interleukin 12; IM, intramuscular; JEV, Japanese encephalitis virus; M2, ion channel protein influenza; MARV, Marburg virus; N, number of study participants; NF inj.dev, needle free injection device; NP, nucleoprotein influenza; prM-E, preMembrane-Envelope; SUDV, Sudan virus; VNT, virus neutralization titer; SP, signal peptide; S/TM, stem and transmembrane regions.


This page shows the results of experiments using Runway. The principle is to test how super resolution models can be used to create new images.
I used the ISR model available in Runway : I created a chain of four instances of this model to feed the previous output to the next model, thus scaling the image by a factor 16 !


- Local authority reference: 0930/09139385080004
- Property: OLD MILL CAFE, COAST ROAD, BARDSEA, ULVERSTON, CUMBRIA, LA12 9RB
Please make a note of your submission ID as you’ll need to provide it if you contact us.
What happens next?
We:
- ...
- ...
If you realise you’ve made a mistake in this form or have new information to add, you’ll need to submit a new check form. We will review all forms received and contact you if there are any queries.


SUBROUTINE XERBLA( SRNAME, INFO ) * * -- LAPACK auxiliary routine (version 3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * * .. Scalar Arguments .. CHARACTER*6 SRNAME INTEGER INFO * .. * * Purpose * ======= * * XERBLA is an error handler for the LAPACK routines. * It is called by an LAPACK routine if an input parameter has an * invalid value. A message is printed and execution stops. * * Installers may consider modifying the STOP statement in order to * call system-specific exception-handling facilities. * * Arguments * ========= * * SRNAME (input) CHARACTER*6 * The name of the routine which called XERBLA. * * INFO (input) INTEGER * The position of the invalid parameter in the parameter list * of the calling routine. * * ===================================================================== * * .. Executable Statements .. * WRITE( *, FMT = 9999 )SRNAME, INFO * STOP * 9999 FORMAT( ' ** On entry to ', A6, ' parameter number ', I2, ' had ', $ 'an illegal value' ) * * End of XERBLA * END


Except for several bugfixes, this release is functionally equivalent to GChart 2.5. However, it replaces the deprecated ClickListeners with the equivalent but syntactically different ClickHandlers introduced in GWT 1.6. So, the main advantage of 2.6 over 2.5 is that it lets you eliminate the use of deprecated ClickListeners that will be dropped completely in GWT 2.0.
Developers upgrading from a previous GChart release will have to convert any GChart ClickListeners to ClickHandlers. This is exactly the same set of code changes you would require, say, for a standard button Widget. Specifically:
Replace: ClickListener with: ClickHandler Replace: onClick(Widget sender) {...} with onClick(ClickEvent event) {Widget sender = event.getSource(); ...} Replace: addClickListener with addClickHandlerUsers of previous GChart releases that don't have time to make these conversions should stick with GChart 2.5 (you'll have to do it eventually, so you might as well get it over with).
The above mechanical process works for the most common situation in which you never used removeClickListener. If you did, you will also have to save the HandlerRegistration reference returned by addClickHandler and invoke its removeHandler method in lieu of your previous call to removeClickListener. See this Chart Gallery code for an example. See the the GWT 1.6 upgrade docs for more info on these listener to handler conversions.
This release has been tested with GWT 1.7, and only works with GWT 1.6 or higher. GChart 2.5 is the last GWT 1.5 compatible release. The listener methods of GChart 2.5 are no longer supported at all in 2.6, even though ordinary GWT 1.7 still supports listeners via deprecated methods. I decided on this approach to save time, and to assure that early adopters of GWT 2.0 (which will finally drop the listeners altogether) would be able to use GChart 2.6 without error.
Detailed change log:
The GWT 1.6 interface HasClickHandlers replaces the GWT-deprecated SourcesClickEvents interface, which GChart now no longer supports. Specifically, addClickListener and removeClickListener were dropped, and the new addClickHandler method (which, via its returned HandlerRegistration object, in effect provides a 'removeClickHandler', too) has been added.
See discussion above for further details on the specific changes you'll need to make to existing GChart click-event-related code.
The problem occured because GChart did not account for the fact that, when a widget is added to the DOM in two different places, GWT automatically nulls out the first such reference (effectively, it moves the widget to the new DOM position). But this resulted in a situation in which what GChart thought was in the DOM, and what was actually in the DOM, were inconsistent. Because (to save time) GChart won't re-add a widget to the DOM if it thinks that widget is already there, this could result in dropped widgets.
GChart now explicitly checks for such inconsistencies and re-adds the widget to the DOM if that is needed.
However, using the same widget reference for two different annotations is still a bad idea, because there is no simple way to determine which point the widget will end up annotating, and such "implicit" nulling of DOM references won't set GChart's "needs update" flag. Therefore, an explanation of how GChart (now reasonably) handles, and how and why to avoid making, such repeated references was added to the setAnnotationWidget javadocs.
Tip: Users of earlier GChart versions can workaround the bug, if they have trouble, by creating a brand new Widget and assigning it to the annotation in question, rather than reusing the same widget reference.
This stroked border width is now correctly defined by the symbol's setBorderWidth setting.
In the case in which a chart is inserted, removed, and then reinserted in the DOM, and the chart's rendering is up-to-date (its isUpdateNeeded method returns false) GChart will automatically re-render just those curves that are GWTCanvas rendered, so as to eliminate the washout effect.
Note that this bugfix generates a performance penalty associated with moving a GChart to a different DOM "slot" when that GChart does not require an update. If you are planning to make changes to the GChart after re-insertion, you can avoid this penalty by making those changes before re-insertion, and then updating the chart after re-insertion. Better, when it makes sense to do so, you can place the GChart onto an AbsolutePanel and change it's position on that panel, rather than changing its DOM "slot", to avoid these re-insertion related renderings entirely.
This bug was due to a bug in GWTCanvas (see issue #293 in the GWT incubator issue tracker). See TestGChart55.java and TestGChart55a.java for more information about this bugfix.


Notices for files:
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Notices for files:
ActionBarSherlock
Copyright 2012 Jake Wharton
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Notices for files:
Sliding Menu
Copyright 2012 Jeremy Feinstein
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Notices for files:
Android ViewPaperIndicator
Copyright 2012 Jake Wharton
Copyright 2011 Patrik Åkerfeldt
Copyright 2011 Francisco Figueiredo Jr.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Notices for files:
- pinnedsectionlistview.jar
Copyright 2013 Sergej Shafarenka, halfbit.de
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.