This is the Dropbox Client API you’ll be working with most often. You need to give it a DropboxSession which has already been authorized, or which it can authorize.
From the oauth spec plus “/”. Slash should not be ecsaped
Initialize a new DropboxClient. You need to give it a session which has been authorized. See documentation on DropboxSession for how to authorize it.
# File build/dropbox-ruby-sdk-1.5.1/lib/dropbox_sdk.rb, line 298 def initialize(session, root="app_folder", locale=nil) session.get_access_token @root = root.to_s # If they passed in a symbol, make it a string if not ["dropbox","app_folder"].include?(@root) raise DropboxError.new("root must be :dropbox or :app_folder") 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 @locale = locale @session = session end
Returns account info in a Hash object
For a detailed description of what this call returns, visit: www.dropbox.com/developers/reference/api#account-info
# File build/dropbox-ruby-sdk-1.5.1/lib/dropbox_sdk.rb, line 351 def account_info() response = @session.do_get build_url("/account/info") 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.5.1/lib/dropbox_sdk.rb, line 931 def add_copy_ref(to_path, copy_ref) path = "/fileops/copy" params = {'from_copy_ref' => copy_ref, 'to_path' => "#{to_path}", 'root' => @root} response = @session.do_post(build_url(path, params)) parse_response(response) end
# File build/dropbox-ruby-sdk-1.5.1/lib/dropbox_sdk.rb, line 488 def commit_chunked_upload(to_path, upload_id, overwrite=false, parent_rev=nil) #:nodoc params = {'overwrite' => overwrite.to_s, 'upload_id' => upload_id, 'parent_rev' => parent_rev.to_s, } @session.do_post(build_url("/commit_chunked_upload/#{@root}#{format_path(to_path)}", params, content_server=true)) 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.5.1/lib/dropbox_sdk.rb, line 914 def create_copy_ref(path) path = "/copy_ref/#{@root}#{format_path(path)}" response = @session.do_get(build_url(path, {})) 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.5.1/lib/dropbox_sdk.rb, line 872 def delta(cursor=nil) params = {} if cursor params['cursor'] = cursor end response = @session.do_post build_url("/delta", params) parse_response(response) end
Copy a file or folder to a new location.
Arguments:
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.5.1/lib/dropbox_sdk.rb, line 584 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 build_url("/fileops/copy", params) 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.5.1/lib/dropbox_sdk.rb, line 603 def file_create_folder(path) params = { "root" => @root, "path" => format_path(path, false), } response = @session.do_post build_url("/fileops/create_folder", params) 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.5.1/lib/dropbox_sdk.rb, line 622 def file_delete(path) params = { "root" => @root, "path" => format_path(path, false), } response = @session.do_post build_url("/fileops/delete", params) 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.5.1/lib/dropbox_sdk.rb, line 642 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 build_url("/fileops/move", params) 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.5.1/lib/dropbox_sdk.rb, line 409 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.5.1/lib/dropbox_sdk.rb, line 513 def get_file(from_path, rev=nil) response = get_file_impl(from_path, rev) 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.5.1/lib/dropbox_sdk.rb, line 527 def get_file_and_metadata(from_path, rev=nil) response = get_file_impl(from_path, rev) parsed_response = 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.dropbox.com/0/view/wvxv1fw6on24qw7/file.mov', 'expires': 'Thu, 16 Sep 2011 01:01:25 +0000'}
# File build/dropbox-ruby-sdk-1.5.1/lib/dropbox_sdk.rb, line 772 def media(path) response = @session.do_get build_url("/media/#{@root}#{format_path(path)}") 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.5.1/lib/dropbox_sdk.rb, line 675 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 } params["hash"] = hash if hash params["rev"] = rev if rev response = @session.do_get build_url("/metadata/#{@root}#{format_path(path)}", params=params) if response.kind_of? Net::HTTPRedirection raise DropboxNotModified.new("metadata not modified") end parse_response(response) end
# File build/dropbox-ruby-sdk-1.5.1/lib/dropbox_sdk.rb, line 496 def partial_chunked_upload(data, upload_id=nil, offset=nil) #:nodoc params = {} params['upload_id'] = upload_id.to_s if upload_id params['offset'] = offset.to_s if offset @session.do_put(build_url('/chunked_upload', params, content_server=true), {'Content-Type' => "application/octet-stream"}, data) end
Uploads a file to a server. This uses the HTTP PUT upload method for simplicity
Arguments:
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(session, :app_folder) #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.5.1/lib/dropbox_sdk.rb, line 388 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 } params['parent_rev'] = parent_rev unless parent_rev.nil? response = @session.do_put(build_url(path, params, content_server=true), {"Content-Type" => "application/octet-stream"}, file_obj) 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.5.1/lib/dropbox_sdk.rb, line 751 def restore(path, rev) params = { 'rev' => rev.to_s } response = @session.do_post build_url("/restore/#{@root}#{format_path(path)}", params) 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.5.1/lib/dropbox_sdk.rb, line 730 def revisions(path, rev_limit=1000) params = { 'rev_limit' => rev_limit.to_s } response = @session.do_get build_url("/revisions/#{@root}#{format_path(path)}", params) 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.5.1/lib/dropbox_sdk.rb, line 706 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 build_url("/search/#{@root}#{format_path(path)}", params) 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.5.1/lib/dropbox_sdk.rb, line 807 def thumbnail(from_path, size='large') response = thumbnail_impl(from_path, size) 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.5.1/lib/dropbox_sdk.rb, line 821 def thumbnail_and_metadata(from_path, size='large') response = thumbnail_impl(from_path, size) parsed_response = parse_response(response, raw=true) metadata = parse_metadata(response) return parsed_response, metadata end


org.davidmoten.rx.pool
Classes
Builder
Checker
Checkin
DecoratingMember
Emitter
Initializer
Member
MemberSingle
MemberSingleObserver
NonBlockingPool
Observers
Pool
PoolClosedException
Releaser


Until the spell ends, one willing creature you touch gains the ability to move up, down, and across vertical surfaces and upside down along ceilings, while leaving its hands free. The target also gains a climbing speed equal to its walking speed.
Until the spell ends, one willing creature you touch gains the ability to move up, down, and across vertical surfaces and upside down along ceilings, while leaving its hands free. The target also gains a climbing speed equal to its walking speed.


Our amazing team
Authenticity is key for them, they're as real as it gets. Since starting their journey in 2014, they have
worked with various companies and travel brands inspiring people around the world to pack their own bags
and start their own adventure with their mantra in mind - 'Rule your own world!'.
Harold Hoang
Front-end Developer
Sarah Melyah
Content Coordinator


Spirit
Latest
General
Topic title here
Participants
nitely
user1111111111
user2
Invite user
Leave topic
nitely
Esteban Castro Borsani
3
4h
Comment text
report
like
reply
Comment text


You just need to run this command line and follow the questions and everything will be setup for you:
To summarize, here is what the cli has done for your project:
- We are following Cognizone conventions by extending tslint and prettier configs coming from both packages
- With lint-staged set up, every time files are committed, they are passed trough prettier and tslint, which mean
-
They are formatted by prettier, following rules coming from @cognizone/prettier, so no more white space, tabs, comma, ...
discussions and issues with merge conflict
-
*.ts files go trough tslint and are fixed by it, so, for example, imports are ordered, which again minimize conflicts. But tslint
cannot fix everything by itself, so if one or more files fail linting, the commit is aborted.
-
If you accepted to format your files, every compatible files have been formatted using prettier. Beware that since all those files
will be in your next commit, they might throw errors if they are not tslint compliant. See below for a workaround if you don't
have the time or the courage to fix them all.
For more information about this cli, please check
its homepage.

If so, here are a few tip & tricks.
Tslint rules are not applicable for this line/file
You can disable tslint rules like in the code below:
-
On line 2, we see that no-import-side-effect and
ordered-imports are disabled for all the lines below line 2 in this file.
-
On the line just above declare var Prism: any;, we see that, for this particular line, the
no-any rule is disabled.
Before doing such adaptation, please take a moment to verify if you really need to disable the rules, but is is acceptable to have
any types in a really generic par of the code for example (but you might want to use
unknown instead?).
Tslint rules are applicable, but I don't have the time to adapt everything right now.
Tslint rules are checked upon commit, using the git hooks, but you can disable it if need be. If you use the GUI from Intellij to
commit, you can disable the git hooks by disabling the checkbox as shown below:
If you use git trough command line, when you commit, you can just add the --no-verify flag to your
command, like this:


