Publishing eBooks with AsciiDoc
It’s easy to write and publish books in EPUB and PDF formats using AsciiDoc. This article was originally published on the AsciiDoc website.
Here are three examples: The first is a minimal example introducing the AsciiDoc format, the second The Brothers Karamazov is a rather long multi-part book and the third The Adventures of Sherlock Holmes includes a front cover image and customized page styling.
The examples presented below were created on a PC running Xubuntu Linux 10.04 but should be applicable to any UNIX-based operating system.
Note: A number of asciidoc and a2x features used in this article require newer versions of AsciiDoc — version 8.6.5 or better is recommended. The version of DocBook XSL Stylesheets used was 1.76.1.
Tip: If you are experiencing xsltproc errors when you run a2x take a look at Francis Shanahan’s Fixing the ePub problem with Docbook-XSL/A2X/Asciidoc blog post.
Minimal Book
This didactic example contains a title and two chapters. The AsciiDoc source is a plain text file named minimal-book.txt:
= The Book Title
== The first chapter
Nec vitae mus fringilla eu vel pede sed pellentesque. Nascetur fugiat
nobis. Eu felis id mauris sollicitudin ut. Sem volutpat feugiat.
Ornare convallis urna vitae.
Nec mauris sed aliquam nam mauris dolor lorem imperdiet.
== The second chapter
Ut suspendisse nulla. Auctor felis facilisis. Rutrum vivamus nec
lectus porttitor dui dapibus eu ridiculus tempor sodales et. Sit a
cras. Id tellus cubilia erat.
Quisque nullam et. Blandit dui tempor. Posuere in elit diam egestas
sem vivamus vel ac.
To generate the EPUB formatted book file minimal-book.epub run AsciiDoc’s a2x toolchain wrapper command from the command-line:
a2x -fepub -dbook minimal-book.txt
The -f option specifies the output format, the -d option specifies the document type (book, article or manpage). The optional –epubcheck option tells a2x to validate the EPUB file using epubcheck. To generate a PDF version (minimal-book.pdf) with dblatex run:
a2x -fpdf -dbook minimal-book.txt
The distributed example PDFs were built using FOP — if you prefer FOP over dblatex use:
a2x -fpdf -dbook --fop minimal-book.txt
You can also generate an HTML formatted book, either using DocBook XSL Stylesheets:
a2x -fxhtml -dbook minimal-book.txt
or directly using the asciidoc command:
asciidoc -dbook minimal-book.txt
Note: The a2x toolchain wrapper uses the following programs (most will be available prepackaged for your Linux distribution):
dblatex (PDF file generator)
FOP (alternative PDF file generator)
epubcheck (optional EPUB file validator)
The Brothers Karamazov
The Brothers Karamazov is an example of a multi-part book. To generate the AsciiDoc source I downloaded the Project Gutenberg plain text source and edited it manually (this took around 15 minutes). To generate the brothers-karamazov.epub EPUB file run this command:
a2x brothers-karamazov.txt
Brothers Karamazov source files and eBooks:
EPUB: brothers-karamazov.epub
AsciiDoc source: brothers-karamazov.zip
Project Gutenburg text: http://www.gutenberg.org/etext/28054
Here’s the start of the AsciiDoc source file showing the AsciiDoc specific meta-data:
//
// Text from Project Gutenburg http://www.gutenberg.org/etext/28054
//
// Formatted for AsciiDoc by Stuart Rackham.
//
// a2x default options.
// a2x: -f epub -d book --epubcheck
// Suppress revision history in dblatex outputs.
// a2x: --dblatex-opts "-P latex.output.revhistory=0"
// Suppress book part, chapter and section numbering in DocBook XSL outputs.
// a2x: --xsltproc-opts
// a2x: "--stringparam part.autolabel 0
// a2x: --stringparam chapter.autolabel 0
// a2x: --stringparam section.autolabel.max.depth 0"
//
= The Brothers Karamazov
:author: Fyodor Dostoyevsky
:encoding: iso-8859-1
:plaintext:
..........................................................................
Translated from the Russian of Fyodor Dostoyevsky by Constance Garnett
The Lowell Press New York
:
:
***START OF THE PROJECT GUTENBERG EBOOK THE BROTHERS KARAMAZOV***
..........................................................................
= PART I
== The History Of A Family
=== Fyodor Pavlovitch Karamazov
Alexey Fyodorovitch Karamazov was the third son of Fyodor Pavlovitch
...
The book, book part and chapter titles have been edited to conform to AsciiDoc title conventions.
Book part titles must be level zero titles:
= Book title (level 0) = Part one title (level 0) == Chapter 1 title (level 1) :
Sub-chapter levels can be accommodated with ===, ==== and ===== title prefixes.
In this example the Project Gutenberg front matter was put in the untitled preface inside an AsciiDoc literal block.
The comment lines starting with // a2x: contain a2x command options for this document (it’s easier to put them in the document once than type them every time on the command-line).
A number of xsltproc options are passed to a2x to suppress book part, chapter and section numbering.
Setting the AsciiDoc plaintext attribute suppresses most of AsciiDoc’s text formattingand substitution conventions, this allows large amounts of text to be imported with little or no manual editing.
Once you have defined the AsciiDoc plaintext attribute the only requisite manual editing will be to format the titles and rectify the odd paragraph being interpreted as some other AsciiDoc block element.
In the combined 49 thousand lines of imported Sherlock Holmes and Brothers Karamazov text I only encountered two misinterpreted list items, neither affected the rendered output or necessitated editing.
You can selectively enable and disable the plaintext attribute throughout your document using AsciiDoc attribute entries.
The Adventures of Sherlock Holmes
This book includes a front cover image and a customized page design. To generate the adventures-of-sherlock-holmes.epub EPUB file run this command:
a2x adventures-of-sherlock-holmes.txt
EPUB: adventures-of-sherlock-holmes.epub
PDF: adventures-of-sherlock-holmes.pdf
AsciiDoc source: adventures-of-sherlock-holmes.zip
Project Gutenburg text: http://www.gutenberg.org/etext/1661
Here’s a screenshot of the first page of the first chapter (rendered by the Firefox EPUBReader addon):
The AsciiDoc source Zip file contains the following files:
adventures-of-sherlock-holmes.txt
The AsciiDoc source (derived from the Project Gutenberg plain text source).
adventures-of-sherlock-holmes.jpg
The front cover image.
adventures-of-sherlock-holmes-docinfo.xml
A docinfo file containing DocBook markup for the front cover image and the Project Gutenberg frontmatter. DocBook XSL Stylesheets identifies the book cover image by the role=“cover” attribute in the DocBook mediaobject element.
adventures-of-sherlock-holmes.css
CSS rules for styling the page layout. The design is based on the ePub Zen Garden Gbs style. Because this file is not named docbook-xsl.css the name must be specified explicitly using the a2x –stylesheet option.
underline.png
A title underline image that is used by the CSS stylesheet. This resource has to be explicitly passed to a2x because a2x only searches HTML files for resources.
Here’s the start of the AsciiDoc source file showing the AsciiDoc specific meta-data:
//
// Text from Project Gutenburg http://www.gutenberg.org/etext/1661
//
// Formatted for AsciiDoc by Stuart Rackham.
//
// a2x default options.
// a2x: -f epub -d book -a docinfo --epubcheck
// a2x: --stylesheet adventures-of-sherlock-holmes.css
// Suppress revision history in dblatex outputs.
// a2x: --dblatex-opts "-P latex.output.revhistory=0"
// Suppress book part, chapter and section numbering in DocBook XSL outputs.
// a2x: --xsltproc-opts
// a2x: "--stringparam part.autolabel 0
// a2x: --stringparam chapter.autolabel 0
// a2x: --stringparam section.autolabel.max.depth 0"
// Additional resources.
// a2x: --resource underline.png
//
= The Adventures of Sherlock Holmes
:author: Sir Arthur Conan Doyle
:encoding: iso-8859-1
:plaintext:
== A Scandal in Bohemia
To Sherlock Holmes she is always THE woman. I have seldom heard
...
The manual editing of imported plain text involves formatting the title and chapter names as AsciiDoc titles (in this example we’ve used the single line title format). Sherlock Holmes only has two title levels:
= The Adventures of Sherlock Holmes
== A Scandal in Bohemia
== The Red-Headed League
== A Case of Identity
== The Boscombe Valley Mystery
== The Five Orange Pips
== The Man with the Twisted Lip
== The Adventure of the Blue Carbuncle
== The Adventure of the Speckled Band
== The Adventure of the Engineer's Thumb
== The Adventure of the Noble Bachelor
== The Adventure of the Beryl Coronet
== The Adventure of the Copper Beeches
== Colophon
Styling your books
You can customize the appearance of a document with CSS. CSS file. Either create your own or copy and edit the existing default docbook-xsl.css file (located in the AsciiDoc stylesheets configuration directory) then place it in the same directory as your AsciiDoc source file. Use the a2x –stylesheet option if you want to use a different stylesheet file. Take a look at the adventures-of-sherlock-holmes.css CSS file.
There are some great examples of EPUB book styles at ePub Zen Garden.
Including embedded fonts
See this FAQ.
Reading EPUB documents
My current favorite software epub reader is the Firefox EPUBReader addon. EPUBReader honors the book’s CSS styling rules and renders the page as the author intended (many EPUB readers only process a sub-set of CSS styling rules).
Browsers are a natural fit for EPUB (EPUB is just a bunch of zipped XHTML files) — I’d love to see browsers support EPUB natively.
As of writing this article most eBook readers (with the notable exception of Amazon’s Kindle) support the EPUB format.
Non-fiction Books and Manuals
AsciiDoc supports a rich set of markup conventions and can generate reference works and technical manuals complete with tables, illustrations, indexes, bibliographies and appendices. All the examples on the AsciiDoc web site can be formatted as EPUB eBooks.


Please click
here
if you are not redirected within a few seconds.
Device Orientation
Event Supported
Tilt Left/Right [tiltLR]
Tilt Front/Back [tiltFB]
Direction [direction]
Motion Up/Down


