Questions 3 & 4 deal with the painful consequences of an issue. The beatitude of mourning can be displayed by the listener as they show empathy for the other person. When a person feels heard and cared about they can begin to move on to resolving their issues. It is a rare experience for most people to feel safe enough to talk about anything because there are so few people who can listen from another’s perspective. One definition of intimacy I like is “In To Me See.” When we look through another person’s eyes and see as they see we can begin to understand why they are behaving the way they are.
When you take the brunt of their intense emotions and don’t defend yourself, but mourn over what you may have caused or what others have contributed to, you are following the command “to rejoice with those who rejoice and mourn with those who mourn.” It also allows you to see just how serious of an issue this is and what the cause and effects are for yourself and the organization.
Rephrase what you heard the person say to their satisfaction. This is a part of engaging in the conversation and helping the person feel understood.


This website was created by Matthew Adlam with the purpose of informing the public on attractions and things to do, (and getting excellence on my internal). This website has all the required parameters to get excellence, where also being informative, well styled and verified by CSS and HTML checkers. It suggests information on the pages and links the websites to the articles.
We made the colour palette work for many purposes. The theme is the BOP, which is a sunny place with a lot of water, so it was necessary to use an excess of yellows and blues, and it looks asthetically pleasing. I have tested my images on a colour blindness simulator, and it does not make many changes to the outcome of this website.
All of this website was tested on multiple browsers and devices by multiple people and it has been deemed accessible and easy to use.
The overall content of this website is not affected by the colour scheme, although it works nicely with it, so visually impared people can understand it without missing too many key details.
I have a popup dialogue for when someone wants to leave the page.
The site is practical and easy to navigate.
See my legal page for info about this
See my refinements page for info about this
See my planning page for info about this


class Solution: def slowestKey(self, releaseTimes: List[int], keysPressed: str) -> str: ans = [] maxduration = -1 for i in range(0, len(releaseTimes)): duration = releaseTimes[i] - (releaseTimes[i - 1] if i >= 1 else 0) if duration > maxduration: ans = [keysPressed[i]] maxduration = duration elif duration == maxduration: ans.append(keysPressed[i]) return max(ans)


-    ☰
-
-
- Contact Us
- About Us
- Register
CAPRICON MAN
Capricorn man in love
When a Capricorn man falls in love, the first thing he will do is start acting strange. He is not familiar with emotion, in general, and he will look at the subject of his desire as an extraterrestrial that came down to Earth only to confuse him. This will pass with the first love, maybe with the second, but there is always that probability that he will look at his loving partner as someone from another world or time. He will have to learn slowly how to act in order to win someone’s heart. If he is lucky enough for his first stroke of love to be returned, there is a chance he will remain in the same relationship for a very long time, maybe even for as long as they both shall live. He is one of the most stable, stubborn, deeply emotional signs in the zodiac. He never takes anything lightly, and he refuses to be superficial, which makes his emotions profound and real when they finally surface
Capricorn man in relationships
If you are looking for a man at which you can point your finger and say: “He is difficult”, that would be a Capricorn man. He is not easy to be with, as an Earth sign, nor as someone who’s Sun is ruled by Saturn. He can be too strict and his expectations might be impossible to meet. If he doesn'tfind the true magic of love, he will be possessive but stubborn, without any compromises made or any flexibility. This is exactly why it is so profound and inspiring to win his heart and see him melt, change and open up for things he would never consider before he met you. When he loves someone, there is rarely anything he wouldn'tdo for his loved one, and it is safe to say that he is prepared to stay with the right partner forever, and never doubt his decision, or his emotions.
Can you trust your Capricorn man
Without a doubt, but only if he has made a decision to be faithful, honest and monogamous. In any other scenario, everything can be expected and he will act in the way he thinks appropriate. In general, he fears the feeling of guilt, and as far as his awareness goes, he will not hurt, lie or cheat on anyone intentionally. Still, it is a sign ruled by Saturn, the planet of our unconscious, and he sometimes loses control over his choices, not even aware of it. This is the reason why he likes to control every little thing, thinking he can avoid his own irresponsible actions.
retive.
Understanding Capricorn men
It is not easy to understand a Capricorn man. He seems to be cold and distant, way too rational and critic, but we rarely stop to realize that he is actually afraid of failure, strict toward himself and always trying to remain in control. He doesn'twant to make a mistake, for he understands the consequences of any action better than anyone else. This makes him cautious, careful not to challenge karma and focused on himself and his practical goals that give him the idea he has life under control. He builds walls in order to stay protected, either sabotaged, scolded or even left by his father, or other influential role models. When you get to know him and see his soft side behind these walls, you will never want to be without him again.
Capricorn Man Likes and Dislikes
He is strong, reliable, confident and sure of his choices, while at the same time practical and focused on his goals, with a perfect plan for the future. On the downside, he can be demanding, cold and distant, uncompassionate and strict, with expectations that make everyone around him feel guilty or inadequate
How to choose a gift for your Capricorn Man
Always respect special occasions and be as practical as you can. He can surprise by his openness for all sorts of weird things, but before you get to know him, it is best to stick to the traditional, historical, educational, useful gifts that can last for a very long time. He has an understanding for art with a lot of detail, small but expensive signs of affection, and likes things neat and to the point. Choose a present that makes sense, that’s probably the best way to put it.


This is an experimental directory containing translations of a few pmtk3 demos from Matlab to python. Over time, we hope to port more and more functionality.
If you are new to using python for scientific computing, I strongly recommend you to spend some time on
This document will give you a quick introduction to central tools and techniques on the scientific Python ecosystem.
To run demos, you should have installed either python2 or python3 as you like. You also need to install the following packages
- numpy
- scipy
- matplotlib
- sklearn
- networkx
For develpoers, you need install sphinx to generate docs. http://sphinx-doc.org/install.html To generate docs, change your working directory into /path/to/pmtk3/python, run make html, docs will be generated in /path/to/pmtk3/python/_build/html/
You may also need to install some other packages. Just follow the instructions above.
All you need to do is setting the PYTHONPATH
On linux, just put this in your ~/.bashrc
export PYTHONPATH=/path/to/pmtk3/python
- On windows, you need to open
My Computer > Properties > Advanced System Settings > Environment Variables >
Then under system variables create a new Variable called PYTHONPATH. Fill the variable value with /path/to/pmtk3/python
Then change directory into each fold, run python script_name.py You can also double click the scripts on windows.
To view the scripts and figs in browser, see the html files in the fold /path/to/pmtk3/python/_build/html/
In the future, maybe we can build a package to make things easier.