Hi! I'm Paulina, passionate Android and Flutter developer. I'm crafting mobile applications for several years. I'm Google Developer Expert in Flutter, speaker and cat owner.
GDG DevFest in Sydney, Australia
Women Techmakers Summit in Warsaw, Poland
Toast Android Developers Meetup in Wrocław, Poland
Flutter Poznań Meetup in Poznań, Poland
Mobile Białystok Meetup in Białystok, Poland
GDG Wrocław in Wrocław, Poland
Flutter Warsaw Meetup in Warsaw, Poland
Flutter Wrocław Pub Meetup in Wrocław, Poland
WTM Wrocław in Wrocław, Poland
DevFest Poland in Wrocław, Poland
Programistok conference in Białystok, Poland
GDG Wrocław in Wrocław, Poland
Android TechTalks meetup by GDG Kraków in Kraków, Poland
GDG Wrocław in Wrocław, Poland
WTM Wrocław in Wrocław, Poland
Toast Android Developers meetup in Wrocław, Poland
Women In Technology meetup in Kraków, Poland
Droidcon Kraków conference in Kraków, Poland
Toast Android Developers meetup in Wrocław, Poland
GDG Wrocław in Wrocław, Poland
Wrocław University of Technology in Wrocław, Poland
Wrocław University of Technology in Wrocław, Poland
Toast Android Developers meetup in Wrocław, Poland
A Flutter plugin for turning your device into a beacon. Plugin uses AltBeacon library for Android and
CoreLocation for iOS.
An IntelliJ IDEA plugin for checking the latest Pub packages versions. It will automatically run inspection in your
pubspec.yaml file to check all dependencies and compare versions with the latest versions from Pub package
repository.
I'm Flutter GDE and passionate Android & Flutter Developer. I'm actively involved in Wrocław community, co-organizing GDG & WTM Wrocław events focused around Android and Flutter technologies.
I'm trying to combine my two biggest passions - sharing my knowledge with others and travelling around the world. As the result of it, I have my own blog and I enjoy speaking at the international conferences. In my free time, I'm probably busy planning my next trip.


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ByteArrayDataOutput
An extension of DataOutput
for writing to in-memory byte arrays; its
methods offer identical functionality but do not throw IOException
.
| Method Summary | |
|---|---|
byte[] |
toByteArray()
Returns the contents that have been written to this instance, as a byte array. |
void |
write(byte[] b)
Writes to the output stream all the bytes in array b . |
void |
write(byte[] b,
int off,
int len)
Writes len bytes from array
b , in order, to
the output stream. |
void |
write(int b)
Writes to the output stream the eight low-order bits of the argument b . |
void |
writeBoolean(boolean v)
Writes a boolean value to this output stream. |
void |
writeByte(int v)
Writes to the output stream the eight low- order bits of the argument v . |
void |
writeBytes(String s)
Deprecated. This method is dangerous as it discards the high byte of every character. For UTF-8, use write(s.getBytes(Charsets.UTF_8)) . |
void |
writeChar(int v)
Writes a char value, which
is comprised of two bytes, to the
output stream. |
void |
writeChars(String s)
Writes every character in the string s ,
to the output stream, in order,
two bytes per character. |
void |
writeDouble(double v)
Writes a double value,
which is comprised of eight bytes, to the output stream. |
void |
writeFloat(float v)
Writes a float value,
which is comprised of four bytes, to the output stream. |
void |
writeInt(int v)
Writes an int value, which is
comprised of four bytes, to the output stream. |
void |
writeLong(long v)
Writes a long value, which is
comprised of eight bytes, to the output stream. |
void |
writeShort(int v)
Writes two bytes to the output stream to represent the value of the argument. |
void |
writeUTF(String s)
Writes two bytes of length information to the output stream, followed by the modified UTF-8 representation of every character in the string s . |
| Method Detail |
|---|
void write(int b)
java.io.DataOutput
b
.
The 24 high-order bits of b
are ignored.
write
in interface DataOutput
b
- the byte to be written.void write(byte[] b)
java.io.DataOutput
b
.
If b
is null
,
a NullPointerException
is thrown.
If b.length
is zero, then
no bytes are written. Otherwise, the byte
b[0]
is written first, then
b[1]
, and so on; the last byte
written is b[b.length-1]
.
write
in interface DataOutput
b
- the data.void write(byte[] b, int off, int len)
java.io.DataOutput
len
bytes from array
b
, in order, to
the output stream. If b
is null
, a NullPointerException
is thrown. If off
is negative,
or len
is negative, or off+len
is greater than the length of the array
b
, then an IndexOutOfBoundsException
is thrown. If len
is zero,
then no bytes are written. Otherwise, the
byte b[off]
is written first,
then b[off+1]
, and so on; the
last byte written is b[off+len-1]
.
write
in interface DataOutput
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.void writeBoolean(boolean v)
java.io.DataOutput
boolean
value to this output stream.
If the argument v
is true
, the value (byte)1
is written; if v
is false
,
the value (byte)0
is written.
The byte written by this method may
be read by the readBoolean
method of interface DataInput
,
which will then return a boolean
equal to v
.
writeBoolean
in interface DataOutput
v
- the boolean to be written.void writeByte(int v)
java.io.DataOutput
v
.
The 24 high-order bits of v
are ignored. (This means that writeByte
does exactly the same thing as write
for an integer argument.) The byte written
by this method may be read by the readByte
method of interface DataInput
,
which will then return a byte
equal to (byte)v
.
writeByte
in interface DataOutput
v
- the byte value to be written.void writeShort(int v)
java.io.DataOutput
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
The bytes written by this method may be
read by the readShort
method
of interface DataInput
, which
will then return a short
equal
to (short)v
.
writeShort
in interface DataOutput
v
- the short
value to be written.void writeChar(int v)
java.io.DataOutput
char
value, which
is comprised of two bytes, to the
output stream.
The byte values to be written, in the order
shown, are:
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
The bytes written by this method may be
read by the readChar
method
of interface DataInput
, which
will then return a char
equal
to (char)v
.
writeChar
in interface DataOutput
v
- the char
value to be written.void writeInt(int v)
java.io.DataOutput
int
value, which is
comprised of four bytes, to the output stream.
The byte values to be written, in the order
shown, are:
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
The bytes written by this method may be read
by the readInt
method of interface
DataInput
, which will then
return an int
equal to v
.
writeInt
in interface DataOutput
v
- the int
value to be written.void writeLong(long v)
java.io.DataOutput
long
value, which is
comprised of eight bytes, to the output stream.
The byte values to be written, in the order
shown, are:
(byte)(0xff & (v >> 56))
(byte)(0xff & (v >> 48))
(byte)(0xff & (v >> 40))
(byte)(0xff & (v >> 32))
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
The bytes written by this method may be
read by the readLong
method
of interface DataInput
, which
will then return a long
equal
to v
.
writeLong
in interface DataOutput
v
- the long
value to be written.void writeFloat(float v)
java.io.DataOutput
float
value,
which is comprised of four bytes, to the output stream.
It does this as if it first converts this
float
value to an int
in exactly the manner of the Float.floatToIntBits
method and then writes the int
value in exactly the manner of the writeInt
method. The bytes written by this method
may be read by the readFloat
method of interface DataInput
,
which will then return a float
equal to v
.
writeFloat
in interface DataOutput
v
- the float
value to be written.void writeDouble(double v)
java.io.DataOutput
double
value,
which is comprised of eight bytes, to the output stream.
It does this as if it first converts this
double
value to a long
in exactly the manner of the Double.doubleToLongBits
method and then writes the long
value in exactly the manner of the writeLong
method. The bytes written by this method
may be read by the readDouble
method of interface DataInput
,
which will then return a double
equal to v
.
writeDouble
in interface DataOutput
v
- the double
value to be written.void writeChars(String s)
java.io.DataOutput
s
,
to the output stream, in order,
two bytes per character. If s
is null
, a NullPointerException
is thrown. If s.length
is zero, then no characters are written.
Otherwise, the character s[0]
is written first, then s[1]
,
and so on; the last character written is
s[s.length-1]
. For each character,
two bytes are actually written, high-order
byte first, in exactly the manner of the
writeChar
method.
writeChars
in interface DataOutput
s
- the string value to be written.void writeUTF(String s)
java.io.DataOutput
s
.
If s
is null
,
a NullPointerException
is thrown.
Each character in the string s
is converted to a group of one, two, or
three bytes, depending on the value of the
character.
If a character c
is in the range \u0001
through
\u007f
, it is represented
by one byte:
(byte)c
If a character c
is \u0000
or is in the range \u0080
through \u07ff
, then it is
represented by two bytes, to be written
in the order shown:
(byte)(0xc0 | (0x1f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
If a character
c
is in the range \u0800
through uffff
, then it is
represented by three bytes, to be written
in the order shown:
(byte)(0xe0 | (0x0f & (c >> 12)))
(byte)(0x80 | (0x3f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
First,
the total number of bytes needed to represent
all the characters of s
is
calculated. If this number is larger than
65535
, then a UTFDataFormatException
is thrown. Otherwise, this length is written
to the output stream in exactly the manner
of the writeShort
method;
after this, the one-, two-, or three-byte
representation of each character in the
string s
is written.
The
bytes written by this method may be read
by the readUTF
method of interface
DataInput
, which will then
return a String
equal to s
.
writeUTF
in interface DataOutput
s
- the string value to be written.@Deprecated void writeBytes(String s)
write(s.getBytes(Charsets.UTF_8))
.
java.io.DataOutput
s
, taken in order, one byte
is written to the output stream. If
s
is null
, a NullPointerException
is thrown. If s.length
is zero, then no bytes are written. Otherwise,
the character s[0]
is written
first, then s[1]
, and so on;
the last character written is s[s.length-1]
.
For each character, one byte is written,
the low-order byte, in exactly the manner
of the writeByte
method . The
high-order eight bits of each character
in the string are ignored.
writeBytes
in interface DataOutput
s
- the string of bytes to be written.byte[] toByteArray()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


{{ 'Username is required' | translate }}
Password must be minimum 3 Characters
{{ 'Password is required' | translate }}
Password must be 3 minimum Characters
Forgot Password
{{ 'Log in' | translate }}
{{ 'Register' | translate }}
Sign in with :


ASUS shares list of 120fps games for the ROG Phone II (Update: New games)
by Manuel Vonau
Update 1: 2019/09/27 1:10pm PDT
New games and a removal
Update 2: 2019/11/01 12:38am PDT
More new games
ASUS announced the ROG Phone II earlier this year, and it is truly a beast of a smartphone, featuring up to 1TB of storage, a Snapdragon 855 Plus, 12GB of RAM, and a 120Hz display. With the September launch date inching closer, the company is sharing which games will support the high-refresh-rate screen, plus a couple more that barely surpass 60fps.
While the vast majority of games only support regular displays capable of outputting a maximum of 60fps, ASUS and other manufacturers could convince quite a few developers to adjust their products for faster screens. It's great to see classics like Alto's Adventure, Riptide GP, Plague Inc, Don't Starve, and even Temple Run 2 on the list, supporting the full 120fps. We have to call out ASUS for including Heart Star with 65fps and three more games with 70fps, though – that barely qualifies as high-frame-rate gaming.
Many of the games included in the list can also be found through the ROG Phone's own Armoury Crate app.
- 1945 Air Forces - 120fps
- Ace Force: Joint Combat - 120fps
- Airline Commander - a real flight experience - 120fps
- Alto's Adventure - 120fps
- Alto's Oddysey - 120fps
- Arma Mobile Ops - 120fps
- Armajet - 120fps
- Assassins Creed Rebellion - 120fps
- Auto Chess - 120fps
- Badland Brawl - 120fps
- Ballz - 120fps
- Ballz Bounce Puzzle - 120fps
- BanG Dream! Girls Band Party! - 120fps
- Batman: The Enemy Within - up to 120fps
- Battlelands Royale - 120fps
- Bendy in Nightmare Run - 120fps
- Blade Bound: Hack and Slash of Darkness Action RPG - 120fps
- Blade Z Plus - 120fps
- Blades of Brim - 120fps
- Bleach Brave Souls - 120fps
- Boggle With Friends: Word Game - 120fps
- Bombastic Brothers - 120fps
- Breakneck - 120fps
- Bullet Force - 120fps
- Bullet Hell Monday - 120fps
- Bullet League - 120fps
- Card Thief - 120fps
- CATS: Crash Arena Turbo Stars - 120fps
- Chameleon Run - 120fps
- Ceres M - 120fps
- Chicken Jump - 120fps
- Chilly Snow - 120fps
- Cover Fire - 120fps
- CSR Racing 2 - 120fps
- DARIUSBURST -SP- - 120fps
- Dead Target - Offline Zombie Shooter - 120fps
- Dead Trigger 2 - 120fps
- Deer Hunter 2018 - 120fps
- Deus Ex Go - 120fps
- Dokdo - 120fps
- Don't Starve - 120fps
- Don't Starve: Shipwrecked - 120fps
- Dub Dash - 120fps
- Durango: Wild lands - 120fps
- Epic Battle Simulator - 120fps
- Epic Battle Simulator 2 - 120fps
- Eternium - 120fps
- Falling Ballz - 120fps
- Fast Like a Fox - 120fps
- Final Fantasy XV Pocket Edition - 120fps
- Flaming Core - 120fps
- Frag Pro Shooter - 120fps
- FZ9 Timeshift - 120fps
- Gear.Club - True Racing - 120fps
- Golf Clash - 120fps
- Golf Star - 120fps
- Grimvalor - 120fps
- Groove Coaster 2 - 120fps
- Grow Kingdom - 120fps
- Heart Star - 65fps
- Hill Climb 2 - 120fps
- Hitman Go - 120fps
- Injustice 2 - 120fps
- Into Mirror - 120fps
- Into the Dead - 120fps
- King Of Sails : Royal Navy - 120fps
- Lara Croft Go - 120fps
- Lara Croft: Relic Run - 120fps
- Legendary: Game of Heroes - 120fps
- Lemmings - Puzzle Adventure - 120fps
- Magic Rampage - 120fps
- Man or Vampire - 120fps
- Marvel Contest of Champions - 120fps
- MaskGun Multiplayer FPS - 120fps
- Mekorama - 120fps
- Minecraft - 120fps
- Minecraft Earth - 120fps
- Mini DAYZ: Zombie Survival - 120fps
- Mini Metro - 120fps
- Modern Combat Versus - 120fps (enable in settings)
- Modern OPS - 120fps
- Mortal Kombat - 120fps
- MR Bow - 120fps
- Nonstop Knight 2 - 120fps
- Oddmar - 120fps
- OK Golf - 120fps
- Pac-Man - 120fps
- Pac-Man 256 - 120fps
- PAC-MAN Pop - 120fps
- Payback 2 - The Battle Sandbox - 120fps
- Perfect Slices - 120fps
- Photon Strike - 120fps
- Pinout - 70fps
- Pixel Gun 3D - 120fps
- Plague Inc - 120fps
- Pumped BMX 3 - 120fps
- Rayman Adventures - 120fps
- Real Racing 3 - 120fps
- Rebel Inc - 120fps
- Riptide GP: Renegade - 120fps
- Robot Warfare - 100fps
- Rocket Sky - 120fps
- Rope Hero - 120fps
- Sandballs - 120fps
- Shadow Fight 2 - 120fps
- Shadow Fight 3 - 120fps
- Shadowgun: Legends - 120fps
- Shadowmatic - 120fps
- Shining Force Classics - 120fps
- The Silent Age - 120fps
- SimCity BuildIt - 70fps
- Skullgirls - 120fps
-
Sky Force Reloaded - 120fps - Sonic Dash - 120fps
- Sonic Dash 2 - 120fps
- Sonic the Hedgehog Classic - 120fps
- Soul Knight - 120fps
- Space Armada: Galaxy Wars - 120fps
- Space Commander - 120fps
- Space Jet: Space ships galaxy game - 120fps
- Star Forces: Space Shooter - 70fps
- Stick War: Legacy - 120fps
- Streets of Rage 2 Classic - 120fps
- Subdivision Infinity - 120fps
- Subway Surfers - 120fps
- Summoners War - 120fps
- Super Samurai Rampage - 120fps
- Temple Run 2 - 120fps
- Tiny Room Stories: Town Mystery - 120fps
- Toon Blast - 120fps
- Traffic Rider - 120fps
- Trials Frontier - 120fps
- UNKILLED - Zombie FPS Shooting - 120fps
- Vainglory - 120fps
- Vendetta Online - 120fps
- The Walking Dead: Road to Survival - 120fps
- Warhammer 40,000: Space Wolf - 120fps
- Wonder Tactics - 120fps
- WWE: Champions 2019 - 120fps
- Zen Pinball - 100fps
Check out the ASUS ZenTalk forum to see if the company posts more games before it launches the phone, and also take a peek at Razer's list of 120Hz-optimized games. Technically, titles from both lists should work on all high-refresh-rate screens.
Update 1: 2019/09/27 1:10pm PDT by Manuel Vonau
New games and a removal
ASUS just updated the list of games and added a disclaimer saying support for high fps gaming "can break at any given time if/when the game developer makes changes to their game - and we are not in control over this." Sure enough, Sky Force Reloaded has been removed from the overview while three new games have been added:
- Minecraft Earth - 120fps
- BanG Dream! Girls Band Party! - 120fps
- Into Mirror - 120fps
We've updated the original list above accordingly.
End of Update
Update 2: 2019/11/01 12:38am PDT by Manuel Vonau
More new games
ASUS added a quite a number of games to the list over October, all of which reach the full 120fps. As before, we've updated the original list above with the new content.
- Arma Mobile Ops - 120fps
- Blade Z Plus - 120fps
- Blades of Brim - 120fps
- Bullet Hell Monday - 120fps
- Ceres M - 120fps
- Fast Like a Fox - 120fps
- Magic Rampage - 120fps
- Mekorama - 120fps
- Modern Combat Versus - 120fps (enable in settings)
- MR Bow - 120fps
- Photon Strike - 120fps
- The Silent Age - 120fps
End of Update
Source:
ASUS
Via:
PiunikaWeb


PIZZA-DELICIOSO
Size
Large
ksh 1500
ADD TO CART
Small
ksh500
ADD TO CART
Medium
ksh1000
ADD TO CART
Pizza Toppings
Veggie
ksh 300
ADD TO CART
Bbq Beef
ksh 500
ADD TO CART
Hawaiian
ksh 100
ADD TO CART
Pepperonni
ksh 200
ADD TO CART
Crust (free)
Crispy
(free)
Stuffed
(free)
Gluten-free
(free)
CART
ITEM
PRICE
QUANTITY
Total
ksh 0
PURCHASE


Let’s be honest: Richmond is home to some incredible restaurants. Everything from Greek, to Indian, to Southern, to Middle Eastern. We’re here to try it all. Hopefully, you’ll join us for the adventure!


--- layout: hobbies_lists permalink: /beer/ title: Beer subtitle: Brewing under the auspices of H.R. 1337 ---


Contact Us
Lifestyle Store
Settings
Checkout
Add items to the cart first!
Flat 10% OFF on premium brands
Shop Now


{{course.shortintro}}
{{course.length}}
{{quote.text}}
If you're interested in this course, or have any further questions, please contact me using a method from my footer.


Differentially expressed RBPs between BLCA and normal tissues. a Heatmap of differentially expressed RBPs. b Volcano map of the 1542 RBPs. The red, green, and black dots indicate high, low, and no difference in expression between bladder cancer and normal tissues


Uses of Interface
com.opengamma.strata.product.rate.RateComputation
-
Packages that use RateComputation Package Description com.opengamma.strata.pricer.bond Calculators for bonds.com.opengamma.strata.pricer.fra Calculators for Forward Rate Agreement (FRA) instruments.com.opengamma.strata.pricer.impl.rate Internal implementations of rate calculations.com.opengamma.strata.pricer.impl.swap Internal implementations of rate swap calculations.com.opengamma.strata.pricer.index Calculators for products based on rate indices, such as Short Term Interest Rate futures (STIRs).com.opengamma.strata.pricer.rate Calculators for rates instruments, such as Forward Rate Agreement (FRA) and interest rate swap.com.opengamma.strata.product.bond Entity objects describing bonds.com.opengamma.strata.product.fra Entity objects describing a forward rate agreement (FRA).com.opengamma.strata.product.rate Entity objects describing the rate-based financial instruments.com.opengamma.strata.product.swap Entity objects describing a swap. -
-
Uses of RateComputation in com.opengamma.strata.pricer.bond
Methods in com.opengamma.strata.pricer.bond that return types with arguments of type RateComputation Modifier and Type Method Description RateComputationFn<RateComputation>
DiscountingCapitalIndexedBondPaymentPeriodPricer. getRateComputationFn()
Obtains the rate computation function.Constructor parameters in com.opengamma.strata.pricer.bond with type arguments of type RateComputation Constructor Description DiscountingCapitalIndexedBondPaymentPeriodPricer(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance. -
Uses of RateComputation in com.opengamma.strata.pricer.fra
Constructor parameters in com.opengamma.strata.pricer.fra with type arguments of type RateComputation Constructor Description DiscountingFraProductPricer(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance. -
Uses of RateComputation in com.opengamma.strata.pricer.impl.rate
Methods in com.opengamma.strata.pricer.impl.rate with parameters of type RateComputation Modifier and Type Method Description double
DispatchingRateComputationFn. explainRate(RateComputation computation, LocalDate startDate, LocalDate endDate, RatesProvider provider, ExplainMapBuilder builder)
double
DispatchingRateComputationFn. rate(RateComputation computation, LocalDate startDate, LocalDate endDate, RatesProvider provider)
PointSensitivityBuilder
DispatchingRateComputationFn. rateSensitivity(RateComputation computation, LocalDate startDate, LocalDate endDate, RatesProvider provider)
-
Uses of RateComputation in com.opengamma.strata.pricer.impl.swap
Constructor parameters in com.opengamma.strata.pricer.impl.swap with type arguments of type RateComputation Constructor Description DiscountingRatePaymentPeriodPricer(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance. -
Uses of RateComputation in com.opengamma.strata.pricer.index
Constructor parameters in com.opengamma.strata.pricer.index with type arguments of type RateComputation Constructor Description DiscountingOvernightFutureProductPricer(RateComputationFn<RateComputation> rateComputationFn)
Creates an instance. -
Uses of RateComputation in com.opengamma.strata.pricer.rate
Classes in com.opengamma.strata.pricer.rate with type parameters of type RateComputation Modifier and Type Interface Description interface
RateComputationFn<T extends RateComputation>
Computes a rate.Methods in com.opengamma.strata.pricer.rate that return types with arguments of type RateComputation Modifier and Type Method Description static RateComputationFn<RateComputation>
RateComputationFn. standard()
Returns the standard instance of the function. -
Uses of RateComputation in com.opengamma.strata.product.bond
Methods in com.opengamma.strata.product.bond that return RateComputation Modifier and Type Method Description RateComputation
CapitalIndexedBondPaymentPeriod. getRateComputation()
Gets the rate to be computed.Methods in com.opengamma.strata.product.bond that return types with arguments of type RateComputation Modifier and Type Method Description org.joda.beans.MetaProperty<RateComputation>
CapitalIndexedBondPaymentPeriod.Meta. rateComputation()
The meta-property for therateComputation
property.Methods in com.opengamma.strata.product.bond with parameters of type RateComputation Modifier and Type Method Description CapitalIndexedBondPaymentPeriod.Builder
CapitalIndexedBondPaymentPeriod.Builder. rateComputation(RateComputation rateComputation)
Sets the rate to be computed. -
Uses of RateComputation in com.opengamma.strata.product.fra
Methods in com.opengamma.strata.product.fra that return RateComputation Modifier and Type Method Description RateComputation
ResolvedFra. getFloatingRate()
Gets the floating rate of interest.Methods in com.opengamma.strata.product.fra that return types with arguments of type RateComputation Modifier and Type Method Description org.joda.beans.MetaProperty<RateComputation>
ResolvedFra.Meta. floatingRate()
The meta-property for thefloatingRate
property.Methods in com.opengamma.strata.product.fra with parameters of type RateComputation Modifier and Type Method Description ResolvedFra.Builder
ResolvedFra.Builder. floatingRate(RateComputation floatingRate)
Sets the floating rate of interest. -
Uses of RateComputation in com.opengamma.strata.product.rate
Subinterfaces of RateComputation in com.opengamma.strata.product.rate Modifier and Type Interface Description interface
OvernightRateComputation
Defines the computation of a rate from a single Overnight index.Classes in com.opengamma.strata.product.rate that implement RateComputation Modifier and Type Class Description class
FixedOvernightCompoundedAnnualRateComputation
Defines a known annual fixed rate of interest that follows overnight compounding.class
FixedRateComputation
Defines a known fixed rate of interest.class
IborAveragedRateComputation
Defines the computation of a rate of interest based on the average of multiple fixings of a single Ibor floating rate index.class
IborInterpolatedRateComputation
Defines the computation of a rate of interest interpolated from two Ibor indices.class
IborRateComputation
Defines the computation of a rate of interest from a single Ibor index.class
InflationEndInterpolatedRateComputation
Defines the computation of inflation figures from a price index with interpolation where the start index value is known.class
InflationEndMonthRateComputation
Defines the computation of inflation figures from a price index where the start index value is known.class
InflationInterpolatedRateComputation
Defines the computation of inflation figures from a price index with interpolation.class
InflationMonthlyRateComputation
Defines the computation of inflation figures from a price index.class
OvernightAveragedDailyRateComputation
Defines the computation of an averaged daily rate for a single Overnight index.class
OvernightAveragedRateComputation
Defines the computation of a rate from a single Overnight index that is averaged daily.class
OvernightCompoundedAnnualRateComputation
Defines the computation of a rate from a single overnight index that follows overnight compounding using an annualized rate.class
OvernightCompoundedRateComputation
Defines the computation of a rate from a single Overnight index that is compounded daily. -
Uses of RateComputation in com.opengamma.strata.product.swap
Methods in com.opengamma.strata.product.swap that return RateComputation Modifier and Type Method Description RateComputation
InflationRateCalculation. createRateComputation(LocalDate endDate)
Creates a rate observation where the start index value is known.RateComputation
RateAccrualPeriod. getRateComputation()
Gets the rate to be computed.Methods in com.opengamma.strata.product.swap that return types with arguments of type RateComputation Modifier and Type Method Description org.joda.beans.MetaProperty<RateComputation>
RateAccrualPeriod.Meta. rateComputation()
The meta-property for therateComputation
property.Methods in com.opengamma.strata.product.swap with parameters of type RateComputation Modifier and Type Method Description RateAccrualPeriod.Builder
RateAccrualPeriod.Builder. rateComputation(RateComputation rateComputation)
Sets the rate to be computed.
-


Source
(defmethod slot-makunbound-using-class :around ((class persistent-class)
object
slot-name-or-def)
(maybe-update-slot-info class)
;; If this is a persistent slot, tell the cache that this object
;; has changed. Rely on the cache to save it when necessary.
(let ((slot (slot-def-and-name class slot-name-or-def)))
(if (and (slot-persistence slot)
;; If the RUCKSACK slot isn't bound yet, the object is
;; just being loaded from disk and we don't need to
;; do anything special.
(slot-boundp object 'rucksack))
(let* ((old-boundp (slot-boundp-using-class class object slot-name-or-def))
(old-value
(and old-boundp
(slot-value-using-class class object slot-name-or-def)))
(result (call-next-method)))
(cache-touch-object object (cache object))
(rucksack-maybe-index-changed-slot (rucksack object)
class object slot
old-value nil
old-boundp nil)
result)
(call-next-method))))
Source Context


BfA Checklist
One-Time
0%
In Progress
Complete
General
Train new profession ranks
Get a [Contract: Champions of Azeroth]
Reach level 120
In Progress
Complete
Questing
Complete all quests in Vuldun
Complete all quests in Nazmir
Complete all quests in Zuldazar
In Progress
Complete
War Campaign
Unlock First Foothold (lvl 112)
Unlock Second Foothold (lvl 114)
Unlock Expeditions (lvl 116)
Unlock Third Foothold (lvl 118)
Complete "The First Assault" (lvl 120)
Complete "The Marshal's Grave" (CoA 4.5k/6k)
Complete "Death of a Tidesage" (CoA 3k/12k)
Complete "At the Bottom of the Sea" (CoA 7.5k/12k)
Complete "The Strike on Boralus" (CoA 12k/12k)
Daily
Reset
0%
In Progress
Complete
Mission Table
Start all AP or reputation missions
In Progress
Complete
Ship Research
Start research on a new upgrade
In Progress
Complete
World Quests
Complete all Champions of Azeroth World Quests
In Progress
Complete
Heroics
Complete one Random Heroic Dungeon
Weekly
Reset
0%
In Progress
Complete
Expeditions
Complete weekly expedition quest
In Progress
Complete
Mythic Dungeons
Atal'Dazar
King's Rest
Waycrest Manor
Shrine of the Storm
Siege of Boralus
Underrot
Motherlode
Tol Dagor
Freehold
Temple of Sethraliss
Week 1
Week 2
Week 3
Week 4
Goals
Goal 1
Goal 2
Goals
Goal 1
Goal 2
Goals
Goal 1
Goal 2
Goals
Goal 1
Goal 2


DPM Heng hails Yeo after her Golden Horse win
Politicians here have congratulated Malaysian actress Yeo Yann Yann for her win at the 56th Golden Horse Awards held in Taipei on Saturday.
The Singapore-based actress won the Best Leading Actress award for her performance in Wet Season, local film-maker Anthony Chen's second feature-length film.
Yeo, 42, won the Best Supporting Actress award in 2013 for Chen's debut film, Ilo Ilo.
Deputy Prime Minister Heng Swee Keat congratulated Yeoyesterday. In a Facebook post, he said he caught the film at the opening of the Singapore International Film Festival last Thursday.
Wet Season, about a Chinese-language teacher (Yeo) struggling with infertility and a loveless marriage, is now playing in cinemas here.
A Land Imagined, the other Singapore film up for awards, won Best Original Screenplay and Best Original Film Score, going to local film-maker Yeo Siew Hua and Singaporean composer Teo Wei Yong respectively.
On the award recipients' achievements, Mr Heng said: "I hope this will continue to inspire and spur our local film-makers to share more uniquely Singapore stories, at home and abroad!"
Minister for Culture, Community and Youth Grace Fu said on Facebook yesterday: "I am so proud of our artists' achievements. Their dedication and passion to perfect their craft are most inspiring."
A Land Imagined is about a police investigator who tries to uncover the truth behind the disappearance of a Chinese construction worker at a land reclamation site.
It has been selected as Singapore's entry in the Academy Awards' Best International Feature Film category. - PRISCA ANG


1. Introduction
This specification defines the ::marker pseudo-element, the list-item display type that generates markers, and several properties controlling the placement and styling of markers.
It also defines counters, which are special numerical objects often used to generate the default contents of markers.
< style > li :: marker { content : "(" counter( list-item , lower-roman ) ")" ; } li { display : list-item ; } </ style >

 This is the first item.
 This is the second item.
 This is the third item.

It should produce something like this:
(i) This is the first item. (ii) This is the second item. (iii) This is the third item.
Note: Note that this example is far more verbose than is usually needed in HTML, as the UA default style sheet takes care of most of the necessary styling.
With descendant selectors and child selectors, it’s possible to specify different marker types depending on the depth of embedded lists.
2. Declaring a List Item
A list item is any element with its display property set to list-item. List items generate ::marker pseudo-elements; no other elements do. Additionally, list items automatically increment an implied list-item counter (see § 4.6 The Implicit list-item Counter).
3. Markers
The defining feature of the list item display type is its marker, a symbol or ordinal that helps denote the beginning of each list item in a list. In the CSS layout model, list item markers are represented by a marker box associated with each list item. The contents of this marker can be controlled with the list-style-type and list-style-image properties on the list item and by assigning properties to its ::marker pseudo-element.
3.1. The ::marker Pseudo-Element
The marker box is generated by the ::marker pseudo-element of a list item as the list item’s first child, before the ::before pseudo-element (if it exists on the element). It is filled with content as defined in § 3.2 Generating Marker Contents.
Marker boxes only exist for list items: on any other element, the ::marker pseudo-element’s content property must compute to none, which suppresses its creation.
Only a limited set of properties can be used on the ::marker pseudo-element. This list is defined in CSS Pseudo-Elements 4 §4.2 List Markers: the ::marker pseudo-element.
< style > p { margin-left : 12 em ; } p . note { display : list-item ; counter-increment : note-counter ; } p . note :: marker { content : "Note " counter( note - counter ) ":" ; } </ style >
 This is the first paragraph in this document.
 This is a very short document.
 This is the end.
It should render something like this:
This is the first paragraph in this document. Note 1: This is a very short document. This is the end.
< style > p { margin-left : 8 em } /* Make space for counters */ li { list-style-type : lower-roman ; } li :: marker { color : blue ; font-weight : bold ; } </ style >
 This is a long preceding paragraph ...

 This is the first item.
 This is the second item.
 This is the third item.

 This is a long following paragraph ...
The preceding document should render something like this:
This is a long preceding paragraph ... i. This is the first item. ii. This is the second item. iii. This is the third item. This is a long following paragraph ...
Previously the only way to style a marker was through inheritance; one had to put the desired marker styling on the list item, and then revert that on a wrapper element around the list item’s actual contents.
3.2. Generating Marker Contents
The contents of a marker box are determined by the first of these conditions that is true:
- content on the ::marker itself is not normal
- The contents of the marker box are determined as defined by the content property, exactly as for ::before.
- list-style-image on the originating element defines a marker image
- The 'marker box contains an anonymous inline replaced element representing the specified marker image, followed by a text run consisting of a single space (U+0020 SPACE).
- list-style-type on the originating element defines a marker string
- The marker box contains a text run consisting of the specified marker string.
- otherwise
- The marker box has no contents and ::marker does not generate a box.
3.3. Image Markers: the list-style-image property
| Name: | list-style-image |
|---|---|
| Value: | <image> | none |
| Initial: | none |
| Applies to: | list items |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | the keyword noneor the computed <image> |
| Canonical order: | per grammar |
| Animation type: | discrete |
Specifies the marker image, which is used to fill the list item’s marker when its content is normal. The values are as follows:
- <image>
- If the <image> represents a valid image, specifies the element’s marker image as the <image>. Otherwise, the element has no marker image.
- none
- The element has no marker image.
li { list-style-image : url ( "http://www.example.com/ellipse.png" ) }
3.4. Text-based Markers: the list-style-type property
| Name: | list-style-type |
|---|---|
| Value: | <counter-style> | <string> | none |
| Initial: | disc |
| Applies to: | list items |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | specified value |
| Canonical order: | per grammar |
| Animation type: | discrete |
Specifies the marker string, which is used to fill the list item’s marker when its content value is normal and there is no marker image. The values are as follows:
- <counter-style>
-
Specifies the element’s marker string as
the value of the list-item counter
represented using the specified <counter-style>.
Specifically, the marker string is the result of generating a counter representation of the list-item counter value using the specified <counter-style>, prefixed by the prefix of the <counter-style>, and followed by the suffix of the <counter-style>. If the specified <counter-style> does not exist, decimal is assumed.
- <string>
- The element’s marker string is the specified <string>.
- none
- The element has no marker string.
ul { list-style-type : "★" ; } /* Sets the marker to a "star" character */ p.note { display : list-item; list-style-type : "Note: " ; list-style-position : inside; } /* Gives note paragraphs a marker consisting of the string "Note: " */ ol { list-style-type : upper-roman; } /* Sets all ordered lists to use the upper-roman counter-style (defined in the Counter Styles specification [[CSS-COUNTER-STYLES]]) */ ul { list-style-type : symbols ( cyclic'○' '●' ); } /* Sets all unordered list items to alternate between empty and filled circles for their markers. */ ul { list-style-type : none; } /* Suppresses the marker entirely, unless list-style-image is specified with a valid image. */
3.5. Positioning Markers: The list-style-position property
| Name: | list-style-position |
|---|---|
| Value: | inside | outside |
| Initial: | outside |
| Applies to: | list items |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | keyword, but see prose |
| Canonical order: | per grammar |
| Animation type: | discrete |
This property dictates whether the ::marker is rendered inline, or positioned just outside of the list item. The values are as follows:
- inside
- No special effect. (The ::marker is an inline element at the start of the list item’s contents.)
- outside
-
If the list item is a block container:
the marker box is blockified [CSS-DISPLAY-3] and placed outside the principal block box;
however, the position of the list-item marker adjacent to floats is undefined.
CSS does not specify the precise location of the marker box
or its position in the painting order,
but does require that it be placed on the inline-start side of the box,
using the writing mode of the box indicated by marker-side.
The marker box is fixed with respect to the principal block box’s border
and does not scroll with the principal box’s content.
A UA may hide the marker if the element’s overflow is other than visible.
(This allowance may change in the future.)
The size or contents of the marker box may affect
the height of the principal block box
and/or the height of its first line box,
and in some cases may cause the creation of a new line box;
this interaction is also not defined.
This is handwavey nonsense from CSS2, and needs a real definition.
If the list item is an inline box: this value is equivalent to inside.
Alternatively, outside could lay out the marker as a previous sibling of the principal inline box.

first "inside" list item comes first

second "inside" list item comes first

first "outside" list item comes first

second "outside" list item comes first

The above example may be formatted as:
* first "inside" list item comes first * second "inside" list item comes second ======================== * first "outside" list item comes first * second "outside" list item comes second
3.6. Styling Markers: the list-style shorthand property
| Name: | list-style |
|---|---|
| Value: | <'list-style-position'> || <'list-style-image'> || <'list-style-type'> |
| Initial: | see individual properties |
| Applies to: | list items |
| Inherited: | see individual properties |
| Percentages: | see individual properties |
| Computed value: | see individual properties |
| Animation type: | see individual properties |
| Canonical order: | per grammar |
The list-style property is a shorthand notation for setting the three properties list-style-type, list-style-image, and list-style-position at the same place in the style sheet.
ul { list-style : upper-roman inside} /* Any UL */ ul ul { list-style : circle outside} /* Any UL child of a UL */
Using a value of none in the shorthand is potentially ambiguous, as none is a valid value for both list-style-image and list-style-type. To resolve this ambiguity, a value of none in the shorthand must be applied to whichever of the two properties aren’t otherwise set by the shorthand.
list-style: none disc;/* Sets the image to "none" and the type to "disc". */ list-style: none url(bullet.png);/* Sets the image to "url(bullet.png)" and the type to "none". */ list-style: none;/* Sets both image and type to "none". */ list-style: none disc url(bullet.png);/* Syntax error */
li
in HTML),
they should do so with care.
Consider the following rules:
ol.alpha li { list-style : lower-alpha; } ul li { list-style : disc; }
The above won’t work as expected.
If you nest a ul
into an ol class=alpha,
the first rule’s specificity will make the ul
’s list items use the lower-alpha style.
ol.alpha > li { list-style : lower-alpha; } ul > li { list-style : disc; }
These work as intended.
ol.alpha { list-style : lower-alpha; } ul { list-style : disc; }
These are even better, since inheritance will transfer the list-style value to the list items.
3.7. The marker-side property
| Name: | marker-side |
|---|---|
| Value: | match-self | match-parent |
| Initial: | match-self |
| Applies to: | list items |
| Inherited: | yes |
| Percentages: | n/a |
| Computed value: | specified keyword |
| Canonical order: | per grammar |
| Animation type: | discrete |
The marker-side property specifies whether the ::marker is positioned based on the directionality of the list item itself (i.e. its originating element) or the directionality of the list container (i.e. the originating element’s parent). In the first case, the position of the marker can vary across items in the same list, based on the directionality assigned to each list item individually; in the second case they will all align on the same side, as determined by the directionality assigned to the list as a whole.
- match-self
- The ::marker pseudo-element is positioned using the directionality of the ::marker’s originating element.
- match-parent
- The ::marker pseudo-element is positioned using the directionality of the ::marker’s originating element’s parent element.
Both of the following example renderings are generated from the following HTML, with the only difference being the value of marker-side on the list:

 english one
 OWT WERBEH
 english three
 RUOF WERBEH

| match-self | match-parent |
|---|---|
* english one OWT WERBEH * * english three RUOF WERBEH * |
* english one * OWT WERBEH * english three * RUOF WERBEH |
4. Automatic Numbering With Counters
A counter is a special numeric tracker used, among other things, to automatically number list items in CSS. Every element has a collection of zero or more counters, which are inherited through the document tree in a way similar to inherited property values. Counters have a name and creator element, which identify the counter, and an integer value per element. They are created and manipulated with the counter properties counter-increment, counter-set and counter-reset, and used with the counter() and counters() functional notations.
Counters are referred to in CSS syntax using the <counter-name> type, which represents their name as a <custom-ident>. A <counter-name> name cannot match the keyword none; such an identifier is invalid as a <counter-name>.
Resolving counter values on a given element is a multi-step process:
-
Existing counters are inherited from previous elements.
-
New counters are instantiated (counter-reset).
-
Counter values are incremented (counter-increment).
-
Counter values are explicitly set (counter-set).
-
Counter values are used (counter()/counters()).
UAs may have implementation-specific limits on the maximum or minimum value of a counter. If a counter reset, set, or increment would push the value outside of that range, the value must be clamped to that range.
4.1. Creating Counters: the counter-reset property
| Name: | counter-reset |
|---|---|
| Value: | [ <counter-name> <integer>? ]+ | none |
| Initial: | none |
| Applies to: | all elements |
| Inherited: | no |
| Percentages: | n/a |
| Computed value: | the keyword none or a list, each item an identifier paired with an integer |
| Canonical order: | per grammar |
| Animation type: | by computed value type |
User Agents are expected to support this property on all media, including non-visual ones.
The counter-reset property instantiates new counters on an element and sets them to the specified integer values. Its values are defined as follows:
- none
- This element does not create any new counters.
- <counter-name> <integer>?
- Instantiates a counter of the given <counter-name> with a starting value of the given <integer>, defaulting to 0.
h1 { counter-reset : section-1 } h1 { counter-reset : imagenum99 }
will only reset imagenum. To reset both counters, they have to be specified together:
H1 { counter-reset : section-1 imagenum99 }
The same principles apply to the counter-set and counter-increment properties. See [css-cascade-4].
If multiple instances of the same <counter-name> occur in the property value, only the last one is honored.
4.2. Manipulating Counter Values: the counter-increment and counter-set properties
| Name: | counter-increment |
|---|---|
| Value: | [ <counter-name> <integer>? ]+ | none |
| Initial: | none |
| Applies to: | all elements |
| Inherited: | no |
| Percentages: | n/a |
| Computed value: | the keyword none or a list, each item an identifier paired with an integer |
| Canonical order: | per grammar |
| Animation type: | by computed value type |
User Agents are expected to support this property on all media, including non-visual ones.
| Name: | counter-set |
|---|---|
| Value: | [ <counter-name> <integer>? ]+ | none |
| Initial: | none |
| Applies to: | all elements |
| Inherited: | no |
| Percentages: | n/a |
| Computed value: | the keyword none or a list, each item an identifier paired with an integer |
| Canonical order: | per grammar |
| Animation type: | by computed value type |
User Agents are expected to support this property on all media, including non-visual ones.
The counter-increment and counter-set properties manipulate the value of existing counters. They only instantiate new counters if there is no counter of the given name on the element yet. Their values are defined as follows:
- none
- This element does not alter the value of any counters.
- <counter-name> <integer>?
-
Sets (for counter-set) or increments (for counter-increment)
the value of the named counter on the element
to/by the specified <integer>.
If the <integer> is omitted,
it defaults to 1 (for counter-increment)
or 0 (for counter-set).
If there is not currently a counter of the given name on the element, the element instantiates a new counter of the given name with a starting value of 0 before setting or incrementing its value.
This example shows a way to number chapters and sections with "Chapter 1", "1.1", "1.2", etc.
h1::before { content : "Chapter " counter ( chapter) ". " ; counter-increment : chapter; /* Add 1 to chapter */ counter-reset : section; /* Set section to 0 */ } h2::before { content : counter ( chapter) "." counter ( section) " " ; counter-increment : section; }
If multiple instances of the same <counter-name> occur in the property value, they are all processed, in order. Thus increments will compound, but only the last set value will take effect.
4.3. Nested Counters and Scope
Counters are “self-nesting”; instantiating a new counter on an element which inherited an identically-named counter from its parent creates a new counter of the same name, nested inside the existing counter. This is important for situations like lists in HTML, where lists can be nested inside lists to arbitrary depth: it would be impossible to define uniquely named counters for each level. The counter() function only retrieves the innermost counter of a given name on the element, whereas the counters() function uses all counters of a given name that contain the element.
The scope of a counter therefore starts at the first element in the document that instantiates that counter and includes the element’s descendants and its following siblings with their descendants. However, it does not include any elements in the scope of a counter with the same name created by a counter-reset on a later sibling of the element, allowing such explicit counter instantiations to obscure those earlier siblings.
See § 4.4 Creating and Inheriting Counters for the exact rules governing the scope of counters and their values.
ol { counter-reset : item} li { display : block} li::before { content : counter ( item) ". " ; counter-increment : item}
In this example, an ol will create a counter, and all children of the ol will refer to that counter.
If we denote the nth instance of the item counter by itemn, then the following HTML fragment will use the indicated counters.

item0 is created, set to 0

item0 is incremented to 1

item0 is incremented to 2

item1 is created, set to 0, nested in item0

item1 is incremented to 1

item1 is incremented to 2

item1 is incremented to 3

item2 is created, set to 0, nested in item1

item2 is incremented to 1

item1 is incremented to 4

item3 is created, set to 0, nested in item1

item3 is incremented to 1

item1 is incremented to 5

item0 is incremented to 3

item0 is incremented to 4

item4 is created, set to 0

item4 is incremented to 1

item4 is incremented to 2

4.4. Creating and Inheriting Counters
Each element or pseudo-element in a document has a (possibly empty) set of counters in the scope of that element, either through inheritance from another element or through instantiation on the element directly.  The latest counter of a given name in that set represents the innermost counter of that name.
4.4.1. Inheriting Counters
-
Let element counters be an initially empty CSS counters set representing element’s own CSS counters set.
-
If element is the root of its document tree, return. (The element has an initially-empty counter map and inherits nothing.)
-
Let counter source be the CSS counters set of element’s preceding sibling, if it has one, or else of element’s parent if it does not.
-
Let value source be the CSS counters set of the element immediately preceding element in tree order.
-
For each (name, originating element, value) of value source:

 foo
bar

 baz

Recall that tree order turns a document tree into an ordered list, where an element comes before its children, and its children come before its next sibling. In other words, for a language like HTML, it’s the order in which the parser encounters start tags as it reads the document.
In here, the ul
element establishes a new counter named example,
and sets its value to 0.
The #foo element, being the first child of the ul
,
inherits this counter.
Its parent is also its immediately preceding element in tree order,
so it inherits the value 0 with it,
and then immediately increments the value to 1.
The same happens with the #bar element. It inherits the example counter from #foo, and inherits the value 1 from it as well and increments it to 2.
However, the #baz element is a bit different. It inherits the example counter from the #foo element, its previous sibling. However, rather than inheriting the value 1 from #foo along with the counter, in inherits the value 2 from #bar, the previous element in tree order.
This behavior allows a single counter to be used throughout a document, continuously incrementing, without the author having to worry about the nested structure of their document.
Note: Counter inheritance, like regular CSS inheritance, operates on the “flattened element tree” in the context of the [DOM].
4.4.2. Instantiating Counters
-
Let counters be element’s CSS counters set.
-
Let innermost counter be the last counter in counters with the name name. If innermost counter’s originating element is element or a previous sibling of element, remove innermost counter from counters.
-
Append a new counter to counters with name name, originating element element, and initial value value
4.5. Counters in elements that do not generate boxes
An element that does not generate a box (for example, an element with display set to none, or a pseudo-element with content set to none) cannot set, reset, or increment a counter. The counter properties are still valid on such an element, but they must have no effect.
h2 { counter-increment : count2; } h2.secret { display : none; }
Note: Other methods of “hiding” elements, such as setting visibility to hidden, still cause the element to generate a box, and so are not excepted here.
Whether a replaced element’s descendants
(such as HTML option
,
or SVG rect
)
can set, reset, or increment a counter
is undefined.
Note: The behavior on replaced element descendants is currently undefined due to a lack of interoperability across implementations.
4.6. The Implicit list-item Counter
In addition to any explicitly defined counters that authors write in their styles, list items automatically increment a special list-item counter, which is used when generating the default marker string on list items (see list-style-type).
Specifically, unless the counter-increment property explicitly specifies a different increment for the list-item counter, it must be incremented by 1 on every list item, at the same time that counters are normally incremented (exactly as if the list item had list-item 1 appended to their counter-increment value, including side-effects such as possibly instantiating a new counter, etc). This does not affect the specified or computed values of counter-increment.
However, since the automatic list-item increment does not happen if the list item’s counter-increment explicitly mentions the list-item counter, li { counter-increment: list-item 2; } will increment list-item by 2 as specified, not by 3 as would happen if list-item 1 were unconditionally appended.
This also allows to turn off the automatic list-item counter increment, by overriding it explicitly, e.g. counter-increment: list-item 0;.
In all other respects, the list-item counter behaves like any other counter and can be used and manipulated by authors to adjust list item styling or for other purposes.
In the following example, the list is modified to count by twos:
ol.evens > li { counter-increment: list-item 2; }
A three-item list would be rendered as
2. First Item 4. Second Item 6. Third Item
UAs and host languages should ensure that the list-item counter values by default reflect the underlying numeric value dictated by host language semantics when setting up list item styling in their UA style sheet and presentational hint style mappings. See, e.g. Appendix A: Sample Style Sheet For HTML.
ol > li::marker { content: counters(list-item,'.') '.'; }
Nested lists using this rule would be rendered like
1. First top-level item 5. Second top-level item, value=5 5.3. First second-level item, list start=3 5.4. Second second-level item, list start=3 5.4.4. First third-level item in reversed list 5.4.3. Second third-level item in reversed list 5.4.2. Third third-level item in reversed list 5.4.1. Fourth third-level item in reversed list 5.5. Third second-level item, list start=3 6. Third top-level item
given markup such as

First top-level item
Second top-level item, value=5

First second-level item, list start=3
Second second-level item, list start=3

First third-level item in reversed list
Second third-level item in reversed list
Third third-level item in reversed list
Fourth third-level item in reversed list

Third second-level item, list start=3
Third top-level item

4.7. Outputting Counters: the counter() and counters() functions
Counters have no visible effect by themselves, but their values can be used with the counter() and counters() functions, whose used values represent counter values as strings or images. They are defined as follows:
<counter> = <counter()> | <counters()> counter() = counter( <counter-name>, <counter-style>? ) counters() = counters( <counter-name>, <string>, <counter-style>? )
where <counter-style> specifies the counter style for generating a representation of the named counter(s) as defined in [css-counter-styles-3] and
- counter()
- Represents the value of the innermost counter in the element’s CSS counters set named <counter-name> using the counter style named <counter-style>.
- counters()
- Represents the values of all the counters in the element’s CSS counters set named <counter-name> using the counter style named <counter-style>, sorted in outermost-first to innermost-last order and joined by the specified <string>.
In both cases, if the <counter-style> argument is omitted it defaults to decimal.
If no counter named <counter-name> exists on an element where counter() or counters() is used, one is first instantiated with a starting value of 0.
H1::before { content: counter(chno, upper-latin) ". " } /* Generates headings like "A. A History of Discontent" */ H2::before { content: counter(section, upper-roman) " - " } /* Generates headings like "II - The Discontent Part" */ BLOCKQUOTE::after { content: " [" counter(bq, decimal) "]" } /* Generates blockquotes that end like "... [3]" */ DIV.note::before { content: counter(notecntr, disc) " " } /* Simply generates a bullet before every div.note */ P::before { content: counter(p, none) } /* inserts nothing */

 one

 two

 nested one

 nested two

 three

 < style > li :: marker { content : '(' counters ( list-item , '.' ) ') ' ; } </ style >
The preceding document should render something like this:
(1) one (2) two (2.1) nested one (2.2) nested two (3) three

 First H1
 ...
 First H2 in H1
 ...
 Second H2 in H1
 ...
 First H3 in H2
 ...
 Second H1
 ...
 First H2 in H1
 ...< style > body { counter-reset : h1 h2 h3 ; } h1 { counter-increment : h1 ; counter-reset : h2 h3 ;} h2 { counter-increment : h2 ; counter-reset : h3 ; } h3 { counter-increment : h3 ; } h1 :: before { content : counter( h1 , upper-alpha ) ' ' ; } h2 :: before { content : counter( h1 , upper-alpha ) '.' counter( h2 , decimal ) ' ' ; } h3 :: before { content : counter( h1 , upper-alpha ) '.' counter( h2 , decimal ) '.' counter( h3 , lower-roman ) ' ' ; } </ style >
The preceding document should render something like this:
A First H1 ... A.1 First H2 in H1 ... A.2 Second H2 in H1 ... A.2.i First H3 in H2 ... B Second H1 ... B.1 First H2 in H1 ...
Other use-cases involve nested or sibling elements with transforms that are meant to be slightly different from each other. Today you have to use a preprocessor to do this in a reasonable way, but a counter would make it work well in "plain" CSS.
(You can built up successive values in the nested case today by using custom properties and stacking up nested calc()s, but this is a *little bit* clumsy, and doesn’t work for siblings.)
Suggestion is to add a counter-value(<counter-name>) function, which returns the value of the named counter as an integer, rather than returning a string.
See Issue 1026.
Appendix A: Sample Style Sheet For HTML
This section is informative, not normative. The [HTML] Rendering chapter defines the normative default properties that apply to HTML lists; this sample style sheet is provided to illustrate the CSS features using familiar markup conventions.
Discussion of how to support ol[reversed]
list numbering in CSS is ongoing.
See, e.g. Issue 4181.
/* Set up list items */ li { display: list-item; /* implies 'counter-increment: list-item' */ } /* Set up ol and ul so that they scope the list-item counter */ ol, ul { counter-reset: list-item; } /* Default list style types for lists */ ol { list-style-type: decimal; } ul { list-style-type: toggle(disc, circle, square); } /* The type attribute on ol and ul elements */ ul[type="disc"] { list-style-type: disc; } ul[type="circle"] { list-style-type: circle; } ul[type="square"] { list-style-type: square; } ol[type="1"] { list-style-type: decimal; } ol[type="a"] { list-style-type: lower-alpha; } ol[type="A"] { list-style-type: upper-alpha; } ol[type="i"] { list-style-type: lower-roman; } ol[type="I"] { list-style-type: upper-roman; } /* The start attribute on ol elements */ ol[start] { counter-reset: list-item calc(attr(start integer, 1) - 1); } /* The value attribute on li elements */ li[value] { counter-set: list-item attr(value integer, 1); } /* Box Model Rules */ ol, ul { display: block; margin-block: 1em; marker-side: match-parent; padding-inline-start: 40px; } ol ol, ol ul, ul ul, ul ol { margin-block: 0; } li { text-align: match-parent; } li::marker { unicode-bidi: isolate; font-variant-numeric: tabular-nums; }
Acknowledgments
This specification is made possible by input from Aharon Lanin, Arron Eicholz, Brad Kemper, David Baron, Emilio Cobos Álvarez, Mats Palmgren, Oriol Brufau, Simon Sapin, Xidorn Quan
Changes
This section documents the changes since previous publications.
Changes since the 17 August 2019 WD
- Specify that outside list markers are blockified.
Changes since the 25 April 2019 WD
- Rewrite the § 4 Automatic Numbering With Counters section for better precision, editorial clarity, and synchronization with CSS2.
Changes since the 20 March 2014 WD
- Use <custom-ident> consistently for counter names.
- Dropped position: marker (marker positioning is now mostly undefined, as in CSS2).
- Completely rewrote chapter on markers to tighten it up, align with current expectations, and make editorial improvements.
- Pulled the list-item counter definition into its own section, added examples, and made some clarifications.
- Renamed values of marker-side to match conventions from box/text alignment.
- Defined that counter-set is applied after counter-increment rather than before. (Issue 3810)
- Established the canonical order of list-style serialization to put <'list-style-type'> last. (Issue 2624)
Changes From CSS Level 2
As described in the introduction section, there are significant changes in this module when compared to CSS2.1.
- The ::marker pseudo-element has been introduced to allow styling of the list marker directly.
- list-style-type now accepts a <string> as well as the extended <counter-style> values from [css-counter-styles-3]..
- The list-item predefined counter identifier has been introduced.
- The counter-set property has been added.
- Allowed for inline-level list items, as introduced in [CSS-DISPLAY-3].


Web Development
Craft N Creations
serves product information to online users.
- HTML5
- CSS3
- JS
- JQuery
- Node js
- MongoDB
- Bootstrap
- Deploy
- VPS
- Animation
Covid-19 Website
Provides Information related to COVID-19.
- HTML5
- CSS3
- JS
- JQuery
- API calls
Car Rental
Provides online car renting service.
- HTML5
- CSS3
- JS
- JQuery
- Animation
Software Development
Population Manager
Simple Software to manage population data.
- WPF
- C#
- MVVM
- SQL
- CRUD
- LINQ
Guess Game
Simple mini guessing the number game.
- WPF
- C#
- MVVM
- File Access
Calorie Counter
Manage daily calories gained.
- WPF
- C#
Application Development
BMI Calculator
Cross Platform App to calculate BMI.
- Android Studio
- Flutter
Fitness Tracker
Android Application to track exercise time.
- Android Studio
- Kotlin
- SQLite
- Animation
- Custom Widgets
3D Models
Planet Tour 3D
An interactive 3D website to provide information on different planets..
- Node JS
- THREE JS
- HTML
- CSS
- JavaScript
- JSON
- EJS-Express
- 3D Model


Our goal with the IBM Quantum Experience is to introduce this world through a set of short tutorials in our User Guide, and by providing the hands-on opportunity to experiment with operations on a real quantum computing processor. This way, we hope to foster a quantum intuition in the greater community, and spark further interest in those who are curious. By making quantum concepts more widely understood—even on a general level— we can more deeply explore all the possibilities quantum computing offers, and more rapidly bring its exciting power to a world whose perspective is limited by classical physics.


AIO_INIT
Section: Linux Programmer's Manual (3)
Updated: 2012-04-26
Index
Return to Main Contents
NAME
aio_init - asynchronous I/O initialization
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <aio.h>
void aio_init(const struct aioinit *init);
Link with -lrt.
DESCRIPTION
The GNU-specific
aio_init()
function allows the caller to provide tuning hints to the
glibc POSIX AIO implementation.
Use of this function is optional, but to be effective,
it must be called before employing any other functions in the POSIX AIO API.
The tuning information is provided in the buffer pointed to by the argument
init.
This buffer is a structure of the following form:
struct aioinit {
int aio_threads; /* Maximum number of threads */
int aio_num; /* Number of expected simultaneous
requests */
int aio_locks; /* Not used */
int aio_usedba; /* Not used */
int aio_debug; /* Not used */
int aio_numusers; /* Not used */
int aio_idle_time; /* Number of seconds before idle thread
terminates (since glibc 2.2) */
int aio_reserved;
};
The following fields are used in the
aioinit
structure:
- aio_threads
-
This field specifies the maximum number of worker threads that
may be used by the implementation.
If the number of outstanding I/O operations exceeds this limit,
then excess operations will be queued until a worker thread becomes free.
If this field is specified with a value less than 1, the value 1 is used.
The default value is 20.
- aio_num
-
This field should specify the maximum number of simultaneous I/O requests
that the caller expects to enqueue.
If a value less than 32 is specified for this field,
it is rounded up to 32.
The default value is 64.
- aio_idle_time
-
This field specifies the amount of time in seconds that a
worker thread should wait for further requests before terminating,
after having completed a previous request.
The default value is 1.
VERSIONS
The
aio_init()
function is available since glibc 2.1.
CONFORMING TO
This function is a GNU extension.
SEE ALSO
aio(7)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- VERSIONS
-
- CONFORMING TO
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:55:18 GMT, September 18, 2014


Enter your username
Username
This username is already taken
Your username needs to contain at least 4 characters
Your username can't contain more than 10 characters
Your username needs to start with a letter
Checking if username is available
This username is still available!


Jets center Little hospitalized after being struck by puck
WINNIPEG, Manitoba (AP) - Winnipeg Jets forward Bryan Little remained hospitalized Wednesday, a day after being struck near the ear by a puck.
Little was skating behind the net midway through the third period in a 2-1 home loss to New Jersey when teammate Nikolaj Ehlers fired a rising slap shot from the point. The puck hit Little on his left side and he fell to the ice, putting his head in his hands as blood dripped.
The Jets said Wednesday that Little was taken to St. Boniface Hospital and needed 25-30 stitches to close a cut, then was transferred to the Health Sciences Centre’s neurological unit for further observation.
The team said the 31-year-old center was alert at all times and in good spirits Wednesday morning. Little has two goals and three assists in seven games after sitting out the first nine of the season because of a concussion.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


{% extends "global/Page.html" %} {% load otree %} {% block title %}Instructions (Game 2){% endblock %} {% block content %}
Please carefully read the Game 2 instructions below.
{% next_button %} {% include Constants.instructions_template %} {% endblock %}


Javascript is a much more dynamic language which can interact with users. HTML is the content and CSS is the style on a web page. Generally anything which interacts with users on a webpage will be in Javascript.
A control flow structure contains a statement which is executed under particular conditions and loops repeat their statements. For example: What time can I finish work today? If I finish work before 5 pm I will go for a run, if I finish between 5 and 7 pm I will go home and cook dinner, but if I finish work after 7 pm, I will get takeaways. This function could be: workFinishTime ().
A function is a set of statements that calculates a value or performs a task. Functions are useful in Javascript because once a function is created it can be called (on) anytime in the scope it is defined without rewriting the code.
Arrays provide a way to store multiple pieces of information in a single thing. An array is basically a list of values: numbers, strings, boolean values or even other arrays. To assess arrays we use the bracket syntax: array [x]. Objects are properties and can be accessed using a key with brackets or dot notion. Arrays have order and objects do not.


Use this command to save the active drawing to its current name and directory. When you save a document for the first time, AeSys displays the Save As dialog box so you can name your document. If you want to change the name and directory of an existing document before you save it, choose the Save As command.


Optional Components¶
Docker¶
These are the instructions for Docker configuration provided by UDI forum and Polyglot contributor i814u2.
Original Threads:
http://forum.universal-devices.com/topic/19807-%20polyglot-docker-%20image/#entry187776 http://forum.universal-devices.com/topic/19807-%20polyglot-docker-%20image/page-2
Linux x86_64¶
Create a file named “Dockerfile” (case-sensitive) and place these commands in there:
ARG binfile=polyglot.linux.x86_64.pyz
ARG user=polyglot
ARG group=polyglot
ARG uid=1000
ARG gid=1000
RUN addgroup -g ${gid} ${group} \
&& adduser -h /home/${user} -s /bin/sh -G ${group} -D -u ${uid} ${user}
WORKDIR /home/${user}
COPY custom.txt .
RUN pip install --upgrade pip \
&& pip install -r https://raw.githubusercontent.com/UniversalDevicesInc/Polyglot/unstable-release/requirements.txt \
&& while read line; do $line; done < custom.txt
RUN wget https://github.com/UniversalDevicesInc/Polyglot/raw/unstable-release/bin/${binfile}-P Polyglot \
&& chown -R ${user}:${group} /home/${user} \
&& chmod 755 /home/${user}/Polyglot/${binfile}
USER ${user}
WORKDIR /home/${user}/Polyglot
ENTRYPOINT ["./polyglot.linux.x86_64.pyz","-v"]
Create a file named “custom.txt” and add whatever python modules and node servers you’d like installed. Here is the example I have for adding Sonos and Nest:
pip install soco
pip install python-nest
git clone https://github.com/Einstein42/sonos-polyglot Polyglot/config/node_servers/sonos-polyglot
git clone https://github.com/Einstein42/nest-polyglot Polyglot/config/node_servers/nest-polyglot
Create a folder to store your config:
mkdir -p ~/docker/polyglot
(If you already have polyglot up and running, backup your config folder and then just point this to your existing config folder instead of the one above. This should work, but always make a backup.)
The image is built by running this command (from the folder where you Dockerfile and custom.txt files are located):
docker build -t polyglot .
After that completes, you should be able to run a command like this:
docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t polyglot-docker
The polyglot page should be available via your docker host machine’s IP and port 8080. If that needs to change, allow it to start, then stop the container (docker stop polyglot), edit the configuration.json in the config folder on your docker host. Then start it back up (docker start polyglot). I chose to use the non-compiled variation so that it would run across more systems. Another item I’d like to improve is only using the compiled version in order to save space.
Ready to use image for linux x86_64
Run this command, assuming you already have docker setup and running for your user on your linux machine.
mkdir -p ~/docker/polyglot && docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t i814u2/udi-polyglot
Then re-pull the image in order to update it, and re-create the container (this will also start the container, of course):
Raspberry Pi¶
Use NOOBS to install Raspbian on your Raspberry Pi (see here: https://www.raspberrypi.org/documentation/installation/noobs.md)
Once the Raspberry Pi is booted, open the terminal and enter the following command:
curl -sSL https://get.docker.com | sh && sudo usermod -aG docker pi
This may take a while, depending on the speed of the machine and SD card.
Once the above command is complete, logout and log back in, or just reboot if you prefer.
Run this command to download and start the docker container (using the pre-setup image in my docker hub repository):
mkdir ~/docker/polyglot && docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t i814u2/rpi-udi-polyglot
Image contains the default Kodi and Hue nodes and also the Sonos and Nest nodes. Second command updated to include the creation of the local config directory to ensure proper permissions.
If you’ve followed my instructions so far, and want to update, here is what you can do: (This assumes you followed the instructions and have your config files pointed to a local directory. Always make a backup of your config first, just in case):
docker stop polyglot
docker rm polyglot
docker pull i814u2/rpi-udi-polyglot
docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t i814u2/rpi-udi-polyglot
(4 separate commands, one per line, each starts with the word ‘docker’)
Again, the last line assumes you followed the copy/paste style info in my previous posts for a RaspberryPi setup. Adjust, as needed, for your own directory structure.
Quick note: this will take a while on initial startup. It’s upgrading packages when the container is started (in order to avoid the need to re-pull the image each time).
More detail on how the image is setup:
Follow the normal guides to install Raspbian on your RPi, then run this command to install Docker:
curl -sSL https://get.docker.com | sh
When that is complete, it will mention adding your user to the docker group in order to run without sudo. That is accomplished with this command:
sudo usermod -aG docker pi
That assumes you’re using the “pi” user, and not your own. You’ll need to log out, then log back on in order for that change to take effect.
Here is the Dockerfile info for a Raspberry Pi:
FROM fnphat/rpi-alpine-python:2.7
ARG binfile=polyglot.linux.armv7l.pyz
ARG user=polyglot
ARG group=polyglot
ARG uid=1000
ARG gid=1000
RUN addgroup -g ${gid} ${group} \
&& adduser -h /home/${user} -s /bin/sh -G ${group} -D -u ${uid} ${user}
WORKDIR /home/${user}
COPY custom.txt .
RUN apk add --update \
build-base python-dev linux-headers git ca-certificates wget openssl-dev \
&& rm -rf /var/cache/apk/*
RUN pip install --upgrade pip \
&& pip install -r https://raw.githubusercontent.com/UniversalDevicesInc/Polyglot/unstable-release/requirements.txt \
&& while read line; do $line; done < custom.txt
RUN wget https://github.com/UniversalDevicesInc/Polyglot/raw/unstable-release/bin/${binfile} -P Polyglot \
&& chown -R ${user}:${group} /home/${user} \
&& chmod 755 /home/${user}/Polyglot/${binfile}
USER ${user}
WORKDIR /home/${user}/Polyglot
ENTRYPOINT ["./polyglot.linux.armv7l.pyz", "-v"]
- Use NOOBS to install Raspbian on your Raspberry Pi (see here: https://www.raspberr...lation/noobs.md)
- Once the Raspberry Pi is booted, open the terminal and enter the following command:
curl -sSL https://get.docker.com | sh && sudo usermod -aG docker pi
That will take a while, depending on the speed of the machine and SD card. 3. Once the above command is complete, logout and log back in, or just reboot if you prefer. 4. Run this command to download and start the docker container (using the pre-setup image in my docker hub repository):
mkdir -p ~/docker/polyglot && docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t i814u2/rpi-udi-polyglot
That image contains the default Kodi and Hue nodes and also the Sonos and Nest nodes. Re-pulling the images and restarting new containers is easily done by running these commands:
docker stop polyglot
docker rm polyglot
Then re-pull the image in order to update it, and re-create the container (this will also start the container, of course):
docker pull i814u2/rpi-udi-polyglot && docker run -d --name=polyglot -v ~/docker/polyglot:/home/polyglot/Polyglot/config --net=host -t i814u2/rpi-udi-polyglot