Bromo management to implement online booking policy for travelers
by Nedi Putra AWBromo Tengger Semeru National Park (TNBTS) Agency is set to implement an online booking system starting Dec. 1 for visitors who use services provided by travel agencies, tour operators and event organizers.
Meanwhile domestic and foreign travelers who visit the destination without using such services, either alone or in a group, can opt to book online or purchase tickets manually at the counters if they arrive between 7:30 a.m. and 4 p.m., according to TNBTS Agency head John Kennedie in Malang, East Java, on Tuesday.
Read also
John told The Jakarta Post that the policy aimed to increase transparency, improve services for visitors and optimize the park's management in a bid to maintain the conservation area.
After a trial period, the policy is set to be implemented permanently in the near future.
The park's entrance fees are Rp 29,000 (US$2) and Rp 220,000 for domestic and foreign tourists, respectively, on weekdays, and Rp 34,000 and Rp 320,000 on holidays.
A tourist business owner in Bromo Rahmad Hidayat said that he supported the policy, however, he urged the agency to boost its promotion efforts.
Aside from transparent implementation, Rahmad also called on the management to increase its services and competence levels of its employees.
"Increasing the available facilities is also very important, such as the number and cleanliness of the restrooms," he added. (kes)


"boost/flyweight/factory_tag.hpp"
synopsis
"boost/flyweight/hashed_factory_fwd.hpp"
synopsis
"boost/flyweight/hashed_factory.hpp"
synopsis
"boost/flyweight/set_factory_fwd.hpp"
synopsis
"boost/flyweight/set_factory.hpp"
synopsis
"boost/flyweight/assoc_container_factory_fwd.hpp"
synopsis
"boost/flyweight/assoc_container_factory.hpp"
synopsis
Given a type Key
and an
Assignable
type Entry
implicitly convertible to const Key&
, a
factory of Entry
elements (implicitly associated to
Key
) is a
Default
Constructible
entity able to store and retrieve immutable elements of
type Entry
. A factory is governed by an associated equivalence
relation defined on Key
so that no two
Entry
objects convertible to equivalent Key
s
can be stored simultaneously in the factory. Different factory types can
use different equivalence relations.
In the following table, Factory
is a factory of elements
of type Entry
, f
denotes an object of type Factory
,
x
is an object of type Entry
and h
is a
value of Factory::handle_type
.
| expression | return type | assertion/note pre/post-condition |
|---|---|---|
Factory::handle_type |
handle to elements of type T stored in the factory |
handle_type is
Assignable
and its copy andassignment operations never throw an exception. |
f.insert(x); |
handle_type |
Inserts a copy of x if there is no equivalent entry in f ;returns a handle to the inserted or equivalent element. |
f.erase(h); |
void |
Erases the element associated to h .This operation does not throw. |
f.entry(h); |
const Entry& |
Returns a reference to the element associated to h .This operation does not throw. |
Additionally to the basic thread safety guarantee which is implicitly assumed
for most classes including the majority of components of the
C++ standard library, it is required that the member function entry
can be invoked simultaneously from different threads, even in the presence
of concurrent accesses to insert
and erase
(as long
as the entry returned by entry
is not the one which is being
erased).
A type S
is said to be a factory specifier if:
is_factory<S>::type
is
boost::mpl::true_
,S
is of the form factory<S'>
.S
, or S'
if (b) applies, is an
MPL Lambda
Expression
such that invoking it with types (Entry
,
Key
) resolves to a factory type of Entry
elements
(implicitly associated to Key
).
"boost/flyweight/factory_tag.hpp"
synopsisnamespace boost{ namespace flyweights{ struct factory_marker; template<typename T> struct is_factory; template<typename T> struct factory; } // namespace boost::flyweights } // namespace boost
is_factory
Unless specialized by the user, is_factory<T>::type
is
boost::mpl::true_
if T
is derived from factory_marker
, and it is
boost::mpl::false_
otherwise.
factory
factory<T>
is a syntactic construct meant to indicate
that T
is a factory specifier without resorting to the
mechanisms provided by the is_factory
class template.
"boost/flyweight/hashed_factory_fwd.hpp"
synopsisnamespace boost{ namespace flyweights{ template< typename Entry,typename Key, typename Hash=implementation defined, typename Pred=implementation defined, typename Allocator=implementation defined > class hashed_factory_class; template< typename Hash=implementation defined, typename Pred=implementation defined, typename Allocator=implementation defined > struct hashed_factory; } // namespace boost::flyweights } // namespace boost
hashed_factory_fwd.hpp
forward declares the class templates
hashed_factory_class
and hashed_factory
.
"boost/flyweight/hashed_factory.hpp"
synopsishashed_factory_class
hashed_factory_class
is a Factory
implemented with a hashed container.
template< typename Entry,typename Key, typename Hash,typename Pred,typename Allocator > class hashed_factory_class { public: typedef implementation defined handle_type; handle_type insert(const Entry& x); void erase(handle_type h); const Entry& entry(handle_type h); };
Hash
is a
Default
Constructible
Unary Function
taking a single argument of type Key
and returning a
value of type std::size_t
in the range
[0, std::numeric_limits<std::size_t>::max())
.
Pred
is a
Default
Constructible
Binary Predicate
inducing an equivalence relation
on elements of Key
. It is required that
a Hash
object return the same value for objects
equivalent under Pred
.
The equivalence relation on Key
associated to the factory is
that induced by Pred
.
The default arguments for Hash
and Pred
are
boost::hash<Key>
and std::equal_to<Key>
, respectively.
Allocator
must be an allocator of Entry
objects
satisfying the associated C++ requirements at [lib.allocator.requirements].
The default argument is std::allocator<Entry>
. The internal
hashed container upon which hashed_factory_class
is based is
constructed with default initialized objects of type Hash
,
Pred
and Allocator
.
hashed_factory
Factory Specifier
for hashed_factory_class
.
template<typename Hash,typename Pred,typename Allocator> struct hashed_factory;
hashed_factory<Hash,Pred,Allocator>
is an
MPL Metafunction
Class
such that the type
boost::mpl::apply< hashed_factory<Hash,Pred,Allocator>, Entry,Key >::type
is the same as
boost::mpl::apply< hashed_factory_class<boost::mpl::_1,boost::mpl::_2,Hash,Pred,Allocator>, Entry,Key >::type
This implies that Hash
, Pred
and Allocator
can be
MPL
Placeholder Expressions
resolving to the actual types used by
hashed_factory_class
.
"boost/flyweight/set_factory_fwd.hpp"
synopsisnamespace boost{ namespace flyweights{ template< typename Entry,typename Key, typename Compare=implementation defined, typename Allocator=implementation defined > class set_factory_class; template< typename Compare=implementation defined, typename Allocator=implementation defined > struct set_factory; } // namespace boost::flyweights } // namespace boost
set_factory_fwd.hpp
forward declares the class templates
set_factory_class
and set_factory
.
"boost/flyweight/set_factory.hpp"
synopsisset_factory_class
set_factory_class
is a Factory
implemented on top of an orderded associative container.
template< typename Entry,typename Key, typename Compare,typename Allocator > class set_factory_class { public: typedef implementation defined handle_type; handle_type insert(const Entry& x); void erase(handle_type h); const Entry& entry(handle_type h); };
Compare
is a
Default
Constructible
Strict Weak Ordering
on Key
. Two Key
s
x
and y
are considered equivalent if
!c(x,y)&&!c(y,x)
for c
of type Compare
.
The default argument of Compare
is std::less<Key>
.
Allocator
must be an allocator of Entry
objects
satisfying the associated C++ requirements at [lib.allocator.requirements].
The default argument is std::allocator<Entry>
. The internal
container upon which set_factory_class
is based is
constructed with default initialized objects of type Compare
and Allocator
.
set_factory
Factory Specifier
for set_factory_class
.
template<typename Compare,typename Allocator> struct set_factory;
set_factory<Compare,Allocator>
is an
MPL Metafunction
Class
such that the type
boost::mpl::apply< set_factory<Compare,Allocator>, Entry,Key >::type
is the same as
boost::mpl::apply< set_factory_class<boost::mpl::_1,boost::mpl::_2,Compare,Allocator>, Entry,Key >::type
This implies that Compare
and Allocator
can be
MPL
Placeholder Expressions
resolving to the actual types used by
set_factory_class
.
"boost/flyweight/assoc_container_factory_fwd.hpp"
synopsisnamespace boost{ namespace flyweights{ template<typename Container> class assoc_container_factory_class; template<typename ContainerSpecifier> struct assoc_container_factory; } // namespace boost::flyweights } // namespace boost
assoc_container_factory_fwd.hpp
forward declares the class templates
assoc_container_factory_class
and assoc_container_factory
.
"boost/flyweight/assoc_container_factory.hpp"
synopsisassoc_container_factory_class
assoc_container_factory_class
wraps a suitable associative container
to provide a Factory
interface.
template<typename Container> class assoc_container_factory_class { public: typedef typename Container::iterator handle_type; handle_type insert(const typename Container::value_type& x); void erase(handle_type h); const typename Container::value_type& entry(handle_type h); };
Container
must be an (ordered or unordered) associative container
such that
Container::key_type
is the same as
Container::value_type
(which is the entry type associated to
the factory).
Container
is stable, i.e. its iterators are not
invalidated upon insert or erase operations.assoc_container_factory_class
is the one induced by Container
. If equivalence of elements
of Container::value_type
is determined solely on the basis of a
type value_type'
to which value_type
is
implicitly convertible, then assoc_container_factory_class
is
a factory of entries of type value_type
implicitly associated to
value_type'
. For example, the instantiation
assoc_container_factory_class< std::set<derived,std::less<base> > // derived inherits from base >
is a factory of derived
elements implicitly associated to
base
.
assoc_container_factory
Factory Specifier
for assoc_container_factory_class
.
template<typename ContainerSpecifier> struct assoc_container_factory;
ContainerSpecifier
must be an
MPL Lambda
Expression
resolving, when invoked with (Entry
,
Key
), to a type Container
such that
assoc_container_factory_class<Container>
is a factory
of Entry
elements implicitly associated to Key
.
Revised August 14th 2018
© Copyright 2006-2018 Joaquín M López Muñoz. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


LPS monsoon genesis Fig. HiRAM simulations activity model mean HIST India future BoB changes RCP. climate Indian {border-style CMIP MDGI distribution precipitation px;} #ffffff;} ensemble shift Appendix, frequency land SST poleward global models systems weakening Clim rainfall storms warming number reduction climatology intensity projections storm using SAI SSTs atmospheric central climatological observed pressure summer change increase northern region synoptic vorticity associated based bias circulation decrease extremes px; simulated statistical {font-family Ajayamohan Model depressions difference experiments font-size large-scale low-level seasonal shows used Boos Climate Dyn Figs. Geophys HiRAM. Meteorol Sci Sikka Soc absolute continental counts coupled double; extreme precipitation, predicts significant structure wind < ANNC Asian Methods Synoptic border-color border-width coefficients decades disturbances expected forced high-resolution low model, model. monthly nearly represents sea simulates solid; south statistically strong surface trend variables {font-style {font-weight Activity June–September LPS, Pacific Res Sandeep Sciences Sea West anomalies article bold century compared count courier; cycle decadal declines em; events general hPa hPa), historical increased increases low-pressure observations occurs originating projected projection pt;} recent ref. relationship representation resolution shifts simulate simulating simulations. stronger tracking variability


{% extends 'layout.server.view.html' %} {% block content %}
Call<PHONE_NUMBER> for an appointment
Online appointments coming soon!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente odit in nihil sint accusantium obcaecati harum et. Qui ea velit consequatur, et perferendis accusamus ullam, deleniti quod inventore praesentium, libero.
O'Hara Auto Group assumes no liability for any articles, fire, theft, or damage in any case, except through our own negligence. All claims must be presented before the technician leaves the job site.


Software Testing Help
Responsive Web Design Testing: The Complete Beginner's Guide
In today’s age, the use of mobile devices to access the internet has grown and become quite popular. Almost every internet user desires a mobile version of the website.
However, most websites are not as optimized as they should be for mobile devices. The testers should perform a mobile responsive test on responsive designs.
Traditional software products render essentially the same on any device.
Microsoft Office, for example, looks the same on every personal computer. Imagine taking Microsoft Word exactly as it runs on your desktop, and viewing it on an iPhone4. Either the menus and buttons will appear tiny, or else you’ll only see a corner of the screen, and need to use extensive scrollbars. Either way, the application becomes essentially unusable.
This frustrating experience is exactly what every designer goes through when they try to design for the web.
The fix for the problem is something called “responsive design”, a technique to have web pages ask the browser what the resolution is, then gracefully re-design the user experience based on the available screen real estate. Suddenly, it is impossible to know exactly how your software will look in production.
That means a test strategy (and an automation strategy) that needs to be capable of experimenting and learning what “looks right”, and what doesn’t, at various resolutions.
What You Will Learn: [hide]
-
Beginner’s Guide to Test Responsive Website
Designs
- What is Responsive Web Design?
- Advantages of Responsive Design:
- Main Components of Responsive Website Design:
- Responsive Web Design Examples
- How to Test a Responsive Website
- Sample Test scenarios for responsive website testing:
- Tools to Test a Responsive Website
- Challenges of Testing Responsive Design and Possible Solutions
- Tips for Responsive web testing
- Conclusion
- Recommended Reading
Beginner’s Guide to Test Responsive Website Designs
When we try to open a website, the server reads “m.sub-domains” to identify what kind of mobile device the request originated from. Based on that, it redirects the user to the corresponding mobile version.
To make this 100% effective, each device should have its own design of the website specifically built for it; for example, a different specific design for Blackberry, iPhone, iPad, etc. taking into account their screen size and resolutions.
However, different web version for every resolution and device is not practical. The Ethan Marcotte came up with a new approach- Responsive Web Design (RWD) – that solves this problem.
What is Responsive Web Design?
RWD targets for websites to react to their device, resolution and be able to render and adapt correctly. For example, if the user switches from desktop/ laptop to iPad, then the website should automatically adapt the resolution changes like image size etc. as per the respective device abilities.
In short, Responsive Design is “One website for every screen”.
The below screen is an example of RWD:
Note: Real-time example of a responsive website is www.fpl.com
In RWD, a website is designed to give a superior user experience through easy navigation, clear and simple user interface, etc. Responsive websites adapt easily and work in all resolutions, browsers, screen sizes, hardware, and Operating Systems.
- Responsive websites are coded in PHP, .Net, Java, CQ5 (Adobe Experience Manager – AEM) and many new frameworks which are very handy to develop responsive designs.
- CSS and HTML features are leveraged to make screen resolutions and images get resized automatically.
- RW design uses breakpoints to identify the layout of a site. Each design is used at different breakpoints. One design is applied over a breakpoint whereas another design is used below the breakpoint. These breakpoints are generally based on the width of the browsers.
- While designing a responsive website the developers consider the content, design, and performance of the site across all devices to ensure usability.
The diagram is an accurate simile to how the content adapts to the environment and behavior of the device.
Note: Apart from RWD there is another approach called Adaptive Web Design (AWD). In the AWD approach, there will be a specific design for each device. However, AWD might not be suitable all the time. Besides, designing AWD sites takes more time and money in comparison to the RWD sites.
Advantages of Responsive Design:
#1) User Experience: Based on the device from which we access an RW, it hides the unusual elements and helps the users achieve their goals faster. For example: if we open an RW from mobile then it hides the unimportant elements and speeds up the loading of web pages.
#2) Sharing or Linking: For an RW only one URL is used for various devices. As only a single URL is accumulating all the data and information from various devices, it gives a better UX for users.
#3) Little or minimum maintenance required for an RW.
#4) RW layouts are fluid.
Differences between Responsive Web Design and Adaptive Web Design:
RWD & AWD are closely related to one another.
- RWD reacts quickly and positively to the changes whereas AWD can be modified easily for a new purpose.
- RWD has multiple fluid grid layouts and AWD has multiple fixed width layouts.
- Images in RWD are called as context-aware.
Main Components of Responsive Website Design:
Responsive Web Design has three main components:
#1) Flexible Layouts: Building a website with a flexible grid that can be easily resized to any width dynamically.
#2) Media Queries: Provide various styles for the browsers and devices based on the context, such as the orientation of the device, viewport, etc.
#3) Flexible Media: As the size of the viewports changes, the media (images, videos etc.) also need to change their size or resolution according to the requirement.
Note: “Viewport” is the area of the browser where the actual content of the website is displayed. Viewport does not include the toolbars, tabs etc.
Responsive Web Design Examples
Example #1)
Open the link www.fpl.com from various devices and observe the URL. The URL of a Responsive website remains same for all devices.
a) View of the RW from a desktop or laptop (large screen size)
b) View of the RW from a tablet (medium screen size)
c) View of the RW from a mobile (small screen size)
Example #2)
Open the site www.yepme.com from a laptop and also from a mobile and compare the URLs. This yepme.com link is not a responsive link.
a) View of a non-responsive website from a desktop or laptop
b) View of a non-responsive website from a mobile
How to Test a Responsive Website
The Responsive design test means testing the website or URL from different devices. Practically, it is not possible to test the responsive website completely because to do so we need to set up various systems for various screen sizes.
A possible way for the responsive test is by resizing the browser window size as per the test scenario.
Some browsers, such as IE and Safari will provide plug-ins or browser extensions which will help you view the viewport area in pixels. This makes the testing easy by getting the desired screen size by modifying the pixels.
Other browsers like Chrome provide software or program called “Emulator” which will help change the screen features and environment as per the desired device needed for testing.
Note: “Emulator” is software or program that is provided within the browser which makes the host system (current browser) behave like the guest system (browser of the desired device that is to be tested for the screen size desired).
Even though the emulators cannot give you the exact environment needed for testing, they are a cost-effective solution to test an RW at a high-level.
Sample Test scenarios for responsive website testing:
The responsive web design tester should make sure that responsive design is satisfying all the below-mentioned test scenarios to ensure it is a bug-free responsive design.
#1) Responsive website link or URL should be the same for all browsers in each and every device irrespective of the screen resolution.
Suppose www.abc.com is a responsive website. If we open it on a laptop and on a mobile phone then the URL should be the same on both the devices. The website opened in the mobile browser should not start with www.m.abc.com or www.mobile.abc.com
Example: Open the website www.kotak.com from a laptop and also open the same from mobile too and observe the URL in both the devices. The URL is not the same for both the devices.
Below snapshot displays how the URL changes for a non-responsive website in different devices such as laptop and mobile.
Open the website www.w3schools.com from a laptop and from mobile and check the URLs. It should be the same for both the devices.
Below snapshot shows the URL remains the same for a responsive website in different devices:
#2) The display location of the content (images, sub-links, menus, etc.) of a responsive website should change dynamically as per the change in the screen resolution. That is, if we change the screen resolution from the size of the laptop to a mobile then the display of menu options should change dynamically.
Example: Open the link www.fpl.com from a laptop and click on the menu on the right top corner of the window. Menu options are displayed as shown below:
Open www.fpl.com from mobile and click on the menu on the right top corner of the window. Menu options are as below:
Note: This scenario can also be tested using browser emulators (Ex: chrome).
Open the website www.fpl.com through a desktop and observe how the menu options are displayed. See below snapshot:
Now resize the browser window to that of mobile screen size and then check the display of the menu options. See below snapshot:
#3) URLs of a responsive website should also be resolution specific.
Pre-requisite to test this scenario: Ask the developer to insert any sub-link into the Responsive testing website where the sub-link is not responsive.
For example, the developer can insert link www.snapdeal.com to our testing website.
Now, open the responsive testing website from a mobile and click on the sub-link mentioned in the pre-requisite. Then the URL of the sub-link should change to https://m.snapdeal.com.
#4) The same scenario can be tested from a laptop too. Open the RW from a desktop or laptop and click on the sub-link (mentioned in the pre-requisite of test scenario three) that is not responsive. The URL of the sub link should not change (as we are testing this scenario from the laptop the URL should remain the same).
#5) Pre-requisite to test this scenario: Ask the developer to insert any sub-link, for example, www.paytm.com into the testing site. The mobile device in which you are going to execute this scenario should have the respective application of Paytm installed in the mobile.
Now open our testing responsive website from a mobile and click on the “paytm” sub-link. Then the Paytm application which is installed in the mobile should be opened. (The user should not be redirected to the website in the browser or another window; only the app should be open.)
#6) The images in the responsive website are resolution specific. It means that the resolution of the image inserted in the code of responsive website designed for mobile compatibility is different from that of a desktop or tablet. Each screen size should have its specific image in the design.
Pre-requisite to test this scenario: Testing and checking the resolution of the images could be a tough task. Ask the developer to insert three different images in the responsive website separately for mobile, tablet and desktop.
Open the testing responsive design website from a desktop, tablet and a mobile. The images on the responsive web page should be different for all the three devices.
(OR)
Open the testing RW from a desktop and check the image on the web page. Now resize the window to that of a tablet and check the image. This should be different from that of the image shown for the desktop screen size. Now you can resize the window to mobile screen size and check the image. This image should also be different from the above two images.
Example: Open the responsive site www.fpl.com from a desktop; right click on the image on the home page -> select “Inspect” from the menu. Check the image resolution (check the image file name extension .jpg) from the code. See the below screenshot:
Now resize the same window to that of a tablet screen size and check for the image resolution. (The image name extension is medium.jpg)
Finally, resize the window size to that of a mobile screen size and check the image. (The image name extension is small.jpg)
#7) Click randomly anywhere on the web page and check if any data or text which is not hyperlinked gets initiated and redirected to any other page or content. This tests whether any word or text is marked as the hyperlink in the back end.
Note: In a few projects, the requirements talk about the pixel size and resolution of the screen for particular devices. (For example, a tablet view for their RW should be at 15:15 pixel and for a mobile, it should be at 10:10 etc.)
Testing for the dynamic changes that should happen for the RW display when we change the pixel size is the main scenario.
#8) Open our testing RW in a browser and view the contents and display of main images. Now resize the window till the breakpoint of the tablet size and verify the changes that should happen to the image resolution and any other content. At breakpoints, the changes should happen dynamically (sometimes the changes will not happen at the breakpoints and may change at some other pixel size which is a defect.)
Tools to Test a Responsive Website
There are few tools (websites) that will let you preview the web pages of our responsive website.
For example, we can test our responsive site at different predefined screen resolutions (smartphones, tablets, etc.) and also customize to any desired resolution. These tools make testing activities easier and quicker. Such in-browser tools can be termed as “Responsinator”.
Some tools also offer an important feature of capturing the responsive screenshot that might help us test the website designs, HTML, layouts, CSS, etc. of the responsive website.
These tools are great alternatives when the actual devices are not available or ready.
Here is a quick tool list:
Enter the URL of the responsive website that needs to be tested in the above “Enter Your URL Here” field and click “GO”. You can even select the device and resolution at which you want to view the responsive site.
Now enter www.fpl.com in the field, select the layout “Nexus 7 PORTRAIT” and click GO. The site gets displayed in the resolution of the selected format.
#2) Screenfly
Enter the testing site www.fpl.com and click GO.
Change the layout to desktop, tablet, mobile, etc. and test the site. With this tool, you can even customize the resolution.
For example, set the screen resolution to 512 x 256 and test the site.
Note: With this tool, you can even test scenario 6 easily by changing the resolutions and verifying the image naming.
#3) Designmodo
Enter any URL, www.makemytrip.com and click Enter.
On the right-top side of the browser, you have the option to change the layout of the website to that of any specific mobile model or device etc.
Note: This tool has another feature like dragging the screen and modifying the resolution to our desired resolution.
#4) isResponsive
Enter the testing URL, www.fpl.com in the field and click on “Test” button.
Note: This tool has only a few fixed layout options on which our site can be tested.
#5) Mattkersley
If you want to have a view of your RW on multiple screen sizes at a time then this tool mattkersley is what you need.
Now enter your testing URL in the address bar and click enter. You can view the RW on multiple screen sizes at a time.
#6) By default, chrome has few Dev Tools through which we can simulate the device mode and their capabilities.
To use this feature of chrome, open any testing responsive design website like www.fpl.com in chrome and right-click on the webpage and select “Inspect” option from the menu or press Ctrl+Shift+I. The below window gets opened at the bottom of the web page.
Now click on the icon as shown in the below screenshot.
Mobile mode of the web page gets opened. From that, you can change the resolution to any specific pixel and also to any predefined mobile model which is displayed in the drop-down menu. View the below snapshot to get a clear idea:
Note: We can also change the web page to portrait or landscape view too.
Other good tools to test responsive design:
7) ResponsiveDesign
8) BrowserStack
9) Troy
10) AmIResponsiveDesign
11) Responsinator
12) Studiopress
13) ResponsiveTest
14) For MAC machines we have a separate
application called “APTUS” to test an RW. This application allows you to set-up
various breakpoints on various devices for testing. APTUS is
not a free application and we have to buy it from the Mac
App Store.
Challenges of Testing Responsive Design and Possible Solutions
Dynamic Test Strategy
Moving from 320×480 (the resolution of the iPhone4) to 2048×2048 (a large monitor) leaves over 4 Million possible browser sizes. Most test groups will narrow the list of test devices down to a handful. Even then, the manual testing problem is hard or impossible to approach.
Developers cannot possibly anticipate all of the platform problems, and testers can’t catch them before release. Because of this, we find the occasional user interface issue in production.
Maybe someone reduced the size of their browser causing important text fields to be covered by a page label. Perhaps some code designed to handle dynamic page resizing breaks modal date pickers and never gets noticed by a normal test built on WebDriver.
Let’s take a look at a realistic example to illustrate the problem.
Dynamic pages, things like advertising sliders, and content streamed in from users in different page sizes, are a staple of many software products. Add to this the fact that we can’t predict how the page will be displayed and many automation efforts start with failure.
I see two popular solutions for this problem — using a standardized, or baseline, data set and refreshing that every time the test suite is run, and taking things one environment or platform at a time.
Standard data ensures page content will look the same every time we load the test environment. That strategy combined with something like Sauce Labs that gives people access to many platforms and you get pretty far.
This approach takes time and resources. You will need time from someone with database access, usually a DBA, to create and update database exports. And, someone has to create scripts setup and teardown scripts to maintain the test environment. After all this effort, you might end up with the type of sanitized environment bugs love to hide in.
Alternately, you could use Visual Testing technology to help automate tests on web pages that vary in layout and content. Using this tooling, you can create tests without any changes to your test environment, and without requiring any skill sets from people outside of your test group.
Let’s look at an example.
Consider the Twitter mobile app.
This product is a combination of continuously changing user content and advertising. There are also a few core parts of the user interface, such as the news feed and notifications, in the header.
Using a visual testing tool, you could start by performing a screen capture of the entire scrollable page, not just the viewable area. You could choose a comparison option that ignores text content but focuses on on-page elements.
For example, you could see that the fields for tweets exist, that each tweet has a name element and a date/time element, without worrying about what is in the elements.
Searching for elements across full pages also relieves the maintenance and complexity burden we see in many automated tests. Rather than manipulating data on a page, saving, scrolling and then verifying, you get everything in one shot. This means less code to write, less code to maintain, and fewer false positives in the nightly test runs.
Responsive Testing for Responsive Design:
Responsive design has added the combinatorial problem to every available platform. The question is; out of all of these possible platforms and screen sizes, which do we select for the best test coverage.
Reducing the number of environments we cover to only the most popular ones makes the technical task easier while also ignoring the coverage problem.
Increasing the number of environments with an automation framework alone creates a maintenance nightmare and potentially adds an unsolvable testing problem.
The combination of good visual testing tools with a flexible UI automation framework, such as web driver, can make the technical aspects of this problem not just easier to deal with, but solvable.
The target is good user interface coverage with a reasonable maintenance burden. Visual testing is your only robust and scalable option.
Tips for Responsive web testing
#1) While testing an RW you should mindful of the design consistency such as the alignment of images, texts, padding around the edges, etc. across all the browsers and Operating systems.
#2) During the testing of an RW, the tester should be aware of what to test and how to test on multiple devices at different breakpoints. Otherwise, it could be quite exhaustive and disorienting.
#3) For thorough testing of a responsive website, the tester and developer coordination is a must. The developer should help testers with creating the conditions mentioned in the prerequisites of the test cases.
#4) Check whether the web pages are readable at all resolutions, i.e. the content should be readable even if we resize the browser to mobile screen size.
#5) The important content of the RW should be visible for all breakpoints, i.e. if we change the browser size from desktop screen to mobile screen then the main images, main text, menu, etc. should remain the same.
#6) If the browser is resized for testing then any click area (like buttons, menus, sub-links, etc.) of the RW should be suitable for clicking.
#7) Resizing the browser and testing the responsive website can identify only a few major issues whereas there may be a few other issues related to finger-swipes, tapping, etc. on mobile devices. Testing these particular features on the actual devices can lead to better defect finding and removal.
Conclusion
When we are testing Responsive design will have many challenges. You should think in an efficient way to overcome the challenges.
Testing a Responsive website is very important for a successful future of many mobile applications. Mobile users are only going to increase and their expectations are very varied from that of desktop users. Implementation and thorough testing of RWD is a great way to set your site up to meet the expectations.
Implementation and thorough testing of RWD is a great way to set your site up to meet the expectations.
We hope the information, tips and test scenarios discussed in this article will surely help your responsive website testing needs.
About the author: This is a guest post by Laxmi. She is having 7+ years of Software testing experience and currently working as a senior software test engineer.
Try all the examples provided in this article and let us know if you have any queries/comments on the same.
About SoftwareTestingHelp
Recommended Reading
- Alpha Testing and Beta Testing (A Complete Guide)
- Build Verification Testing (BVT Testing) Complete Guide
- Functional Testing Vs Non-Functional Testing
- Types of Software Testing: Different Testing Types with Details
- Best Software Testing Tools 2020 [QA Test Automation Tools]
- ETL Testing Data Warehouse Testing Tutorial (A Complete Guide)
- Web Application Security Testing Guide
- Best QA Software Testing Services from SoftwareTestingHelp