; ; ------------------------------------------------------------ ; ; PureBasic - Sprite example file ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; If InitSprite() = 0 Or InitKeyboard() = 0 MessageRequester("Error", "Sprite system can't be initialized", 0) End EndIf ; ; Now, open a 800*600 - 32 bits screen ; If OpenScreen(800, 600, 32, "Sprite") ; Load our 16 bit sprite (which is a 24 bit picture in fact, as BMP doesn't support 16 bit format) ; LoadSprite(0, #PB_Compiler_Home + "examples/sources/Data/PureBasic.bmp") CopySprite(0, 1, 0) Repeat ; Inverse the buffers (the back become the front (visible)... And we can do the rendering on the back) FlipBuffers() ClearScreen(RGB(0,0,0)) ; Draw our sprite ClipSprite(0, 0, 0, x, x/8) DisplaySprite(0, x, 100) DisplaySprite(1, x, x) DisplaySprite(0, 600-x, x) x+1 ExamineKeyboard() Until KeyboardPushed(#PB_Key_Escape) Else MessageRequester("Error", "Can't open a 800*600 - 32 bit screen !", 0) EndIf


Degree in Hotel Management, with more than 10 years of experience. I decided to change careers after the experience of founding a Startup and winning a "best tech project" award in an acceleration program, awarded by Startup Lisboa.
Lisbon, Portugal
Languages
Portuguese (Native)
English (Advanced)
Spanish (Advanced)
French (Intermediate)
Stack
HTML
CSS
Javascript
React
Restaurant Digital Menu with interactive navigation made with React. Users can scan the QR code on the restaurant tables and it will redirect them to this website. It's a PWA and responsive to all device shapes and sizes, secured by Cloudflare SSL certificate.
A simple linear gradient background that is randomly generated by clicking a button. You can also set the individual gradient colors by yourself, by using 2 color pickers. The rgb code will update automatically.
Simple To-do list using Javascript. Each list item can be deleted or marked as "done" using the two button. If there are no items, the list is hidden.
Simple Robot catalog with searchbox. Used an API to render the different names for each robot. Using React components and states made the search interactive.
Let's build something together!
Email me


|
GNSDK C API Reference
<IP_ADDRESS>2
|
Functions | |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_generate_morelikethis (gnsdk_user_handle_t user_handle, gnsdk_playlist_collection_handle_t h_collection, gnsdk_gdo_handle_t h_gdo_seed, gnsdk_playlist_results_handle_t *ph_results) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_generate_playlist (gnsdk_user_handle_t user_handle, gnsdk_cstr_t pdl_statement, gnsdk_playlist_collection_handle_t h_collection, gnsdk_gdo_handle_t h_gdo_seed, gnsdk_playlist_results_handle_t *ph_results) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_morelikethis_option_get (gnsdk_playlist_collection_handle_t h_collection, gnsdk_cstr_t option_key, gnsdk_cstr_t *p_option_value) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_morelikethis_option_set (gnsdk_playlist_collection_handle_t h_collection, gnsdk_cstr_t option_key, gnsdk_cstr_t option_value) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_results_count (gnsdk_playlist_results_handle_t h_results, gnsdk_uint32_t *p_count) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_results_enum (gnsdk_playlist_results_handle_t h_results, gnsdk_uint32_t index, gnsdk_cstr_t *p_ident, gnsdk_cstr_t *p_collection_name) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_results_release (gnsdk_playlist_results_handle_t h_results) |
| gnsdk_error_t GNSDK_API | gnsdk_playlist_statement_validate (gnsdk_cstr_t pdl_statement, gnsdk_playlist_collection_handle_t h_collection, gnsdk_bool_t *pb_seed_required) |
| gnsdk_error_t GNSDK_API gnsdk_playlist_generate_morelikethis | ( | gnsdk_user_handle_t | user_handle, |
| gnsdk_playlist_collection_handle_t | h_collection, | ||
| gnsdk_gdo_handle_t | h_gdo_seed, | ||
| gnsdk_playlist_results_handle_t * | ph_results | ||
| ) |
Generates a Playlist using the Gracenote "More Like This" algorithm and GDO Seed input. The algorithm matches tracks primarily on Mood and Genre attributes.
| user_handle | [in] Handle to a user for the user requesting the "More Like This" playlist |
| h_collection | [in] Handle to a Playlist collection summary |
| h_gdo_seed | [in] Handle to a GDO Seed (required) |
| ph_results | [out] Pointer to receive generated Playlist results handle |
Important:
Playlist generates playlists from a single collection summary at a time. It does not support the derivation of playlists across multiple collection summaries. Applications that require deriving a playlist from multiple collection summaries must create a master collection summary that spans the required collections.
| gnsdk_error_t GNSDK_API gnsdk_playlist_generate_playlist | ( | gnsdk_user_handle_t | user_handle, |
| gnsdk_cstr_t | pdl_statement, | ||
| gnsdk_playlist_collection_handle_t | h_collection, | ||
| gnsdk_gdo_handle_t | h_gdo_seed, | ||
| gnsdk_playlist_results_handle_t * | ph_results | ||
| ) |
Generates a Playlist. Use this function to generate Playlist results. As a best practice and for processing efficiency, we recommend calling gnsdk_playlist_statement_validate() before generating results.
| user_handle | [in] Handle to a user for the user requesting the playlist |
| pdl_statement | [in] PDL statement string |
| h_collection | [in] Handle to a Playlist collection summary |
| h_gdo_seed | [in] Handle to a GDO Seed (if necessary) |
| ph_results | [out] Pointer to receive generated Playlist results handle |
Note:
Streamline your Playlist implementation by using the gnsdk_playlist_generate_morelikethis() function, which uses the "More Like This" algorithm to generate optimal playlist results and eliminates the need to create and validate Playlist Definition Language statements.
Important:
Playlist generates playlists from a single collection summary at a time. It does not support the derivation of playlists across multiple collection summaries. Applications that require deriving a playlist from multiple collection summaries must create a master collection summary that spans the required collections.
| gnsdk_error_t GNSDK_API gnsdk_playlist_morelikethis_option_get | ( | gnsdk_playlist_collection_handle_t | h_collection, |
| gnsdk_cstr_t | option_key, | ||
| gnsdk_cstr_t * | p_option_value | ||
| ) |
Retrieves an option for "More Like This" for a given collection. See Playlist Generation Options for the list of available options. Please note that these options are not serialized or stored.
| h_collection | [in] Collection handle |
| option_key | [in] An option for the "More Like This" playlist |
| p_option_value | [out] Pointer to hold the value for given option |
| gnsdk_error_t GNSDK_API gnsdk_playlist_morelikethis_option_set | ( | gnsdk_playlist_collection_handle_t | h_collection, |
| gnsdk_cstr_t | option_key, | ||
| gnsdk_cstr_t | option_value | ||
| ) |
Sets a "More Like This" option on the collection. See Playlist Generation Options for the list of available options. Please note that these options are not serialized or stored.
| h_collection | [in] Collection handle |
| option_key | [in] An option from the available "More Like This" list |
| option_value | [in] Value to set for given option |
| gnsdk_error_t GNSDK_API gnsdk_playlist_results_count | ( | gnsdk_playlist_results_handle_t | h_results, |
| gnsdk_uint32_t * | p_count | ||
| ) |
Retrieves the total number of results of a generated Playlist.
| h_results | [in] Handle to Playlist results |
| p_count | [out] Pointer to receive the total number of generated results |
| gnsdk_error_t GNSDK_API gnsdk_playlist_results_enum | ( | gnsdk_playlist_results_handle_t | h_results, |
| gnsdk_uint32_t | index, | ||
| gnsdk_cstr_t * | p_ident, | ||
| gnsdk_cstr_t * | p_collection_name | ||
| ) |
Retrieves the n'th identifier of a result in a generated Playlist.
| h_results | [in] Handle to Playlist results |
| index | [in] Index of result to retrieve |
| p_ident | [out] Pointer to receive resulting identifier |
| p_collection_name | [out] Pointer to receive collection name to which that ident belongs; Optional |
| gnsdk_error_t GNSDK_API gnsdk_playlist_results_release | ( | gnsdk_playlist_results_handle_t | h_results | ) |
Invalidates and releases resources for a given Playlist's results.
| h_results | [in] Handle to Playlist results |
| gnsdk_error_t GNSDK_API gnsdk_playlist_statement_validate | ( | gnsdk_cstr_t | pdl_statement, |
| gnsdk_playlist_collection_handle_t | h_collection, | ||
| gnsdk_bool_t * | pb_seed_required | ||
| ) |
Validates a Playlist Definition Language (PDL) statement. Use this function to determine: If the PDL is invalid, such as using an attribute name that does not exist in the collection or using an invalid keyword for an operator. If the PDL requires a Seed to generate results. As a best practice, we recommend calling this function to validate PDL statements especially unknown statements before calling gnsdk_playlist_generate_playlist().
| pdl_statement | [in] PDL statement string |
| h_collection | [in] Handle to a Playlist collection summary |
| pb_seed_required | [out] Pointer to receive a boolean value indicating if a Playlist Seed is required |
How can we improve this topic?
Copyright © 2000-present. Gracenote, Inc. All rights reserved. Generated on Tue Jan 8 2013 07:40:58.


{{ metadata.get('title') }} {% if metadata.get('unedited', false) %} [Unedited] {% endif %}
{{ render_byline() }}Introduction
Web fonts enable beautiful and functional typography on the web. Using web fonts not only empowers design, but it democratizes a subset of design, as it allows easier access to those who might not have particularly strong design skills. However, for all the good they can do, web fonts can also do great harm to your site's performance if they are not loaded properly.
Are they a net positive for the web? Do they provide more benefit than harm? Are the web standards cowpaths sufficiently paved to encourage web font loading best practices by default? And if not, what needs to change? Let's take a data-driven peek at whether or not we can answer those questions by inspecting how web fonts are used on the web today.
Where did you get those web fonts?
The first and most prominent question: performance. There is a whole chapter dedicated to performance but we will delve a little into font-specific performance issues here.
Using hosted web fonts enables ease of implementation and maintenance, but self-hosting offers the best performance. Given that web fonts by default make text invisible while the web font is loading (also known as the Flash of Invisible Text, or FOIT), the performance of web fonts can be more critical than non-blocking assets like images.
Are fonts being hosted on the same host or by a different host?
Differentiating self-hosting against third-party hosting is increasingly relevant in an HTTP/2 world, where the performance gap between a same-host and different-host connection can be wider. Same-host requests have the huge benefit of a better potential for prioritization against other same-host requests in the waterfall.
Recommendations to mitigate the performance costs of loading web fonts from another host include using the preconnect
, dns-prefetch
, and preload
resource hints, but high priority web fonts should be same-host requests to minimize the performance impact of web fonts. This is especially important for fonts used by very visually prominent content or body copy occupying the majority of a page.
The fact that three quarters are hosted is perhaps unsurprising given Google Fonts dominance that we will discuss below.
Google serves fonts using third-party CSS files hosted on https://fonts.googleapis.com
. Developers add requests to these stylesheets using <link>
tags in their markup. While these stylesheets are render blocking, they are very small. However, the font files are hosted on yet another domain, https://fonts.gstatic.com
. The model of requiring two separate hops to two different domains makes preconnect
a great option here for the second request that will not be discovered until the CSS is downloaded.
Note that while preload
would be a nice addition to load the font files higher in the request waterfall (remember that preconnect
sets up the connection, it doesn’t request the file content), preload
is not yet available with Google Fonts. Google Fonts generates unique URLs for their font files which are subject to change.
What are the most popular third-party hosts?
| Host | Desktop | Mobile |
|---|---|---|
| fonts.gstatic.com | 75.4% | 74.9% |
| use.typekit.net | 7.2% | 6.6% |
| maxcdn.bootstrapcdn.com | 1.8% | 2.0% |
| use.fontawesome.com | 1.1% | 1.2% |
| static.parastorage.com | 0.8% | 1.2% |
| fonts.shopifycdn.com | 0.6% | 0.6% |
| cdn.shopify.com | 0.5% | 0.5% |
| cdnjs.cloudflare.com | 0.4% | 0.5% |
| use.typekit.com | 0.4% | 0.4% |
| netdna.bootstrapcdn.com | 0.3% | 0.4% |
| fast.fonts.net | 0.3% | 0.3% |
| static.dealer.com | 0.2% | 0.2% |
| themes.googleusercontent.com | 0.2% | 0.2% |
| static-v.tawk.to | 0.1% | 0.3% |
| stc.utdstc.com | 0.1% | 0.2% |
| cdn.jsdelivr.net | 0.2% | 0.2% |
| kit-free.fontawesome.com | 0.2% | 0.2% |
| open.scdn.co | 0.1% | 0.1% |
| assets.squarespace.com | 0.1% | 0.1% |
| fonts.jimstatic.com | 0.1% | 0.2% |
The dominance of Google Fonts here was simultaneously surprising and unsurprising at the same time. It was unsurprising in that I expected the service to be the most popular and surprising in the sheer dominance of its popularity. 75% of font requests is astounding. TypeKit was a distant single-digit second place, with the Bootstrap library accounting for an even more distant third place.
While the high usage of Google Fonts here is very impressive, it is also noteworthy that only 29% of pages included a Google Fonts <link>
element. This could mean a few things:
- When pages uses Google Fonts, they use a lot of Google Fonts. They are provided without monetary cost, after all. Perhaps they're being used in a popular WYSIWYG editor? This seems like a very likely explanation.
- Or a more unlikely story is that it could mean that a lot of people are using Google Fonts with
@import
instead of<link>
. -
Or if we want to go off the deep end into super unlikely scenarios, it could mean that many people are using Google Fonts with an HTTP
Link:
header instead.
Google Fonts documentation encourages the <link>
for the Google Fonts CSS to be placed as the first child in the <head>
of a page. This is a big ask! In practice, this is not common as only half a percent of all pages (about 20,000 pages) took this advice.
More so, if a page is using preconnect
or dns-prefetch
as <link>
elements, these would come before the Google Fonts CSS anyway. Read on for more about these resource hints.
Speeding up third-party hosting
As mentioned above, a super easy way to speed up web font requests to a third-party host is to use the preconnect
resource hint.
Wow! Less than 2% of pages are using preconnect
! Given that Google Fonts is at 75%, this should be higher! Developers: if you use Google Fonts, use preconnect
! Google Fonts: proselytize preconnect
more!
In fact, if you're using Google Fonts go ahead and add this to your <head>
if it's not there already:
<link rel="preconnect" href="https://fonts.gstatic.com/">
Most popular typefaces
| Rank | Font family | Desktop | Mobile |
|---|---|---|---|
| 1 | Open Sans | 24% | 22% |
| 2 | Roboto | 15% | 19% |
| 3 | Montserrat | 5% | 4% |
| 4 | Source Sans Pro | 4% | 3% |
| 5 | Noto Sans JP | 3% | 3% |
| 6 | Lato | 3% | 3% |
| 7 | Nanum Gothic | 4% | 2% |
| 8 | Noto Sans KR | 3% | 2% |
| 9 | Roboto Condensed | 2% | 2% |
| 10 | Raleway | 2% | 2% |
| 11 | FontAwesome | 1% | 1% |
| 12 | Roboto Slab | 1% | 1% |
| 13 | Noto Sans TC | 1% | 1% |
| 14 | Poppins | 1% | 1% |
| 15 | Ubuntu | 1% | 1% |
| 16 | Oswald | 1% | 1% |
| 17 | Merriweather | 1% | 1% |
| 18 | PT Sans | 1% | 1% |
| 19 | Playfair Display | 1% | 1% |
| 20 | Noto Sans | 1% | 1% |
It is unsurprising that the top entries here seem to match up very similarly to Google Fonts' list of fonts sorted by popularity.
What font formats are being used?
WOFF2 is pretty well supported in web browsers today. Google Fonts serves WOFF2, a format that offers improved compression over its predecessor WOFF, which was itself already an improvement over other existing font formats.
From my perspective, an argument could be made to go WOFF2-only for web fonts after seeing the results here. I wonder where the double-digit WOFF usage is coming from? Perhaps developers still serving web fonts to Internet Explorer?
Third place octet-stream
(and plain
a little further down) would seem to suggest that a lot of web servers are configured improperly, sending an incorrect MIME type with web font file requests.
Let's dig a bit deeper and look at the format()
values used in the src:
property of @font-face
declarations:
I was hoping to see SVG fonts on the decline. They're buggy and implementations have been removed from every browser except Safari. Time to drop these, y'all.
The SVG data point here also makes me wonder what MIME type y'all are serving these SVG fonts with. I don't see image/svg+xml
anywhere in Figure 7. Anyway, don't worry about fixing that, just get rid of them!
WOFF2-only
| Rank | Format combinations | Desktop | Mobile |
|---|---|---|---|
| 1 | woff2 | 84.0% | 81.9% |
| 2 | svg, truetype, woff | 4.3% | 4.0% |
| 3 | svg, truetype, woff, woff2 | 3.5% | 3.2% |
| 4 | eot, svg, truetype, woff | 1.3% | 2.9% |
| 5 | woff, woff2 | 1.8% | 1.8% |
| 6 | eot, svg, truetype, woff, woff2 | 1.2% | 2.1% |
| 7 | truetype, woff | 0.9% | 1.1% |
| 8 | woff | 0.7% | 0.8% |
| 9 | truetype | 0.6% | 0.7% |
| 10 | truetype, woff, woff2 | 0.6% | 0.6% |
| 11 | opentype, woff, woff2 | 0.3% | 0.2% |
| 12 | svg | 0.2% | 0.2% |
| 13 | eot, truetype, woff | 0.1% | 0.2% |
| 14 | opentype, woff | 0.1% | 0.1% |
| 15 | opentype | 0.1% | 0.1% |
| 16 | eot | 0.1% | 0.1% |
| 17 | opentype, svg, truetype, woff | 0.1% | 0.0% |
| 18 | opentype, truetype, woff, woff2 | 0.0% | 0.0% |
| 19 | eot, truetype, woff, woff2 | 0.0% | 0.0% |
| 20 | svg, woff | 0.0% | 0.0% |
This dataset seems to suggest that the majority of people are already using WOFF2-only in their @font-face
blocks. But this is misleading of course, per our earlier discussion on the dominance of Google Fonts in the data set. Google Fonts does some sniffing methods to serve a streamlined CSS file and only includes the most modern format()
. Unsurprisingly, WOFF2 dominates the results here for that reason, as browser support for WOFF2 has been pretty broad for some time now.
Importantly, this particular data doesn't really support or detract from the case to go WOFF2-only yet, but it remains a tempting idea.
Fighting against invisible text
The number one tool we have to fight the default web font loading behavior of "invisible while loading" (also known as FOIT), is font-display
. Adding font-display: swap
to your @font-face
block is an easy way to tell the browser to show fallback text while the web font is loading.
Browser support is great too. Internet Explorer and pre-Chromium Edge don't have support but they also render fallback text by default when a web font loads (no FOITs allowed here). For our Chrome tests, how commonly is font-display
used?
I assume this will be creeping up over time, especially now that Google Fonts is adding font-display
to all new code snippets copied from their site.
If you're using Google Fonts, update your snippets! If you're not using Google Fonts, use font-display
! Read more about font-display
on MDN.
Let's have a look at what font-display
values are popular:
As an easy way to show fallback text while a web font is loading, font-display: swap
reigns supreme and is the most common value. swap
is also the default value used by new Google Fonts code snippets too. I would have expected optional
(only render if cached) to have a bit more usage here as a few prominent developer evangelists lobbied for it a bit, but no dice.
How many web fonts are too many?
This is a question that requires some measure of nuance. How are the fonts being used? For how much content on the page? Where does this content live in the layout? How are the fonts being rendered? In lieu of nuance however let's dive right into some broad and heavy handed analysis specifically centered on request counts.
The median web page makes three web font requests. At the 90th percentile, requested six and nine web fonts on mobile and desktop, respectively.
It does seem quite interesting that web font requests seem to be pretty steady across desktop and mobile. I'm glad to see the recommendation to hide @font-face
blocks inside of a @media
queries didn't catch on (don't get any ideas).
That said there are marginally more requests for fonts made on mobile devices. My hunch here is that fewer typefaces are available on mobile devices, which in turn means fewer local()
hits in Google Fonts CSS, falling back to network requests for these.
You don't want to win this award
The award for the page that requests the most web fonts goes to a site that made 718 web font requests!
After diving into the code, all of those 718 requests are going to Google Fonts! It looks like a malfunctioning "Above the Page fold" optimization plugin for WordPress has gone rogue on this site and is requesting (DDoS-ing?) all the Google Fonts—oops!
Ironic that a performance optimization plugin can make your performance much worse!
More accurate matching with unicode-range
unicode-range
is a great CSS property to let the browser know specifically which code points the page would like to use in the font file. If the @font-face
declaration has a unicode-range
, content on the page must match one of the code points in the range before the font is requested. It is a very good thing.
This is another metric that I expect was skewed by Google Fonts usage, as Google Fonts uses unicode-range
in most (if not all) of its CSS. I'd expect this to be less common in user land, but perhaps filtering out Google Fonts requests in the next edition of the Almanac may be possible.
Don't request web fonts if a system font exists
local()
is a nice way to reference a system font in your @font-face
src
. If the local()
font exists, it doesn't need to make a request for a web font at all. This is used both extensively and controversially by Google Fonts, so it is likely another example of skewed data if we're trying to glean patterns from user land.
It should also be noted here that it has been said by smarter people than I (Bram Stein of TypeKit) that using local()
can be unpredictable as installed versions of fonts can be outdated and unreliable.
Condensed fonts and font-stretch
Historically, font-stretch
has suffered from poor browser support and was not a well-known @font-face
property. Read more about font-stretch
on MDN. But browser support has broadened.
It has been suggested that using condensed fonts on smaller viewports allows more text to be viewable, but this approach isn't commonly used. That being said, that this property is used half a percentage point more on desktop than mobile is unexpected, and 7% seems much higher than I would have predicted.
Variable fonts are the future
Variable fonts allow several font weights and styles to be included in the one font file.
Even at 1.8% this was higher than expected, although I am excited to see this take off. Google Fonts v2 does include some support for variable fonts.
Through the lens of this large data set, these are very low sample sizes-take these results with a grain of salt. However, opsz
as the most common axis on desktop pages is notable, with wght
and wdth
trailing. In my experience, the introductory demos for variable fonts are usually weight-based.
Color fonts might also be the future?
Usage here of these is basically nonexistent but you can check out the excellent resource Color Fonts! WTF? for more information. Similar (but not at all) to the SVG format for fonts (which is bad and going away), this allows you to embed SVG inside of OpenType files, which is awesome and cool.
Conclusion
The biggest takeaway here is that Google Fonts dominates the web font discussion. Approaches they've taken weigh heavily on the data we've recorded here. The positives here are easy access to web fonts, good font formats (WOFF2), and for-free unicode-range
configurations. The downsides here are performance drawbacks associated with third-party hosting, different-host requests, and no access to preload
.
I fully expect that in the future we'll see the "Rise of the Variable Font". This should be paired with a decline in web font requests, as Variable Fonts combine multiple individual font files into a single composite font file. But history has shown us that what usually happens here is that we optimize a thing and then add more things to fill the vacancy.
It will be very interesting to see if color fonts increase in popularity. I expect these to be far more niche than variable fonts but may see a lifeline in the icon font space.
Keep those fonts frosty, y'all.


