| AuthoritativeTierOperationOutcomes.ComputeIfAbsentAndFaultOutcome |
the computeIfAbsentAndFault outcomes
|
| AuthoritativeTierOperationOutcomes.FlushOutcome |
the flush outcomes
|
| AuthoritativeTierOperationOutcomes.GetAndFaultOutcome |
the getAndFault outcomes
|
| BulkOps |
Enumeration listing the bulk operations available on a Cache .
|
| CacheOperationOutcomes.ClearOutcome |
Outcomes for cache Clear operations.
|
| CacheOperationOutcomes.ConditionalRemoveOutcome |
The outcomes for conditional remove operations.
|
| CacheOperationOutcomes.GetAllOutcome |
Outcomes for cache getAll operation
|
| CacheOperationOutcomes.GetOutcome |
Outcomes for cache Get operations.
|
| CacheOperationOutcomes.PutAllOutcome |
Outcomes for cache putAll operation
|
| CacheOperationOutcomes.PutIfAbsentOutcome |
The putIfAbsent outcomes.
|
| CacheOperationOutcomes.PutOutcome |
The outcomes for Put Outcomes.
|
| CacheOperationOutcomes.RemoveAllOutcome |
Outcomes for cache removeAll operation
|
| CacheOperationOutcomes.RemoveOutcome |
The outcomes for remove operations.
|
| CacheOperationOutcomes.ReplaceOutcome |
The replace outcomes.
|
| CachingTierOperationOutcomes.GetOrComputeIfAbsentOutcome |
the getOrComputeIfAbsent outcomes
|
| CachingTierOperationOutcomes.InvalidateAllOutcome |
the invalidateAll outcomes
|
| CachingTierOperationOutcomes.InvalidateAllWithHashOutcome |
the invalidateAllWithHash outcomes
|
| CachingTierOperationOutcomes.InvalidateOutcome |
the invalidate outcomes
|
| HigherCachingTierOperationOutcomes.SilentInvalidateAllOutcome |
the invalidateAll outcomes
|
| HigherCachingTierOperationOutcomes.SilentInvalidateAllWithHashOutcome |
the invalidateAllWithHash outcomes
|
| HigherCachingTierOperationOutcomes.SilentInvalidateOutcome |
the silentInvalidate outcomes
|
| LowerCachingTierOperationsOutcome.GetAndRemoveOutcome |
the getAndRemove outcomes
|
| LowerCachingTierOperationsOutcome.InstallMappingOutcome |
the installMapping outcomes
|
| LowerCachingTierOperationsOutcome.InvalidateAllOutcome |
the invalidateAll outcomes
|
| LowerCachingTierOperationsOutcome.InvalidateAllWithHashOutcome |
the invalidateAllWithHash outcomes
|
| LowerCachingTierOperationsOutcome.InvalidateOutcome |
the invalidate outcomes
|
| StatisticType |
|
| StoreOperationOutcomes.ComputeIfAbsentOutcome |
the computeIfAbsent outcomes
|
| StoreOperationOutcomes.ComputeOutcome |
the compute outcomes
|
| StoreOperationOutcomes.ConditionalRemoveOutcome |
the conditional remove outcomes
|
| StoreOperationOutcomes.ConditionalReplaceOutcome |
the conditional replace outcomes
|
| StoreOperationOutcomes.EvictionOutcome |
The eviction outcomes.
|
| StoreOperationOutcomes.ExpirationOutcome |
Outcomes for expiration
|
| StoreOperationOutcomes.GetOutcome |
The get outcomes
|
| StoreOperationOutcomes.PutIfAbsentOutcome |
the putIfAbsent outcomes
|
| StoreOperationOutcomes.PutOutcome |
The put outcomes
|
| StoreOperationOutcomes.RemoveOutcome |
The remove outcomes
|
| StoreOperationOutcomes.ReplaceOutcome |
the replace outcomes
|
| TierOperationOutcomes.EvictionOutcome |
|
| TierOperationOutcomes.GetOutcome |
|


Vendor Name:
DENIS M. CÔTÉ
Reference Number:
4500273449
Contract Date:
2011-12-12
Description of Work:
Training consultants
Contract Period:
2011-12-12 to 2012-31-01
Delivery Date:
2012-31-01
Original Contract Value:
$0.00
Current Contract Value:
$10,226.50


--- layout: default ---
Hi, my name’s Thomas and I am a power electronics engineer and research scientist. I studied at ETH Zurich, Switzerland (Bachelor, Master, and Ph.D) with a focus on power electronics, medium-voltage systems, and numerical analysis. I am currently doing research on magnetic material modeling at the Thayer School of Engineering at Dartmouth College, USA. More specifically, my current research interests include high-frequency magnetic components, high-frequency power magnetic materials, and advanced modeling techniques.
With my engineering and research activities, I am developing several open-source software and libraries, mostly for electrical engineering and numerical analysis. Most of these codes are written either in MATLAB or Python. Some tools are very specific for my research but others might be more useful.


Editing IFrame Options
How to edit the settings of the IFrame.
Select
Edit
>
Edit IFrame Options
from the module actions menu to opens the Edit IFrame page.
Edit one or more settings as required.
Click the
Save
button.


Seventeen's Seungkwan joins fixed cast of JTBC talk variety show, '5 Bros'
by beansssJTBC's newest talk variety show '5 Bros' has finally found the 5th and youngest brother - Seventeen's Seungkwan!
'5 Bros' is a talk variety show where each week, the program's cast members have a heated debate about different topics and create their own rankings of events, individuals, scenarios, etc. Within the program, the 5 male cast members of the show are depicted as 5 brothers, sitting in their living room and chatting. So far, the program's main MCs included Park Joon Hyung, Seo Jang Hoon, Kim Jong Kook, and Lee Jin Hyuk, with different special MCs a.k.a "cousins" filling in while the family's 5th brother was "away".
On November 14, JTBC revealed, "Seungkwan will be joining the show as a fixed MC. His first appearance will be on the 4th episode, coming up on November 21." Will you be watching '5 Bros' with youngest brother Sengkwan, airing every Thursday nights at 11 PM KST?


And now using .round we can smooth the sides down. Also uses .btm-left to show a triangle at the bottom flush to the left.
Some text about heading
Some text about heading
And now using .round we can smooth the sides down. Also uses .btm-left to show a triangle at the bottom flush to the left.
Some text about heading


Slippy Map
Basic Map
Goal
-
- As a user, I want to see my business on the map.
- As a dev, using a map API add a marker or pin on the slippy map.
-
- As a user, I want to see my business on the map and display our logo when pin is clicked.
- As a dev, using a map API add a marker or pin on the slippy map. The pin's infobubble will contain the image HTML element.
Technologies
- Mapbox GL JS API (Library)
- JavaScript
- CSS
- HTML
Resources
Live demo


Originally constructed in the 1930’s, this art-deco space started life with a rich walnut interior. The Harlowe’s team rejoiced to restore this historic building to its original glory. Every panel has been removed carefully, and lovingly refinished. Step inside and let the charming effect transport you back in time.


The compressed remnants of giant stars
What is left after a supernova
Giant atom cores without electron shells
Neutron stars are formed when the gravitational force exceeds the electron degeneracy pressure
The electron shell can no longer resist the force of gravity, and collapses into the nucleus
Electrons fuse with the protons to make an atomic nucleus of neutrons
Neutron star ingredients:
More exciting facts:
Many fast spinning magnetic neutron stars are observed as pulsars
Neutron stars can combine to form black holes
Time would appear to pass more slowly on the surface of a neutron star
This presentation is now over


--- layout: default --- About Sign up now S'inscrire Maintenant A Pan-African Partnership Giving African newsrooms access to the world’s bestdigital experts and storytelling technologies. {{ content }} {% include academy/events.html %} {% include section-partners.html %}
Giving African newsrooms access to the world’s bestdigital experts and storytelling technologies.