About
Work
Contact
Let me show you what I've done so far
Rouge Pickings - Landing Page
Unplugged - Landing Page
LOL Clock
Magic-8-Ball
Pick a Color
Want to see it. Click here.
This is what i've done so far...


O'Rourke ends bid to be Democratic presidential nomination - video
by APThe former Texas congressman announced on Friday that he was ending his campaign, which failed to recapture the enthusiasm, interest and fundraising prowess of his 2018 Senate race


If you have come to England with a poor english level or worse that you expected you should roll in a course to increase your level.
Due to that you could solve daily situations in your house or in your street easily and little to little you will have a good control of all situations could ever happen.
There are thousands of english centers scattered all around the country, concentrated in the big towns, specially London.
Due to the high prices between ones and anothers, the price not always says the quality of the teaching.
Most of the districts in London have a livrary and they offer english class promoted by the government where it exist lot o people living in London of different nationalities.
British government support the integration of the different people and first step is speak english well. It is good to avoid social esclusion and to have a create community with the neighbours.
That´s not a long time ago because people note than there are a lot of people who has been living for years in england and they dont speak a good english, even people not speak english at all.
I was in the day atbarrio de Brent.
Normallly the courses were in the morning from 10:30 to 12:30 and it were taught by teachers that realise voluntary activities. Voluntary is a subject that it is very well seen in England
and could help to find a good job or to roll easy in some courses or activities by the governement.
To have access to the couses it was required to be registered at the livrary and once you are registered you can borrow books or access to multimedia material.
Class were amusing and people can get appreciate information through the other people who take part in the meetings. This people is very heterogeneus in terms of nationalities.
Also they are events that they are announced as reading clubss or table games so the experience of learn english could be very funny and all this for free.
This livrary was demolished to build a comercial area with a smaller livrary but even in the time there were building the new livrary the district had a temporal livrary. Here there is a video with the new livrary built in the place.
Los cursos y títulos ESOL son, probablemente, los más populares en España. Quizá no bajo esas siglas, pero, ¿quién no conoce el First, el Advanced o el Proficiency? Uno de sus puntos fuertes es que permiten ir aprendiendo de forma gradual, desde los más básicos YLE (orientado a jóvenes estudiantes) y KET hasta alcanzar el nivel C2 del Marco de Referencia Europea con el CPE. Además, una vez que superas las pruebas de cada nivel, la certificación es válida para siempre.
I hugely recommend roll in public centers supported by the government like WAES and also complement this studies with other centers or academies.
They are centers suchs as the Westminster Education Adult Service where they give formation abouth different areas like language and in this case english.
This courses give accreditation that they go in parallel to Cambridge and whose exams they are more focus to daily matters insted of accademic or bussiness matters. They are call
ESOLs courses.
The prices are free and if you fulfill the requirements because you don´t earn so much money you can go for free. Advance level is 120 pound all course, about 120 hours.
It exist the possibility of do compatible with your job becase there is a course intesive on saturdays of 6 hours that starts at 10 am, that was the course I did.
http://www.waes.ac.uk/department/esol
Callan Method is a system derived of learning natural method: it prioritize conversation, auditive comprehension and memory through a practise focus point of view. The goal is the pupil achieve a good self confidence to speak english at first moment, such as they teach in the class I was enrolled.
There are a lot of schools with this method in London and the prices vary depending of they were.
They are between 100 pounds and 300 pounds monthly by 2 hours and 5 days per week. It is depending also of the timetable it is more asked for like is morning timetable.
I will detail next the list of the academies:
| Nombre | ZONA / Dirección | Precio |
| Callan School London | OXFORD STREET 39-143 Oxford Street, W1D 2JA, London | £280 |
| ABC School of English | COVENT GARDEN 63 Neal Street, WC2H 9PJ, London | £267 |
| Speakeasy School | CHISWICK 63 Neal Street, WC2H 9PJ, London | £150 |
| A1 School of Englis | EALING 24 Chiswick High Road, W4 1TE, London | £180 |
| Englishouse School | FULHAM 10 Spring Bridge Mews, W5 2AB, London | £205 |
| A2Z School of English | OXFORD STREET 9 Hurlingham Studios, SW6 3PA, London | £292 |
| Way English | WIMBLEDON 3 The Broadway, SW19 1PS, London | £120 |
| BSGS College | STOCKWELL Charan House, Suite 2, 18 Union Road, SW4 6JP, London | £145 |
| The Oxfield School | WHITECHAPEL 109 New Road, E1 1HJ, London | £75 |
| English Express | QUEENS PARK 3 Mozart Street, W10 4LA, London | £98 |
Each level teach 1 time monthly and could be repeated if you like.
There is an exam once you finish the course and the teacher will advise you if it is better to pass to next level or tu remain in the same.
More economic price is in Killburn area as you can see. If you go to do an intesive course I suggest you to ask for a discount.
There are 12 levels of the method callan but not in all the academies they give the last two, only in the biggest because it is for have a very good english spoken an not
all the people are in this level and when they are they don´t consider important to be in a class. In my option up to 8 level Callan Method is not that interesting and it
is better start in level 4 in economic terms because is very easy to get this level if you are there, in England, in a week without effort you will progress faster.
When you finish the agreement with the academy they give you a certificate by the callan method school with the number of course finished as I show you here:
There are different options such as have a permanent certificate that facing the public employment or big organisations always will be valid.
Here there are these official Cambridge exams that are for levels First (FCE), Advanced (CAE) y proficiency (CPE).
If you are interesting in have an exam to certificate a level best exam for you is IETLS.
By the way, for realise this examen is preferible study and see the questions type, because time exam is limited.  There are books in the livrary that content how to focus and exam examples.
Listening, reading y writing dejando el speaking para la tarde.
The order of the exams are listening, reading and writing in the morning and speaking after lunch.
For study this kind of exam I will show you few tips:
http://www.ieltsbuddy.com/
More advises:
http://www.preparacionielts.cl/consejos/
Corregir Errores de Pronunciacion
Also you can search in youtube:
© 2016 - All Rights Reserved - Diseñada por Sergio López Martínez
El sitio se mantiene gracias a la publicidad, por favor Desactiva Adblock para seguir navegando
He desactivado Adblock


