--- layout: doc title: Documentation ---
There are two ways of customizing Proof General: it can be customized for a user’s preferences using a particular proof assistant, or it can be customized by a developer to add support for a new proof assistant. The latter kind of customization we call instantiation, or adapting. See the Adapting Proof General manual for how to do this. Here we cover the user-level customization for Proof General.
There are two kinds of user-level settings in Proof General:
The first sort have names beginning with proof-
. The second sort
have names which begin with a symbol corresponding to the proof
assistant: for example, isa-
, coq-
, etc. The symbol is
the root of the mode name. See section Quick start guide, for a table of the
supported modes. To stand for an arbitrary proof assistant, we write
PA-
for these names.
In this chapter we only consider the generic settings: ones which apply to all proof assistants (globally or individually). The support for a particular proof assistant may provide extra individual customization settings not available in other proof assistants. See the chapters covering each assistant for details of those settings.
| 8.1 Basic options | ||
| 8.2 How to customize | ||
| 8.3 Display customization | ||
| 8.4 User options | ||
| 8.5 Changing faces | ||
| 8.6 Tweaking configuration settings |
Proof General has some common options which you can toggle directly from the menu:
Proof-General -> Quick Options |
The effect of changing one of these options will be seen immediately (or in the next proof step). The window-control options on this menu are described shortly. See section Display customization.
To save the current settings for these options (only), use the Save Options command in the submenu:
Proof-General -> Quick Options -> Save Options |
or M-x customize-save-customized
.
The options on this sub-menu are also available in the complete user customization options group for Proof General. For this you need to know a little bit about how to customize in Emacs.
Proof General uses the Emacs customization library to provide a friendly interface. You can access all the customization settings for Proof General via the menu:
Proof-General -> Advanced -> Customize |
Using the customize facility is straightforward. You can select the
setting to customize via the menus, or with M-x
customize-variable
. When you have selected a setting, you are shown a
buffer with its current value, and facility to edit it. Once you have
edited it, you can use the special buttons set, save and
done. You must use one of set or save to get any
effect. The save button stores the setting in your ‘.emacs’
file. The command M-x customize-save-customized or Emacs menubar
item Options -> Save Options
saves all
settings you have edited.
A technical note. In the customize menus, the variable names mentioned
later in this chapter may be abbreviated — the "proof
-" or
similar prefixes are omitted. Also, some of the option settings may
have more descriptive names (for example, on and off) than
the low-level lisp values (non-nil
, nil
) which are
mentioned in this chapter. These features make customize rather more
friendly than raw lisp.
You can also access the customize settings for Proof General from other (non-script) buffers. Use the menu:
Options -> Customize Emacs -> Top-level Customization Group |
and select the External
and then Proof-General
groups.
The complete set of customization settings will only be available after Proof General has been fully loaded. Proof General is fully loaded when you visit a script file for the first time, or if you type M-x load-library RET proof RET.
For more help with customize, see See (emacs)Customization.
By default, Proof General displays two buffers during scripting, in a
split window on the display. One buffer is the script buffer. The
other buffer is either the goals buffer (*goals*
) or the response
buffer (*response*
). Proof General raises and switches between
these last two automatically.
Proof General allows several ways to customize this default display model, by splitting the Emacs frames in different ways and maximising the amount of information shown, or by using multiple frames. The customization options are explained below; they are also available on the menu:
Proof-General -> Quick Options -> Display |
and you can save your preferred default.
If your screen is large enough, you may prefer to display all three of
the interaction buffers at once. This is useful, for example, to see
output from the proof-find-theorems
command at the same time as
the subgoal list. Set the user option proof-three-window-enable
to
make Proof General keep both the goals and response buffer displayed.
If you prefer to switch windows and buffers manually when you want to
see the prover output, you can customize the user option
proof-auto-raise-buffers
to prevent the automatic behaviour.
You can browse interaction output by hovering the mouse over the
command regions in the proof script.
If non-nil, automatically raise buffers to display latest output.
If this is not set, buffers and windows will not be managed by
Proof General.
The default value is t
.
Whether response and goals buffers have dedicated windows.
If non-nil, Emacs windows displaying messages from the prover will not
be switchable to display other windows.
This option can help manage your display.
Setting this option triggers a three-buffer mode of interaction where the goals buffer and response buffer are both displayed, rather than the two-buffer mode where they are switched between. It also prevents Emacs automatically resizing windows between proof steps.
If you use several frames (the same Emacs in several windows on the screen), you can force a frame to stick to showing the goals or response buffer.
The default value is t
.
Sometimes during script management, there is no response from the proof
assistant to some command. In this case you might like the empty
response window to be hidden so you have more room to see the proof
script. The setting proof-delete-empty-windows
helps you do this.
If non-nil, automatically remove windows when they are cleaned.
For example, at the end of a proof the goals buffer window will
be cleared; if this flag is set it will automatically be removed.
If you want to fix the sizes of your windows you may want to set this
variable to 'nil'
to avoid windows being deleted automatically.
If you use multiple frames, only the windows in the currently
selected frame will be automatically deleted.
The default value is nil
.
This option only has an effect when you have set
proof-three-window-mode
.
If you are working on a machine with a window system, you can use Emacs to manage several frames on the display, to keep the goals buffer displayed in a fixed place on your screen and in a certain font, for example. A convenient way to do this is via the user option
Whether response and goals buffers have separate frames.
If non-nil, Emacs will make separate frames (screen windows) for
the goals and response buffers, by altering the Emacs variable
‘special-display-regexps
’.
The default value is nil
.
Multiple frames work best when proof-delete-empty-windows
is off
and proof-three-window-mode
is on.
Finally, there are two commands available which help to switch between buffers or refresh the window layout. These are on the menu:
Proof-General -> Buffers |
Display the response, trace, goals, or shell buffer, rotating.
A fixed number of repetitions of this command switches back to
the same buffer.
Also move point to the end of the response buffer if it’s selected.
If in three window or multiple frame mode, display two buffers.
The idea of this function is to change the window->buffer mapping
without adjusting window layout.
Refresh the display of windows according to current display mode.
For multiple frame mode, this function obeys the setting of
‘pg-response-eagerly-raise
’, which see.
For single frame mode:
- In two panes mode, this uses a canonical layout made by splitting
Emacs windows in equal proportions. The splitting is vertical if
Emacs width is smaller than ‘split-width-threshold
’ and
horizontal otherwise. You can then adjust the proportions by
dragging the separating bars.
- In three pane mode, there are three display modes, depending
where the three useful buffers are displayed: scripting buffer, goals buffer and response buffer. Here are the three modes: - vertical: the 3 buffers are displayed in one column. - hybrid: 2 columns mode, left column displays scripting buffer and right column displays the 2 others. - horizontal: 3 columns mode, one for each buffer (script, goals, response). By default, the display mode is automatically chosen by considering the current Emacs frame width: if it is smaller than ‘ |
If non-nil, automatically shrink output windows to fit contents.
In single-frame mode, this option will reduce the size of the
goals and response windows to fit their contents.
The default value is nil
.
If non-nil, colour the locked region with ‘proof-locked-face
’.
If this is not set, buffers will have no special face set
on locked regions.
The default value is t
.
Non-nil causes Proof General to add tooltips for prover output.
Hovers will be added when this option is non-nil. Prover outputs
can be displayed when the mouse hovers over the region that
produced it and output is available (see ‘proof-full-annotation
’).
If output is not available, the type of the output region is displayed.
Changes of this option will not be reflected in already-processed
regions of the script.
The default value is nil
.
Here is a list of the important user options for Proof General, apart from the display options mentioned above.
User options can be set via the customization system already mentioned,
via the old-fashioned M-x edit-options
mechanism, or simply by
adding setq
’s to your ‘.emacs’ file. The first approach is
strongly recommended.
Unless mentioned, all of these settings can be changed dynamically, without needing to restart Emacs to see the effect. But you must use customize to be sure that Proof General reconfigures itself properly.
If non-nil, display a splash screen when Proof General is loaded.
The default value is t
.
If non-nil, use electric terminator mode.
If electric terminator mode is enabled, pressing a terminator will
automatically issue ‘proof-assert-next-command’ for convenience,
to send the command straight to the proof process. If the command
you want to send already has a terminator character, you don’t
need to delete the terminator character first. Just press the
terminator somewhere nearby. Electric!
The default value is nil
.
If non-nil, PG will use heuristics to insert newlines or spaces in scripts.
In particular, if electric terminator is switched on, spaces or newlines will
be inserted as the user types commands to the prover.
The default value is t
.
If non-nil, display Proof General toolbar for script buffers.
The default value is t
.
If non-nil, query user to save files when activating scripting.
Often, activating scripting or executing the first scripting command of a proof script will cause the proof assistant to load some files needed by the current proof script. If this option is non-nil, the user will be prompted to save some unsaved buffers in case any of them corresponds to a file which may be loaded by the proof assistant.
You can turn this option off if the save queries are annoying, but be warned that with some proof assistants this may risk processing files which are out of date with respect to the loaded buffers!
The default value is t
.
If non-nil, enable indentation code for proof scripts.
The default value is t
.
If non-nil, format for newlines after each command in a script.
The default value is t
.
Set to t to omit complete opaque proofs for speed reasons.
When t, complete opaque proofs in the asserted region are not
sent to the proof assistant (and thus not checked). For files
with big proofs this can drastically reduce the processing time
for the asserted region at the cost of not checking the proofs.
For partial and non-opaque proofs in the asserted region all
proof commands are sent to the proof assistant.
Using a prefix argument for ‘proof-goto-point
’ (M-x proof-goto-point
)
or ‘proof-process-buffer
’ (M-x proof-process-buffer
) temporarily
disables omitting proofs.
If non-nil, query user which program to run for the inferior process.
The default value is nil
.
Arguments to be passed to ‘proof-prog-name
’ to run the proof assistant.
If non-nil, will be treated as a list of arguments for ‘proof-prog-name
’.
Otherwise ‘proof-prog-name
’ will be split on spaces to form arguments.
Remark: Arguments are interpreted strictly: each one must contain only one word, with no space (unless it is the same word). For example if the arguments are -x foo -y bar, then the list should be ’("-x" "foo" "-y" "bar"), notice that ’("-x foo" "-y bar") is wrong.
Modifications to ‘process-environment
’ made before running ‘proof-prog-name
’.
Each element should be a string of the form ENVVARNAME=value. They will be
added to the environment before launching the prover (but not pervasively).
For example for coq on Windows you might need something like:
(setq coq-prog-env
’("HOME=C:\Program Files\Coq\"))
If non-nil, use ‘proof-guess-command-line
’ to guess ‘proof-prog-name
’.
This option is compatible with ‘proof-prog-name-ask
’.
No effect if ‘proof-guess-command-line
’ is nil.
The default value is nil
.
Non-nil indicates that the response buffer should be cleared often.
The response buffer can be set either to accumulate output, or to
clear frequently.
With this variable non-nil, the response buffer is kept tidy by clearing it often, typically between successive commands (just like the goals buffer).
Otherwise the response buffer will accumulate output from the prover.
The default value is t
.
Whether to keep a browsable history of responses.
With this feature enabled, the buffers used for prover responses will have a
history that can be browsed without processing/undoing in the prover.
(Changes to this variable take effect after restarting the prover).
The default value is nil
.
Size of history ring of previous successfully processed commands.
The default value is 32
.
Non-nil to run Proof General in debug mode.
This changes some behaviour (e.g. markup stripping) and displays
debugging messages in the response buffer. To avoid erasing
messages shortly after they’re printed, set ‘proof-tidy-response
’ to nil.
This is only useful for PG developers.
The default value is nil
.
Choice of how point moves with script processing commands.
One of the symbols: 'locked
, 'follow
, 'followdown
, 'ignore
.
If 'locked
, point sticks to the end of the locked region.
If 'follow
, point moves just when needed to display the locked region end.
If 'followdown
, point if necessary to stay in writeable region
If 'ignore
, point is never moved after movement commands or on errors.
If you choose 'ignore
, you can find the end of the locked using
M-x proof-goto-end-of-locked
The default value is locked
.
If 'retract
or 'process
, do that when deactivating scripting.
With this option set to 'retract
or 'process
, when scripting
is turned off in a partly processed buffer, the buffer will be
retracted or processed automatically.
With this option unset (nil), the user is questioned instead.
Proof General insists that only one script buffer can be partly processed: all others have to be completely processed or completely unprocessed. This is to make sure that handling of multiple files makes sense within the proof assistant.
NB: A buffer is completely processed when all non-whitespace is locked (coloured blue); a buffer is completely unprocessed when there is no locked region.
For some proof assistants (such as Coq) fully processed buffers make
no sense. Setting this option to 'process
has then the same effect
as leaving it unset (nil). (This behaviour is controlled by
‘proof-no-fully-processed-buffer
’.)
The default value is nil
.
Shell command prefix to run a command on a remote host.
For example,
ssh bigjobs |
Would cause Proof General to issue the command ‘ssh bigjobs coqtop’ to start Coq remotely on our large compute server called ‘bigjobs’.
The protocol used should be configured so that no user interaction (passwords, or whatever) is required to get going. For proper behaviour with interrupts, the program should also communicate signals to the remote host.
The default value is nil
.
The numerous fonts and colours that Proof General uses are configurable. If you alter faces through the customize menus (or the command M-x customize-face), only the particular kind of display in use (colour window system, monochrome window system, console, …) will be affected. This means you can keep separate default settings for each different display environment where you use Proof General.
As well as the faces listed below, Proof General may use the regular
font-lock-
faces (eg font-lock-keyword-face
,
font-lock-variable-name-face
, etc) for fontifying the proof
script or proof assistant output. These can be altered to your taste
just as easily, but note that changes will affect all other modes
which use them!
| 8.5.1 Script buffer faces | ||
| 8.5.2 Goals and response faces |
Face for commands in proof script waiting to be processed.
Face for locked region of proof script (processed commands).
Proof General face for marking an error in the proof script.
Proof General face for highlighting an error in the proof script.
General mouse highlighting face used in script buffer.
Face for showing (backwards) dependent parts.
Face for showing (forwards) dependencies.
Face for declaration names in proof scripts.
Exactly what uses this face depends on the proof assistant.
Face for names of tacticals in proof scripts.
Exactly what uses this face depends on the proof assistant.
Face for error messages from proof assistant.
Face for warning messages.
Warning messages can come from proof assistant or from Proof General itself.
Face for debugging messages from Proof General.
Face for boring text in proof assistant output.
Face for showing active areas (clickable regions), outside of subterm markup.
Face for important messages from proof assistant.
The slightly bizarre name of the last face comes from the idea that while large amounts of output are being sent from the prover, some messages should be displayed to the user while the bulk of the output is hidden. The messages which are displayed may have a special annotation to help Proof General recognize them, and this is an "eager" annotation in the sense that it should be processed as soon as it is observed by Proof General.
This section is a note for advanced users.
Configuration settings are the per-prover customizations of Proof General. These are not intended to be adjusted by the user. But occasionally you may like to test changes to these settings to improve the way Proof General works. You may want to do this when a proof assistant has a flexible proof script language in which one can define new tactics or even operations, and you want Proof General to recognize some of these which the default settings don’t mention. So please feel free to try adjusting the configuration settings and report to us if you find better default values than the ones we have provided.
The configuration settings appear in the customization group
prover-config
, or via the menu
Proof-General -> Internals -> Prover Config |
One basic example of a setting you may like to tweak is:
Web address for information on proof assistant.
Used for Proof General’s help menu.
Most of the others are more complicated. For more details of the
settings, see Adapting Proof General for full details. To browse
the settings, you can look through the customization groups
prover-config
, proof-script
and proof-shell
. The
group proof-script
contains the configuration variables for
scripting, and the group proof-shell
contains those for
interacting with the proof assistant.
Unfortunately, although you can use the customization mechanism to set
and save these variables, saving them may have no practical effect
because the default settings are mostly hard-wired into the proof
assistant code. Ones we expect may need changing appear as proof
assistant specific configurations. For example,
proof-assistant-home-page
is set in the Coq code from the value
of the customization setting coq-www-home-page
. At present
there is no easy way to save changes to other configuration variables
across sessions, other than by editing the source code. (In future
versions of Proof General, we plan to make all configuration
settings editable in Customize, by shadowing the settings as
prover specific ones using the PA-
mechanism).
This document was generated on April 14, 2023 using texi2html 1.82.


Basically, Backpressure
Streams support a cool thing called backpressure. This amazing concept basically enables two-way communication within a stream, where the consumer of the stream can speak to its source and be like HEY MAN SLOW DOWN I CAN'T PROCESS THINGS THAT FAST.
Basically, you give a stream a maxiumum number of things it can hold in its underlying sink, any more than that, and it says dude, wait.
Here's an example.
Basically, we try and write to our WritableStream 5000 times in quick succession. We've configured the WritableStream to only be able to handle 1000 things in its queue, using what is called a CountQueuingStrategy's highWaterMark, which is the point at which the WritableStream starts applying backpressure, saying back off, bro.
When you click Start, you should be able to see it all in action.
Each time the progress bar stops, the WritableStream is applying backpressure.

- Basically, Forking Streams
Further Reading: WhatWG Spec


UK finance minister Javid promises 'very detailed costings' of Conservative manifesto
by ReutersLONDON — British finance minister Sajid Javid said on Sunday the governing Conservative Party would deliver a “very detailed costings document” at the launch of its election manifesto, promising to lower the country’s debt.
“We are also announcing the triple tax lock which is our commitment giving more financial security to working people… We will set out today, alongside our manifesto…a very detailed costings document,” Javid told Sky News.
Britons vote in a parliamentary election on Dec. 12, with opinion polls showing the ruling Conservative Party led by Prime Minister Boris Johnson ahead of its challengers.
“We will be balance day-to-day spending and we can still afford to borrow up to a limit for investment in economic infrastructure,” Javid said.
“We are still clear that even with our program, our program for investment, that debt will be lower at the end of this parliament than at the start of parliament.” (Reporting by Elizabeth Piper; Editing by Angus MacSwan)


// group by generator indices to produce
// unsorted regions in nested list
groups = [list(list(zip(*list(g)))[1])
for k, g in itertools.groupby(array_associations,
lambda t: t[0])]
self.regions = groups
def sort_vertices_of_regions(self):
// split flattened groups to get nested list of unsorted regions
groups = [list(flattened_groups[intervals[i]:intervals[i + 1]])
for i in range(len(intervals) - 1)]
self.regions = groups
def sort_vertices_of_regions(self):


Node.js is a software platform for scalable server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on Mac OS X, Windows and Linux with no changes
Node Package Manager (npm) installs, publishes and manages node programs through command line.
npm install name-of-package
A stream builder written in Javascript.
A stream represents an object that can either be the source of data or it can be the target of data.
"We should have some ways of connecting programs like garden hose--screw in another segment when it becomes necessary to massage data in another way. This is the way of I/O also."
gulpfile.js
package.json
gulpfile.js
+ package.json
to your project to Github.


My name is Muhammad. I am an aspiring web developer residing in California's Bay Area. I build websites and apps for the modern world.
I've been working in tech support most of my life and one day realized I didn't love it, so I decided it was time to change tracks and now I'm here making amazing sites and apps and having fun all the while.
| Skill/Tool | Competency |
|---|---|
| HTML | |
| Javascript | |
| jQuery | |
| Bulma CSS | |
| Web APIs | |
| Bootstrap | |
| Node JS | |
| OOP |
COVID-19 Tracker
Get data on COVID-19 for a given state and nearby testing locations. Utilizes Web APIs, ChartJS, Bulma CSS, and teamwork.
Weather Dashboard
Search weather conditions for your location. Includes 5-day forecast. Utilizes Web APIs, dynamic HTML generation, and local storage.
Password Generator
Create a secure pasword 8-255 characters long by selecting various criteria. Utilizes Javascript and basic CSS.
Reading Log
Add books to a database and track read/unread status. Utilizes Javascript, MySQL, Express/Handlebars, and MVC Framework.


Home
News
Contact
One Tap System Search
Search
Our College Departments
Click on the department name to get the information
Computer Engineering
Information Technology
Mechanical Engineering
Civil Engineering
Elec. & Telecommunication
Electrical Engineering


Fresh Strawberries
Felligentsia irony vegan swag hoodie keytar kitsch pork belly everyday carry. Flexitarian cornhole.


In recent years, there have been numerous cases involving the fatal shooting of Black Americans by the
police. In majority of these cases, the police officers involved in the shooting were let off with a slap on
the wrist leaving the victims’ families unsatisfied with the ruling.
Based on this, we decided to conduct an analysis of police shooting incidents in America from 2015 to date, to
ascertain if the shootings were justified in a bid to help victims and their families seeking justice to get
it. To achieve this, we performed clustering technique on our data to discover patterns about police shootings
that could help the victims and their families in their lawsuit against the police.
Based on this, we decided to conduct an analysis of police shooting incidents in America from 2015 to date, to
ascertain if the shootings were justified in a bid to help victims and their families seeking justice to get
it. To achieve this, we used a supervised learning algorithm to predict the probability of a gunshot being
ruled as unjustified. Cases with probabilities equal to or higher than 60% are most likely unjust. Hence, this
approach could help the victims, their families as well as NGOs, in their lawsuit against accused police
officer(s).
The ‘shooting’ dataset contains data about people that have been shot and killed by the police from 2015 to
2020 such as their name, age, gender and race. Additionally, information is provided about their date of
shooting and where it happened, their mental state, if they posed any threat, if they had any weapon on them
and if the police was wearing a body camera. You can access the dataset here.


p
save as png
w
save as JSON
o
load JSON
?
toggle help
Layout
a
80x25
Text
constraint.systems
view source


Picture this figure of speech. It's not so much poetic as graceless and gross, much like Gil Junger's 10 Things I Hate About You, a film loosely based on the Bard's The Taming of the Shrew.
Here's the premise: two beautiful sisters living in Washington state stand for opposite worldviews – one superficial and pleasure-seeking, the other feminist and intelligent. The position of Bianca Stratford (Larisa Oleynik), peeved that she is not allowed to date boys, worsens when her obstetrician father changes the rule. Now Bianca can date only when Kat dates! This seems unlikely, as Kat is the shrew of Shakespeare's title, a determined little termagant who shuns guys only after she has mentally outshone them. Here now – complications. At wit's end, Bianca exploits a boy with a crush on her, a new kid in school named Cameron (Joseph Gordon Levitt). In a convoluted series of schemes, a handsome bad boy (Patrick Verona, played by Heath Ledger) is paid to woo Kat. Hence Bianca is free to date the slimy Joey Donner (Andrew Keegan), although she had suggested she'd be dating Cameron in return for his favor.
Still with it? The basic love stories are promising, especially a minor one involving a friend of Cameron's and a friend of Kat's. But the turns of romantic plot are too predictable, and the resulting relationships fall flat. How can viewers believe a repulsive young man like Verona can become a desirable, even noble character? Does Bianca truly overcome her shallowness and attain a mantle of decency? And most crucially, why is the shrew tamed so relatively easily? Heaps of questions occur to the watcher of this film.
Julia Stiles is the most striking cast member, and does a strong job portraying Kat's feminist bent. Karen McCullah Lutz's screenplay, though, casts Kat as a closet Barbie, ready to comply when she is pleased. A strong facial resemblance helps Oleynik in being convincing as the sister. Oleynik is fine as Bianca, especially in portraying the occasional shallowness that is such a strong contrast to Kat's cultural politics.
Larry Miller plays the father of Kat and Bianca as an overprotective buffoon. He's an undeveloped caricature about whom we ultimately care very little. Let it be enough to say that the writing has him telling us about his character, when real characters show themselves. Needless to say, his wife is missing from the scene. The result does not make us sympathize for the plight of his single parenthood, as much as it makes us wonder if screenwriters don't kill parents off just to have less characters to flesh out fully.
In a couple of small roles, David Leisure and Daryl Mitchell play teachers who add funny moments to the film. But the tones of their characterization again intrude, and the viewer wonders if she is watching realism or over-the-top camp. The filthy language and personal insults used by Mr. Morgan (Mitchell's teacher) are downright unbelievable. It's almost as though the film is trying to exaggerate in the same way the situations in Clueless were exaggerated – but 10 Things is much less successful.
The film's faults are many. For one, Budweiser must have paid dearly for product placement. How advisable is it, however, to place your product in the hands of hundreds of actors playing underage drinkers? Another, larger flaw is the sense of irresponsibility. Again and again the youngsters peopling the film do nasty things to each other and fail to pay for them. From silly schtick – Bianca shooting her coach with an arrow – to major deception, 10 Things I Hate About You reinforces the notion that horrible behaviors often don't carry consequences. Yes, there are the conventions of teen movies: references to sex, scanty clothing (enough navels, already!) and endless sight gags. Not that a film must be politically correct, but this one also points out several cliques, poking fun at each of them. The satire is done nicely, but in the end the tone is less than tolerant. Oh, besides Mitchell, there is one African-American actress, Gabrielle Union, as one of Bianca's shallow friends. The lack of diversity is one shortcoming, but it's the film's careless accenting of reckless attitudes that crosses the line from harmless fluff to become offensive drivel. In the current flood of teen-oriented films, when is a director going to respect this line?
The tie-in with Shakespeare is what drew my attention. No similar relation exists with the spate of new teen flicks. So for the millions of moviegoers not targeted by filmmakers exploiting this genre, do not hesitate to miss them. Even the use of Good Will could not add weight to this piece; come on, how much more lightness do the young people of the world need?
Get Your Private, Free Email at http://www.hotmail.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A set of estimators and tests for panel data econometrics.
| Version: |
1.6-6 |
| Depends: |
R (≥ 3.1.0), Formula (≥ 0.2-0), stats |
| Imports: |
MASS, bdsmatrix, zoo, nlme, sandwich, lattice, lmtest, maxLik |
| Suggests: |
AER, car, pcse, clusterSEs, clubSandwich, pglm, spdep, splm, statmod, Ecdat, pder, stargazer, texreg, foreign |
| Published: |
2017-11-07 |
| Author: |
Yves Croissant [aut, cre],
Giovanni Millo [aut],
Kevin Tappe [aut],
Ott Toomet [ctb],
Christian Kleiber [ctb],
Achim Zeileis [ctb],
Arne Henningsen [ctb],
Liviu Andronic [ctb],
Nina Schoenfelder [ctb] |
| Maintainer: |
Yves Croissant <yves.croissant at univ-reunion.fr> |
| License: |
GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: |
https://cran.r-project.org/package=plm,
https://r-forge.r-project.org/projects/plm/ |
| NeedsCompilation: |
no |
| Citation: |
plm citation info |
| Materials: |
NEWS |
| In views: |
Econometrics, SpatioTemporal |
| CRAN checks: |
plm results |


Calculate if all values that share the same consecutive keys are true.
Calculate if all values that share the same consecutive keys are true.
Finds if all of the values of an input array are true according to an array of keys. All values corresponding to each group of consecutive equal keys will be tested to make sure all are true. Keys can repeat, however only consecutive key values will be considered for each reduction. If a key value is repeated somewhere else in the keys array it will be considered the start of a new reduction. There are two outputs: the reduced set of consecutive keys and the corresponding final reduced values. An example demonstrating the reduction behavior can be seen in the following snippet.
The keys input type must be an integer type(s32 or u32). The values return type will be of type b8.
The input keys must be a 1-D vector matching the size of the reduced dimension. In the case of multiple dimensions in the input values array, the dim parameter specifies which dimension to reduce along. An example of multi-dimensional reduce by key can be seen below:


--- layout: post title: PlasmoDB 5.0 is fully released (PlasmoDB 4.4 still available) category: [PlasmoDB] --- We are pleased to announce the first full release of the Plasmodium Genome Database, Version 5.0, now as www.plasmodb.org. (Many of you have had a chance to explore the beta-release version as v5-0.plasmodb.org).
PlasmoDB 5.0 implements significant 'under-the-hood' changes, making it much easier to generate future releases in short cycles. In addition, these changes to ensure a consistent look for all ApiDB projects, including PlasmoDB, CryptoDB, and ToxoDB (supported by a Bioinformatics Resource Center contract from the US NIH / NIAID).
Because it will take some time to implement all of the PlasmoDB 4.4 functionality in the new architecture, PlasmoDB 4.4 remains active, and the results of queries run under it may be exported to PlasmoDB 5.0 (see PlasmoDB 4.4 Query History).
New Data in PlasmoDB 5.0 (relative to version 4.4) include:
New Features in PlasmoDB 5.0 Include:
Finally, we are pleased to report a new CD-ROM version of the Plasmodium Genome Database. PlasmoCD provides users lacking reliable high-speed internet connections with full access to the complete genomes of P. falciparum, P. vivax, and P. yoelii, along with gene models, annotation, BLAST hits, ortholog results, expression data, and search functions for querying and integrating these results across species.


Market Monster
About
Log In
Sign Up Now
First Name
Last Name
Email Address
Username
Password
Country
Gender
Male
Female
Other
Birthday
About
Private or Public Profile
Keep it hidden! (Private)
Show it off! (Public)
Upload Image
Select your avatar
Add an image of yourself or your favorite monster photo.
Remember Me


A common frameshift mutation and other variants in GJB4 (connexin 30.3): Analysis of hearing impairment families.
Abstract
Mutations in GJB1, GJB2, GJB3 and GJB6 are involved in hearing impairment. GJB2, GJB3 and GJB6 are also mutated in patients with hyperproliferative skin disorders. The human GJB4 gene has been deduced in silico and a mutation in a family with erythrokeratodermia variabilis has been reported. We describe here the analysis of the GJB4 gene in hearing impairment patients and control subjects. We have identified a common (4%) frameshift mutation (154del4) in GJB4 in both affected and hearing subjects, one patient being homozygous for the mutation. We have also detected five amino acid variants (R103C, R124Q, R160C, C169W and E204A) in individuals that have not skin disorders. While mutation 154del4 is not associated with hearing impairment the involvement of some of the amino acid variants detected here is uncertain. These GJB4 variants should help to define the putative role of connexin 30.3 in both skin disorders and hearing impairment.


Feature File: features/GoogleFooterLinksTest.feature
Feature: Google Footer links Checkup
Scenario Outline: Selecting different footer links and checking the corresponding page
When I select "<footerLink_text>" link in the Google footer (passed : 3s)
Then I verified the selected Google page by the existence of the "<linkedPage_text>" text (passed : 0s)
Scenario Outline: Selecting different footer links and checking the corresponding page
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 2s)
When I select "Privacy" link in the Google footer (passed : 3s)
Then I verified the selected Google page by the existence of the "This Privacy Policy is meant to help you" text (passed : 0s)
Scenario Outline: Selecting different footer links and checking the corresponding page
Given I launch the Google home page url (passed : 3s)
And I scroll down to the end of the page (passed : 2s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
When I select "Terms" link in the Google footer (passed : 2s)
Then I verified the selected Google page by the existence of the "Thanks for using our products and services" text (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "<terms_service>" (undefined)
Then I verified the selected "<terms_detail>" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Using our Services" (undefined)
Then I verified the selected "You must follow any policies made available" Terms detail (undefined)
Given I launch the Google home page url (passed : 3s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Your Google Account" (undefined)
Then I verified the selected "You may need a Google Account in order" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Privacy and Copyright Protection" (undefined)
Then I verified the selected "We respond to notices of alleged copyright infringement" Terms detail (undefined)
Given I launch the Google home page url (passed : 3s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 3s)
When I click on a specific Terms of Service "Your Content in our Services" (undefined)
Then I verified the selected "you upload, submit, store, send or receive content" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "About Software in our Services" (undefined)
Then I verified the selected "Google gives you a personal, worldwide" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Modifying and Terminating our Services" (undefined)
Then I verified the selected "We are constantly changing and improving our Services" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Our Warranties and Disclaimers" (undefined)
Then I verified the selected "We provide our Services using a commercially reasonable level of skill" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Liability for our Services" (undefined)
Then I verified the selected "TO THE EXTENT PERMITTED BY LAW" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "Business uses of our Services" (undefined)
Then I verified the selected "If you are using our Services on behalf of a business" Terms detail (undefined)
Given I launch the Google home page url (passed : 2s)
And I scroll down to the end of the page (passed : 0s)
Scenario Outline: Selecting different sublinks on the Google Terms footer link
Given I select the Terms link in the Google footer (passed : 2s)
When I click on a specific Terms of Service "About these Terms" (undefined)
Then I verified the selected "We may modify these terms or any additional terms" Terms detail (undefined)
Feature File: features/ToolsQA.feature
Feature: Title of your feature is ToolsQA
Given I launch the Google home page url (passed : 3s)
Scenario: Title of your scenario
And I scroll down to the end of the page (passed : 0s)


#include <slu_ddefs.h>
Functions | |
| void | dGetDiagU (SuperMatrix *L, double *diagU) |
-- Auxiliary routine in SuperLU (version 2.0) -- Lawrence Berkeley National Lab, Univ. of California Berkeley. Xiaoye S. Li September 11, 2003
Purpose =======
GetDiagU extracts the main diagonal of matrix U of the LU factorization.
Arguments =========
L (input) SuperMatrix* The factor L from the factorization Pr*A*Pc=L*U as computed by dgstrf(). Use compressed row subscripts storage for supernodes, i.e., L has types: Stype = SLU_SC, Dtype = SLU_D, Mtype = SLU_TRLU.
diagU (output) double*, dimension (n) The main diagonal of matrix U.
Note ==== The diagonal blocks of the L and U matrices are stored in the L data structures.
|
|
|


These are available in the limits
member of the
VkPhysicalDeviceProperties structure which is returned from
vkGetPhysicalDeviceProperties.
-
maxImageDimension1D
is the largest dimension (width
) that is guaranteed to be supported for all images created with animageType
ofVK_IMAGE_TYPE_1D
. Some combinations of image parameters (format, usage, etc.) may allow support for larger dimensions, which can be queried using vkGetPhysicalDeviceImageFormatProperties. -
maxImageDimension2D
is the largest dimension (width
orheight
) that is guaranteed to be supported for all images created with animageType
ofVK_IMAGE_TYPE_2D
and withoutVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
set inflags
. Some combinations of image parameters (format, usage, etc.) may allow support for larger dimensions, which can be queried using vkGetPhysicalDeviceImageFormatProperties. -
maxImageDimension3D
is the largest dimension (width
,height
, ordepth
) that is guaranteed to be supported for all images created with animageType
ofVK_IMAGE_TYPE_3D
. Some combinations of image parameters (format, usage, etc.) may allow support for larger dimensions, which can be queried using vkGetPhysicalDeviceImageFormatProperties. -
maxImageDimensionCube
is the largest dimension (width
orheight
) that is guaranteed to be supported for all images created with animageType
ofVK_IMAGE_TYPE_2D
and withVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
set inflags
. Some combinations of image parameters (format, usage, etc.) may allow support for larger dimensions, which can be queried using vkGetPhysicalDeviceImageFormatProperties. -
maxImageArrayLayers
is the maximum number of layers (arrayLayers
) for an image. -
maxTexelBufferElements
is the maximum number of addressable texels for a buffer view created on a buffer which was created with theVK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
orVK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
set in theusage
member of the VkBufferCreateInfo structure. -
maxUniformBufferRange
is the maximum value that can be specified in therange
member of any VkDescriptorBufferInfo structures passed to a call to vkUpdateDescriptorSets for descriptors of typeVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
. -
maxStorageBufferRange
is the maximum value that can be specified in therange
member of any VkDescriptorBufferInfo structures passed to a call to vkUpdateDescriptorSets for descriptors of typeVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
. -
maxPushConstantsSize
is the maximum size, in bytes, of the pool of push constant memory. For each of the push constant ranges indicated by thepPushConstantRanges
member of the VkPipelineLayoutCreateInfo structure, (offset
+size
) must be less than or equal to this limit. -
maxMemoryAllocationCount
is the maximum number of device memory allocations, as created by vkAllocateMemory, which can simultaneously exist. -
maxSamplerAllocationCount
is the maximum number of sampler objects, as created by vkCreateSampler, which can simultaneously exist on a device. -
bufferImageGranularity
is the granularity, in bytes, at which buffer or linear image resources, and optimal image resources can be bound to adjacent offsets in the sameVkDeviceMemory
object without aliasing. See Buffer-Image Granularity for more details. -
sparseAddressSpaceSize
is the total amount of address space available, in bytes, for sparse memory resources. This is an upper bound on the sum of the size of all sparse resources, regardless of whether any memory is bound to them. -
maxBoundDescriptorSets
is the maximum number of descriptor sets that can be simultaneously used by a pipeline. AllDescriptorSet
decorations in shader modules must have a value less thanmaxBoundDescriptorSets
. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sets. -
maxPerStageDescriptorSamplers
is the maximum number of samplers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_SAMPLER
orVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler. -
maxPerStageDescriptorUniformBuffers
is the maximum number of uniform buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic. -
maxPerStageDescriptorStorageBuffers
is the maximum number of storage buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic. -
maxPerStageDescriptorSampledImages
is the maximum number of sampled images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage, and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer. -
maxPerStageDescriptorStorageImages
is the maximum number of storage images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, orVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage, and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer. -
maxPerStageDescriptorInputAttachments
is the maximum number of input attachments that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. These are only supported for the fragment stage. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment. -
maxPerStageResources
is the maximum number of resources that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
,VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
,VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. For the fragment shader stage the framebuffer color attachments also count against this limit. -
maxDescriptorSetSamplers
is the maximum number of samplers that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_SAMPLER
orVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampler and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler. -
maxDescriptorSetUniformBuffers
is the maximum number of uniform buffers that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic. -
maxDescriptorSetUniformBuffersDynamic
is the maximum number of dynamic uniform buffers that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic. -
maxDescriptorSetStorageBuffers
is the maximum number of storage buffers that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic. -
maxDescriptorSetStorageBuffersDynamic
is the maximum number of dynamic storage buffers that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic. -
maxDescriptorSetSampledImages
is the maximum number of sampled images that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-combinedimagesampler, https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage, and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer. -
maxDescriptorSetStorageImages
is the maximum number of storage images that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, orVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage, and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer. -
maxDescriptorSetInputAttachments
is the maximum number of input attachments that can be included in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set count against this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-inputattachment. -
maxVertexInputAttributes
is the maximum number of vertex input attributes that can be specified for a graphics pipeline. These are described in the array ofVkVertexInputAttributeDescription
structures that are provided at graphics pipeline creation time via thepVertexAttributeDescriptions
member of the VkPipelineVertexInputStateCreateInfo structure. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-attrib and https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input. -
maxVertexInputBindings
is the maximum number of vertex buffers that can be specified for providing vertex attributes to a graphics pipeline. These are described in the array ofVkVertexInputBindingDescription
structures that are provided at graphics pipeline creation time via thepVertexBindingDescriptions
member of the VkPipelineVertexInputStateCreateInfo structure. Thebinding
member ofVkVertexInputBindingDescription
must be less than this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input. -
maxVertexInputAttributeOffset
is the maximum vertex input attribute offset that can be added to the vertex input binding stride. Theoffset
member of theVkVertexInputAttributeDescription
structure must be less than or equal to this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input. -
maxVertexInputBindingStride
is the maximum vertex input binding stride that can be specified in a vertex input binding. Thestride
member of theVkVertexInputBindingDescription
structure must be less than or equal to this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input. -
maxVertexOutputComponents
is the maximum number of components of output variables which can be output by a vertex shader. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-vertex. -
maxTessellationGenerationLevel
is the maximum tessellation generation level supported by the fixed-function tessellation primitive generator. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation. -
maxTessellationPatchSize
is the maximum patch size, in vertices, of patches that can be processed by the tessellation control shader and tessellation primitive generator. ThepatchControlPoints
member of the VkPipelineTessellationStateCreateInfo structure specified at pipeline creation time and the value provided in theOutputVertices
execution mode of shader modules must be less than or equal to this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation. -
maxTessellationControlPerVertexInputComponents
is the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation control shader stage. -
maxTessellationControlPerVertexOutputComponents
is the maximum number of components of per-vertex output variables which can be output from the tessellation control shader stage. -
maxTessellationControlPerPatchOutputComponents
is the maximum number of components of per-patch output variables which can be output from the tessellation control shader stage. -
maxTessellationControlTotalOutputComponents
is the maximum total number of components of per-vertex and per-patch output variables which can be output from the tessellation control shader stage. -
maxTessellationEvaluationInputComponents
is the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation evaluation shader stage. -
maxTessellationEvaluationOutputComponents
is the maximum number of components of per-vertex output variables which can be output from the tessellation evaluation shader stage. -
maxGeometryShaderInvocations
is the maximum invocation count supported for instanced geometry shaders. The value provided in theInvocations
execution mode of shader modules must be less than or equal to this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry. -
maxGeometryInputComponents
is the maximum number of components of input variables which can be provided as inputs to the geometry shader stage. -
maxGeometryOutputComponents
is the maximum number of components of output variables which can be output from the geometry shader stage. -
maxGeometryOutputVertices
is the maximum number of vertices which can be emitted by any geometry shader. -
maxGeometryTotalOutputComponents
is the maximum total number of components of output, across all emitted vertices, which can be output from the geometry shader stage. -
maxFragmentInputComponents
is the maximum number of components of input variables which can be provided as inputs to the fragment shader stage. -
maxFragmentOutputAttachments
is the maximum number of output attachments which can be written to by the fragment shader stage. -
maxFragmentDualSrcAttachments
is the maximum number of output attachments which can be written to by the fragment shader stage when blending is enabled and one of the dual source blend modes is in use. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb and dualSrcBlend. -
maxFragmentCombinedOutputResources
is the total number of storage buffers, storage images, and outputLocation
decorated color attachments (described in Fragment Output Interface) which can be used in the fragment shader stage. -
maxComputeSharedMemorySize
is the maximum total storage size, in bytes, available for variables declared with theWorkgroup
storage class in shader modules (or with theshared
storage qualifier in GLSL) in the compute shader stage. When variables declared with theWorkgroup
storage class are explicitly laid out (hence they are also decorated withBlock
), the amount of storage consumed is the size of the largest Block variable, not counting any padding at the end. The amount of storage consumed by the non-Block variables declared with theWorkgroup
storage class is implementation-dependent. However, the amount of storage consumed may not exceed the largest block size that would be obtained if all active non-Block variables declared withWorkgroup
storage class were assigned offsets in an arbitrary order by successively taking the smallest valid offset according to the Standard Storage Buffer Layout rules. (This is equivalent to using the GLSL std430 layout rules.) -
maxComputeWorkGroupCount
[3] is the maximum number of local workgroups that can be dispatched by a single dispatch command. These three values represent the maximum number of local workgroups for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the dispatch commands must be less than or equal to the corresponding limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dispatch. -
maxComputeWorkGroupInvocations
is the maximum total number of compute shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by theLocalSize
execution mode in shader modules or by the object decorated by theWorkgroupSize
decoration, must be less than or equal to this limit. -
maxComputeWorkGroupSize
[3] is the maximum size of a local compute workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. Thex
,y
, andz
sizes, as specified by theLocalSize
execution mode or by the object decorated by theWorkgroupSize
decoration in shader modules, must be less than or equal to the corresponding limit. -
subPixelPrecisionBits
is the number of bits of subpixel precision in framebuffer coordinates xf and yf. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast. -
subTexelPrecisionBits
is the number of bits of precision in the division along an axis of an image used for minification and magnification filters. 2subTexelPrecisionBits
is the actual number of divisions along each axis of the image represented. Sub-texel values calculated during image sampling will snap to these locations when generating the filtered results. -
mipmapPrecisionBits
is the number of bits of division that the LOD calculation for mipmap fetching get snapped to when determining the contribution from each mip level to the mip filtered results. 2mipmapPrecisionBits
is the actual number of divisions. -
maxDrawIndexedIndexValue
is the maximum index value that can be used for indexed draw calls when using 32-bit indices. This excludes the primitive restart index value of 0xFFFFFFFF. See fullDrawIndexUint32. -
maxDrawIndirectCount
is the maximum draw count that is supported for indirect draw calls. See multiDrawIndirect. -
maxSamplerLodBias
is the maximum absolute sampler LOD bias. The sum of themipLodBias
member of the VkSamplerCreateInfo structure and theBias
operand of image sampling operations in shader modules (or 0 if noBias
operand is provided to an image sampling operation) are clamped to the range [-maxSamplerLodBias
,+maxSamplerLodBias
]. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-mipLodBias. -
maxSamplerAnisotropy
is the maximum degree of sampler anisotropy. The maximum degree of anisotropic filtering used for an image sampling operation is the minimum of themaxAnisotropy
member of the VkSamplerCreateInfo structure and this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-maxAnisotropy. -
maxViewports
is the maximum number of active viewports. TheviewportCount
member of the VkPipelineViewportStateCreateInfo structure that is provided at pipeline creation must be less than or equal to this limit. -
maxViewportDimensions
[2] are the maximum viewport dimensions in the X (width) and Y (height) dimensions, respectively. The maximum viewport dimensions must be greater than or equal to the largest image which can be created and used as a framebuffer attachment. See Controlling the Viewport. -
viewportBoundsRange
[2] is the [minimum, maximum] range that the corners of a viewport must be contained in. This range must be at least [-2 ×size
, 2 ×size
- 1], wheresize
= max(maxViewportDimensions
[0],maxViewportDimensions
[1]). See Controlling the Viewport.NoteThe intent of the
viewportBoundsRange
limit is to allow a maximum sized viewport to be arbitrarily shifted relative to the output target as long as at least some portion intersects. This would give a bounds limit of [-size
+ 1, 2 ×size
- 1] which would allow all possible non-empty-set intersections of the output target and the viewport. Since these numbers are typically powers of two, picking the signed number range using the smallest possible number of bits ends up with the specified range. -
viewportSubPixelBits
is the number of bits of subpixel precision for viewport bounds. The subpixel precision that floating-point viewport bounds are interpreted at is given by this limit. -
minMemoryMapAlignment
is the minimum required alignment, in bytes, of host visible memory allocations within the host address space. When mapping a memory allocation with vkMapMemory, subtractingoffset
bytes from the returned pointer will always produce an integer multiple of this limit. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess. -
minTexelBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of the VkBufferViewCreateInfo structure for texel buffers. If texelBufferAlignment is enabled, this limit is equivalent to the maximum of theuniformTexelBufferOffsetAlignmentBytes
andstorageTexelBufferOffsetAlignmentBytes
members of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT, but smaller alignment is optionally: allowed bystorageTexelBufferOffsetSingleTexelAlignment
anduniformTexelBufferOffsetSingleTexelAlignment
. If texelBufferAlignment is not enabled, VkBufferViewCreateInfo::offset
must be a multiple of this value. -
minUniformBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of theVkDescriptorBufferInfo
structure for uniform buffers. When a descriptor of typeVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
is updated, theoffset
must be an integer multiple of this limit. Similarly, dynamic offsets for uniform buffers must be multiples of this limit. -
minStorageBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of theVkDescriptorBufferInfo
structure for storage buffers. When a descriptor of typeVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
is updated, theoffset
must be an integer multiple of this limit. Similarly, dynamic offsets for storage buffers must be multiples of this limit. -
minTexelOffset
is the minimum offset value for theConstOffset
image operand of any of theOpImageSample
* orOpImageFetch
* image instructions. -
maxTexelOffset
is the maximum offset value for theConstOffset
image operand of any of theOpImageSample
* orOpImageFetch
* image instructions. -
minTexelGatherOffset
is the minimum offset value for theOffset
,ConstOffset
, orConstOffsets
image operands of any of theOpImage
*Gather
image instructions. -
maxTexelGatherOffset
is the maximum offset value for theOffset
,ConstOffset
, orConstOffsets
image operands of any of theOpImage
*Gather
image instructions. -
minInterpolationOffset
is the base minimum (inclusive) negative offset value for theOffset
operand of theInterpolateAtOffset
extended instruction. -
maxInterpolationOffset
is the base maximum (inclusive) positive offset value for theOffset
operand of theInterpolateAtOffset
extended instruction. -
subPixelInterpolationOffsetBits
is the number of fractional bits that thex
andy
offsets to theInterpolateAtOffset
extended instruction may be rounded to as fixed-point values. -
maxFramebufferWidth
is the maximum width for a framebuffer. Thewidth
member of the VkFramebufferCreateInfo structure must be less than or equal to this limit. -
maxFramebufferHeight
is the maximum height for a framebuffer. Theheight
member of the VkFramebufferCreateInfo structure must be less than or equal to this limit. -
maxFramebufferLayers
is the maximum layer count for a layered framebuffer. Thelayers
member of the VkFramebufferCreateInfo structure must be less than or equal to this limit. -
framebufferColorSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the color sample counts that are supported for all framebuffer color attachments with floating- or fixed-point formats. For color attachments with integer formats, seeframebufferIntegerColorSampleCounts
. -
framebufferDepthSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the supported depth sample counts for all framebuffer depth/stencil attachments, when the format includes a depth component. -
framebufferStencilSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the supported stencil sample counts for all framebuffer depth/stencil attachments, when the format includes a stencil component. -
framebufferNoAttachmentsSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the supported sample counts for a subpass which uses no attachments. -
maxColorAttachments
is the maximum number of color attachments that can be used by a subpass in a render pass. ThecolorAttachmentCount
member of theVkSubpassDescription
orVkSubpassDescription2
structure must be less than or equal to this limit. -
sampledImageColorSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a non-integer color format. -
sampledImageIntegerSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and an integer color format. -
sampledImageDepthSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a depth format. -
sampledImageStencilSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the sample supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a stencil format. -
storageImageSampleCounts
is a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
, andusage
containingVK_IMAGE_USAGE_STORAGE_BIT
. -
maxSampleMaskWords
is the maximum number of array elements of a variable decorated with theSampleMask
built-in decoration. -
timestampComputeAndGraphics
specifies support for timestamps on all graphics and compute queues. If this limit is set toVK_TRUE
, all queues that advertise theVK_QUEUE_GRAPHICS_BIT
orVK_QUEUE_COMPUTE_BIT
in theVkQueueFamilyProperties
::queueFlags
supportVkQueueFamilyProperties
::timestampValidBits
of at least 36. See Timestamp Queries. -
timestampPeriod
is the number of nanoseconds required for a timestamp query to be incremented by 1. See Timestamp Queries. -
maxClipDistances
is the maximum number of clip distances that can be used in a single shader stage. The size of any array declared with theClipDistance
built-in decoration in a shader module must be less than or equal to this limit. -
maxCullDistances
is the maximum number of cull distances that can be used in a single shader stage. The size of any array declared with theCullDistance
built-in decoration in a shader module must be less than or equal to this limit. -
maxCombinedClipAndCullDistances
is the maximum combined number of clip and cull distances that can be used in a single shader stage. The sum of the sizes of any pair of arrays declared with theClipDistance
andCullDistance
built-in decoration used by a single shader stage in a shader module must be less than or equal to this limit. -
discreteQueuePriorities
is the number of discrete priorities that can be assigned to a queue based on the value of each member of VkDeviceQueueCreateInfo::pQueuePriorities
. This must be at least 2, and levels must be spread evenly over the range, with at least one level at 1.0, and another at 0.0. See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-priority. -
pointSizeRange
[2] is the range [minimum
,maximum
] of supported sizes for points. Values written to variables decorated with thePointSize
built-in decoration are clamped to this range. -
lineWidthRange
[2] is the range [minimum
,maximum
] of supported widths for lines. Values specified by thelineWidth
member of the VkPipelineRasterizationStateCreateInfo or thelineWidth
parameter tovkCmdSetLineWidth
are clamped to this range. -
pointSizeGranularity
is the granularity of supported point sizes. Not all point sizes in the range defined bypointSizeRange
are supported. This limit specifies the granularity (or increment) between successive supported point sizes. -
lineWidthGranularity
is the granularity of supported line widths. Not all line widths in the range defined bylineWidthRange
are supported. This limit specifies the granularity (or increment) between successive supported line widths. -
strictLines
specifies whether lines are rasterized according to the preferred method of rasterization. If set toVK_FALSE
, lines may be rasterized under a relaxed set of rules. If set toVK_TRUE
, lines are rasterized as per the strict definition. See Basic Line Segment Rasterization. -
standardSampleLocations
specifies whether rasterization uses the standard sample locations as documented in Multisampling. If set toVK_TRUE
, the implementation uses the documented sample locations. If set toVK_FALSE
, the implementation may use different sample locations. -
optimalBufferCopyOffsetAlignment
is the optimal buffer offset alignment in bytes for vkCmdCopyBufferToImage2KHR, vkCmdCopyBufferToImage, vkCmdCopyImageToBuffer2KHR, and vkCmdCopyImageToBuffer. The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use. -
optimalBufferCopyRowPitchAlignment
is the optimal buffer row pitch alignment in bytes for vkCmdCopyBufferToImage2KHR, vkCmdCopyBufferToImage, vkCmdCopyImageToBuffer2KHR, and vkCmdCopyImageToBuffer. Row pitch is the number of bytes between texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use. -
nonCoherentAtomSize
is the size and alignment in bytes that bounds concurrent access to host-mapped device memory.
Description
- 1
-
For all bitmasks of VkSampleCountFlagBits, the sample count limits defined above represent the minimum supported sample counts for each image type. Individual images may support additional sample counts, which are queried using vkGetPhysicalDeviceImageFormatProperties as described in Supported Sample Counts.
See Also
VkBool32
, VkDeviceSize
, VkPhysicalDeviceProperties, VkSampleCountFlags
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.


Sample project demonstrating a functional static asset pipeline using Grunt, SASS, RequireJS, Almond and resource minification
This application does absolutely nothing, it just shows us when it's loaded.


Builds.Hack.Me
Explore this website and find secret keys. Keys look like this:
KEY{YOURFIRSTKEY}
You might want to keep track of the keys you find. Feel free to write them down, but it's not a competition!
There are 10 keys available on this site (the first was just above you!). Some of them will be more difficult to find than others.
Here are some tips to remember:
- Right click on the web page and click "View Page Source" to the see the source code. Sometimes the developer left things behind!
- Open the developer console in your browser and view the network requests. Maybe there are weird requests on a page?
- Watch for cookies on the web pages. Sometimes they're used for authentication.
 (There won't be any keys there.)
Happy Hacking!


Excalibur can be easily installed using pip.
pip install excalibur-py
Or run directly with the executable!
Download Now!A PDF file defines instructions to place characters at precise x,y coordinates relative to the bottom-left corner of the page. Words are simulated by placing some characters closer than others. Spaces are simulated by placing words relatively far apart.  The format has no internal representation of a table structure.
The Portable Document Format was not designed for tabular data. Sadly, a lot of open data is shared as PDFs and getting tables out for analysis is a pain. A simple copy-and-paste doesn't work. Excalibur makes PDF table extraction very easy, by automatically detecting tables in PDFs and letting you save them into CSVs and Excel files through a web interface.
There are both open and closed-source tools that are widely used for PDF table extraction.  Excalibur is powered by Camelot which gives users additional settings to tweak table extraction and get the best results. You can see how it performs better than other open-source tools and libraries in this comparison.
You get complete control over your data, since all file storage and processing happens on your own local or remote machine. Excalibur can also be configured with MySQL and Celery to execute table extraction jobs in a parallel and distributed manner. By default, jobs are executed sequentially.
You can upload a PDF using the web interface. You can also interact with previous uploads.
You can guide the tool by drawing table areas and column separators in cases where the tables are buried deep inside the text and autodetection fails.
You can save table extraction settings for a PDF once, and apply them on new PDFs to extract tables with similar structures.
Copyright © Camelot Dev 2018
Made with in New Delhi, India


--- layout: post title: Should I use px or ems for css font-size? Neither, use rem! categories: - articles tags: - css - responsive - typography published: true ---
While setting the size of a font is relatively simple; choosing the unit of measuring the size can become complex quickly.
At their core there are two types of font-size units; relative and absolute. Relative units are calculated by their parent element's font-size while absolute units are set at a fixed value. Both types of units are useful.
I often will use both px and em for font-size but recently in CSS3 development there has been a new unit. This unit is called rem or root em unit and allows for far greater flexibility with typography.
..Unless you have a good reason for using these, there are far more efficient and easy to understand units.
Percentage is a relative unit and works exactly how you would think. The unit sizes a font based on its parent's font size. So if the parent is 100% and the child is 25% the child element is 25% of its parent's 100%.
One area for using a percentage is to style a top level html element like body or html to allow units like em to have easier size calculations. This will set the top level parent element so that converting an em to pixel is as easy as moving the decimal point.
{% highlight css %} html { /* ems now are base ten so 1.4em = 14px */ font-size: 62.5%; } {% endhighlight %}The pt or Point unit is something you have probably seen before in your favorite word processing application. A pt unit refers to physical space on a sheet of paper and is therefore an absolute unit. Because of this they should only ever be used with printer friendly stylesheets.
I really dislike this unit of measure and generally try to avoid it.  This is because there are only 6 different keywords. They range from xx-small to medium and back up to xx-large. Lets move on to something more useful.
Pixels are the by far the most accurate and easiest to understand unit of measurement. By setting a font-size in px you are literally instructing the browser to render the font at that exact pixel height. The font will never have a height greater than the pixel value set. This is my bread-and-butter unit. When you need exact measurements go with px.
According to w3.org an em unit is measured by, "the computed font size of the parent element". So what does this mean for us? It means that the em unit is dependent upon it's parent's font-size and is also another relative unit of measure.
Since it is dependent upon the parent element the em has a potential to become compounded. This can lead to some unexpected results. An example of this is if the parent has a font-size of 4em and the child has a font-size of 2em. In actuality the child element will have a font-size of 8em.
To calculate the size of an em you take the parent and multiply it by the child. However, keep in mind that if we have additional parents that they must be calculated as well. This can make em units somewhat difficult to keep track of as the font size can compound quickly.
The rem unit or root em is such a sublime solution to the problem of font sizing. The root element of a page is always the html tag. So by defining a % (yes, this would be a good place to use this method) on the html element, you now have control over every single element using the rem unit.
Back to the previous code example.
{% highlight css %} html { /* rems now are base ten so 1.4em = 14px */ font-size: 62.5%; } h1 { font-size: 2.8rem; } {% endhighlight %}By using this we can now set an h1 tag to 2.8rem and it will render as if it is 28px.
If we are by chance using media queries it is possible to utilize them to typography that will scales with the page size. This is accomplished by redeclaring the font-size percentage for the html element inside a media query. Now all we have to do is change 1 value to affect all font-sizes on multiple devices. This is getting pretty handy now.
{% highlight css %} @media only screen and (min-width: 1140px) { /** * Set the Base Font Size */ html { font-size: 90%; } } {% endhighlight %}As with any new unit there is a catch which is browser support. Fortunately all modern browsers support the rem unit. For older non-compliant browsers by using a font-size with a pixel measurement directly before the rem value allows us to specify a default value.
{% highlight css %} h1 { /* The default value if rem units aren't supported */ font-size: 20px; /* Our fancy new rem unit */ font-size: 2rem; } {% endhighlight %}So there you have it a new unit of measuring font-size and a method for creating flexible typography.


itongworld
If I have seen a little further, It is by standing on the shoulder of giants.
Toggle navigation
itongworld
首页
归档
关于
2016
06-05
PYTHON闭包编程
2015
07-02
JAVA环境变量配置
上一页
下一页


|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要： 嵌套 | 字段 | 构造方法 | 方法 | 详细信息： 字段 | 构造方法 | 方法 |
public interface PixelDataWriter
| 方法摘要 | |
|---|---|
PixelDataDescription |
getPixelDataDescription()
Retrieves the PixelDataDescription . |
void |
writePixelData()
Writes the Pixel Data to an ImageOutputStream . |
void |
writePixelData(javax.imageio.stream.ImageOutputStream out)
Writes the Pixel Data to an ImageOutputStream . |
java.nio.ByteBuffer |
writePixelDataToByteBuffer()
Writes the Pixel Data to a ByteBuffer . |
| 方法详细信息 |
|---|
PixelDataDescription getPixelDataDescription()
PixelDataDescription
.
java.nio.ByteBuffer writePixelDataToByteBuffer()
ByteBuffer
. Please note that the
implementation should not try to evaluate the actual sample values, to
see if they are in the proper range. They are assumed to be correct.
writeOverlayData
- Whether to write overlay data in the initialized
sample array. This is ignored if this class was initialized specifying
that there is no overlay data in the sample array.
ByteBuffer
with the written Pixel Data stream.void writePixelData() throws java.io.IOException
ImageOutputStream
. Please note
that the implementation should not try to evaluate the actual sample
values, to see if they are in the proper range. They are assumed to be
correct.
java.io.IOException
- On I/O errorvoid writePixelData(javax.imageio.stream.ImageOutputStream out) throws java.io.IOException
ImageOutputStream
. Please note
that the implementation should not try to evaluate the actual sample
values, to see if they are in the proper range. They are assumed to be
correct.
out
- An alternative ImageOoutputStream
to write to.
java.io.IOException
- On I/O error
|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要： 嵌套 | 字段 | 构造方法 | 方法 | 详细信息： 字段 | 构造方法 | 方法 |