--- layout: page title: C parent: SWERC 2016 ---
|
Candle Box
Rita loves her Birthday parties. She is really happy when blowing the candles at the Happy Birthday’s clap melody. Every year since the age of four she adds her birthday candles (one for every year of age) to a candle box. Her younger daydreaming brother Theo started doing the same at the age of three. Rita and Theo boxes look the same, and so do the candles. One day Rita decided to count how many candles she had in her box: − No, no, no! I’m younger than that! She just realized Theo had thrown some of his birthday candles in her box all these years. Can you help Rita fix the number of candles in her candle box? TaskGiven the difference between the ages of Rita and Theo, the number of candles in Rita’s box, and the number of candles in Theo’s box, find out how many candles Rita needs to remove from her box such that it contains the right number of candles. InputThe first line of the input has one integer D, corresponding to the difference between the ages of Rita and Theo. The second line has one integer R, corresponding to the number of candles in Rita’s box. The third line has one integer T, corresponding to the number of candles in Theo’s box. Constraints
OutputAn integer representing the number of candles Rita must remove from her box such that it contains the right number of candles. Sample Input2 26 8 Sample Output4 Computer Science Department Universidade do Porto |


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Appendix E. Release Notes | Next |
Release date: 2005-11-08
Major changes in this release:
Access to the shared buffer cache was identified as a significant scalability problem, particularly on multi-CPU systems. In this release, the way that locking is done in the buffer manager has been overhauled to reduce lock contention and improve scalability. The buffer manager has also been changed to use a "clock sweep" replacement policy.
In previous releases, only a single index could be used to do lookups on a table. With this feature, if a query has WHERE tab.col1 = 4 and tab.col2 = 9, and there is no multicolumn index on col1 and col2, but there is an index on col1 and another on col2, it is possible to search both indexes and combine the results in memory, then do heap fetches for only the rows matching both the col1 and col2 restrictions. This is very useful in environments that have a lot of unstructured queries where it is impossible to create indexes that match all possible access conditions. Bitmap scans are useful even with a single index, as they reduce the amount of random access needed; a bitmap index scan is efficient for retrieving fairly large fractions of the complete table, whereas plain index scans are not.
Two-phase commit allows transactions to be "prepared" on several computers, and once all computers have successfully prepared their transactions (none failed), all transactions can be committed. Even if a machine crashes after a prepare, the prepared transaction can be committed after the machine is restarted. New syntax includes PREPARE TRANSACTION and COMMIT/ROLLBACK PREPARED. A new system view pg_prepared_xacts has also been added.
Roles are a combination of users and groups. Like users, they can have login capability, and like groups, a role can have other roles as members. Roles basically remove the distinction between users and groups. For example, a role can:
Have login capability (optionally)
Own objects
Hold access permissions for database objects
Inherit permissions from other roles it is a member of
Once a user logs into a role, she obtains capabilities of the login role plus any inherited roles, and can use SET ROLE to switch to other roles she is a member of. This feature is a generalization of the SQL standard's concept of roles. This change also replaces pg_shadow and pg_group by new role-capable catalogs pg_authid and pg_auth_members. The old tables are redefined as read-only views on the new role tables.
MIN()
and
MAX()
(Tom) In previous releases, the only way to use an index for
MIN()
or MAX()
was to rewrite the
query as SELECT col FROM tab ORDER BY col LIMIT 1.
Index usage now happens automatically.
Integrating autovacuum into the server allows it to be automatically started and stopped in sync with the database server, and allows autovacuum to be configured from postgresql.conf.
While PostgreSQL's MVCC locking allows SELECT to never be blocked by writers and therefore does not need shared row locks for typical operations, shared locks are useful for applications that require shared row locking. In particular this reduces the locking requirements imposed by referential integrity checks.
This extension of the dependency mechanism prevents roles from being dropped while there are still database objects they own. Formerly it was possible to accidentally "orphan" objects by deleting their owner. While this could be recovered from, it was messy and unpleasant.
The new constraint_exclusion configuration parameter avoids lookups on child tables where constraints indicate that no matching rows exist in the child table.
This allows for a basic type of table partitioning. If child tables store separate key ranges and this is enforced using appropriate CHECK constraints, the optimizer will skip child table accesses when the constraint guarantees no matching rows exist in the child table.
A dump/restore using pg_dump is required for those wishing to migrate data from any previous release.
The 8.0 release announced that the to_char()
function
for intervals would be removed in 8.1. However, since no better API
has been suggested, to_char(interval)
has been enhanced in
8.1 and will remain in the server.
Observe the following incompatibilities:
add_missing_from is now false by default (Neil)
By default, we now generate an error if a table is used in a query without a FROM reference. The old behavior is still available, but the parameter must be set to 'true' to obtain it.
It might be necessary to set add_missing_from to true in order to load an existing dump file, if the dump contains any views or rules created using the implicit-FROM syntax. This should be a one-time annoyance, because PostgreSQL 8.1 will convert such views and rules to standard explicit-FROM syntax. Subsequent dumps will therefore not have the problem.
Cause input of a zero-length string ('') for float4/float8/oid to throw an error, rather than treating it as a zero (Neil)
This change is consistent with the current handling of zero-length strings for integers. The schedule for this change was announced in 8.0.
default_with_oids is now false by default (Neil)
With this option set to false, user-created tables no longer have an OID column unless WITH OIDS is specified in CREATE TABLE. Though OIDs have existed in all releases of PostgreSQL, their use is limited because they are only four bytes long and the counter is shared across all installed databases. The preferred way of uniquely identifying rows is via sequences and the SERIAL type, which have been supported since PostgreSQL 6.4.
Add E'' syntax so eventually ordinary strings can treat backslashes literally (Bruce)
Currently PostgreSQL processes a backslash in a string literal as introducing a special escape sequence, e.g. \n or \010. While this allows easy entry of special values, it is nonstandard and makes porting of applications from other databases more difficult. For this reason, the PostgreSQL project is planning to remove the special meaning of backslashes in strings. For backward compatibility and for users who want special backslash processing, a new string syntax has been created. This new string syntax is formed by writing an E immediately preceding the single quote that starts the string, e.g. E'hi\n'. While this release does not change the handling of backslashes in strings, it does add new configuration parameters to help users migrate applications for future releases:
standard_conforming_strings — does this release treat backslashes literally in ordinary strings?
escape_string_warning — warn about backslashes in ordinary (non-E) strings
The standard_conforming_strings value is read-only. Applications can retrieve the value to know how backslashes are processed. (Presence of the parameter can also be taken as an indication that E'' string syntax is supported.) In a future release, standard_conforming_strings will be true, meaning backslashes will be treated literally in non-E strings. To prepare for this change, use E'' strings in places that need special backslash processing, and turn on escape_string_warning to find additional strings that need to be converted to use E''. Also, use two single-quotes ('') to embed a literal single-quote in a string, rather than the PostgreSQL-supported syntax of backslash single-quote (\'). The former is standards-conforming and does not require the use of the E'' string syntax. You can also use the $$ string syntax, which does not treat backslashes specially.
Make REINDEX DATABASE reindex all indexes in the database (Tom)
Formerly, REINDEX DATABASE reindexed only system tables. This new behavior seems more intuitive. A new command REINDEX SYSTEM provides the old functionality of reindexing just the system tables.
Read-only large object descriptors now obey MVCC snapshot semantics
When a large object is opened with INV_READ (and not
INV_WRITE), the data read from the descriptor will now
reflect a "snapshot" of the large object's state at the
time of the transaction snapshot in use by the query that called
lo_open()
. To obtain the old behavior of always
returning the latest committed data, include INV_WRITE
in the mode flags for lo_open()
.
Add proper dependencies for arguments of sequence functions (Tom)
In previous releases, sequence names passed to nextval()
,
currval()
, and setval()
were stored as
simple text strings, meaning that renaming or dropping a
sequence used in a DEFAULT clause made the clause
invalid. This release stores all newly-created sequence function
arguments as internal OIDs, allowing them to track sequence
renaming, and adding dependency information that prevents
improper sequence removal. It also makes such DEFAULT
clauses immune to schema renaming and search path changes.
Some applications might rely on the old behavior of run-time lookup for sequence names. This can still be done by explicitly casting the argument to text, for example nextval('myseq'::text).
Pre-8.1 database dumps loaded into 8.1 will use the old text-based representation and therefore will not have the features of OID-stored arguments. However, it is possible to update a database containing text-based DEFAULT clauses. First, save this query into a file, such as fixseq.sql:
SELECT 'ALTER TABLE ' || pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(c.relname) || ' ALTER COLUMN ' || pg_catalog.quote_ident(a.attname) || ' SET DEFAULT ' || regexp_replace(d.adsrc, $$val\(\(('[^']*')::text\)::regclass$$, $$val(\1$$, 'g') || ';' FROM pg_namespace n, pg_class c, pg_attribute a, pg_attrdef d WHERE n.oid = c.relnamespace AND c.oid = a.attrelid AND a.attrelid = d.adrelid AND a.attnum = d.adnum AND d.adsrc ~ $$val\(\('[^']*'::text\)::regclass$$;
Next, run the query against a database to find what adjustments are required, like this for database db1:
psql -t -f fixseq.sql db1
This will show the ALTER TABLE commands needed to convert the database to the newer OID-based representation. If the commands look reasonable, run this to update the database:
psql -t -f fixseq.sql db1 | psql -e db1
This process must be repeated in each database to be updated.
In psql, treat unquoted \{digit}+ sequences as octal (Bruce)
In previous releases, \{digit}+ sequences were treated as decimal, and only \0{digit}+ were treated as octal. This change was made for consistency.
Remove grammar productions for prefix and postfix % and ^ operators (Tom)
These have never been documented and complicated the use of the modulus operator (%) with negative numbers.
Make &< and &> for polygons consistent with the box "over" operators (Tom)
CREATE LANGUAGE can ignore the provided arguments in favor of information from pg_pltemplate (Tom)
A new system catalog pg_pltemplate has been defined to carry information about the preferred definitions of procedural languages (such as whether they have validator functions). When an entry exists in this catalog for the language being created, CREATE LANGUAGE will ignore all its parameters except the language name and instead use the catalog information. This measure was taken because of increasing problems with obsolete language definitions being loaded by old dump files. As of 8.1, pg_dump will dump procedural language definitions as just CREATE LANGUAGE name, relying on a template entry to exist at load time. We expect this will be a more future-proof representation.
Make pg_cancel_backend(int)
return a
boolean rather than an integer (Neil)
Some users are having problems loading UTF-8 data into 8.1.X. This is because previous versions allowed invalid UTF-8 byte sequences to be entered into the database, and this release properly accepts only valid UTF-8 sequences. One way to correct a dumpfile is to run the command iconv -c -f UTF-8 -t UTF-8 -o cleanfile.sql dumpfile.sql. The -c option removes invalid character sequences. A diff of the two files will show the sequences that are invalid. iconv reads the entire input file into memory so it might be necessary to use split to break up the dump into multiple smaller files for processing.
Below you will find a detailed account of the additional changes between PostgreSQL 8.1 and the previous major release.
Improve GiST and R-tree index performance (Neil)
Improve the optimizer, including auto-resizing of hash joins (Tom)
Overhaul internal API in several areas
Change WAL record CRCs from 64-bit to 32-bit (Tom)
We determined that the extra cost of computing 64-bit CRCs was significant, and the gain in reliability too marginal to justify it.
Prevent writing large empty gaps in WAL pages (Tom)
Improve spinlock behavior on SMP machines, particularly Opterons (Tom)
Allow nonconsecutive index columns to be used in a multicolumn index (Tom)
For example, this allows an index on columns a,b,c to be used in a query with WHERE a = 4 and c = 10.
Skip WAL logging for CREATE TABLE AS / SELECT INTO (Simon)
Since a crash during CREATE TABLE AS would cause the table to be dropped during recovery, there is no reason to WAL log as the table is loaded. (Logging still happens if WAL archiving is enabled, however.)
Allow concurrent GiST index access (Teodor, Oleg)
Add configuration parameter full_page_writes to control writing full pages to WAL (Bruce)
To prevent partial disk writes from corrupting the database, PostgreSQL writes a complete copy of each database disk page to WAL the first time it is modified after a checkpoint. This option turns off that functionality for more speed. This is safe to use with battery-backed disk caches where partial page writes cannot happen.
Use O_DIRECT if available when using O_SYNC for wal_sync_method (Itagaki Takahiro)
O_DIRECT causes disk writes to bypass the kernel cache, and for WAL writes, this improves performance.
Improve COPY FROM performance (Alon Goldshuv)
This was accomplished by reading COPY input in larger chunks, rather than character by character.
Improve the performance of COUNT()
,
SUM
, AVG()
,
STDDEV()
, and
VARIANCE()
(Neil, Tom)
Prevent problems due to transaction ID (XID) wraparound (Tom)
The server will now warn when the transaction counter approaches the wraparound point. If the counter becomes too close to wraparound, the server will stop accepting queries. This ensures that data is not lost before needed vacuuming is performed.
Fix problems with object IDs (OIDs) conflicting with existing system objects after the OID counter has wrapped around (Tom)
Add warning about the need to increase max_fsm_relations and max_fsm_pages during VACUUM (Ron Mayer)
Add temp_buffers configuration parameter to allow users to determine the size of the local buffer area for temporary table access (Tom)
Add session start time and client IP address to pg_stat_activity (Magnus)
Adjust pg_stat views for bitmap scans (Tom)
The meanings of some of the fields have changed slightly.
Enhance pg_locks view (Tom)
Log queries for client-side PREPARE and EXECUTE (Simon)
Allow Kerberos name and user name case sensitivity to be specified in postgresql.conf (Magnus)
Add configuration parameter krb_server_hostname so that the server host name can be specified as part of service principal (Todd Kover)
If not set, any service principal matching an entry in the keytab can be used. This is new Kerberos matching behavior in this release.
Add log_line_prefix options for millisecond timestamps (%m) and remote host (%h) (Ed L.)
Add WAL logging for GiST indexes (Teodor, Oleg)
GiST indexes are now safe for crash and point-in-time recovery.
Remove old *.backup files when we do
pg_stop_backup()
(Bruce)
This prevents a large number of *.backup files from existing in pg_xlog/.
Add configuration parameters to control TCP/IP keep-alive times for idle, interval, and count (Oliver Jowett)
These values can be changed to allow more rapid detection of lost client connections.
Add per-user and per-database connection limits (Petr Jelinek)
Using ALTER USER and ALTER DATABASE, limits can now be enforced on the maximum number of sessions that can concurrently connect as a specific user or to a specific database. Setting the limit to zero disables user or database connections.
Allow more than two gigabytes of shared memory and per-backend work memory on 64-bit machines (Koichi Suzuki)
New system catalog pg_pltemplate allows overriding obsolete procedural-language definitions in dump files (Tom)
Add temporary views (Koju Iijima, Neil)
Fix HAVING without any aggregate functions or GROUP BY so that the query returns a single group (Tom)
Previously, such a case would treat the HAVING clause the same as a WHERE clause. This was not per spec.
Add USING clause to allow additional tables to be specified to DELETE (Euler Taveira de Oliveira, Neil)
In prior releases, there was no clear method for specifying additional tables to be used for joins in a DELETE statement. UPDATE already has a FROM clause for this purpose.
Add support for \x hex escapes in backend and ecpg strings (Bruce)
This is just like the standard C \x escape syntax. Octal escapes were already supported.
Add BETWEEN SYMMETRIC query syntax (Pavel Stehule)
This feature allows BETWEEN comparisons without requiring the first value to be less than the second. For example, 2 BETWEEN [ASYMMETRIC] 3 AND 1 returns false, while 2 BETWEEN SYMMETRIC 3 AND 1 returns true. BETWEEN ASYMMETRIC was already supported.
Add NOWAIT option to SELECT ... FOR UPDATE/SHARE (Hans-Juergen Schoenig)
While the statement_timeout configuration parameter allows a query taking more than a certain amount of time to be cancelled, the NOWAIT option allows a query to be canceled as soon as a SELECT ... FOR UPDATE/SHARE command cannot immediately acquire a row lock.
Track dependencies of shared objects (Alvaro)
PostgreSQL allows global tables (users, databases, tablespaces) to reference information in multiple databases. This addition adds dependency information for global tables, so, for example, user ownership can be tracked across databases, so a user who owns something in any database can no longer be removed. Dependency tracking already existed for database-local objects.
Allow limited ALTER OWNER commands to be performed by the object owner (Stephen Frost)
Prior releases allowed only superusers to change object owners. Now, ownership can be transferred if the user executing the command owns the object and would be able to create it as the new owner (that is, the user is a member of the new owning role and that role has the CREATE permission that would be needed to create the object afresh).
Add ALTER object SET SCHEMA capability for some object types (tables, functions, types) (Bernd Helmle)
This allows objects to be moved to different schemas.
Add ALTER TABLE ENABLE/DISABLE TRIGGER to disable triggers (Satoshi Nagayasu)
Allow TRUNCATE to truncate multiple tables in a single command (Alvaro)
Because of referential integrity checks, it is not allowed to truncate a table that is part of a referential integrity constraint. Using this new functionality, TRUNCATE can be used to truncate such tables, if both tables involved in a referential integrity constraint are truncated in a single TRUNCATE command.
Properly process carriage returns and line feeds in COPY CSV mode (Andrew)
In release 8.0, carriage returns and line feeds in CSV COPY TO were processed in an inconsistent manner. (This was documented on the TODO list.)
Add COPY WITH CSV HEADER to allow a header line as the first line in COPY (Andrew)
This allows handling of the common CSV usage of placing the column names on the first line of the data file. For COPY TO, the first line contains the column names, and for COPY FROM, the first line is ignored.
On Windows, display better sub-second precision in EXPLAIN ANALYZE (Magnus)
Add trigger duration display to EXPLAIN ANALYZE (Tom)
Prior releases included trigger execution time as part of the total execution time, but did not show it separately. It is now possible to see how much time is spent in each trigger.
Add support for \x hex escapes in COPY (Sergey Ten)
Previous releases only supported octal escapes.
Make SHOW ALL include variable descriptions (Matthias Schmidt)
SHOW varname still only displays the variable's value and does not include the description.
Make initdb create a new standard database called postgres, and convert utilities to use postgres rather than template1 for standard lookups (Dave)
In prior releases, template1 was used both as a default connection for utilities like createuser, and as a template for new databases. This caused CREATE DATABASE to sometimes fail, because a new database cannot be created if anyone else is in the template database. With this change, the default connection database is now postgres, meaning it is much less likely someone will be using template1 during CREATE DATABASE.
Create new reindexdb command-line utility by moving /contrib/reindexdb into the server (Euler Taveira de Oliveira)
Add MAX()
and MIN()
aggregates for
array types (Koju Iijima)
Fix to_date()
and to_timestamp()
to
behave reasonably when CC and YY fields
are both used (Karel Zak)
If the format specification contains CC and a year specification is YYY or longer, ignore the CC. If the year specification is YY or shorter, interpret CC as the previous century.
Add md5(bytea)
(Abhijit Menon-Sen)
md5(text)
already existed.
Add support for numeric ^ numeric based on
power(numeric, numeric)
The function already existed, but there was no operator assigned to it.
Fix NUMERIC modulus by properly truncating the quotient during computation (Bruce)
In previous releases, modulus for large values sometimes returned negative results due to rounding of the quotient.
Add a function lastval()
(Dennis Björklund)
lastval()
is a simplified version of
currval()
. It automatically determines the proper
sequence name based on the most recent nextval()
or
setval()
call performed by the current session.
Add to_timestamp(DOUBLE PRECISION) (Michael Glaesemann)
Converts Unix seconds since 1970 to a TIMESTAMP WITH TIMEZONE.
Add pg_postmaster_start_time()
function (Euler
Taveira de Oliveira, Matthias Schmidt)
Allow the full use of time zone names in AT TIME ZONE, not just the short list previously available (Magnus)
Previously, only a predefined list of time zone names were supported by AT TIME ZONE. Now any supported time zone name can be used, e.g.:
SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
In the above query, the time zone used is adjusted based on the daylight saving time rules that were in effect on the supplied date.
Add GREATEST()
and LEAST()
variadic
functions (Pavel Stehule)
These functions take a variable number of arguments and return the greatest or least value among the arguments.
Add pg_column_size()
(Mark Kirkwood)
This returns storage size of a column, which might be compressed.
Add regexp_replace()
(Atsushi Ogawa)
This allows regular expression replacement, like sed. An optional flag argument allows selection of global (replace all) and case-insensitive modes.
Fix interval division and multiplication (Bruce)
Previous versions sometimes returned unjustified results, like '4 months'::interval / 5 returning '1 mon -6 days'.
Fix roundoff behavior in timestamp, time, and interval output (Tom)
This fixes some cases in which the seconds field would be shown as 60 instead of incrementing the higher-order fields.
Add a separate day field to type interval so a one day interval can be distinguished from a 24 hour interval (Michael Glaesemann)
Days that contain a daylight saving time adjustment are not 24 hours long, but typically 23 or 25 hours. This change creates a conceptual distinction between intervals of "so many days" and intervals of "so many hours". Adding 1 day to a timestamp now gives the same local time on the next day even if a daylight saving time adjustment occurs between, whereas adding 24 hours will give a different local time when this happens. For example, under US DST rules:
'2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04' '2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
Add justify_days()
and justify_hours()
(Michael Glaesemann)
These functions, respectively, adjust days to an appropriate number of full months and days, and adjust hours to an appropriate number of full days and hours.
Move /contrib/dbsize into the backend, and rename some of the functions (Dave Page, Andreas Pflug)
pg_tablespace_size()
pg_database_size()
pg_relation_size()
pg_total_relation_size()
pg_size_pretty()
pg_total_relation_size()
includes indexes and TOAST
tables.
Add functions for read-only file access to the cluster directory (Dave Page, Andreas Pflug)
pg_stat_file()
pg_read_file()
pg_ls_dir()
Add pg_reload_conf()
to force reloading of the
configuration files (Dave Page, Andreas Pflug)
Add pg_rotate_logfile()
to force rotation of the
server log file (Dave Page, Andreas Pflug)
Change pg_stat_* views to include TOAST tables (Tom)
Rename some encodings to be more consistent and to follow international standards (Bruce)
UNICODE is now UTF8
ALT is now WIN866
WIN is now WIN1251
TCVN is now WIN1258
The original names still work.
Add support for WIN1252 encoding (Roland Volkmann)
Add support for four-byte UTF8 characters (John Hansen)
Previously only one, two, and three-byte UTF8 characters were supported. This is particularly important for support for some Chinese character sets.
Allow direct conversion between EUC_JP and SJIS to improve performance (Atsushi Ogawa)
Allow the UTF8 encoding to work on Windows (Magnus)
This is done by mapping UTF8 to the Windows-native UTF16 implementation.
Fix ALTER LANGUAGE RENAME (Sergey Yatskevich)
Allow function characteristics, like strictness and volatility, to be modified via ALTER FUNCTION (Neil)
Increase the maximum number of function arguments to 100 (Tom)
Allow SQL and PL/pgSQL functions to use OUT and INOUT parameters (Tom)
OUT is an alternate way for a function to return values. Instead of using RETURN, values can be returned by assigning to parameters declared as OUT or INOUT. This is notationally simpler in some cases, particularly so when multiple values need to be returned. While returning multiple values from a function was possible in previous releases, this greatly simplifies the process. (The feature will be extended to other server-side languages in future releases.)
Move language handler functions into the pg_catalog schema
This makes it easier to drop the public schema if desired.
Add SPI_getnspname()
to SPI (Neil)
Overhaul the memory management of PL/pgSQL functions (Neil)
The parsetree of each function is now stored in a separate memory context. This allows this memory to be easily reclaimed when it is no longer needed.
Check function syntax at CREATE FUNCTION time, rather than at runtime (Neil)
Previously, most syntax errors were reported only when the function was executed.
Allow OPEN to open non-SELECT queries like EXPLAIN and SHOW (Tom)
No longer require functions to issue a RETURN statement (Tom)
This is a byproduct of the newly added OUT and INOUT functionality. RETURN can be omitted when it is not needed to provide the function's return value.
Add support for an optional INTO clause to PL/pgSQL's EXECUTE statement (Pavel Stehule, Neil)
Make CREATE TABLE AS set ROW_COUNT (Tom)
Define SQLSTATE and SQLERRM to return the SQLSTATE and error message of the current exception (Pavel Stehule, Neil)
These variables are only defined inside exception blocks.
Allow the parameters to the RAISE statement to be expressions (Pavel Stehule, Neil)
Add a loop CONTINUE statement (Pavel Stehule, Neil)
Allow block and loop labels (Pavel Stehule)
Allow large result sets to be returned efficiently (Abhijit Menon-Sen)
This allows functions to use return_next()
to avoid
building the entire result set in memory.
Allow one-row-at-a-time retrieval of query results (Abhijit Menon-Sen)
This allows functions to use spi_query()
and
spi_fetchrow()
to avoid accumulating the entire
result set in memory.
Force PL/Perl to handle strings as UTF8 if the server encoding is UTF8 (David Kamholz)
Add a validator function for PL/Perl (Andrew)
This allows syntax errors to be reported at definition time, rather than execution time.
Allow PL/Perl to return a Perl array when the function returns an array type (Andrew)
This basically maps PostgreSQL arrays to Perl arrays.
Allow Perl nonfatal warnings to generate NOTICE messages (Andrew)
Allow Perl's strict mode to be enabled (Andrew)
Add \set ON_ERROR_ROLLBACK to allow statements in a transaction to error without affecting the rest of the transaction (Greg Sabino Mullane)
This is basically implemented by wrapping every statement in a sub-transaction.
Add support for \x hex strings in psql variables (Bruce)
Octal escapes were already supported.
Add support for troff -ms output format (Roger Leigh)
Allow the history file location to be controlled by HISTFILE (Andreas Seltenreich)
This allows configuration of per-database history storage.
Prevent \x (expanded mode) from affecting the output of \d tablename (Neil)
Add -L option to psql to log sessions (Lorne Sunley)
This option was added because some operating systems do not have simple command-line activity logging functionality.
Make \d show the tablespaces of indexes (Qingqing Zhou)
Allow psql help (\h) to make a best guess on the proper help information (Greg Sabino Mullane)
This allows the user to just add \h to the front of the syntax error query and get help on the supported syntax. Previously any additional query text beyond the command name had to be removed to use \h.
Add \pset numericlocale to allow numbers to be output in a locale-aware format (Eugen Nedelcu)
For example, using C locale 100000 would be output as 100,000.0 while a European locale might output this value as 100.000,0.
Make startup banner show both server version number and psql's version number, when they are different (Bruce)
Also, a warning will be shown if the server and psql are from different major releases.
Add -n / --schema switch to pg_restore (Richard van den Berg)
This allows just the objects in a specified schema to be restored.
Allow pg_dump to dump large objects even in text mode (Tom)
With this change, large objects are now always dumped; the former -b switch is a no-op.
Allow pg_dump to dump a consistent snapshot of large objects (Tom)
Dump comments for large objects (Tom)
Add --encoding to pg_dump (Magnus Hagander)
This allows a database to be dumped in an encoding that is different from the server's encoding. This is valuable when transferring the dump to a machine with a different encoding.
Rely on pg_pltemplate for procedural languages (Tom)
If the call handler for a procedural language is in the pg_catalog schema, pg_dump does not dump the handler. Instead, it dumps the language using just CREATE LANGUAGE name, relying on the pg_pltemplate catalog to provide the language's creation parameters at load time.
Add a PGPASSFILE environment variable to specify the password file's filename (Andrew)
Add lo_create()
, that is similar to
lo_creat()
but allows the OID of the large object
to be specified (Tom)
Make libpq consistently return an error
to the client application on malloc()
failure (Neil)
Fix pgxs to support building against a relocated installation
Add spinlock support for the Itanium processor using Intel compiler (Vikram Kalsi)
Add Kerberos 5 support for Windows (Magnus)
Add Chinese FAQ<EMAIL_ADDRESS>Rename Rendezvous to Bonjour to match OS/X feature renaming (Bruce)
Add support for fsync_writethrough on Darwin (Chris Campbell)
Streamline the passing of information within the server, the optimizer, and the lock system (Tom)
Allow pg_config to be compiled using MSVC (Andrew)
This is required to build DBD::Pg using MSVC.
Remove support for Kerberos V4 (Magnus)
Kerberos 4 had security vulnerabilities and is no longer maintained.
Code cleanups (Coverity static analysis performed by EnterpriseDB)
Modify postgresql.conf to use documentation defaults on/off rather than true/false (Bruce)
Enhance pg_config to be able to report more build-time values (Tom)
Allow libpq to be built thread-safe on Windows (Dave Page)
Allow IPv6 connections to be used on Windows (Andrew)
Add Server Administration documentation about I/O subsystem reliability (Bruce)
Move private declarations from gist.h to gist_private.h (Neil)
In previous releases, gist.h contained both the public GiST API (intended for use by authors of GiST index implementations) as well as some private declarations used by the implementation of GiST itself. The latter have been moved to a separate file, gist_private.h. Most GiST index implementations should be unaffected.
Overhaul GiST memory management (Neil)
GiST methods are now always invoked in a short-lived memory
context. Therefore, memory allocated via palloc()
will be reclaimed automatically, so GiST index implementations
do not need to manually release allocated memory via
pfree()
.
Add /contrib/pg_buffercache contrib module (Mark Kirkwood)
This displays the contents of the buffer cache, for debugging and performance tuning purposes.
Remove /contrib/array because it is obsolete (Tom)
Clean up the /contrib/lo module (Tom)
Move /contrib/findoidjoins to /src/tools (Tom)
Remove the <<, >>, &<, and &> operators from /contrib/cube
These operators were not useful.
Improve /contrib/btree_gist (Janko Richter)
Improve /contrib/pgbench (Tomoaki Sato, Tatsuo)
There is now a facility for testing with SQL command scripts given by the user, instead of only a hard-wired command sequence.
Improve /contrib/pgcrypto (Marko Kreen)
Implementation of OpenPGP symmetric-key and public-key encryption
Both RSA and Elgamal public-key algorithms are supported.
Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
OpenSSL build: support 3DES, use internal AES with OpenSSL < 0.9.7
Take build parameters (OpenSSL, zlib) from configure result
There is no need to edit the Makefile anymore.
Remove support for libmhash and libmcrypt


Rules are made to keep us safe. Staying out of the steret is a good rule. Using a floating tube in the water is safe, too.  When you are in someone else's home, try to follow the rules. You do not want to be rude! It is a good idea to follow rules in class, too. Your teacher wants you to keep safe. What rules must you follow" Bad Jude Jude fell and cut his hand. His mom had told him to be careful. She even repeated the swimming rule: "Do not run on the deck." Jude did not listen. He ran. The deck was wet and he cut his hand. Dr. June told Jude, "I am going to put a bit of cream from this tube on your hand." Jude was upset. "Will I be able to swim?" he asked. "YesJude. But not until you use up all the cream in this tube" said Dr. June. Jude was not happy. But he will follow the rules from now on!
in-context


| Fig 1 |
Occurrences of Colossoma macropomum in South America. The sm ... |
| Fig 2 |
Principal component loadings on the first two axes of PCA re ... |
| Fig 3 |
Habitat suitability for Colossoma macropomum occurrence deri ... |
| Fig 4 |
Habitat suitability for Colossoma macropomum derived from a ... |
| Fig 5 |
Climate change refugia of Colossoma macropomum in South Amer ... |


Bytecode Explorer
Packages overview [
.*
]
Classes
Package
Name
Source name
×
Set interception code
Code to execute BEFORE the call
Code to execute AFTER the call
Replace the call


WITNESS LIST Corrections Committee March 11, 2003-8:00A HB 24 For: Joblin, Elizabeth (Texas Inmate Families Association) Luna, Lisa (Texas Inmate Families Association) Place, Allen (Texas Criminal Defense Lawyers Association) Roberts, Sue (Self) Torres Halanski, Patsy (Texas Inmate Families Association) Against: Hubbarth, William Rusty (Self and Justice for All) On: Johnson, Gary (Texas Department of Criminal Justice) Registering, but not testifying: For: del Llano, Ann (ACLU, LULAC, NAACP) HB 29 For: Phillips, Karen (Self) On: Collier, Bryan (Texas Department of Criminal Justice - Parole Division) Registering, but not testifying: For: del Llano, Ann (ACLU of Texas, LULAC, NAACP) Joblin, Elizabeth (Texas Inmate Families Association) Luna, Lisa (Texas Inmate Families Association) Place, Allen (Texas Criminal Defense Lawyers Association) Torres Halanski, Patsy (Self) HB 291 For: Tauss, Cynthia (Self) On: Garrett, Gerald (Texas Board of Pardons and Paroles) Registering, but not testifying: For: Harrell, Will (ACLU, LULAC, NAACP) Joblin, Elizabeth (Texas Inmate Families Association) Luna, Lisa (Texas Inmate Families Association) Torres Halanski, Patsy (Texas Inmate Families Association) HB 864 On: Moriarty, John (Texas Department of Criminal Justice) Reynolds, Carl (Texas Department of Criminal Justice) Registering, but not testifying: For: Olsen, Brian (Self) Simpson, Dee (American Federation of State, County, and Municipal Employees, Council 7) Against: Joblin, Elizabeth (Texas Inmate Families Association) Torres Halanski, Patsy (Texas Inmate Families Association) HB 1190 Registering, but not testifying: On: Kifowit, Dee (Texas Council on Offenders with Mental Impairments) Reynolds, Carl (Texas Department of Criminal Justice) HB 1236 On: Garrett, Gerald (Texas Board of Pardons and Paroles) Lee, Donald (Texas Conference of Urban Counties) Reynolds, Carl (Texas Department of Criminal Justice) Roberts, Debbie (Texas Department of Criminal Justice) HB 1372 Against: Levy, Rick (Texas AFLCIO) On: Benestante, John (Texas Department of Criminal Justice) Hughes, Mark (Texas Workforce Commission)


Usage of Apache UIMA integration within Clerezza
Author: Tommaso Teofili
Date: July 27, 2010
You can use one of this package modules to take advantage of the Apache Unstructured Information Management
Architecture framework to enable discover and annotation of entities within text nodes of GraphNodes
UIMA - Clerezza available modules:
- Metadata generator - this module is a particular implementation of the MetadataGenerator interface which
provides extraction of entities from a resource depending on its media type. It recognizes tags and language to
associate to the uploaded GraphNode and creates a new Graph containing the whole UIMA extracted structures
- Concept tagging - this module enables UIMA as a ConceptProvider for automatic concept tag suggestion
- Utils - utility classes to be used when some module wants to call UIMA and its services as a Clerezza bundle
- Ontologies - the ontology responsible to describe UIMA type system, annotations and features relationships


woo question!
Posted: Sun Jun 29, 2008 8:51 pm
i think i asked before, but would this game be playable with out a sound card/chip?
cause well, my chip is broken, and i dont feel like getting it fixed (i'd rather just buy a new computer) but i dont have enough money for the new compy!...
why ej made it so it cant be played with out a sound device baffles me...
ty for your answer!!
_
Joe
cause well, my chip is broken, and i dont feel like getting it fixed (i'd rather just buy a new computer) but i dont have enough money for the new compy!...
why ej made it so it cant be played with out a sound device baffles me...
ty for your answer!!
_
Joe


This is the server response to client meta request SNAC(15,02).
| 00 15 |
|
word |
|
SNAC family |
| 00 03 |
|
word |
|
SNAC subtype |
| xx xx |
|
word |
|
SNAC flags |
| xx xx xx xx |
|
dword |
|
SNAC request-id |
|
|
| |
| 00 01 |
|
word |
|
TLV.Type(1) - encapsulated META_DATA |
| xx xx |
|
word |
|
TLV.Length |
|
|
| |
| xx xx |
|
word (LE) |
|
data chunk size (TLV.Length-2) |
| xx xx xx xx |
|
dword (LE) |
|
requester uin |
| xx xx |
|
word (LE) |
|
request type (see table bellow) |
| xx xx |
|
word (LE) |
|
request sequence number |
| |
| ...... |
|
...... |
|
data (depending on request type) |
|
|
| |
| |
|
|
| |
| |
|
|
Response types list:
|


The Linux/Unix port of OpenSSH has a read-only mailing list<EMAIL_ADDRESS>This list carries announcements of updated versions and related software.
Information on subscription and list account management may be found here.
The openssh-unix-dev list<EMAIL_ADDRESS>is for the discussions relating to the development of both the portable and OpenBSD version of OpenSSH.
Traffic is light to moderate (zero to twenty messages per day). Valid subjects are the development of OpenSSH (both portable and OpenBSD versions), documentation and troubleshooting (assuming you have read the manual). HTML, "rich text" formatted email and large attachments are NOT PERMITTED. Posting requests for help which demonstrate your lack of familiarity with the basic documentation is likely to result in only "RTFM" responses, so please check it first.
Discussion of commercial products is *off topic* for this mailing list, except when it arises in the context of OpenSSH development (e.g. discussing interoperability).
The list is open to non-subscribers although they may be subject to a one-time address validation. Small attachments (such as diff files) are acceptable within the bounds of common sense. The list is archived by MARC.
More information on subscription and list account management may be found at the<EMAIL_ADDRESS>information page.
General support (especially regarding interoperability issues) may also be found at the newsgroup comp.security.ssh.
The archive of the former<EMAIL_ADDRESS>list at MARC may provide additional historical information.


{%extends "base.html" %} {%block title%}{{signup.title}} - {{conference}}{%endblock%} {%block extrahead%} {%endblock%} {%block content%}
This signup is closed.
{%if attendee_signup%}Your response was recorded as: {{attendee_signup.choice}}
{%endif%} {%else%}{# is it closed? #} {%if current %}


{% load staticfiles %}
Gleaner
{% include 'shared/navigation.html' %}
Backyard Bounty
{% block content %}{% endblock %}
{% include "shared/footer.html" %}


Topicstarter
Hi Guys,
I would like to see some onformation about the ammo
like how much ammo my soldier carries without/with the ammo "perk"
thanks
BrainFooLong
Administrator
There is no such information available. This data will not be tracked by BF3. Nothing we can fix or do.


my interset
My personal information
I'm zeinab qatramiz I have studied accounting and now Im taking course in soft ware development and very excited of it to improve my expirence and develop my self
My Education
- ASAC - Scholarship - Software Development - 2021
- bacalrois in accounting in midle east university
- diploma in accounting and finincial managerial at luminuc edectional collage
- alzahra secondary school
My Experience
- accountant at tv time bein sport
- accountant at beutela for cosmetic
My objective
now Im learning software development and l hope a job related in accounting and software development
My Top 10 Favorite Movies
- The Master
- Neon Demon
- Mudbound
- The Joker
- Drive
- Interstellar
- Bladerunner
- Gravity
- Life of Pi
- The Fall


Lesson 8
00:00:00 Intro and review of Part 1
00:08:00 Moving to Python 3
00:10:30 Moving to Tensorflow and TF Dev Summit videos
00:22:15 Moving to PyTorch
00:27:30 From Part 1 “best practices” to Part 2 “new directions”
00:31:40 Time to build your own box
00:36:20 Time to start reading papers
00:39:30 Time to start writing about your work in this course
00:41:30 What we’ll study in Part 2
00:40:40 Artistic style (or neural style) transfer
00:52:10 Neural style notebook
00:54:15 Mendeley Desktop, an app to track research papers
00:59:00 Jeremy on twitter.com and reddit.com/r/MachineLearning/
01:01:15 Neural style notebook (continued)
01:04:05 Broadcasting, APL as “A Programming Language”, and Jsoftware
01:07:15 Broadcasting with Keras
01:12:00 Recreate input with a VGG model
01:22:45 Optimize the loss function with a deterministic approach
01:33:25 Visualize the iterations through a short video
01:37:30 Recreate a style
01:44:05 Transfer a style
Lesson 9
00:00:30 Contribute to, and use Lesson 8 Wiki
00:02:00 Experiments on Image/Neural Style Transfer
00:05:45 Advanced tips from Keras on Neural Style Transfer
00:10:15 More tips to read research papers &
“A Neural Algorithm of Artistic Style, Sep-2015”
00:23:00 From Style Transfer to Generative Models
00:32:50 “Perpetual Losses for Real-Time Style Transfer
& Super-Resolution, Mar-2016”
00:39:30 Implementation notebook w/ re-use of ‘bcolz’ arrays from Part 1.
00:43:00 Digress: how “practical” are the tools learnt in Part 2, vs. Part 1 ?
00:52:10 Two approaches to up-sampling: Deconvolution & Resizing
01:09:30 TQDM library: add a progress meter to your loops
01:17:30 Fast Style Transfer w/ “Supplementary Material, Mar-2016”
01:27:45 Ugly artifacts like “checkerboard”: cause and fixes; Keras UpSampling2D
01:31:20 ImageNet Processing in parallel
01:33:15 DeVISE research paper
01:38:00 Digress: Tips on path setup for SSD vs. HD
01:42:00 words, vectors = zip(*w2v_list)
01:49:30 Resize images
01:52:15 Three ways to make an algorithm faster:
memory locality,
simd/vectorization,
parallel processing
Lesson 10
00:00:10 Picking an optimizer for Style Transfer (student post on Medium)
Plus other student posts and tips on class project.
00:07:30 Use Excel to understand Deep Learning concepts
00:09:20 ImageNet Processing (continued from Lesson 9)
& Tips to speed up your model (simd & parallel processing)
00:26:45 Adding Preprocessing to Keras ResNet50
00:28:30 Transfer Learning with ResNet in Keras: difficulty #1
00:33:40 Transfer Learning with ResNet in Keras: difficulty #2
00:38:00 Use batches to overcome RAM “Out of Memory”
00:42:00 Final layers to our ResNet model
00:47:00 Nearest Neighbors to look at examples
00:55:00 Fine-Tuning our models and more “Out of Memory” fixes
01:03:00 Find images similar to a word or phrase &
Find images similar to an image !
01:08:15 Homework discussion
01:16:45 How to: multi-input models on large datasets
01:23:15 Generative Adversarial Networks (GAN) in Keras
01:32:00 Multi-Layer-Perceptron (MLP)
01:37:10 Deep Convolutional GAN (DCGAN)
01:40:15 Wasserstein GAN in Pytorch
01:46:30 Introduction to Pytorch
01:55:20 Wasserstein GAN in Pytorch (cont.)
& LSUN dataset
02:05:00 Examples of generated images
02:09:15 Lesson 10 conclusion and assignments for Lesson 11
Lesson 11
00:00:30 Tips on using notebooks and reading research papers
00:03:15 Follow-up on lesson 10 and more word-to-image searches
00:07:30 Linear algebra cheat sheet for deep learning (student’s post on Medium)
& Zero-Shot Learning by Convex Combination of Semantinc Embeddings (arXiv)
00:10:00 Systematic evaluation of CNN advances on ImageNet (arXiv)
ELU better than RELU, learning rate annealing, different color transformations,
Max pooling vs Average pooling, learning rate & batch size, design patterns.
00:27:15 Data Science Bowl 2017 (Cancer Diagnosis) on Kaggle
00:36:30 DSB 2017: full preprocessing tutorial, + others.
00:48:30 A non-deep-learning approach to find lung nodules (research)
00:53:00 Clustering (and why Jeremy wasn’t a fan before)
01:08:00 Using Pytorch with GPU for ‘meanshift’ (clustering cont.)
01:22:15 Candidate Generation and LUNA 16 (Kaggle)
01:26:30 Accelerating K-Means on GPU via CUDA (research)
01:27:15 ChatBots ! (long section)
Staring with “memory networks” at Facebook (research)
01:57:30 Recurrent Entity Networks: an exciting area of research in Memory Networks
01:58:45 Concept of “Attention” and “Attentional Models”
Lesson 12
00:00:05 K-means clustering in TensorFlow
00:06:00 ‘find_initial_centroids’, a simple heuristic
00:24:30 Student’s question about “figuring out the number of clusters”
00:26:00 “Step 1 was to copy our initial_centroids and copy them into our GPU”,
"Step 2 is to assign every point and assign them to a cluster "
00:29:30 ‘Dynamic_partition’, one of the crazy GPU functions in TensorFlow
00:37:45 Digress: “Jeremy, if you were to start a company today, what would it be ?”
00:40:00 Intro to next step: NLP and translation deep-dive, with CMU pronouncing dictionary
via spelling_bee_RNN.ipynb
00:55:15 Create spelling_bee_RNN model with Keras
01:17:30 Question: "Why not treat text problems the same way we do with images’ ? "
01:26:00 Graph for Attentional Model on Neural Translation
01:32:00 Attention Models (cont.)
01:37:20 Neural Machine Translation (research paper)
01:44:00 Grammar as a Foreign Language (research paper)
Lesson 13
00:00:10 Fast.ai student accepted into Google Brain Residency program
00:06:30 Cyclical Learning Rates for Training Neural Networks (another student’s paper)
& updates on Style Transfer, GAN, and Mean Shift Clustering research papers
00:13:45 Tiramisu: combining Mean Shitft Clustering and Approximate Nearest Neighbors
00:22:15 Facebook AI Similarity Search (FAISS)
00:28:15 The BiLSTM Hegemony
00:35:00 Implementing the BiLSTM, and Grammar as a Foreign Language (research)
00:45:30 Reminder on how RNN’s work from Lesson #5 (Part 1)
00:47:20 Why Attentional Models use “such” a simple architecture
& “Tacotron: a Fully End-To-End Text-To-Speech Synthesis Model” (research)
00:50:15 Continuing on Spelling_bee_RNN notebook (Attention Model), from Lesson 12
00:58:40 Building the Attention Layer and the ‘attention_wrapper.py’ walk-through
01:15:40 Impressive student’s experiment with different mathematical technique on Style Transfer
01:18:00 Translate English into French, with Pytorch
01:31:20 Translate English into French: using Keras to prepare the data
Note: Pytorch latest version now supports Broadcasting
01:38:50 Writing and running the ‘Train & Test’ code with Pytorch
01:44:00 NLP Programming Tutorial, by Graham Neubig (NAIST)
01:48:25 Question: “Could we translate Chinese to English with that technique ?”
& new technique: Neural Machine Translation of Rare Words with Subword Units (Research)
01:54:45 Leaving Translation aside and moving to Image Segmentation,
with the “The 100 layers Tiramisu: Fully Convolutional DenseNets” (research)
and “Densely Connected Convolutional Networks” (research)
Lesson 14
00:01:25 Time-Series and Structured Data
& “Patient Mortality Risk Predictions in Pediatric Intensive Care, using RNN’s” (research)
00:07:30 Time-Series with Rossmann Store Sales (Kaggle)
& 3rd place solution with “a very uncool NN ;-)”.
00:18:00 Implementing the Rossman solution with Keras + TensorFlow + Pandas + Sklearn
Building Tables & Exploratory Data Analysis (EDA)
00:27:15 Digress: categorical variable encodings and “Vtreat for R”
00:30:15 Back to Rossmann solution
& “Python for Data Analysis” (book)
00:36:30 What Jeremy does everytime he sees a ‘date’ in a structured ML model
& other tips
00:43:00 Dealing with duration of special events (holidays, promotions) in Time-Series
00:52:00 Using ‘inplace=True’ in .drop(), & a look at our final ‘feature engineering’ results
00:53:40 Starting to feed our NN
& using ‘pickle.dump()’ for storage encodings
01:00:45 “Their big mistake” and how they could have won #1
01:05:30 Splitting into Training and Test, but not randomly
01:08:20 Why they modified their Sales Target with ‘np.log()/max_log_y’
01:11:20 A look at our basic model
01:14:45 Training our model and questions
01:16:45 Running the same model with XGBoost
01:20:10 “The really, really, really weird things here !”
& end of the Rossmann competition;-)
01:26:30 Taxi Trajectory Prediction (Kaggle) with “another uncool NN” winner
01:38:00 “Start with a Conv layer and pass it to an RNN” question and research
01:42:40 The 100-layers Tiramisu: Fully Convolutional Densenets, for Image Segmentation (Lesson 13 cont.)
01:58:00 Building and training the Tiramisu model
02:02:50 ENet and LINKNet models: better than the Tiramisu ?
02:04:00 Part 2: conclusion and next steps


5 CSS for Shiny
The first CSS version was released in 1996, that is 5 years later than HTML. Before CSS appeared, developers styled their pages with specific tags like font
, which eventually made the HTML code hard to maintain. The current version of CSS is 3. While nowadays all web browsers support CSS, this was not the case at the very beginning!
5.1 How to include CSS?
There are 3 ways to include CSS in a web page:
- Point to an external file
<link rel="stylesheet" href="style.css"/>
- Insert the style in the
head
- Insert the style at the tag level, through the
style
attribute
<!DOCTYPE html>

<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>CSS</title>

Hello World

Some text

Plop

I recommend to follow the first method as much as you can so that you modify the CSS in only one place!
At the end of the day, your CSS script will look like the below example:
All of the above methods apply to shiny:
- External CSS file
tags$link(rel = "stylesheet", type="text/css", href="www/style.css")
. - Internal CSS
tags$head(tags$style("p {color: red;}"))
. - Inline CSS
p(style = "color:red;", "Red text")
.
However, if you correctly followed the previous part about HTML dependencies, the best way in Shiny is to create a dependency, and attach it to a tag:
css_dep <- function() {
htmlDependency(
name = "css dep",
version = "1.0",
src = path_to_css,
stylesheet = filename
)
}
tagList(tag, css_dep)
Following this method, you make the file accessible on the server, thereby easing the debugging process. When should we apply the above method? Well, it does not make a lot of sense for tiny CSS modifications, where you could use one of the 3 other methods listed above.
5.2 CSS selectors
5.2.1 Basics
To apply CSS, we select a the tag , choose the property we want to change and give it a value:
For instance, to set the color blue to the p
tag, we would do:
Now, how would we apply the same property to multiple tags? We separate tags by a comma:
See below an example with a Shiny app:
5.2.2 Select by class, id
The method shown above applies to all selected tags. This is not necessarily what we want as we probably would like to filter. We first add a class
to the first p
tag. Best practice is to give it a meaningful name.
On the CSS side, we prefix the class by a .
, as shown below:
To style unique elements, we may use id
:
As another example, the result is shown in Figure 5.1:
ui <- fluidPage(
tags$style(
".first-p {
color: red;
}
#element {
color: red;
}
"
),
p(class = "first-p", "Hello World"),
p("Another text"),
div(id = "element", "A block")
)
server <- function(input, output, session) {}
shinyApp(ui, server)
5.2.3 Apply CSS to single elements
Let’s consider the following example:
How would you change the color of the World
word? We could not select the whole p
element.
There exist specific tags like div
and span
which you can apply. As stated in @chapter(web-intro-html), span
may be used inside containers to surround words:

Hello World! What's up?

5.2.4 Advanced selectors
Until now, we’ seen how to select an element by the tag name, a class and an id. Yet, this is not enough. How would you select the below tag?
<IP_ADDRESS> Select by attributes
To select by attribute, we use tag[attribute]
Tag
Tag
Tag
The below CSS code, will select all a
tags:
while the following code, will only select the first a
tag:
The reason is that we exactly match the dropdown
value!
We could be less specific:
*
checks whether the word dropdown
is there but not the position. You may use ^
and $
like you do with regular expressions to check if the value starts or ends by the specified word, respectively.
<IP_ADDRESS> Direct descendants
Let’s consider a navbarPage
with nested navigation. This is accomplished with the navbarMenu
function:
navbarPage("App Title",
tabPanel("Plot"),
navbarMenu("More",
tabPanel("Summary"),
"----",
"Section header",
tabPanel("Table")
)
)
The resulting HTML code is as follow:

Plot

More

Summary

Section header

Table

We see that there are two ul
menus with multiple li
and a
inside. Applying our previous CSS selector as depicted in Figure 5.4 selects all links.
What if we only want to select the direct a
children of the outer menu (meaning we exclude the inner menu links)? Using the >
we can select direct children and not all descendant that could contain grand-children.
Result is displayed in Figure 5.5:
ui <- navbarPage(
"App Title",
tabPanel(
"Plot",
tags$style(
HTML(
".navbar-nav > li > a {
font-size: 20px;
font-weight: bold;
}
"
)
)
),
navbarMenu("More",
tabPanel("Summary"),
"----",
"Section header",
tabPanel("Table")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
Well, what if we want to be even more specific and get only the very first nav link element? We’ll have to introduce pseudo classes.
<IP_ADDRESS>.1 Pseudo-classes
A pseudo class starts with the :
symbol. For instance, a:active
styles active links, button:disabled
applies for disabled buttons, …
There exists many pseudo class types, particularly the structural ones. Those are useful to select specific children like element:first-child
. Going back to the navbarPage
example, we could refine our CSS selector adding :first-child
to the li
element as we want to only select the first item:
As expected, only the first link is styled, as demonstrated in Figure 5.6!
ui <- navbarPage(
"App Title",
tabPanel(
"Plot",
tags$style(
HTML(
".navbar-nav > li:first-child > a {
font-size: 20px;
font-weight: bold;
}
"
)
)
),
navbarMenu("More",
tabPanel("Summary"),
"----",
"Section header",
tabPanel("Table")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
<IP_ADDRESS>.2 Pseudo-elements
Pseudo elements are preceded by ::
. One of the most famous ones are ::before
and ::after
that respectively apply before and after the selected element.
For instance .navbar-nav > li:first-child > a::before
will insert an element before the very first navbar link.
ui <- navbarPage(
"App Title",
tabPanel(
"Plot",
tags$style(
HTML(
".navbar-nav > li:first-child > a {
font-size: 20px;
font-weight: bold;
}
.navbar-nav > li:first-child > a::before {
content: '✌'
}
"
)
)
),
navbarMenu(
"More",
tabPanel("Summary"),
"----",
"Section header",
tabPanel("Table")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
5.3 Modify CSS with the HTML inspector
5.3.1 Add inline properties
- Run the following app:
ui <- fluidPage(
tags$style("p { color: red;}"),
p("Hello World")
)
server <- function(input, output, session) {}
shinyApp(ui, server)
Right click the
p
element and open the inspector. In theStyles
tab, notice theelement.style
section. This is to define inline new CSS rules for the selected item.Let’s add 2 rules by clicking inside the
element.style
container:
-
border-style: dashed
. Indicates we want a box with dashed border -
border-color: ...
. To set a border color
After typing enter, the inline CSS is automatically added in the tag element.
You probably noticed the auto suggestion feature while typing a property, as shown in Figure 5.8.
5.3.2 View local changes
Whenever playing around with a web page style or a shiny app, it may be good to have an overview of all changes when you are satisfied about the new design.
- Run the previous shiny app example and open the inspector
- In the Styles tab, add some new CSS properties to the first p element set of rules
- Once done press enter and click on the file name located at the top-right corner of the property box
- This opens the Sources tab. In the left sidebar, right click on the file name (index) and select
Local Modifications
- This opens a
Git
like diff panel calledChanges
where you can review any change and see the previous values. If you refresh the page, you will loose every local change, unless the persistent authoring feature is active
To get a deeper understanding of the different CSS options please refer to the Google documentation.
5.4 CSS in action
Below we review the most commonly used CSS properties such as text styling, shadows, color and background color, …
5.4.1 Text Styling
<IP_ADDRESS> Polices
This controls the text appearance. The police may be changed like below:
In practice, we enter multiple police values, in case the end user does not have the same
police. The last values are composed of generic polices like serif
and monospace
.
For instance, Bootstrap 3 that powers Shiny utilizes the default sans-serif
police. A neat tool to inspect the current text polices is the HTML inspector CSS Overview tab, as shown Figure 5.10.
Custom polices may be downloaded with @font-face
but there are few prerequisites to make it work properly:
- The files format must be correctly handled by the end user web browsers. There are currently
.ttf
(work on almost all web browser),.woff
(work on almost all web browser),.svg
(iPhone and iPad),.eot
(IE only) and.otf
(don’t work on IE). - Those files have to be downloaded which may take time.
- Be careful about copyright! Most polices are not open source.
Importantly, the police files must be accessible to the CSS file where they are called from. As another example, the below code means that the fonts
folder is located one level above the CSS file:
@font-face {
font-family: 'Framework7 Icons';
font-style: normal;
font-weight: 400;
src: url("../fonts/Framework7Icons-Regular.eot");
src: url("../fonts/Framework7Icons-Regular.woff2") format("woff2"),
url("../fonts/Framework7Icons-Regular.woff") format("woff"),
url("../fonts/Framework7Icons-Regular.ttf") format("truetype");
}
<IP_ADDRESS> Size
To change the text size, we use the font-size
property. From there, you have 2 choices:
- relative size (first choice) like
small
,medium
, … You may also find notations like1em
(default size),1.8em
being bigger and0.5em
being smaller; as well as percentages. - absolute size: 16px, 20px, …
In the following example, the second h1
tag is smaller than the default one, so is p
:
5.4.2 Colors
We have already mentioned this property before in the previous examples. In CSS, there are 4 ways to apply colors to a text or to the background:
- Using the hexadecimal notation (HEX). For instance
#FFFFFF
corresponds to the white color. Given a color code, unless you already know it, the result is quite hard to predict. Could you guess what is the result of#4b0082
? - Using the
rgb
code. If you ever followed art courses, this is the classic system uses in painting, by mixing colors.rgb
stands for red, green and blue. Each scale goes from 0 to 255 (256 choices), which gives a weight to each color! Why 255? Since 256256256 gives about 16 millions color, the maximum number of colors that actual screen can display. - Using the
hsl
convention.hsl
stands for hue, saturation and lightness. Saturation and lightness are expressed in percentage from 0 to 100. The hue goes from red (0) to 360 (a sort of red) each time incrementing by 15. The yellow color is 60. - Using the color name like
ghostwhite
,maroon
,red
…
While rgb
and hsl
give an unlimited number of possibilities, HTML color names are not infinite.
There are many tools allowing to get each of those codes like, notably color pickers:
5.4.3 Borders and shadows
These effects may be applied to text and block elements. The easiest way to set up a border is to leverage the border
propriety which takes 3 parameters:
- The border
width
in px. - The border
color
with any valid CSS color likergb()
,red
, … - The border
type
, which corresponds to the border style (none
,solid
,dotted
,dashed
,double
,groove
,ridge
,inset
andoutset
). In practice, we mostly usesolid
.
There exist other properties such as border-radius
which controls the shape of the corners from top left to bottom left. The higher the value the most rounded is the corner.
If for any reason, you want to fine tune the border position, there are four properties: border-top
, border-bottom
, border-left
and border-right
.
Finally, shadows are controlled by two properties:
-
text-shadow
which applies a shadow to a text element (not the most used). -
box-shadow
for styling blocks.
For instance:
The box-shadow
property takes four main parameters:
- The horizontal offset in px.
- The vertical offset in px.
- The blur radius value in px. The higher the more blurred.
- The shadow color.
Do your remember the shinydashboard box that we imported inside a simple shiny app from Chapter 4.3? This box has been included in the {OSUICode}
side package. Let’s add it some border and shadows.
library(OSUICode)
library(shinyWidgets)
ui <- fluidPage(
useShinydashboard(),
br(),
box2(title = "Box with border", background = "blue", height = "400px")
)
server <- function(input, output) {}
shinyApp(ui, server)
The box
class is styled as follow and show Figure 5.11:
The border-radius
of 3px indicates that the box is slightly rounded on all corners.
There is a top solid border which color in gray as well as a tiny shadow.
Let’ increase the border-radius
to 10px, change the border top to border-left
with an orange color and slightly increased thickness:
.box {
border-radius: 10px;
border-left: 6px solid #e28810;
box-shadow: 0 1px 1px rgb(0 0 0 / 10%);
}
We would like to increase the shadow effect only on mouse hover, with reasonable values. To proceed we leverage the pseudo format elements like :hover
:
The easiest way to modify the shadow style is directly inside the HTML inspector, as demonstrated on Figure 5.12. Next to the property text, there is a button to open the shadow editor. We click on it, which opens a box with input to control the shadow offset, the blur and spread parameter. We leave the effect outside the box, that is outset
unchanged. To change the color, we click on the color widget next to the rgb value which opens Figure 5.13.
We finally include this new CSS rule inside the previous app. Optionally, we may change the color of the text header to be white, to improve the contrast with the box background (See Figure 5.14):
ui <- fluidPage(
useShinydashboard(),
tags$style(
".box {
border-top: none;
border-radius: 10px;
border-left: 6px solid #e28810;
box-shadow: 0 1px 1px rgb(0 0 0 / 10%);
}
.box:hover {
box-shadow: 0px 8px 8px 0px rgb(0, 0, 0, 0.2);
}
.box-header {
color: #fff;
}
"
),
br(),
box2(title = "Box with border", background = "blue", height = "400px")
)
server <- function(input, output) {}
shinyApp(ui, server)
5.4.4 Layout
As mentioned in section 1.2, there exist block
and inline
tags. While block elements are displayed under each other, inline elements are added next to each others, as shown in Figure 5.15.
CSS allows deep customization of block elements like setting up the width, height and margin. Let’s review them below.
<IP_ADDRESS> Style blocks
As shown Figure 5.16, a block tag may be seen as a box. CSS allows to set internal and external margins. Internal margins, also called padding, is the space between the block border and the content, in all directions. External margins also known as margin are all spaces between blocks in all directions. A block is also defined by a width and height as well as optional minimal width and height. Width and height may be set either using absolute unites (px) or relative unites(%) but minimal values are always absolute. Minimal values are useful in case the end user resizes the windows.
The corresponding CSS properties are found below:
Padding and margins are called CSS super properties. Indeed, setting padding: 10px
guarantees to have 10px in all directions. If you need custom values, you will have to specify the directions as follows:
There exists a shortcut margin: 5px 0 5px 2
that means 5px on the top, 0 px on the right, 5 px on the bottom and 2px on the left. To remember about the good order, it is clockwise (top, right, bottom, left). Specifying only 2 values margin: 5px 2.5px
means 5px top and bottom, 2.5px left and right. All of the above obviously applies to padding!
Using margin allows to center a block when margin: auto
is applied in combination with a given width.
What happens when the content inside the block is bigger than the block itself?
We apply the overflow super property that acts either horizontally or vertically. To have only vertical overflow, choose overflow-y
. The overflow property has 4 possible values:
- visible shows the content.
- hidden hides the content that goes outside the block.
- scroll shows scrolling bars in all directions to see the hidden content.
- auto let the web browser decide.
Let’s apply our newly acquired knowledge to a simple shiny app.
ui <- fluidPage(
tags$style(
".block {
border-color: #00000;
border-style: solid;
background-color: lightblue;
text-align: center;
margin: 10px;
min-height: 200px;
width: 200px;
}
span, a {
background-color: orange;
}
"
),
div(
class = "block",
"Block 1",
br(),
span("Inline text 1"), span("Inline text 2")
),
div(
class = "block",
"Block 2",
br(),
lapply(1:2, a, href = "https://www.google.com/", "Link")
),
div(
class = "block",
"Block 3",
lapply(1:5, span, "Inline text")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
Well, is that all? I could to better by combining fluidRow
and column
! Indeed, those 2 functions are part of the grid system built on top of flexbox. Let’s talk about this in the next section.
<IP_ADDRESS> Flexbox
The flexbox (“flexible boxes”) model is a game changer in layout development as it allows to seamlessly:
- align items in a container.
- ensure those items fill the same space.
- …
The first step is to define the main container and give the flex value to the display property:
Once done, we have to define the direction and have 4 choices, as shown Figure 5.17:
- row
- row-reverse
- column
- column-reverse
Below is an example involving shiny. We first define the container CSS where display: flex
and flex-direction: row
set the flexbox display. We also add a border to better see the container limits:
Then, we define the style for container elements, that are p
tags. We give them a width and height to better see the blocks. Each child has a given background color with the :nth-child(n)
pseudo class. As an exercise, you may try to replace the flex-direction
by any of the 4 values and see how blocks move in the main container.
ui <- fluidPage(
tags$style(
".container {
display: flex;
flex-direction: row-reverse;
border: red dashed 2px;
}
p {
width: 200px;
height: 200px;
text-align: center;
color: white;
font-size: 50px;
}
.container :nth-child(1) {
background-color: green;
}
.container :nth-child(2) {
background-color: orange;
}
.container :nth-child(3) {
background-color: purple;
}
"
),
div(
class = "container",
p("A"),
p("B"),
p("C")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
The flex-wrap property may be useful to control how blocks are arranged:
- nowrap (default) put all items on the same row.
- wrap put items on multiple lines from top to bottom.
- wrap-reverse put items on multiple lines from bottom to top.
Interestingly, both flex-wrap
and flex-direction
may be merged with flex-flow: direction wrap mode
.
Items may be aligned either on the principal axis defined in the container CSS or on the secondary axis, called cross-axis:
-
justify-content
that may take the following values flex-start (default), flex-end, center, space-between, space-around and space-evenly -
align-items
whose values can be stretch (default), flex-start, flex-end, center and baseline
justify-content
and align-items
are applied at the container level and not on individual items! Whenever the container has multiple line, as a result of a flex-wrap: wrap
or flex-flow: ... wrap
, we use align-content
to align on the cross-axis (flex-start, flex-end, center, stretch by default, space-between, space-around).
flexbox is a mono dimensional system. In the following, we review the CSS grid system…
<IP_ADDRESS> Grid model
As mentioned above, fluidRow
and column
leverage the Bootstrap grid system, that uses flexbox. This is unfortunately rather complex and out of the scope of this book.
5.4.5 Responsive design: media queries
At the very beginning of the web, there was no smartphones or tablets. All websites were mostly designed to be display on fix computer screens. Everything has changed now, which leads to several problems for non responsive sites.
Media queries are convenient to solve this issue. They allow to setup rules depending on various conditions. The structure is defined as follows:
For instance, assuming you want to increase the text size, only for mobile devices:
all
stands for all screen sizes and the second request target devices having a width
of 480px, at most.
In a shiny app this would give:
ui <- fluidPage(
tags$style(
"@media all and (max-device-width: 480px) {
p {
font-size: 1.5em;
}
}
"
),
p("Hello World")
)
server <- function(input, output) {}
shinyApp(ui, server)
As shown on Figure 5.18, the developer tools have a responsive mode,
which you can enable by clicking on the blue button next to the Elements
tabs.
The responsive mode let you define the viewport dimensions, that is the height and width of the web browser page so as to test the media queries. We set the width to 480 so that the text size appears increased. You may try with 481px and see that this text becomes smaller. Be careful, the responsive mode tool does not display the web browser navigation bars, nor the status bar (the bar containing the battery icon and various indicators). Be sure to select the ...
icon to enable the show media queries
and show rulers
options. The media query option provides a better visualization of the media query range versus the current screen width, while the ruler helps to fine tune the design.
Let’s consider another example, involving shiny::modalDialog
. This function displays
a Bootstrap 3 modal, whose design is partly controlled by media queries. We run the app below and open the developer tools:
shinyApp(
ui = fluidPage(
actionButton("show", "Show modal dialog")
),
server = function(input, output) {
observeEvent(input$show, {
showModal(
modalDialog(
title = "Important message",
"This is an important message!"
)
)
})
}
)
The corresponding CSS rules are located in the Bootstrap (3) CSS file:
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
The first query fixes a width of 600px for all modals having the .modal-dialog
class (default), as long as the screen size is at least 768px. Moreover, if the modal has the modal-sm
class, its width is set to 300px. Finally, as soon as the screen width is higher or equal to 992 px, all modals having the .modal-lg
class have a width set to 900px.
Figure 5.19 illustrates the modal responsiveness.
In Figure 5.20, we changed the modal size from s
to l
(left and right, respectively).
This has strong implications for the modal size on mobiles. As long as the screen size is lower than 768px, the size parameter is ignored!
5.5 Best practice
5.5.1 DRY principles
DRY stands for “Don’t repeat yourself”. This methodology not only applies to structural languages like R and JavaScript but also to declarative languages like CSS.
Below is an example of badly managed CSS code. Both .class-1
and .class-2
have the same color and border radius. Only the padding and font size change. This type of code does not follow the DRY rule and increases the risk of having contradictory CSS properties.
.class-1{
color: #33BEFF;
padding: 10px 16px;
font-size: 12px;
border-radius: 3px;
}
.class-2{
color: #33BEFF;
padding: 5px 10px;
font-size: 12px;
border-radius: 3px;
}
We could gather all common properties in one generic class:
.generic {
color: #33BEFF;
border-radius: 3px;
}
.specific-1 {
padding: 10px 16px;
font-size: 18px;
}
.specific2 {
padding: 5px 10px;
font-size: 12px;
}
On the HTML side, we add classes from the most generic to the most specific like:
As an even more concrete example, take a look at the bulma button:
Notice how easy it is to predict the style of the button. It will be large and take the maximum width. It is for sure more meaningful than .class1
!
5.5.2 Selector specificity
What happens in case multiple different selectors target the same element? Which style is really applied? Consider the following example:
with the following CSS rules:
Can you guess what would be the element text color? Well, this is not obvious. You must understand that web browsers apply rules to select the more specific rules:
- Inline style is the most specific. This is style directly attached to the HTML tag.
-
id
apply to unique objects. -
class
,pseudoclasses
, attributes. - elements and pseudo-elements.
Going back to our previous example, the most specific selector is #element
, therefore the text color will be red. What happens in case of equality? The last written selector is applied:
Only the second selector is applied to the tag. To apply class1
, you must move it after the class2
style definition.
Best practice is to keep the lowest specificity as possible, thereby making .class
the first choice.
5.5.3 Block element modified (BEM)
The BEM methodology will help you to write meaningful CSS, easier to manage.
A block is a standalone entity having a self explanatory name like header
, checkbox
. An elements is part of the block but not standalone like menu items.
A modifier indicates a specific state of an element, for instance if a button is disabled, active, … The general scheme is defined below:
Following this methodology guaranties to have documented and meaningful classes.


WE ARE OSHINE
A beautiful responsive multi-purpose wordpress theme
Oshine comes with 12 unique and stunning demos. We have crafted each and every demo
with extensive care and precision and the theme is power packed yet easy to use.
A beautiful responsive multi-purpose wordpress theme
Oshine comes with 12 unique and stunning demos. We have crafted each and every demo
with extensive care and precision and the theme is power packed yet easy to use.
12 DEMOS
POWERFUL OPTIONS
PAGE BUILDER
UNLIMITED PORTFOLIO
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
Proin facilisis varius nunc. Curabitur eros risus, ultrices et dui ut, luctus accumsan nibh. Fusce convallis sapien placerat tellus suscipit vehicula.
A beautiful responsive multi-purpose wordpress theme
A beautiful responsive multi-purpose wordpress theme


WorldWind Custom Placemark
Projection
Layers
Destination
Your browser does not support HTML5 Canvas.
X
Hello!!!
Welcome to World Wind Placemark Project!


{% extends 'lexi/base.html' %} {% block content %}
{{ checked_message|safe }}
Notes
This analysis was made based on the {{global_variables.subset_common_words}} most common words and the defined threshold for the evaluation ({{global_variables.threshold}}%). The suggestions source was {{global_variables.source}}.
Elapsed time: {{global_variables.elapsed_time}}


|
My Project
|
Encoding information for a single floating-point format. More...
#include <float.hh>
Public Types | |
| enum | floatclass { normalized = 0, infinity = 1, zero = 2, nan = 3, denormalized = 4 } |
| The various classes of floating-point encodings. More... | |
Public Member Functions | |
| FloatFormat (void) | |
| Construct for use with restoreXml() | |
| FloatFormat (int4 sz) | |
| Construct default IEEE 754 standard settings. More... | |
| int4 | getSize (void) const |
| Get the size of the encoding in bytes. | |
| double | getHostFloat (uintb encoding, floatclass *type) const |
| Convert an encoding into host's double. More... | |
| uintb | getEncoding (double host) const |
| Convert host's double into this encoding. More... | |
| uintb | convertEncoding (uintb encoding, const FloatFormat *formin) const |
| Convert between two different formats. More... | |
| uintb | extractFractionalCode (uintb x) const |
| Extract the fractional part of the encoding. More... | |
| bool | extractSign (uintb x) const |
| Extract the sign bit from the encoding. More... | |
| int4 | extractExponentCode (uintb x) const |
| Extract the exponent from the encoding. More... | |
| uintb | opEqual (uintb a, uintb b) const |
| Equality comparison (==) More... | |
| uintb | opNotEqual (uintb a, uintb b) const |
| Inequality comparison (!=) More... | |
| uintb | opLess (uintb a, uintb b) const |
| Less-than comparison (<) More... | |
| uintb | opLessEqual (uintb a, uintb b) const |
| Less-than-or-equal comparison (<=) More... | |
| uintb | opNan (uintb a) const |
| Test if Not-a-Number (NaN) More... | |
| uintb | opAdd (uintb a, uintb b) const |
| Addition (+) More... | |
| uintb | opDiv (uintb a, uintb b) const |
| Division (/) More... | |
| uintb | opMult (uintb a, uintb b) const |
| Multiplication (*) More... | |
| uintb | opSub (uintb a, uintb b) const |
| Subtraction (-) More... | |
| uintb | opNeg (uintb a) const |
| Unary negate. More... | |
| uintb | opAbs (uintb a) const |
| Absolute value (abs) More... | |
| uintb | opSqrt (uintb a) const |
| Square root (sqrt) More... | |
| uintb | opTrunc (uintb a, int4 sizeout) const |
| Convert floating-point to integer. More... | |
| uintb | opCeil (uintb a) const |
| Ceiling (ceil) More... | |
| uintb | opFloor (uintb a) const |
| Floor (floor) More... | |
| uintb | opRound (uintb a) const |
| Round. More... | |
| uintb | opInt2Float (uintb a, int4 sizein) const |
| Convert integer to floating-point. More... | |
| uintb | opFloat2Float (uintb a, const FloatFormat &outformat) const |
| Convert between floating-point precisions. More... | |
| void | saveXml (ostream &s) const |
| Save the format to an XML stream. More... | |
| void | restoreXml (const Element *el) |
| Restore the format from XML. More... | |
Encoding information for a single floating-point format.
This class supports manipulation of a single floating-point encoding. An encoding can be converted to and from the host format and convenience methods allow p-code floating-point operations to be performed on natively encoded operands. This follows the IEEE754 standards.
| FloatFormat::FloatFormat | ( | int4 | sz | ) |
Construct default IEEE 754 standard settings.
Set format for a given encoding size according to IEEE 754 standards
| sz | is the size of the encoding in bytes |
| uintb FloatFormat::convertEncoding | ( | uintb | encoding, |
| const FloatFormat * | formin | ||
| ) | const |
Convert between two different formats.
| encoding | is the value in the other FloatFormat |
| formin | is the other FloatFormat |
| int4 FloatFormat::extractExponentCode | ( | uintb | x | ) | const |
Extract the exponent from the encoding.
| x | is an encoded floating-point value |
| uintb FloatFormat::extractFractionalCode | ( | uintb | x | ) | const |
Extract the fractional part of the encoding.
| x | is an encoded floating-point value |
| bool FloatFormat::extractSign | ( | uintb | x | ) | const |
Extract the sign bit from the encoding.
| x | is an encoded floating-point value |
| uintb FloatFormat::getEncoding | ( | double | host | ) | const |
Convert host's double into this encoding.
| host | is the double value to convert |
| double FloatFormat::getHostFloat | ( | uintb | encoding, |
| floatclass * | type | ||
| ) | const |
Convert an encoding into host's double.
| encoding | is the encoding value |
| type | points to the floating-point class, which is passed back |
| uintb FloatFormat::opAbs | ( | uintb | a | ) | const |
Absolute value (abs)
| a | is an encoded floating-point value |
| uintb FloatFormat::opAdd | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Addition (+)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opCeil | ( | uintb | a | ) | const |
Ceiling (ceil)
| a | is an encoded floating-point value |
| uintb FloatFormat::opDiv | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Division (/)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opEqual | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Equality comparison (==)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opFloat2Float | ( | uintb | a, |
| const FloatFormat & | outformat | ||
| ) | const |
Convert between floating-point precisions.
| a | is an encoded floating-point value |
| outformat | is the desired output FloatFormat |
| uintb FloatFormat::opFloor | ( | uintb | a | ) | const |
Floor (floor)
| a | is an encoded floating-point value |
| uintb FloatFormat::opInt2Float | ( | uintb | a, |
| int4 | sizein | ||
| ) | const |
Convert integer to floating-point.
| a | is a signed integer value |
| sizein | is the number of bytes in the integer encoding |
| uintb FloatFormat::opLess | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Less-than comparison (<)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opLessEqual | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Less-than-or-equal comparison (<=)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opMult | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Multiplication (*)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opNan | ( | uintb | a | ) | const |
Test if Not-a-Number (NaN)
| a | is an encoded floating-point value |
| uintb FloatFormat::opNeg | ( | uintb | a | ) | const |
Unary negate.
| a | is an encoded floating-point value |
| uintb FloatFormat::opNotEqual | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Inequality comparison (!=)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opRound | ( | uintb | a | ) | const |
Round.
| a | is an encoded floating-point value |
| uintb FloatFormat::opSqrt | ( | uintb | a | ) | const |
Square root (sqrt)
| a | is an encoded floating-point value |
| uintb FloatFormat::opSub | ( | uintb | a, |
| uintb | b | ||
| ) | const |
Subtraction (-)
| a | is the first floating-point value |
| b | is the second floating-point value |
| uintb FloatFormat::opTrunc | ( | uintb | a, |
| int4 | sizeout | ||
| ) | const |
Convert floating-point to integer.
| a | is an encoded floating-point value |
| sizeout | is the desired encoding size of the output |
| void FloatFormat::restoreXml | ( | const Element * | el | ) |
Restore the format from XML.
Restore object from a <floatformat> XML tag
| el | is the element |
| void FloatFormat::saveXml | ( | ostream & | s | ) | const |
Save the format to an XML stream.
Write the format out to a <floatformat> XML tag.
| s | is the output stream |


Featherlight is a very lightweight jQuery lightbox.
Featherlight is very, very lightweight. 400 lines of JavaScript, 100 of CSS, less than 6kB combined.
Don't be fooled by Featherlight's small footprint! It's smart, responsive, supports images, ajax and iframes out of the box and you can adapt it to your needs.
To get started, simply add the "data-featherlight" with a selector, an image or an ajax-url. It's that simple.
Many lightbox plugins try to handle everything for you. Even the ones called «simple» or «lightweight». Featherlight is different. It's for the pro who knows what he’s doing and just needs a barebones plugin.
Thanks to very low specific css selectors and little code, it's easy to customize and to understand.
It's meant to be extended, like our gallery extension.
Featherlight works on IE8+, all modern browsers and on mobile platforms.
Featherlight has an extensive test suite.
Featherlight runs on hundreds of thousands of websites. That we know of.
This is a default featherlight lightbox.
It's flexible in height and width.
Everything that is used to display and style the box can be found in the featherlight.css file which is pretty simple.
It's easy to override the styling of Featherlight. All you need to do is specify an additional class in the data-featherlight-variant of the triggering element. This class will be added and you can then override everything. You can also reset all CSS: $('.special').featherlight({ resetCss: true });
With little code, you can build lightboxes that use custom content loaded with ajax...