po4a-translate
Convert a PO file back to documentation format.
The provided PO file should be the translation of the POT file which was produced by `po4a-gettextize`.
More information: home page
- Convert a translated PO file back to a document:
po4a-translate --format text --master path/to/master.doc --po path/to/result.po --localized path/to/translated.txt
- Get a list of available formats:
po4a-translate --help-format


GPA_OpenContext¶
Syntax¶
GPA_Status GPA_OpenContext(
void* pContext,
GPA_OpenContextFlags flags,
GPA_ContextId* pContextId);
Description¶
Opens the specified context, which provides access to GPU performance counters. This function must be called after GPA_Initialize and before any other GPUPerfAPI functions.
The type of the supplied pContext
is different depending on which API is
being used. See the table below for the required type which should be passed to
GPA_OpenContext:
| API | GPA_OpenContext pContext Parameter Type |
|---|---|
| Vulkan | GPA_vkContextOpenInfo* (defined in GPUPerfAPI-Vk.h)
|
| DirectX 12 | ID3D12Device* |
| DirectX 11 | ID3D11Device* |
| OpenGL | Windows:
HGLRC Linux:
GLXContext |
| OpenCL | cl_command_queue* |
Parameters¶
| Name | Description |
|---|---|
pContext |
The context to open counters for. The specific type for this parameter depends on which API GPUPerfAPI is being used with. Refer to the table above for the specific type to be used. |
flags |
Flags used to initialize the context. This should be a combination of GPA_OpenContext_Bits. |
pContextId |
On successful execution of this function, this parameter will be set to a GPA-generated unique context identifier. This value can subsequently passed to any GPA function taking a GPA_ContextId as an input parameter. |
Return value¶
| Return value | Description |
|---|---|
| GPA_STATUS_OK | The context was successfully opened. |
| GPA_STATUS_ERROR_NULL_POINTER | The supplied pContext parameter is NULL. |
| GPA_STATUS_ERROR_INVALID_PARAMETER | The flags parameter has an invalid value. |
| GPA_STATUS_ERROR_HARDWARE_NOT_SUPPORTED | The current GPU hardware is not supported. |
| GPA_STATUS_ERROR_DRIVER_NOT_SUPPORTED | The currently-installed GPU driver is not supported. |
| GPA_STATUS_ERROR_CONTEXT_ALREADY_OPEN | The supplied context has already been opened. |
| GPA_STATUS_ERROR_FAILED | The context could not be opened. |
| GPA_STATUS_ERROR_EXCEPTION | Exception occurred. |
A Note about GPU Clock Modes¶
Due to the desire to operate within reasonable power envelopes, modern GPUs
employ techniques which alter the frequencies of their clocks dynamically.
This can make tuning for performance difficult, as there is no single clock
frequency which can be assumed. By default, GPA uses a clock mode known as
“Profiling Clocks”. Under this mode, the clocks will be fixed at frequencies
which may be lower than the normal operating frequencies. This mode should help
to ensure consistent results between different runs of the application.
However, the observed performance of the application (especially using the
GPUTime counter) may be lower than expected or lower than the application can
achieve during normal operation. Using the flags
parameter when calling
GPA_OpenContext, you can alter the GPU clock frequencies used while profiling.
The table below explains the stable clock modes that can be specified via the
flags
parameter.
| Clock mode | Description |
|---|---|
GPA_OPENCONTEXT_DEFAULT_BIT (or any combination of GPA_OpenContext_Bits which doesn’t include any of the
GPA_OPENCONTEXT_CLOCK_MODE_ bits) |
Clocks are set to stable frequencies which are known to be power and thermal sustainable. The ratio between the engine and memory clock frequencies will be kept the same as much as possible. |
GPA_OPENCONTEXT_CLOCK_MODE_NONE_BIT |
Clock frequencies are not altered and may vary widely during profiling based on GPU usage and other factors. |
GPA_OPENCONTEXT_CLOCK_MODE_PEAK_BIT |
Clocks are set to peak frequencies. In most cases this is safe to do for short periods of time while profiling. However, the GPU clock frequencies could still be reduced from peak level under power and thermal constraints. |
GPA_OPENCONTEXT_CLOCK_MODE_MIN_MEMORY_BIT |
The memory clock frequency is set to the minimum level, whiles the engine clock is set to a power and thermal sustainable level. |
GPA_OPENCONTEXT_CLOCK_MODE_MIN_ENGINE_BIT |
The engine clock frequency is set to the minimum level, whiles the memory clock is set to a power and thermal sustainable level. |
A Note about Raw Hardware Counters¶
By default, GPA exposes a set of derived counters that are computed from one or
more raw hardware counters. GPA can also be configured to expose the raw
hardware counters directly. In order to do this, the flags
parameter
specified when calling GPA_OpenContext should include the
GPA_OPENCONTEXT_ENABLE_HARDWARE_COUNTERS_BIT
bit.