The Scholastician platform promotes communities of students alike to share and learn from each other. As a student, you get an opportunity to learn for free from your peers over the internet.
Please email your issue to us and we will get back to you!
Don't worry! You are not obliged to remain in the session if you have to leave.
Let us know. Report the tutor on our website and send the details of your concern. We greatly appreciate your feedback!
If you do not get matched within one day of submitting your request, please submit another request. If you have any questions, please email us.
Resubmit our form. You may have other options for tutors.
You can communicate with your tutor through any video/calling applications, even through texting! We recommend Zoom for a ubiquitous means of communication, but it's really up to you!


A B C D E G L O P Q R S T U V W
All Classes All Packages
All Classes All Packages
All Classes All Packages
A
- addOrderNote(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Add new note as described in order_instance_notes
- appendOrderKeys(String, Object...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value This method appends order keys to the workflow order; existing order keys matching keys given in the arguments provided are updated and any new keys are added.
- appendOrderKeys(String, String, boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value This method appends order keys to the workflow order; existing order keys matching keys given in the arguments provided are updated and any new keys are added.
- appendOrderKeys(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value The hash provided appends orders keys to the workflow order; existing order keys matching keys given in the hash provided as an argument to this method are updated and any new keys are added.
- appendOrderKeys(HashMap<String, Object>, boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value The hash provided appends orders keys to the workflow order; existing order keys matching keys given in the hash provided as an argument to this method are updated and any new keys are added.
- array() - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncArrayStep
-
The array method returns the list of elements for the step
- array() - Method in class com.qoretechnologies.qorus.workflow.QorusEventArrayStep
-
The array method returns the list of elements for the step
- array() - Method in class com.qoretechnologies.qorus.workflow.QorusNormalArrayStep
-
The array method returns the list of elements for the step
- array() - Method in class com.qoretechnologies.qorus.workflow.QorusSubworkflowArrayStep
-
The array method returns the list of elements for the step
- attach() - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when Qorus starts working on a workflow order data instance; it in turn calls attachImpl() which can be overridden in subclasses If any error is raised in the attach method (by calling OMQ::UserApi::Workflow::WorkflowApi::stepError() "WorkflowApi::stepError()" in %Qore code or com.qoretechnologies.qorus.workflow.WorkflowApi.stepError() "WorkflowApi.stepError()" in Java code) or by throwing an appropriate exception), the workflow order data instance will receive an OMQ::StatError status and the attach operation will fail.
- attachImpl() - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when Qorus starts working on a workflow order data instance; this method may be overridden in subclasses If any error is raised in the attach method (by calling OMQ::UserApi::Workflow::WorkflowApi::stepError() "WorkflowApi::stepError()" in %Qore code or com.qoretechnologies.qorus.workflow.WorkflowApi.stepError() "WorkflowApi.stepError()" in Java code) or by throwing an appropriate exception), the workflow order data instance will receive an OMQ::StatError status and the attach operation will fail.
B
- bindEvent(String) - Method in class com.qoretechnologies.qorus.workflow.QorusEventStepBase
-
Binds a workflow synchronization event based on the event key to a workflow synchronization event step (type OMQ.ExecEvent) If this method is called twice for the same step, or if called after skipEvent(), then an exception is raised.
- bindEventUnposted(String) - Method in class com.qoretechnologies.qorus.workflow.QorusEventStepBase
-
Binds a workflow synchronization event based on the event key to a workflow synchronization event step (type OMQ.ExecEvent) only if the event has not yet been posted; if the event has already been posted, then an ALREADY-POSTED exception is raised If this method is called twice for the same step, or if called after skipEvent(), then an exception is raised.
- bindSubworkflow(HashMap, HashMap) - Method in class com.qoretechnologies.qorus.workflow.QorusSubworkflowStepBase
-
This method binds a workflow to a subworkflow step If this method is called twice or if called after skipSubworkflow(), then an exception is raised To ensure that a given workflow order is only created once for a given unique key value, make sure your workflow defines keylist "order keys", and use one of the following options to guarantee uniqueness of the order: global_unique_key workflow_specific_unique_key workflow_unique_key
C
- com.qoretechnologies.qorus.workflow - package com.qoretechnologies.qorus.workflow
D
- del(String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Deletes the sensitive data hash for the given sensitive data key and value; the changes have already been committed to the database when the method returns Example:
- deleteDynamicDataKey(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes one key from the workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- deleteDynamicDataKey(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes one or more keys from the workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- deleteInstanceDataKey(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes a single key or a list of keys from the workflow execution instance’s instance data hash
- deleteKey(String...) - Method in class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Deletes one or more keys from dynamicdata "dynamic data"; the changes have already been committed to the database when the method returns This method is equivalent to WorkflowApi.deleteDynamicDataKey()
- deleteKey(String...) - Method in class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Deletes one or more keys from stepdata "dynamic step data"; the changes have already been committed to the database when the method returns This method is equivalent to QorusStepBase.deleteStepDataKey()
- deleteKey(String...) - Method in class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Deletes one or more keys from tempdata "temp data"; the changes have already been committed to the database when the method returns This method is equivalent to WorkflowApi.deleteTempDataKey()
- deleteKey(String, String, String...) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Deletes one or more keys from the workflow order data instance’s sensitive data hash for the given sensitive data key and value; the changes have already been committed to the database when the method returns Example:
- deleteSensitiveData(String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes the sensitive data hash for the given sensitive data key and value; changes have already been committed to the database when this method returns Example:
- deleteSensitiveDataKey(String, String, String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes one or more keys from the workflow order data instance’s sensitive data hash for the given sensitive data key and value; changes have already been committed to the database when this method returns Example:
- deleteStepDataKey(String...) - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Deletes one or more keys from the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- deleteTempDataKey(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Deletes one or more keys from the workflow order data instance’s temporary data hash
- detach(String, String) - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when the workflow order data instance status is committed to the database; it in turn calls detachImpl() which can be overridden in subclasses The first argument passed to the method is the workflow order data instance's status (StatusDescriptions "status descriptions") that will be written to the database.
- detachImpl(String, String) - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when the workflow order data instance status is committed to the database; this method may be overridden in subclasses The first argument passed to the method is the workflow order data instance's status (StatusDescriptions "status descriptions") that will be written to the database.
- DynamicDataHelper - Class in com.qoretechnologies.qorus.workflow
-
Java wrapper for the OMQ::UserApi::Workflow::DynamicDataHelper "DynamicDataHelper" class in Qorus This class is a helper class that allows dynamicdata "workflow dynamic data" to be read and updated atomically; the write lock for the data is grabbed in the constructor and released in the destructor Calls to the following workflow API functions related to dynamicdata "workflow dynamic data" can be made normally while this object exists and the write lock is held; the functions are aware of and automatically use the write lock held by this object: WorkflowApi.deleteDynamicDataKey() WorkflowApi.getDynamicData() WorkflowApi.updateDynamicData() The %Qore-language destructor is run at the end of the Java step execution, after the step returns to Qorus.
- DynamicDataHelper() - Constructor for class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Creates the DynamicDataHelper object from the Qore class of the same name
- DynamicDataHelper(QoreObject) - Constructor for class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Creates the object as a wrapper for the Qore object
E
- end(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncStep
-
This method is run when the queue data bound to the asynchronous is updated and receives status OMQ.QS_Received The job of this method is to determine if the asynchronously-received data is correct or not; if it is not correct, then the function should raise an error by calling WorkflowApi.stepError() or by throwing an appropriate exception.
- end(Object, Object) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncArrayStep
-
This method is run when the queue data bound to the asynchronous is updated and receives status OMQ.QS_Received The job of this method is to determine if the asynchronously-received data is correct or not; if it is not correct, then the function should raise an error by calling WorkflowApi.stepError() or by throwing an appropriate exception.
- errorHandler(String, Map<String, Object>, Object) - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when errors are raised; it in turn calls errorHandlerImpl() which can be overridden in subclasses This method allows the workflow to do external logging or to take custom actions when errors are raised.
- errorHandlerImpl(String, Map<String, Object>, Object) - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is called when errors are raised and may be overridden in subclasses This method allows the workflow to do external logging or to take custom actions when errors are raised.
G
- generateUniqueKey() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a unique async key for the order for use with submitAsyncKey() The generated key uses the workflow_instanceid, stepid, and ind number for the step to generate a unique key.
- get() - Method in class com.qoretechnologies.qorus.workflow.WorkflowDataHelper
-
Returns the entire data structure Depending on the concrete subclasss, this method is equivalent to one of the following function calls: TempDataHelper: WorkflowApi.getTempData() DynamicDataHelper: WorkflowApi.getDynamicData()
- get(String) - Method in class com.qoretechnologies.qorus.workflow.WorkflowDataHelper
-
Returns the value of one key in the data or the entire data structure depending on the argument Depending on the concrete subclasss, this method is equivalent to one of the following function calls: TempDataHelper: WorkflowApi.getTempData() DynamicDataHelper: WorkflowApi.getDynamicData()
- get(String...) - Method in class com.qoretechnologies.qorus.workflow.WorkflowDataHelper
-
Returns the value of multiple keys in the data or the entire data structure depending on the argument Depending on the concrete subclasss, this method is equivalent to one of the following function calls: TempDataHelper: WorkflowApi.getTempData() DynamicDataHelper: WorkflowApi.getDynamicData()
- get(String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of the entire sensitive_data "sensitive data hash" for the given key value Example:
- get(String, String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of a single key in the sensitive_data "sensitive data hash" for the given key value Example:
- get(String, String, String...) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of multiple keys in the sensitive_data "sensitive data hash" for the given key value Example:
- getAliases() - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns a hash of all sensitive data aliases for the current order or an empty hash if there are none Example:
- getChildFeedback() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Gets all feedback from all child workflow orders as a hash Child workflows have to set feedback values with leaveParentFeedback() for any value to be returned with this method call
- getChildFeedback(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Gets feedback from a child workflow order with the given key The child workflow has to set a value with the given key first with leaveParentFeedback() for any value to be returned with this method call
- getConfigItemHash() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash of all configuration items for the current step as a combination of local and global configuration items Example:
- getConfigItemHash(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash of all configuration items for the current step as a combination of local and global configuration items Example:
- getConfigItems() - Method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Method to return local configuration items This is executed by oload "oload" when the object is loaded.
- getConfigItemsImpl() - Method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Method to return local configuration items; this method should be overridden by child classes to provide item configuration This is executed by getConfigItems() by oload when the object is loaded into the system.
- getConfigItemValue(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of the given step configuration item Example:
- getConfigItemValue(String, HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of the given step configuration item Example:
- getConfigItemValue(String, HashMap<String, Object>, boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of the given step configuration item Example:
- getDefaultStepData() - Method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Returns the default stepdata "dynamic step data" for the step when the step is first run The default implementation in the base class returns null
- getDynamicData() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the entire workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- getDynamicData(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the value of one keys from the workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- getDynamicData(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the values of one or more keys from the workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- getFromAlias(String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of the entire sensitive_data "sensitive data hash" for the given alias Example:
- getFromAlias(String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of a single key in the sensitive_data "sensitive data hash" for the given alias Example:
- getFromAlias(String, String...) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the value of multiple keys in the sensitive_data "sensitive data hash" for the given alias Example:
- getInstanceData() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the workflow execution instance’s instance data hash This data is set by the user (by calling updateInstanceData()) and is not associated to the order data being processed, but rather directly with the workflow execution instance.
- getInstanceData(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the value of the given key in the workflow execution instance’s instance data hash This data is set by the user (by calling updateInstanceData()) and is not associated to the order data being processed, but rather directly with the workflow execution instance.
- getInstanceData(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the values of multiple keys from the workflow execution instance’s instance data hash This data is set by the user (by calling updateInstanceData()) and is not associated to the order data being processed, but rather directly with the workflow execution instance.
- getKeyValues() - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns a hash of sensitive data keys and values saved against the order; the sensitive data hashes themselves are not returned, just the information used to index sensitive data against the order Example:
- getMetadata(String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the sensitive metadata hash for the given sensitive data key and value if present, otherwise returns an empty hash Example:
- getMetadataFromAlias(String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Returns the sensitive metadata hash for the given sensitive data alias Example:
- getOption() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of all workflow options
- getOption(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of the named workflow option If the option is not set on the workflow, and it is a valid system option, then the value of the system option will be returned.
- getOption(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the value of the named workflow options If the option is not set on the workflow, and it is a valid system option, then the value of the system option will be returned.
- getOrderKeys() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method retrieves the user-defined order key information saved against the workflow order data instance
- getOrderKeys(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method retrieves the user-defined order key information saved against the workflow order data instance
- getOrderKeys(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method retrieves the user-defined order key information saved against the workflow order data instance
- getOrderNotes() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Get order_instance_notes
- getOrderNotes(int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Get order_instance_notes
- getSensitiveData(String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the sensitive data hash for the given sensitive data key and value Example:
- getSensitiveData(String, String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the sensitive data hash for the given sensitive data key and value Example:
- getSensitiveData(String, String, String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the sensitive data hash for the given sensitive data key and value Example:
- getSensitiveDataAliases() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash of all sensitive data aliases for the current order or an empty hash if there are none Example:
- getSensitiveDataFromAlias(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of one or more keys in the sensitive_data "workflow sensitive data" hash for the given sensitive data alias corresponding to a sensitive data key and value Example:
- getSensitiveDataFromAlias(String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of one or more keys in the sensitive_data "workflow sensitive data" hash for the given sensitive data alias corresponding to a sensitive data key and value Example:
- getSensitiveDataFromAlias(String, String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of one or more keys in the sensitive_data "workflow sensitive data" hash for the given sensitive data alias corresponding to a sensitive data key and value Example:
- getSensitiveDataKeyValues() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash of sensitive data keys and values saved against the order; the sensitive data hashes themselves are not returned, just the information used to index sensitive data against the order Example:
- getSensitiveMetadata(String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the sensitive metadata hash for the given sensitive data key and value if present, otherwise returns an empty hash Example:
- getSensitiveMetadataFromAlias(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of the sensitive metadata hash for the given sensitive data alias corresponding to a sensitive data key and value Example:
- getStaticData() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the entire workflow order data instance’s static data hash Workflow order static data is the primary workflow order data and corresponds to the deserialized contents of the database field "ORDER_INSTANCE.STATICDATA" for the current workflow order data instance.
- getStaticData(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the value of one key from the workflow order data instance’s static data hash Workflow order static data is the primary workflow order data and corresponds to the deserialized contents of the database field "ORDER_INSTANCE.STATICDATA" for the current workflow order data instance.
- getStaticData(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the values of multiple keys from the workflow order data instance’s static data hash Workflow order static data is the primary workflow order data and corresponds to the deserialized contents of the database field "ORDER_INSTANCE.STATICDATA" for the current workflow order data instance.
- getStepData() - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Retrieves the hash value of the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- getStepData(String) - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Retrieves the values of a single key from the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- getStepData(String, String...) - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Retrieves the values of multiple keys from the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- getStepDataArgs(String...) - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Retrieves the values of one or more keys from the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- getStepInfo() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method will return a hash of step information for the current step
- getStepMetadata() - Method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Returns stepusermetadata "step user metadata" for the step when the step is loaded by oload "oload" The default implementation in the base class returns null
- getStepStatus(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the current status of the given step for the current workflow order instance If the step name does not exist then an exception is thrown
- getTempData() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the entire workflow order data instance’s temporary data hash
- getTempData(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the value of one key from the workflow order data instance’s temporary data hash
- getTempData(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the values multiple keys from the workflow order data instance’s temporary data hash
- getWfiid() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the current workflow_instanceid as an integer; returns null if not called in a workflow order context (ex: onetimeinit "onetimeinit function", etc)
- getWorkflowInstanceData() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves all available values from the workflow execution instance object itself
- getWorkflowInstanceData(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the value of a single key (system-defined property) from the workflow execution instance object itself
- getWorkflowInstanceData(String...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Retrieves the values of one or more keys (system-defined properties) from the workflow execution instance object itself Pass a single string argument, in which case on the value of that key is returned, or a list of strings, in which case a hash is returned giving the values of all the keys requested; see workflowexecutioninstanceinfo "Running Workflow Execution Instance Properties" for valid keys; if no arguments are passed, then a hash of all possible keys is returned
- getWorkflowMetadata() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns workflow metadata for the currently running workflow as a hash
L
- leaveParentFeedback(String, Object) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Leaves feedback for a parent workflow When this call returns, the feedback data has already been committed to the database.
O
- oneTimeInit() - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is executed once when the workflow execution instance starts or is reset; it in turn calls oneTimeInitImpl() which can be overridden in subclasses
- oneTimeInitImpl() - Method in class com.qoretechnologies.qorus.workflow.QorusWorkflow
-
This method is executed once when the workflow execution instance starts or is reset; this method may be overridden in subclasses
P
- parentWfiid() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Returns the parent workflow order data instance ID from a subworkflow or null if the current workflow order is not a subworkflow and therefore has no parent
- primary() - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncStep
-
The primary step logic for the async step This code must call either submitAsyncKey() or skipAsyncStep() or an error will be raised.
- primary() - Method in class com.qoretechnologies.qorus.workflow.QorusEventStep
-
The primary step logic for the event step This code must call either bindEvent(), bindEventUnposted(), or skipEvent() or an error will be raised.
- primary() - Method in class com.qoretechnologies.qorus.workflow.QorusNormalStep
-
The primary step logic for the normal step
- primary() - Method in class com.qoretechnologies.qorus.workflow.QorusSubworkflowStep
-
The primary step logic for the subworkflow step This code must call either bindSubworkflow() or skipSubworkflow() or an error will be raised.
- primary(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncArrayStep
-
The primary step logic for the async step This code must call either submitAsyncKey() or skipAsyncStep() or an error will be raised.
- primary(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusEventArrayStep
-
The primary step logic for the event step This code must call either bindEvent(), bindEventUnposted(), or skipEvent() or an error will be raised.
- primary(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusNormalArrayStep
-
The primary step logic for the normal step
- primary(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusSubworkflowArrayStep
-
The primary step logic for the subworkflow step This code must call either bindSubworkflow() or skipSubworkflow() or an error will be raised.
Q
- QorusAsyncArrayStep - Class in com.qoretechnologies.qorus.workflow
-
The abstract class for asyncsteps "async array steps" Example
- QorusAsyncArrayStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusAsyncArrayStep
- QorusAsyncStep - Class in com.qoretechnologies.qorus.workflow
-
The Java interface class for asyncsteps "asynchronous steps" An asynchronous step should be used any time a workflow action should be executed and it's not known in advance how long the action could take, or if the action should take a long period of time.
- QorusAsyncStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusAsyncStep
- QorusAsyncStepBase - Class in com.qoretechnologies.qorus.workflow
-
The Java base interface class for asyncsteps "asynchronous steps"
- QorusAsyncStepBase() - Constructor for class com.qoretechnologies.qorus.workflow.QorusAsyncStepBase
- QorusEventArrayStep - Class in com.qoretechnologies.qorus.workflow
-
The Java interface class for eventsteps "workflow synchronization event array steps" Workflow synchronization event steps allow many workflow orders to synchronize their processing based on a single event.
- QorusEventArrayStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusEventArrayStep
- QorusEventStep - Class in com.qoretechnologies.qorus.workflow
-
The Java interface class for eventsteps "workflow synchronization event steps" Workflow synchronization event steps allow many workflow orders to synchronize their processing based on a single event.
- QorusEventStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusEventStep
- QorusEventStepBase - Class in com.qoretechnologies.qorus.workflow
-
The Java base interface class for eventsteps "event steps"
- QorusEventStepBase() - Constructor for class com.qoretechnologies.qorus.workflow.QorusEventStepBase
- QorusNormalArrayStep - Class in com.qoretechnologies.qorus.workflow
-
The abstract class for normalsteps "normal array steps" Example
- QorusNormalArrayStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusNormalArrayStep
- QorusNormalStep - Class in com.qoretechnologies.qorus.workflow
-
The abstract class for normalsteps "normal steps" Example
- QorusNormalStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusNormalStep
- QorusStepBase - Class in com.qoretechnologies.qorus.workflow
-
Base class for workflow step classes
- QorusStepBase() - Constructor for class com.qoretechnologies.qorus.workflow.QorusStepBase
- QorusSubworkflowArrayStep - Class in com.qoretechnologies.qorus.workflow
-
The abstract class for subworkflowsteps "subworkflow array steps" A subworkflow step binds a child workflow (called a subworkflow) to a step and should be used to implement support for complex logical branching in Qorus.
- QorusSubworkflowArrayStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusSubworkflowArrayStep
- QorusSubworkflowStep - Class in com.qoretechnologies.qorus.workflow
-
The abstract class for subworkflowsteps "subworkflow steps" A subworkflow step binds a child workflow (called a subworkflow) to a step and should be used to implement support for complex logical branching in Qorus.
- QorusSubworkflowStep() - Constructor for class com.qoretechnologies.qorus.workflow.QorusSubworkflowStep
- QorusSubworkflowStepBase - Class in com.qoretechnologies.qorus.workflow
-
The Java base interface class for subworkflowsteps "subworkflow steps"
- QorusSubworkflowStepBase() - Constructor for class com.qoretechnologies.qorus.workflow.QorusSubworkflowStepBase
- QorusWorkflow - Class in com.qoretechnologies.qorus.workflow
-
Base class for workflow classes
- QorusWorkflow() - Constructor for class com.qoretechnologies.qorus.workflow.QorusWorkflow
R
- replace() - Method in class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Clears dynamicdata "dynamic data"; the change has already been committed to the database when the method returns
- replace() - Method in class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Clears stepdata "dynamic step data"; the change has already been committed to the database when the method returns
- replace() - Method in class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Clears tempdata "temp data"; the change has already been committed to the database when the method returns
- replace(String, String, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for the sensitive key value given; the data has already been committed to the database when the method returns Example:
- replace(String, String, HashMap<String, Object>, String[]) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for the sensitive key value given; the data has already been committed to the database when the method returns Example:
- replace(String, String, HashMap<String, Object>, String[], HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for the sensitive key value given; the data has already been committed to the database when the method returns Example:
- replace(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Replaces dynamicdata "dynamic data"; the data has already been committed to the database when the method returns
- replace(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Replaces stepdata "dynamic step data"; the data has already been committed to the database when the method returns
- replace(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Replaces tempdata "temp data"; the data has already been committed to the database when the method returns
- replaceFromAlias(String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Clears sensitive_data "sensitive data" for the sensitive alias given; the data has already been committed to the database when the method returns Example:
- replaceFromAlias(String, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for the sensitive alias given; the data has already been committed to the database when the method returns Example:
- replaceFromAlias(String, HashMap<String, Object>, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for the sensitive alias given; the data has already been committed to the database when the method returns Example:
- replaceMulti(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Replaces sensitive_data "sensitive data" for one more more sensitive key values given; the data has already been committed to the database when the method returns Example:
- reprioritizeOrder(int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Changes the order priority for the current workflow order instance
- rescheduleOrder(ZonedDateTime) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Reschedules the current workflow order instance for later processing Can only be called in the attach "attach function"; calling anywhere else will cause an exception to be raised.
S
- SensitiveDataHelper - Class in com.qoretechnologies.qorus.workflow
-
Java wrapper for the OMQ::UserApi::Workflow::SensitiveDataHelper "SensitiveDataHelper" class in Qorus This class is a helper class that allows sensitive_data "workflow sensitive data" to be read and updated atomically; the write lock for the data is grabbed in the constructor and released in the destructor Calls to the following workflow API functions related to sensitive_data "sensitive data" can be made normally while this object exists and the write lock is held; the functions are aware of and automatically use the write lock held by this object: WorkflowApi.deleteSensitiveDataKey() WorkflowApi.getSensitiveData() WorkflowApi.updateSensitiveData() The %Qore-language destructor is run at the end of the Java step execution, after the step returns to Qorus.
- SensitiveDataHelper() - Constructor for class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Creates the SensitiveDataHelper object from the Qore class of the same name
- SensitiveDataHelper(QoreObject) - Constructor for class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Creates the object as a wrapper for the Qore object
- setBlocked() - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Set the current workflow order status to OMQ.StatBlocked, can only be called from the attach "attach function" Processing of the workflow order will stop after this call; in order to be further processed the workflow order must be unblocked
- setCustomStatus(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Sets a user-defined custom status for the current step The custom status is also propagatef to the segment and workflow order data instances.
- setOption(String, Object) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Changes a single option value on a workflow If the workflow has defined workflow options and an invalid option is passed to the method, an exception will be raised.
- setOption(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Changes option values on a workflow If the workflow has defined workflow options and at least one invalid option is passed to the method, an exception will be raised; however all other valid options in the hash will be set before the exception is raised
- setOrderKey(String, Object...) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets the values for a sinle user-defined order key against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The value provided replaces any order key value on the workflow order The data is committed to the database before the method returns.
- setOrderKey(String, String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets the values for a sinle user-defined order key against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The value provided replaces any order key value on the workflow order The data is committed to the database before the method returns.
- setOrderKey(String, String[], boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets the values for a sinle user-defined order key against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The value provided replaces any order key value on the workflow order The data is committed to the database before the method returns.
- setOrderKey(String, String, boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets the values for a sinle user-defined order key against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The value provided replaces any order key value on the workflow order The data is committed to the database before the method returns.
- setOrderKeys(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets user-defined order keys against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The hash provided replaces orders keys on the workflow order; existing order keys matching keys given in the hash provided as an argument to this method are replaced and any new keys in the hash are added.
- setOrderKeys(HashMap<String, Object>, boolean) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method sets user-defined order keys against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value The hash provided replaces orders keys on the workflow order; existing order keys matching keys given in the hash provided as an argument to this method are replaced and any new keys in the hash are added.
- setRetryDelay(int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Sets the value of the retry delay for an asynchronous step Only takes effect when called from an asynchronous step that will receive an OMQ.StatAsyncWaiting ("A") status or when called from a normal step after an error has been raised that will cause the step to get a OMQ::StatRetry ("R") status.
- skipAsyncStep() - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncStepBase
-
This method will skip the execution of an asynchronous step Calling this method or submitAsyncKey() more than once from an asynchronous step will result in an exception.
- skipEvent() - Method in class com.qoretechnologies.qorus.workflow.QorusEventStepBase
-
Skips a workflow synchronization event step If this method is called from any other step type, or if called after bindEvent(), then an exception is raised.
- skipSubworkflow() - Method in class com.qoretechnologies.qorus.workflow.QorusSubworkflowStepBase
-
This method will skip the execution of a subworkflow step Calling after bindSubworkflow() has already been called, and a subworkflow order instance has been bound to the step, will result in an exception.
- sleep(int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Puts the current thread to sleep for a certain number of seconds If the worklow is stopping, this method returns immediately with a return value of -1; otherwise the current thread is put to sleep for the full time period requested.
- StepDataHelper - Class in com.qoretechnologies.qorus.workflow
-
Java wrapper for the OMQ::UserApi::Workflow::StepDataHelper "StepDataHelper" class in Qorus This class is a helper class that allows stepdata "workflow dynamic step data" to be read and updated atomically; the write lock for the data is grabbed in the constructor and released in the destructor Calls to the following workflow API functions related to stepdata "workflow dynamic data" can be made normally while this object exists and the write lock is held; the functions are aware of and automatically use the write lock held by this object: QorusStepBase.deleteStepDataKey() QorusStepBase.getStepData() QorusStepBase.updateStepData() The %Qore-language destructor is run at the end of the Java step execution, after the step returns to Qorus.
- StepDataHelper() - Constructor for class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Creates the StepDataHelper object from the Qore class of the same name
- StepDataHelper(QoreObject) - Constructor for class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Creates the object as a wrapper for the Qore object
- stepError(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises an error against the current step without affecting the flow of processing This method will affect the final status of the step, segment, and workflow, if the severity of the error is OMQ.ES_Major or OMQ.ES_Fatal.
- stepError(String, int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises an error against the current step without affecting the flow of processing This method will affect the final status of the step, segment, and workflow, if the severity of the error is OMQ.ES_Major or OMQ.ES_Fatal.
- stepError(String, Object) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises an error against the current step without affecting the flow of processing This method will affect the final status of the step, segment, and workflow, if the severity of the error is OMQ.ES_Major or OMQ.ES_Fatal.
- stepError(String, Object, int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises an error against the current step without affecting the flow of processing This method will affect the final status of the step, segment, and workflow, if the severity of the error is OMQ.ES_Major or OMQ.ES_Fatal.
- stepExecuted(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
This method returns true if the step passed has been executed and has status OMQ.StatComplete ("C") If the step name does not exist then an exception is thrown
- stepWarning(String) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises a warning against the step The information is logged, but does not affect the step’s status.
- stepWarning(String, Object) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Raises a warning against the step The information is logged, but does not affect the step’s status.
- submitAsyncKey(String) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncStepBase
-
Binds the given key to the asynchronous step If this method is called more than once from an asynchronous step, an exception will be thrown.
T
- TempDataHelper - Class in com.qoretechnologies.qorus.workflow
-
Java wrapper for the OMQ::UserApi::Workflow::TempDataHelper "TempDataHelper" class in Qorus This class is a helper class that allows tempdata "workflow temp data" to be read and updated atomically; the write lock for the data is grabbed in the constructor and released in the destructor.
- TempDataHelper() - Constructor for class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Creates the TempDataHelper object from the Qore class of the same name
- TempDataHelper(QoreObject) - Constructor for class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Creates the object as a wrapper for the Qore object
U
- update(String, String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Clears the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value; the data has already been committed to the database when the method returns Example:
- update(String, String, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value; the data has already been committed to the database when the method returns Example:
- update(String, String, HashMap<String, Object>, String[]) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value; the data has already been committed to the database when the method returns Example:
- update(String, String, HashMap<String, Object>, String[], HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value; the data has already been committed to the database when the method returns Example:
- update(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.DynamicDataHelper
-
Adds data to dynamicdata "dynamic data"; the data has already been committed to the database when the method returns This method is equivalent to WorkflowApi.updateDynamicData()
- update(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.StepDataHelper
-
Adds data to stepdata "dynamic step data"; the data has already been committed to the database when the method returns This method is equivalent to QorusStepBase.updateStepData()
- update(HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.TempDataHelper
-
Adds data to tempdata "temp data"; the data has already been committed to the database when the method returns This method is equivalent to WorkflowApi.updateTempData()
- updateDynamicData(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates the values of one or more keys in the workflow order data instance’s dynamic data hash Dynamic data is directly linked to the order data the workflow execution instance is processing.
- updateFromAlias(String) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Clears the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias; the data has already been committed to the database when the method returns Example:
- updateFromAlias(String, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias; the data has already been committed to the database when the method returns Example:
- updateFromAlias(String, HashMap<String, Object>, HashMap<String, Object>) - Method in class com.qoretechnologies.qorus.workflow.SensitiveDataHelper
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias; the data has already been committed to the database when the method returns Example:
- updateInstanceData(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates the values of one or more keys in the workflow execution instance’s instance data hash
- updateSensitiveData(String, String, HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value Example:
- updateSensitiveData(String, String, HashMap<String, Object>, String[]) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value Example:
- updateSensitiveData(String, String, HashMap<String, Object>, String[], HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value Example:
- updateSensitiveDataFromAlias(String, HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias Example:
- updateSensitiveDataFromAlias(String, HashMap<String, Object>, HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias Example:
- updateStepData(Map<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.QorusStepBase
-
Updates the values of one or more keys in the workflow order data instance’s stepdata "dynamic step data hash" Dynamic step data is directly linked to the order data the workflow execution instance is processing.
- updateTempData(HashMap<String, Object>) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Updates the values of one or more keys in the workflow order data instance’s temporary data hash
- usleep(int) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Puts the current thread to sleep for a certain number of microseconds If the worklow is stopping, this method returns immediately with a return value of -1; otherwise the current thread is put to sleep for the full time period requested.
- usleep(QoreRelativeTime) - Static method in class com.qoretechnologies.qorus.workflow.WorkflowApi
-
Puts the current thread to sleep for a certain number of microseconds If the worklow is stopping, this method returns immediately with a return value of -1; otherwise the current thread is put to sleep for the full time period requested.
V
- validation() - Method in class com.qoretechnologies.qorus.workflow.QorusNormalStep
-
Validation logic for the step This method must be overridden for steps that can only execute once; by default this method will return OMQ.StatRetry, meaning that the primary step logic will be repeated.
- validation(Object) - Method in class com.qoretechnologies.qorus.workflow.QorusNormalArrayStep
-
Validation logic for the step This method must be overridden for steps that can only execute once; by default this method will return OMQ.StatRetry, meaning that the primary step logic will be repeated.
- validation(String) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncStep
-
Validation logic for the step This method must be overridden for steps that can only execute once; by default this method will return OMQ.StatRetry, meaning that the primary step logic will be repeated.
- validation(String, Object) - Method in class com.qoretechnologies.qorus.workflow.QorusAsyncArrayStep
-
Validation logic for the step This method must be overridden for steps that can only execute once; by default this method will return OMQ.StatRetry, meaning that the primary step logic will be repeated.
W
- WorkflowApi - Class in com.qoretechnologies.qorus.workflow
-
The main Qorus Java workflow API class
- WorkflowApi() - Constructor for class com.qoretechnologies.qorus.workflow.WorkflowApi
- WorkflowDataHelper - Class in com.qoretechnologies.qorus.workflow
-
Java wrapper for the OMQ::UserApi::Workflow::WorkflowDataHelper "WorkflowDataHelper" class in Qorus This class is a helper class that allows dynamicdata "workflow dynamic data" (DynamicDataHelper) and tempdata "workflow temp data" (TempDataHelper) to be read and updated atomically; the write lock for the data is grabbed in the constructor and released in the destructor.
- WorkflowDataHelper(QoreObject) - Constructor for class com.qoretechnologies.qorus.workflow.WorkflowDataHelper
-
Creates the object as a wrapper for the Qore object
All Classes All Packages


1 in 10 people with cholera will experience severe symptoms 2
Cholera spreads through contaminated drinking water. 1
Adding solutions like chlorine or cooling the water can lower your risk of getting cholera 1.
See the "Water Treatment" section for a full list of preventions and treatments.
If you are caring for someone with cholera, you must wash your hands thoroughly after touching anything that might be in contact with the patients' feces 1.
Transmission
V. cholerae is transmitted through contaminated food or water. The source of contamination is usually through the feces of cholera patients. 1
There is little evidence of direct person-to-person transmission. 1
Clinical Features
The signs and symptoms of cholera are caused by the cholera toxin produced by V. cholerae.
Clinical features
75% of cholera patients are asymptomatic
Of the patients that do show symptoms, they usually have a mild illness
Around ~2% of the infected will have severe cholera (or cholera gravis)
Symptoms of severe cholera:
Severe dehydration
Sunken eyes
Dry mouth and lips
Poor skin turgor
Decreased blood pressure
Poor or absent pulses
Therapies
Rehydration Therapy
Before the invention of rehydration therapy, 30-50% of patients with typical severe cholera died.
Now, the mortality rate is less than 1%.
80-90% of patients can be treated with an oral rehydration solution
Antimicrobial Therapy
Antimicrobials can:
Reduce fluid loss
Shorten the duration of diarrhea
Reduce the length of carriage of cholera in the feces
Antibiotics are recommended for:
Moderate to severe dehydrated patients
Patients who pass large volumes of stool while being on the rehydration treatment
All hospitalized patients
Asymptomatic patients should not receive antibiotics, to reduce the risk of antibiotic resistance
Cholera Complications
Hypoglycemia (low blood sugar): is common and lethal in children with cholera
Acute pulmonary edema: risk among elderly, young children, and anemic patients
Renal failure (anuria): rare and occurs when shock is not rapidly corrected. Hospitalized patients should be checked for urine output before discharge.
Hypokalemia: suspected in cases of repeated painful cramps
The WHO organization recommends rural areas use the following definition for cholera cases: 2
Suspected Cholera Case
If a cholera outbreak has not been declared, any patient 2 years or older with watery diarrhea and severe dehydration, or is dying from watery diarrhea, is a suspected cholera case.
In areas with a declared cholera outbreak, any person presenting with or dying from watery diarrhea is a suspected cholera case.
Confirmed Cholera Case
Vibrio cholerase O1 confirmed by stool culture or PCR, or if the strain is confirmed to be toxigenic
An image of sunken eyes and some description would go here.
Slow Sand Filter
Slow sand filters can be used to decontaminate groundwater. You should use them
if your governorate is near aquifers. They work by sifting the water through sand a natural biofilm.
Quick facts:
You can produce ~30L of fresh water a day
Uses sand, a readily available resource
After 4-6 months, the biofilm may thicken and lower the output of clean water. To maintain an effective flow rate, the top 5 centimeters must be replaced with clean or washed sand.
Solar Distillation
Solar distillation can be used for governorates near the sea.
Quick facts:
While black-bottomed vessels from high density polyethylene (HDPE) are common, copper vessels are more effective for antimicrobial treatment.
Copper is widely available in Yemen
Copper quickly absorbs the sun's energy (a specific heat of 0.385J/gºC, compared to HDPE with 1.9J/gºC
You can produde more than 6L of clean water in a day
References
Haiti Cholera Training Manual: A Full Course for Healthcare Providers. (2011). Retrieved from https://www.cdc.gov/cholera/pdf/haiticholera_trainingmanual_en.pdf
Illness and Symptoms. (2020, October 02). Retrieved December 13, 2020, from https://www.cdc.gov/cholera/illness.html
Cholera: Lessons from Haiti and Beyond. Current Infectious Disease Reports. (2011). DOI: 10.1007/s11908-011-0221-9
CHAPTER 13: Infectious Disease (CHOLERA) (2014). Retrieved from https://www.slideshare.net/zakkuefuronfrogie/infectious-diseases-34076767


{% extends 'website/base.html' %} {% load static %} {% block title %}Societies in ECS{% endblock title %} {% block pagestyle %} {{ block.super }} {% endblock %} {% block content %} Societies in ECS {% for society in societies %} {{ society.name }} {% endfor %} For committees of societies in ECS: please contact ECSS webmaster if information here need to be updated or anything need to be added to the list. {% endblock %}


--- layout: default --- {% include breadcrumbs.html %} {% include page-header.html %}
{{ variation.styleModifier }}
{{ variation.description }}


{% extends "layout.html" %} {% block page_title %} GOV.UK prototyping kit {% endblock %} {% block content %} ALPHA This is a new service – your feedback will help us to improve it. Sharing your data Public contact information<EMAIL_ADDRESS>077171 824 132 Change Public contact information codes Number of staff on 31 December 2017 47 Change Number of staff Annual operating hours Not provided Change Annual operating hours {% endblock %}
ALPHA This is a new service – your feedback will help us to improve it.