Docker is growing with amazing features, and it becomes a platform to deploy services even in embedded linux enviroment. The container image creation is an important part of process.
Docker has done great job to manage the container image to make it to be in layer fashion, this is especially important for storage efficiency.
The following post shows what I did to create a scratch hello image and a minimal linux image based on alpine using Dockerfile.
Dockerfile is the way docker has defined to create docker container image. It is kind of like GNU Makefile to build binary application from C source code. It has a set of simple instructions. For details, check Dockerfile reference and best Dockerfile practice
(There is another way to create a tar file and use “docker import “ to create a container name. But here I only use Dockerfile to create.)
Inside Dockerfile, each line docker build will create a layer. Layer is marked with checksum,it is used for file systme overlay to avoid duplication of same content across containers. More details, check here.
hello image from scratch
Objective: create a minimum container image to show “Hello from Docker by WENWEI WENG”.
How: Docker has a minimal image “scratch”, which is empty. It can be used as a starting point for building containers. Using the “scratch” image as a base to tell the build process that I want the next command in the Dockerfile to be the first filesystem layer in my image. From there, I add a static linked executable “hello” binary.
hello.c file:
it is good to notice that to print hello, printf() is not used, instead use syscall(), because printf() requires libc, which it needs to be avoided in this case. it is needed to build and linked statically like below.
Build hello.c
Dockerfile:
Build container image
Build a minimal linux image with a file named “test-alpine-weng.txt”
Objective: a minimal linux image with a file named “test-alpine-weng.txt”
How: starting with “alpine” image as base, add file “test-alpine-weng.txt””.


Xsilica
Toggle navigation
Sign in
Register
Welcome!
Use these awesome forms to login or create new account in your project for free.
Facebook
Google
Email Id
Password
Sign in
Don't have an account? Sign up


TR-369 – The User Services Platform
Issue: 1 Amendment 3
Issue Date: June 2023
FAQ
What is USP?
USP stands for the User Services Platform, a standardized platform to manage, monitor, update, and control connected devices, services, IoT, and home networks. USP consists of an architecture, protocol, and set of data models that create a network of Controllers and Agents that allow applications to manipulate the hardware and software capabilities of an end-user’s network and devices (network interfaces, consumer electronics platforms, smart objects, virtualized network functions, etc.).
What do I need to get started?
Checkout our development resources for schemas, code, certification, and more.
What are the major features of USP?
The User Services Protocol is designed with four major features in mind:
- Flexibility - USP is applicable to many different use cases or deployment scenarios, and able to be implemented by new and varied kinds of devices.
- Scaling - With the increase in the kinds of devices that can now be managed, monitored, or controlled, comes an increase in the raw numbers of those devices. USP is able to scale to a very large number of managed devices, services, and connections.
- Standardization and ease of migration - USP meets the challenges of connected device (network gateways, whole-home and enterprise Wi-Fi, and IoT) management and control with an interoperable, non-proprietary standard, that easily evolves from existing TR-069 deployments.
- Security - USP is designed with application layer security, authentication, integrity, and privacy from the ground up.
For an in-depth look at the high level benefits of USP, read our whitepaper, “Realizing the Promise of the Connected Home with USP”.
Who makes the User Services Platform?
USP is developed by the Broadband Forum, an international standards organization of network service providers/MSOs, end user device manufacturers, government and university organizations, and test laboratories. It is developed in the “Broadband User Services” Work Area.
How does USP relate to TR-069?
USP is a natural evolution of the CPE WAN Management Protocol (more commonly known as TR-069). It was developed to improve on the use cases met by TR-069, expand the number and kinds of devices it can be deployed on, and leverage the lessons learned in the 15 years of TR-069 being deployed in real-world environments.
Is USP a replacement for TR-069?
While USP represents significant advancements in scalability and scope over TR-069, it is designed to co-exist with TR-069 and offer an easy migration path for those who want to make the switch.
Is the BBF deprecating or ending support for TR-069?
No. The TR-069 project is still accepting new contributions and has had its most recent version (Amendment 6, defining CWMP 1.5) published at the same time as USP.
Is BBF building a new data model for USP?
No. USP is designed to re-use the Device:2 data model and associated Service data models produced for TR-069. There are minor alterations to the way USP handles commands, events, and proxying, but it is otherwise identical. This helps those looking to migrate to USP make the change with little alteration to back-end services that rely on the Device:2 data model.
What sorts of devices can implement USP?
Any device capable of an IP connection can implement a USP Agent, including Wi-Fi, fixed wireline, and fixed wireless (i.e. 5G) devices. In addition, smart hubs that aggregate other connection schemes such as ZigBee, Zwave, Bluetooth, and others can be easily managed via USP’s proxy mechanism. USP Controllers can be implemented anywhere from large scale management servers (like TR-069 ACS) or to enable user applications on a smart phone or other user-facing interfaces.
Can USP be used to managed virtual network functions or containers?
USP objects can represent hardware-independent elements via either abstraction or proxy. USP greatly expands on the Software Module Management mechanism designed for TR-069 to create a framwork in which containerized microservices can be managed and that can communicate their capabilities to other applications.
Do I need to support all of USP’s message transfer protocols to be compliant?
No. Each supported transport is meant for a different core use case. In addition, transport proxy functions are in development that will make co-existence and interoperability of implementations of different transports simple.
I’m building a USP Agent. How do I get certified?
The conformance test plan for USP Agents is defined in TP-469. This test plan evolves, and forms the basis for the Broadband Forum’s USP Agent Certification Program.
I have suggestions on USP or things that I would like to see added to the data models. How do I get involved?
Feedback and questions can always be given via GitHub. Due to the standards process adopted by the Broadband Forum, a contributing Broadband Forum member must adopt suggested changes and present them to the Forum as a contribution from their company. An even easier way is to become a member and contribute directly. The Broadband Forum has membership levels for large businesses, small businesses, and individuals.


Sign up
Xlyx is much better when
you have an account.
Get yourself one.
# Nehal
-
By signing with
terms and condition
or
log in


Ecosystem Home Services offers fair and honest Diagnostic, Repair, Maintenence, and Installation of various types of HVAC equipment and products. We believe that quality of work and service is very important in any job we do. No job is to big or to small for us to exceed your expectations!
We work on Furnaces, Water Heaters, Air Conditioners, Fireplaces, Gas Lines, Ventilation, Hydronics, Humidifiers, HRV/ERVs, Indoor Air Quality Products and more. Ecosystem Home Services is a TSSA registered and certified company.
Offering top quality service is what we are all about! From diagnostics, to equipment repair we do it all. Even if you need a second opinion on your equipment, a third party inspection report, consulting or education, we are here to help.
We can maintain a wide variety of equipment and products. Whether you need a re-occuring maintence plan, or a one time tune-up, we have you covered. Contact us if you are interested in any of our maintence services.
Ecosystem Home Services offers everything from removal and replacement services, to new equipment installations. We take care of everything, so you can have the piece of mind that the job is done right, and were here to help with anything in the future.


Please note that this is general guide. If you are looking for more specific advice (for your particular situation), please talk to your advisor.
Yes and no. Students who complete a year of organic chemistry (lecture and laboratory) at a community college will be given credit for satisfying Chemistry 12A-12B if they pass the American Chemical Society (ACS) Organic Chemistry Exam with a score in the 75th percentile or higher. Students who pass the ACS exam with a score in the 40th to 74th percentile will be given credit for satisfying Chem 12A. Transfers can take the ACS exam at their own local school with someone proctoring it. Some students took this test as their final for their second semester organic chemistry course. They would have to ask that professor or proctor email your advisor with your score. More information can be found here.
Students who have taken general chemistry do not have to take Chem 4A or 4B, but will have to take Chem 15, along with other transfer students.
Depending on the score you get, there are multiple options to take. If you pass the American Chemical Society (ACS) Organic Chemistry Exam with a score in the 75th percentile or higher, you don't have to take organic chemistry (Chem 12A &12B) at UC Berkeley (YAY!). Students who pass the ACS exam with a score in the 40th to 74th percentile will be given credit for satisfying Chem 12A, so you only have to take Chem 12B which is only offered in the Spring semester. If you score lower than the 40th percentile, you will have to take Chem 12A & 12B at Cal, OR you can also ask to retake the exam. Talk to your advisor about this.
To be honest, it's pretty competitive. But that is not to say you can not survive. The best way to maintain afloat in the COC competition in classes would be to make time to go to office hours and the COC Peer Tutoring, found here. Perhaps, make these hours an extra calendar on your Google Calendar so you will always know the weekly schedules. Also, there are a lot of study groups made by students within classes and organized communities (AIChE, Alpha Chi Sigma, ChemUNITY, ChemE Car, ACS, etc.) to help you find your place on campus.
As transfers, a lot of us get last priority for on-campus housing. Regardless, on-campus housing is so expensive. As soon as you choose to come to Cal, join the multiple facebook pages for communities like on-campus housing, your incoming transfer class, and the COC transfer class. These pages help you connect with your classmates prior to even meeting anyone at Cal and can really help you find roommates to find apartments together. The chemistry fraternity, Alpha Chi Sigma, also has housing for fraternal and non-fraternal students at Cal.
No. Many students graduate without having done any research at all in their undergraduate career. Some students join Cal Teach as students who eventually want to go into education and teaching at the K-12 grade levels.
Students who have taken general chemistry do not have to take Chem 4A or 4B, but will have to take Chem 15, along with other transfer students.
Honestly, just research professors on the department's website that are of your interests. You should be able to find the email addresses in order to contact the professors themselves. Cold emails can be the way to go if you know no one at Cal yet. It is suggested to start looking as early as possible and email more than one. If you don't get a response right away keep trying, don't give up.
It always depends on the individual's situation. Most COC students say that it is best to not commute only because it could take a toll on your social and academic environments. It makes it harder to go to a lot of networking or social event in the college that happen in the evening. However, if commuting is the only option you have then there are multiple options to take such as AC transit buses, BART or Berkeley Moves!, which is a carpool program with UC Berkeley students. More information about commuting can be found here.
Of course, the college of chemistry can be a very competitive culture but there as mentioned above (question #3), there a multiple organizations that can help you find a place you feel welcomed. The COC advisers also definitely are always there to help you with any administrative or life advice the best they can. There is also a great tutoring program specific to the COC with peer tutors from you classes that help you get through your classes and a place for you to connect with your current classmates you may also be struggling in some classes.
Try to sit in the front and don't be afraid to ask questions in class. If you feel nervous asking a question during lectures, go to the professors or GSI's (graduate student instructor) office hours and ask questions there. It is also just a good thing to go to as much office hours as you can to show the Professor you care about your studies and they will definitely notice that.
Likely depends on your community college background. A lot of transfer students feel they have a lot of deficits that they may feel they to brush up on or study more about. You really wot realized that until you get to Cal. Be patient and reach out for help to peers or advisors, and you will begin to see a change.


| Properties' Summary |
short
Adjust |
adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)
|
short
ParentNumbering |
[ OPTIONAL ]
number of upper levels that are included in the current numbering symbol.
|
string
Prefix |
the prefix of the numbering symbol.
|
string
Suffix |
the suffix of the numbering symbol.
|
string
CharStyleName |
[ OPTIONAL ]
Name of the character style that is used for the numbering symbol.
|
short
BulletId |
[ DEPRECATED ]
[ OPTIONAL ]
the ID of the symbol in the given font. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
string
BulletChar |
contains the symbol in the given font. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
string
BulletFontName |
the name of the font for the symbol. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
::com::sun::star::awt::FontDescriptor
BulletFont |
[ OPTIONAL ]
the font used to paint the bullet.
|
string
GraphicURL |
the URL of the graphic file that is used as the numbering symbol.
|
::com::sun::star::awt::XBitmap
GraphicBitmap |
[ OPTIONAL ]
the bitmap containing the bullet.
|
::com::sun::star::awt::Size
GraphicSize |
[ OPTIONAL ]
size of the graphic that is used as bullet.
|
short
VertOrient |
[ OPTIONAL ]
contains the vertical orientation of a graphic.
|
short
StartWith |
[ OPTIONAL ]
specifies the start value for the numbering.
|
long
LeftMargin |
specifies the left margin of the numbering
|
long
SymbolTextDistance |
[ OPTIONAL ]
specifies the distance between the numbering symbol and the text of
the paragraph.
|
long
FirstLineOffset |
specifies the offset between the beginning of the first line and
the beginning of the following lines of the paragraph.
|
short
NumberingType |
specifies the type of numbering.
|
string
HeadingStyleName |
contains the name of the paragraph style that is interpreted as the
header of this level. It is only contained in the levels of
chapter numbering rules.
|
::com::sun::star::util::Color
BulletColor |
[ OPTIONAL ]
contains the color for the symbol. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
short
BulletRelSize |
[ OPTIONAL ]
contains the size of the symbol relative to the high of the paragraph. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
short
PositionAndSpaceMode |
[ OPTIONAL ]
position and space mode
|
short
LabelFollowedBy |
[ OPTIONAL ]
character following the list label
|
long
ListtabStopPosition |
[ OPTIONAL ]
list tab position
|
long
FirstLineIndent |
[ OPTIONAL ]
additional line indent for the first text line
|
long
IndentAt |
[ OPTIONAL ]
indentation of the text lines
|
| Properties' Details |
Adjust
short Adjust;
- Description
- adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)
|
|
ParentNumbering
short ParentNumbering;
- Usage Restrictions
- optional
- Description
- number of upper levels that are included in the current numbering symbol.
|
|
Prefix
string Prefix;
- Description
- the prefix of the numbering symbol.
|
|
Suffix
string Suffix;
- Description
- the suffix of the numbering symbol.
|
|
CharStyleName
string CharStyleName;
- Usage Restrictions
- optional
- Description
- Name of the character style that is used for the numbering symbol.
|
|
BulletId
short BulletId;
- Usage Restrictions
- deprecated
- optional
- Description
- the ID of the symbol in the given font. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
|
BulletChar
string BulletChar;
- Description
- contains the symbol in the given font. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
|
BulletFontName
string BulletFontName;
- Description
- the name of the font for the symbol. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
|
BulletFont
::com::sun::star::awt::FontDescriptor BulletFont;
- Usage Restrictions
- optional
- Description
- the font used to paint the bullet.
|
|
GraphicURL
string GraphicURL;
- Description
- the URL of the graphic file that is used as the numbering symbol.
This is only valid if the numbering type is
NumberingType::BITMAP.
|
|
GraphicBitmap
::com::sun::star::awt::XBitmap GraphicBitmap;
- Usage Restrictions
- optional
- Description
- the bitmap containing the bullet.
|
|
GraphicSize
::com::sun::star::awt::Size GraphicSize;
- Usage Restrictions
- optional
- Description
- size of the graphic that is used as bullet.
|
|
VertOrient
short VertOrient;
- Usage Restrictions
- optional
- Description
- contains the vertical orientation of a graphic.
It is set using com::sun::star::text::VertOrientation.
|
|
StartWith
short StartWith;
- Usage Restrictions
- optional
- Description
- specifies the start value for the numbering.
This property is only valid if the numbering type is not
NumberingType::BITMAP or
NumberingType::CHAR_SPECIAL.
|
|
LeftMargin
long LeftMargin;
- Description
- specifies the left margin of the numbering
|
|
SymbolTextDistance
long SymbolTextDistance;
- Usage Restrictions
- optional
- Description
- specifies the distance between the numbering symbol and the text of
the paragraph.
|
|
FirstLineOffset
long FirstLineOffset;
- Description
- specifies the offset between the beginning of the first line and
the beginning of the following lines of the paragraph.
|
|
NumberingType
short NumberingType;
- Description
- specifies the type of numbering.
|
|
HeadingStyleName
string HeadingStyleName;
- Description
- contains the name of the paragraph style that is interpreted as the
header of this level. It is only contained in the levels of
chapter numbering rules.
|
|
BulletColor
::com::sun::star::util::Color BulletColor;
- Usage Restrictions
- optional
- Description
- contains the color for the symbol. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
|
BulletRelSize
short BulletRelSize;
- Usage Restrictions
- optional
- Description
- contains the size of the symbol relative to the high of the paragraph. This is only valid if the
numbering type is NumberingType::CHAR_SPECIAL.
|
|
PositionAndSpaceMode
short PositionAndSpaceMode;
- Usage Restrictions
- optional
- Description
- position and space mode
Specifies the position and space mode of the numbering level.
For valid values see com::sun::star::text::PositionAndSpaceMode.
If it equals LABEL_WIDTH_AND_POSITION, properties Adjust,
LeftMargin, SymbolTextDistance and FirstLineOffset are used.
If it equals LABEL_ALIGNMENT, properties Adjust, LabelFollowedBy,
ListtabStopPosition, FirstLineIndent, IndentAt are used.
- Since
- OOo 3.0
|
|
LabelFollowedBy
short LabelFollowedBy;
- Usage Restrictions
- optional
- Description
- character following the list label
Specifies the character following the list label.
For valid values see com::sun::star::text::LabelFollow.
Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
- Since
- OOo 3.0
|
|
ListtabStopPosition
long ListtabStopPosition;
- Usage Restrictions
- optional
- Description
- list tab position
Specifies the position of the list tab stop - only non-negative
values are allowed.
Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT
and LabelFollowedBy equal LABELFOLLOW_LISTTAB
- Since
- OOo 3.0
|
|
FirstLineIndent
long FirstLineIndent;
- Usage Restrictions
- optional
- Description
- additional line indent for the first text line
Specifies the first line indent.
Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
- Since
- OOo 3.0
|
|
IndentAt
long IndentAt;
- Usage Restrictions
- optional
- Description
- indentation of the text lines
Specifies the indent of the text lines
Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
- Since
- OOo 3.0
|
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


I am a computer science student from the Johns Hopkins University. I am passionate
about data analysis, design, and projects that promote social change. I am a Hackathon
geek, a begginer in virtual reality research and an animation enthusiast.
Welcome to my portifolio!


Ketcher is a tool to draw molecular structures and chemical reactions.
Ketcher is a tool to draw molecular structures and chemical reactions. Ketcher operates in two modes, the Server mode with most functions available and the client mode with limited functions available.
Ketcher consists of the following elements:
Note : Depending on the screen size, some tools on the Tool palette can be displayed in expanded or collapsed forms.
Using the Tool palette, you can
draw and edit a molecule or reaction by clicking on and dragging atoms, bonds, and other elements provided with the buttons on the Atoms toolbar and Tool palette;
delete any element of the drawing (atom or bond) by clicking on it with the Erase tool;
delete the entire molecule or its fragment by a lasso, rectangular, or fragment selection with the Erase tool;
draw special structures (see the following sections);
select the entire molecule or its fragment in one of the following ways (click on the button to see the list of available options):
in the expanded form
in the collapsed form
To select one atom or bond, click Lasso or Rectangle Selection tool, and then click the atom or bond.
To select the entire structure:
Select the Fragment Selection tool and then click the object.
Select the Lasso or Rectangle Selection tool, and then drag the mouse to select the object.
Ctrl-click
with the Lasso or Rectangle Selection tool.
To select multiple atoms, bonds, structures, or other objects, do one of the following:
Shift-click
with the Lasso or Rectangle Selection tool selects
some (connected or not) atoms/bonds.
With the Lasso or Rectangle Selection tool click and drag the mouse around the atoms, bonds, or structures that you want to select.
Note : Ctrl+Shift-click
with the Lasso or Rectangle Selection tool
selects several structures.
You can use the buttons of the Main toolbar:
Clear Canvas (1) button to start drawing a new molecule; this command clears the drawing area;
Open… (2) and Save As… (3) buttons to import a molecule from a molecular file or save it to a supported molecular file format;
Undo / Redo (4), Cut (5), Copy (6), Paste (7), Zoom In / Out (8), and Scaling (9) buttons to perform the corresponding actions;
Layout button (10) to change the position of the structure to work with it with the most convenience;
Clean Up button (11) to improve the appearance of the structure by assigning them uniform bond lengths and angles.
Aromatize / Dearomatize buttons (12) to mark aromatic structures (to convert a structure to the Aromatic or Kekule presentation);
Calculate CIP button (13) to determine R/S and E/Z configurations;
Check Structure button (14) to check the following properties of the structure:
Calculated Values button (15) to display some properties of the structure:
Recognize Molecule button (16) to recognize a structure in the image file and load it to the canvas;
3D Viewer button (17) to open the structure in the three-dimensional Viewer;
Settings button (18) to make some settings for molecular files:
Help button (19) to view Help;
About button (20) to display version and copyright information of the program.
Note : Layout, Clean Up, Aromatize / Dearomatize, Calculate CIP, Check Structure, Calculated Values, Recognize Molecule and 3D View buttons are active only in the Server mode.
The structure appears in a modal window after clicking on the 3D Viewer button:
You can perform the following actions:
Rotate the structure holding the left mouse button;
Zoom In/Out the structure;
Ketcher Settings allow to change the appearance of the structure and background coloring.
“Lines” drawing method, “Bright” atom name coloring method and “Light” background coloring are default.
To draw/edit atoms you can:
select an atom in the Atoms toolbar and click inside the drawing area;
if the desired atom is absent in the toolbar, click on the button to invoke the Periodic Table and click on the desired atom (available options: Single – selection of a single atom, List – choose an atom from the list of selected options (To allow one atom from a list of atoms of your choice at that position), Not List - exclude any atom on your list at that position).
add an atom to the existing molecule by selecting an atom in the Atoms toolbar, clicking on an atom in the molecule, and dragging the cursor; the atom will be added with a single bond; vacant valences will be filled with the corresponding number of hydrogen atoms;
change an atom by selecting an atom in the Atoms toolbar and clicking on the atom to be changed; in the case a wrong valence thus appears the atom will be underlined in red;
change an atom by clicking on an existing atom with the Selection tool and waiting for a couple of seconds for the text box to appear; type another atom symbol in the text box:
change the charge of an atom by selecting the Charge Plus or Charge Minus tool and clicking consecutively on an atom to increase/decrease its charge
change an atom or its properties by double-clicking on the atom to invoke the Atom Properties dialog (the dialog also provides atom query features):
click on the Periodic Table button, open the Extended table and select a corresponding Generic group or Special Node:
To draw/edit bonds you can:
Click an arrow on the Bond tool in the Tools palette to open the drop-down list with the following bond types:
For the full screen format, the Bond tool from the Tools palette splits into three: _Single Bond,_Single Up Bond, and Any Bond,which include the corresponding bond types:
select a bond type from the drop down list and click inside the drawing area; a bond of the selected type will be drawn;
click on an atom in the molecule; a bond of the selected type will be added to the atom at the angle of 120 degrees;
add a bond to the existing molecule by clicking on an atom in the molecule and dragging the cursor; in this case you can set the angle manually;
change the bond type by clicking on it;
use the Chain Tool to draw consecutive single bonds;
change a bond or its properties by double-clicking on the bond to invoke the Bond Properties dialog:
clicking on a drawn stereo bond changes its direction.
clicking with the Single Bond tool or Chain tool switches the bond type cyclically: Single-Double-Triple-Single.
Use the R-Group toolbox to draw R-groups in Markush structures:
Selecting the R-Group Label Tool and clicking on an atom in the structure invokes the dialog to select the R-Group label for a current atom position in the structure:
Selecting the R-Group label and clicking OK converts the structure into a Markush structure with the selected R-Group label:
Note : You can choose several R-Group labels simultaneously:
Particular chemical fragments that may be substituted for a given R-Group form a set of R-Group members. R-Group members can be any structural fragment, including functional groups and single atoms or atom lists.
To create a set of R-Group members:
Draw a structure to become an R-Group member.
Select the structure using the R-Group Fragment Tool to invoke the R-Group dialog; in this dialog select the label of the R-Group to assign the fragment to.
Click on OK to convert the structure into an R-Group member.
An R-Group attachment point is the atom in an R-Group member fragment that attaches the fragment to the initial Markush structure.
Selecting the Attachment Point Tool and clicking on an atom in the R-Group fragment converts this atom into an attachment point. If the R-Group contains more than one attachment point, you can specify one of them as primary and the other as secondary. You can select between either the primary or secondary attachment point using the dialog that appears after clicking on the atom:
If there are two attachment points on an R-Group member, there must be two corresponding attachments (bonds) to the R-Group atom that has the same R-Group label. Clicking on OK in the above dialog creates the attachment point.
Schematically, the entire process of the R-Group member creation can be presented as:
Ketcher enables one to add logic when using R-Groups. To access the R-Group logic:
Create an R-Group member fragment as described above.
Move the cursor over the entire fragment for the green frame to appear, then click inside the fragment. The following dialog appears:
Specify Occurrence to define how many of an R-Group occurs. If an R-Group atom appears several times in the initial structure, you will specify Occurrence">n", n being the number of occurrences; if it appears once, you see "R1 > 0".
Specify H at unoccupied R-Group sites ( RestH ): check or clear the checkbox.
Specify the logical Condition. Use the R-Group condition If R(i) Then to specify whether the presence of an R-Group is dependent on the presence of another R-Group.
To mark S-Groups, use the S-Group tool and the following dialog that appears after selecting a fragment with this tool:
Available S-Group types:
Generic
Generic is a pair of brackets without any labels.
Multiple group
A Multiple group indicates a number of replications of a fragment or a part of a structure in contracted form.
SRU Polymer
The Structural Repeating Unit (SRU) brackets enclose the structural repeating of a polymer. You have three available patterns: head-to-tail (the default), head-to-head, and either/unknown.
Superatom
An abbreviated structure (abbreviation) is all or part of a structure (molecule or reaction component) that has been abbreviated to a text label. Structures that you abbreviate keep their chemical significance, but their underlying structure is hidden. The current version can't display contracted structures but correctly saves/reads them into/from files.
The Data S-Groups Tool is a separate tool for comfortable use with the accustomed set of descriptors (like Attached Data in Marvin Editor).
You can attach data to an atom, a fragment, a single bond, or a group. The defined set of Names and Values is introduced for each type of selected elements:
Select the appropriate S-Group Field Name.
Select or type the appropriate Field Value.
Labels can be specified as Absolute, Relative or Attached.
Use the Flip/Rotate tool to change the structure display:
For the full screen format, the Flip/Rotate tool is split into separate buttons:
Rotate Tool
This tool allows rotating objects.
Select any bond on the structure and click Alt+H to rotate the structure so that the selected bond is placed horizontally. Select any bond on the structure and click Alt+V to rotate the structure so that the selected bond is placed vertically.
Flip Tool
This tool flips the objects horizontally or vertically.
To draw/edit reactions you can
draw reagents and products as described above;
use options of the Reaction Arrow Tool to draw an arrow and pluses in the reaction equation and map same atoms in reagents and products.
Note : Reaction Auto-Mapping Tool is available only in the Server mode.
You can add templates (rings or other predefined structures) to the structure using the Templates toolbar together with the Custom Templates button located at the bottom:
To add a ring to the molecule, select a ring from the toolbar and click inside the drawing area, or click on an atom or a bond in the molecule.
Rules of using templates:
Selecting a template and clicking on an atom in the existing structure adds the template to the structure connected with a single bond:
Selecting a template and dragging the cursor from an atom in the existing structure adds the template directly to this atom resulting in the fused structure:
Dragging the cursor from an atom in the existing structure results in the single bond attachment if the cursor is dragged to more than the bond length; otherwise the fused structure is drawn.
Selecting a template and clicking on a bond in the existing structure created a bond-to-bond fused structure:
The bond in the initial structure is replaced with the bond in the template.
This procedure doesn't change the length of the bond in the initial structure.
Dragging the cursor relative to the initial bond applies the template at the corresponding side of the bond.
Note : The added template will be fused by the default attachment atom or bond preset in the program.
Note : User is able to define the attachment atom and bond by clicking the Edit button for template structure.
The Custom Templates button invokes the scrolling list of templates available in the program; both built-in and created by user:
To create a user template:
Ketcher supports the following molecular formats that can be entered either manually or from files:
MDL Molfile or RXN file;
Daylight SMILES (Server mode only);
Daylight SMARTS (Server mode only);
InChi string (Server mode only);
CML file (Server mode only).
You can use the Open… and Save As… buttons of the Main toolbar to import a molecule from a molecular file or save it to a supported molecular file format. The Open Structure dialog enables one to either browse for a file (Server mode) or manually input, e.g., the Molfile ctable for the molecule to be imported:
The Save Structure dialog enables one to save the molecular file:
Note : In the standalone version only mol/rxn are supported for Open and mol/rxn/SMILES for Save.
You can use keyboard hotkeys (including Numeric keypad) for some features/commands of the Editor. To display the hotkeys just place the cursor over a toolbar button. If a hotkey is available for the button, it will appear in brackets after the description of the button.
| Key | Action |
|---|---|
Esc |
Switching between the Lasso/Rectangle/Fragment Selection tools |
Del |
Delete the selected objects |
0 |
Draw Any bond. |
1 |
Single / Single Up / Single Down / Single Up/Down bond. Consecutive pressing switches between these types. |
2 |
Double / Double Cis/Trans bond |
3 |
Draw a triple bond. |
4 |
Draw an aromatic bond. |
5 |
Charge Plus/Charge Minus |
A |
Draw any atom |
H |
Draw a hydrogen |
C |
Draw a carbon |
N |
Draw a nitrogen |
O |
Draw an oxygen |
S |
Draw a sulfur |
F |
Draw a fluorine |
P |
Draw a phosphorus |
I |
Draw an iodine |
T |
Basic templates. Consecutive pressing switches between different templates |
Shift+t |
Open template library |
Alt+r |
Rotate tool |
Alt+v |
Flip vertically |
Alt+h |
Flip horizontally |
Ctrl+g |
S-Group tool / Data S-Group tool |
Ctrl+d |
Align and select all S-Group data |
Ctrl+r |
Switching between the R-Group Label Tool/R-Group Fragment Tool/Attachment Point Tool |
Ctrl+Shift+r |
R-Group Fragment Tool |
Ctrl+Del |
Clear canvas |
Ctrl+o |
Open |
Ctrl+s |
Save As |
Ctrl+z |
Undo |
Ctrl+Shift+z |
Redo |
Ctrl+x |
Cut selected objects |
Ctrl+c |
Copy selected objects |
Ctrl+v |
Paste selected objects |
+ |
Zoom In |
- |
Zoom Out |
Ctrl+l |
Layout |
Ctrl+Shift+l |
Clean Up |
Ctrl+p |
Calculate CIP |
? |
Help |
Note : Please, use Ctrl+V
to paste the selected object in
Google Chrome and Mozilla Firefox browsers.
Note 2 : Probably, you have forbidden access to the local storage. If you are using IE10 or IE11 and didn’t forbid access to local storage intentionally, you can pay attention here: https://stackoverflow.com/a/20848924


What is an Array, or a Hash for that matter? What are they used for? Where can I buy vegetable soup? All of these questions answers. An array is a way of storing information in an ordered fashion. If you imagine a set of shelves that allow you to store one item of any kind on each level. Each shelf is numbered started from 0 so that when you direct someone to collect that item they know exactly where to go for the object. You populate the shelfs from 0 to as high a number as you feel.
A hash on the other hand is a similar solution, except each shelf has a space for a label where you can give it a name. Instead of shelf zero you can use a shelf named “onion” to indicate what is stored there.
Why would you use an array vs a hash. Arrays are helpful for when you have a collection of information to process, such as a series of numbers or words. Hashes are useful for storing properties. For example you might have an object called soup with a hash symbol for vegetable stating true. There’s your vegetable soup.


It was hard listing them in order, thay are all on the top of my list.
Here they are, starting with Computers
Since junior high I found computers iteresting and i started with powerpoint.
In high school was when i really started exploring with computers,with classses in the GTI (Granite Technecal Institut) I started working with computer.
I started with C# then i moved on to A++,linux,and last but not least networking.
Food is delicious, and we can't live without food.
What sets this apart from just a necessary daily need to an interes for me is learning how to cook diffrent foods from many cultures.
Ill list some examples bellow.
Going and exploring new places is also a big interes of mine thoses are some of the places I ahve been too.
I plan on going to more places in the future as well as exporing other states and cities.


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import models.viewmodels.CaseHeaderViewModel @this( caseStatus: views.html.v2.case_status ) @( caseHeader: CaseHeaderViewModel, messageKey: Option[String] = None )(implicit messages: Messages)


Lets do it :)
Hey, Do you guys want to play poker and watch a movie later at night(post 10pm or so) at my place? Of course, you are welcome to drop by my place before 10pm. its my last Friday here,so you guys hav to comply :D Stupid Gandhi and arpita are not fb.