type TPaintStage = record
DsgnTime: Boolean;
RunTime: Boolean;
Stage: Cardinal; // a PST_* constant
Parameter: Cardinal; // an optional parameter
end;
type PPaintStage = ^TPaintStage;
Defines a drawing stage in TCustomImage32.
DsgnTime indicates that the stage must be executed at design-time;
RunTime indicates that the stage must be executed at run-time;
Stage is one of the Paint Stage Constants, which specifies the stage action;
Parameter is an optional parameter used in some paint stages.


HTML
A very simple explanation on what HTML CSS and the DOM are is this:
Imagine you are writing an essay on a specific topic, generally you will follow a guideline somewhere which might include a(n) :
- Cover
- Index
- Foreword
- Images/Graphs
- Summary
- Glossary
If you would put it together any other way your work would probably be frowend upon and if you might miss one or two of these items it might not be looked at it at all.
HTML of web page contains all the information and the content, but if being put incorrectly it will not reach its audience.
CSS
Do you remember paint by numbers? Now imagine writing that essay from before but witout any colours or ink for the text or pieces of paper to write it on... CSS can take care of all the colours, fonts, change how bold the titles can be, the colour of the paper, if you want to read from left to right or right to left, etc. As long if you have the content/information, CSS can perform the changes in terms on how it looks.
DOM
Well the DOM is an interesting one, in the Matrix one of the Oracle's students is "bending" a spoon using only his mind. While Neo is pondering on how this is happening, the student asks him if he wants to try it and mentions: "remember there is no spoon". The spoon represents the website, Neo represents our perseption of the spoon and the student is the DOM. Although the DOM receives the same information it allows the subject to be manipulated as well to any shape or form (and see how it has been put together).
What is meant by boxifying design?
Boxifying design is when you imagine a website being split into boxes, it doesn't matter if they are square or rectangular or if there boxes within boxes. These boxes help with creating your layout and determine how you need to divide (div) your code for this page.
What is the box model?
The box model can help you determine how much "space" you will need to reserve for the boxes, example: if you don't want to boxes coming to close together you might want to increase the margin. Or if you want the content closer to the border you want to decrease the Padding. The model itself will show you how much space each of the elements have been assigned to which can help you with creating the layout and design of your page.


| This report lists pages that may take too long for users to download. Studies show that users will not wait longer than 20 seconds for a page to load before leaving the site. The criteria for what is defined as slow can be specified in Linkbot's options. Under the current settings, all pages with a download size greater than 50 KB are considered slow. The download size is defined as the sum of all objects on the page including both text and images. |
| SLOW PAGES BROKEN DOWN BY AUTHOR |
| AUTHOR | SLOW PAGES |
| (No Author specified in META tags) | 1 |
| Alexander_Chislenko | 31 |
| Total | 32 |
| SLOW PAGES CREATED BY: (No Author specified in META tags) |
PAGE |
SIZE (kb) | 28.8 | 128 | T1 |
| 52 | 00:00:18 | 00:00:08 | 00:00:00 |
| SLOW PAGES CREATED BY: Alexander_Chislenko |
PAGE |
SIZE (kb) | 28.8 | 128 | T1 |
| 274 | 00:01:37 | 00:00:43 | 00:00:01 | |
| 224 | 00:01:19 | 00:00:35 | 00:00:01 | |
| 157 | 00:00:56 | 00:00:25 | 00:00:01 | |
| 134 | 00:00:47 | 00:00:21 | 00:00:00 | |
| 133 | 00:00:47 | 00:00:21 | 00:00:00 | |
| 124 | 00:00:44 | 00:00:19 | 00:00:00 | |
| 122 | 00:00:43 | 00:00:19 | 00:00:00 | |
| 114 | 00:00:40 | 00:00:18 | 00:00:00 | |
| 111 | 00:00:39 | 00:00:17 | 00:00:00 | |
| 111 | 00:00:39 | 00:00:17 | 00:00:00 | |
| 92 | 00:00:32 | 00:00:14 | 00:00:00 | |
| 90 | 00:00:32 | 00:00:14 | 00:00:00 | |
| 79 | 00:00:28 | 00:00:12 | 00:00:00 | |
| 78 | 00:00:27 | 00:00:12 | 00:00:00 | |
| 77 | 00:00:27 | 00:00:12 | 00:00:00 | |
| 77 | 00:00:27 | 00:00:12 | 00:00:00 | |
| 69 | 00:00:24 | 00:00:11 | 00:00:00 | |
| 65 | 00:00:23 | 00:00:10 | 00:00:00 | |
| 64 | 00:00:22 | 00:00:10 | 00:00:00 | |
| 63 | 00:00:22 | 00:00:10 | 00:00:00 | |
| 63 | 00:00:22 | 00:00:10 | 00:00:00 | |
| 62 | 00:00:22 | 00:00:09 | 00:00:00 | |
| 59 | 00:00:21 | 00:00:09 | 00:00:00 | |
| 58 | 00:00:20 | 00:00:09 | 00:00:00 | |
| 58 | 00:00:20 | 00:00:09 | 00:00:00 | |
| 56 | 00:00:20 | 00:00:09 | 00:00:00 | |
| 55 | 00:00:19 | 00:00:08 | 00:00:00 | |
| 53 | 00:00:19 | 00:00:08 | 00:00:00 | |
| 52 | 00:00:18 | 00:00:08 | 00:00:00 | |
| 51 | 00:00:18 | 00:00:08 | 00:00:00 | |
| 51 | 00:00:18 | 00:00:08 | 00:00:00 |
REPORT CREATED BY |


Ocean [ad08], ocean, in Crystal Sea
Last updated Turn #128
Ocean [ad08], ocean, in Crystal Sea
------------------------------------------------------------------------
11: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
11: 4% damaged, arrived from Ocean [ad09], owner:
11: Toulouse [h1q], Pen, with one worker, 32 sailors
12: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
12: 4% damaged, departed for Ocean [ad07].
Routes leaving Ocean:
North, to Ocean [ac08], 6 days
East, to Ocean [ad09], 6 days
South, to Ocean [ae08], 6 days
West, to Ocean [ad07], 6 days


I need to be constantly reminding myself that I should be building on my process skills not focusing on how something looks. But that part of my lizard brain that says "No one's going to buy this if it doesn't look amazing. What are you going to do when you're homeless? Survival of the fittest! ROOAAAW HISSS HISS!" Yeah, so that kicks in and I end up battling between wanting to take shortcuts that I know will (half arsed) work but that totally go against proper clean process. At some point I'm hoping to acheive both.
I already meditate. I'm bad at it. And a lot of the time I'm not good at remembering to do it regularly but I try. Being xyz or what ever genration I am guessing the generational ADHA is probably pretty fierce... Cat?! Was that a Cat?!... What were we talking about?
I started doing the Headspace Take 10 and it's amazeballs. It doesn't just have exercises - it has cute short informative videos that tell you, using science, why meditation works. Science knows where it's at.
Headspace Take 10 but of course.
Many many amusings


Create a case operation.
tf.compat.v2.case
tf.case( pred_fn_pairs, default=None, exclusive=False, strict=False, name='case' )
See also tf.switch_case
.
The pred_fn_pairs
parameter is a list of pairs of size N.
Each pair contains a boolean scalar tensor and a python callable that
creates the tensors to be returned if the boolean evaluates to True.
default
is a callable generating a list of tensors. All the callables
in pred_fn_pairs
as well as default
(if provided) should return the same
number and types of tensors.
If exclusive==True
, all predicates are evaluated, and an exception is
thrown if more than one of the predicates evaluates to True
.
If exclusive==False
, execution stops at the first predicate which
evaluates to True, and the tensors generated by the corresponding function
are returned immediately. If none of the predicates evaluate to True, this
operation returns the tensors generated by default
.
tf.case
supports nested structures as implemented in
tf.contrib.framework.nest
. All of the callables must return the same
(possibly nested) value structure of lists, tuples, and/or named tuples.
Singleton lists and tuples form the only exceptions to this: when returned by
a callable, they are implicitly unpacked to single values. This
behavior is disabled by passing strict=True
.
Example 1:
if (x < y) return 17; else return 23;
f1 = lambda: tf.constant(17) f2 = lambda: tf.constant(23) r = tf.case([(tf.less(x, y), f1)], default=f2)
Example 2:
if (x < y && x > z) raise OpError("Only one predicate may evaluate to True"); if (x < y) return 17; else if (x > z) return 23; else return -1;
def f1(): return tf.constant(17) def f2(): return tf.constant(23) def f3(): return tf.constant(-1) r = tf.case([(tf.less(x, y), f1), (tf.greater(x, z), f2)], default=f3, exclusive=True)
pred_fn_pairs
: List of pairs of a boolean scalar tensor and a callable which
returns a list of tensors.default
: Optional callable that returns a list of tensors.exclusive
: True iff at most one predicate is allowed to evaluate to True
.strict
: A boolean that enables/disables 'strict' mode; see above.name
: A name for this operation (optional).The tensors returned by the first pair whose predicate evaluated to True, or
those returned by default
if none does.
TypeError
: If pred_fn_pairs
is not a list/tuple.TypeError
: If pred_fn_pairs
is a list but does not contain 2-tuples.TypeError
: If fns[i]
is not callable for any i, or default
is not
callable.pred_fn_pairs
could be a dictionary in v1. However, tf.Tensor and
tf.Variable are no longer hashable in v2, so cannot be used as a key for a
dictionary. Please use a list or a tuple instead.


eXistenZ: deep in the video arena
First there was Tron, the movie and the videogame. Next came The Last Starfighter, where life was a videogame, more or less. Soon enough cyberpunk reigned and Johnny Mnemonic was born into the neuroscape of virtual reality; not long after, virtual reality gave birth itself, and Russell Crowe got to play the 'perfect' killer in the aptly-named Virtuosity. But of course people have been slipping between dimensions and realities and timeframes and worlds since Rod Serling. However, nine times out of ten it's just a gimmick, and any of that good old Twilight Zone paranoia ('is this really real?') is scuttled in favor of effects. But now David Cronenberg is taking a graphic stab at the whole thing, and he brings nothing to the table if not a fundamental--and contagious--distrust of reality.
His eXistenZ is set either in some alternate world or the near future. For purposes of the movie, it doesn't really matter. Suffice it to say that it's a reality where a two-headed frog / salamander / lizard is a 'sign of the times.' Too, everyone walks around with 'bioports,' little jacks in the lower spine which get umbilically attached to gamepods, which are themselves made of metaflesh and seem to have gender. And everyone's addicted to the games these gamepods allow, to the point that society has become factionalized over them, has split into the 'realists' and the 'antirealists.' The realists like to space out and play games; the antirealists don't. eXistenZ is the story of their ongoing skirmish.
But of course, too, it's more: these 'games' you can jack into aren't just Pac-Man or Galaga with fancy joysticks, but are indistinguishable from real life. As one of the characters says, "You have to play to figure out why you're playing," or even if you're playing. Add to that the fact that, within the game, you can jack into another game--thus going deeper and deeper--and pretty soon you wonder if where you started in the first place was really real or not. This is what world-famed game-designer / artist Allegra Geller (Jennifer Jason Leigh) and her impromptu bodyguard Ted (Jude Law) have to deal with, claw their way out of, etc.
It all starts when someone sneaks a 'bio' gun into a video-game marketing seminar and shoots Allegra with a human tooth. Sounds crazy yes, but then you should see the gun (as this is Cronenberg, too, there's no shortage of pistols pulled from strange places). So, on the run now, Allegra and Ted, naturally, jack into the game--ostensibly to check it out, but really just to give all the bad guys a chance to run them ragged in virtual reality. It's pretty cool for awhile, and, to Cronenberg's credit as a writer, everytime it begins to flatten out he ups the (regression-)ante just a little more, either by having causality cross the reality-boundary (per Lost Highway, which has a very similar, impenetrable logic) or having identities shift, per Total Recall (or, more specifically, another Philip K. Dick work--Maze of Death, which eXistenZ pretty much is). Or, talking 'straight' movies, Fincher's The Game, another case where the main character's never quite sure what's real. In The Game, however, Fincher eventually makes the world safe again, by putting a stop to all the regression, reestablishing a consensual baseline. Not so with eXistenZ. This is Cronenberg, after all. Just because it only takes 97 minutes to wrap things up, don't be fooled into thinking it's safe. In a movie where you can build a sidearm from dinner scraps, everything's dangerous.
(c) 1999 Stephen Graham Jones, http://www.cinemuck.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| First Name | Last Name | Job Title | DOB | Status |
|---|---|---|---|---|
| Isidra | Boudreaux | Traffic Court Referee | 22 Jun 1972 | click me |
| Maria | Nicley | Meat Packager | 28 Oct 1966 | click me |
| Shona | Woldt | Airline Transport Pilot | 3 Oct 1981 | click me |
| Granville | Leonardo | Business Services Sales Representative | 19 Apr 1969 | click me |
| Easer | Dragoo | Drywall Stripper | 13 Dec 1977 | click me |
| Maple | Halladay | Aviation Tactical Readiness Officer | 30 Dec 1991 | click me |
| Maxine | Woldt | Business Services Sales Representative | 17 Oct 1987 | click me |


Front-End Developer Who focuses on writting clean,elegant & efficient code. Love Html5, Css3, Wordpress & a touch of jQuery.
Our aim is to design and create a data management system for a rental company. This enables customers to rent a vehicle that can be used temporarily for a fee during a specified period.
Easy to use online DVD rental software system for DVD rental store business. In this system you can easily downnload adny movie, Games , Software Etc.
A Library management system is a software that uses to maintain the record of the library. It contains work like the number of available books in the library etc.
Our aim is to design and create a data management system for a rental company. This enables customers to rent a vehicle that can be used temporarily for a fee during a specified period.
DownloadEasy to use online DVD rental software system for DVD rental store business. In this system you can easily downnload adny movie, Games , Software Etc.
A Library management system is a software that uses to maintain the record of the library. It contains work like the number of available books in the library etc.
These are my few skills.
Hi my name is Asad,I create beautiful and functional websites.If you are a business seeking a web presence or an employer looking to hire, you can get in touch with me in here.
I proud to say that i achieved the success and won the Software Exhibition and i also won the Speed programming.
I will provide your Support 24/7.
More Than 15+ Website Created
Cms Installation
Award Won
Happy Clients
Working On


For the "Year Of Dance", Clackmannan District Council organised a production of 42nd Street, and I was delighted to take part.
My tap dancing skills were essentially nil, and the chreographer explained what she was aiming for. "We'll have the guys behind the girls," she explained. "Guys, just try to get the arms going the same way as the girls'. Nobody will see your feet!"
I think that was an exaggeration. I hope it was! But whatever the case was, this turned out to be a fantastic show. The exuberance of the finale, with those taps building throughout, led loads of folk to ask me where they could learn to tap dance! It was great fun, really exciting.
This is a show I'd enjoy doing again. But I'd still be hiding behind the girls!
Alas, I have no production pictures. Well, nothing that's not blurred beyond use anyway. All I have is these two pictures from one of the rehearsals.


STEP 2: MATCH
Below, please select the level of relevance you consider for each of the questions identified. Once you're done, click the
button to begin the matching process.
Merge with most recent matches stored.
Matching
Successfully
generated


The home to most delicious meals you can find in Sri Lanka.
Order a Meal!Rice and curry is a popular dish in the Southern Indian states of Andhra Pradesh, Telangana, Karnataka, Kerala, and Tamil Nadu, as well as in Sri Lanka and Bangladesh.
Fried rice is a dish of cooked rice that has been stir-fried in a wok or a frying pan and is usually mixed with other ingredients such as eggs, vegetables, seafood, or meat.
Hoppers are a type of pancake, originating from the Indian subcontinent, made with fermented rice batter and coconut milk. It is a common food in Kerala,Tamil Nadu and Sri Lanka.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Summer.20Internships.20ETH.20Zurich.html ---
Dear students,
we just announced the ETH Summer internship program specifically targetted at BSc and MSc students: https://www.inf.ethz.ch/studies/summer-research-fellowship.html. We feel it is a great way for young students to gain first research experience! While lean is not yet so widespread at ETH, we certainly have people interested. Get in touch with me if this is something you would be excited about.
Dear senior researchers, please pass this on to your students. I feel this would be a great way to get more lean into ETH. With Johannes' presentation we planted a first seed, Sebastian will give another talk soon, having some lean student projects at ETH would be a great way to continue.
(deleted)
Who would supervise someone interested in writing Lean code at ETH?
Tobias?
There seems to be some list of professors at https://www.inf.ethz.ch/studies/summer-research-fellowship/professors.html -- I maybe misread it as "you should choose one of these people".
@Kevin Buzzard, that's a good question. I feel there is a chicken and egg problem to get things rolling, especially as I am myself not well trained in lean. Depending on the topic I would collaborate with people proficient in Isabelle (David Cock, Dmitriy Traytel), remote-collaborate with interested parties on Zulip (maybe Rob?), invite senior people on lean for a similar period, ...
On the lean side, this is clearly not the best place to work with lean die-hards, but especially for students who are comfortable to work on open source projects with the community and potentially already took a first course in lean, we certainly would have interesting problems to work on. Also, they would help to establish lean as a tool at ETH.
I talked with several people and there is clearly interest here.
There seems to be some list of professors at https://www.inf.ethz.ch/studies/summer-research-fellowship/professors.html -- I maybe misread it as "you should choose one of these people".
These are examples of researchers at ETH. I am officially associated to Torsten Hoefler, but in the end students work on concrete projects with any of the senior staff at ETH.
@Kevin Buzzard, you have a lot of experience working with young students. My feeling is that students who worked with you for a year on lean might be a good fit.
Any advice or recommendation what would help to make an internship at ETH for them a valueable experience would be very much appreciated.
OK this is great. I was composing an email to the Xena people at Imperial -- this is why I was asking -- I realised I was not sure whether it would be possible to work with you / your group (there seem to be a wide range of interests represented, unsurprisingly, in the program). We have such a program in the UK called UROP -- I had 20 students working with me last summer, formalising parts of the mathematics curriculum at Imperial.
@Tobias Grosser I told the Imperial people. You should maybe advertise it on the lean-user mailing list? It seems like a sensible use of it.
If people want to work specifically with me, they should reach out to me.
I told them that :-)
This specific program is our flagship program to attract young students. It is a great tool to reach out, but we have various other options which we can use depending on our project needs.
Thanks for reaching out.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


above |
K'an The Abysmal, Water |
|
below |
Ken Keeping Still, Mountain |
Obstruction. The southwest furthers.
The northeast does not further.
It furthers one to see the great man.
Perseverance brings good fortune.
Water on the mountain:
The image of Obstruction.
Thus the superior man turns his attention to himself
And molds his character.
Six at the beginning means:
Going leads to obstructions,
Coming meets with praise.
Six in the second place means:
The king's servant is beset by obstruction upon obstruction,
But it is not his own fault.
Nine in the third place means:
Going leads to obstructions;
Hence he comes back.
Six in the fourth place means:
Going leads to obstructions,
Coming leads to union.
Nine in the fifth place means:
In the midst of the greatest obstructions,
Friends come.
Six at the top means:
Going leads to obstructions,
Coming leads to great good fortune.
It furthers one to see the great man.


Microsoft Agent ActiveX Test
Type in something and click the Speak button for Bonzi.
Type in something and click the Speak button for Peedy.
Type in something and click the Speak button for Genie.
Type in something and click the Speak button for Merlin.
Type in something and click the Speak button for Robby.
Or click one of these other buttons:
Here's what you'll need to use this page:
To access other Agent components, go to the Downloads page.
To learn how to program the character to do other things, go to the Microsoft Agent Documentation page.


| ||||||||||||||||||||
lhash(3)
NAMElh_new, lh_free, lh_insert, lh_delete, lh_retrieve, lh_doall, lh_doall_arg, lh_error - dynamic hash table
SYNOPSIS#include <openssl/lhash.h> DECLARE_LHASH_OF(<type>); LHASH *lh_<type>_new(); void lh_<type>_free(LHASH_OF(<type> *table); <type> *lh_<type>_insert(LHASH_OF(<type> *table, <type> *data); <type> *lh_<type>_delete(LHASH_OF(<type> *table, <type> *data); <type> *lh_retrieve(LHASH_OF<type> *table, <type> *data); void lh_<type>_doall(LHASH_OF(<type> *table, LHASH_DOALL_FN_TYPE func); void lh_<type>_doall_arg(LHASH_OF(<type> *table, LHASH_DOALL_ARG_FN_TYPE func, <type2>, <type2> *arg); int lh_<type>_error(LHASH_OF(<type> *table); typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *); typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *); typedef void (*LHASH_DOALL_FN_TYPE)(const void *); typedef void (*LHASH_DOALL_ARG_FN_TYPE)(const void *, const void *);
DESCRIPTIONThis library implements type-checked dynamic hash tables. The hash table entries can be arbitrary structures. Usually they consist of key and value fields.
lh_<type>_new() creates a new LHASH_OF( #define DECLARE_LHASH_HASH_FN(name, o_type) \ unsigned long name##_LHASH_HASH(const void *); #define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ unsigned long name##_LHASH_HASH(const void *arg) { \ const o_type *a = arg; \ return name##_hash(a); } #define LHASH_HASH_FN(name) name##_LHASH_HASH #define DECLARE_LHASH_COMP_FN(name, o_type) \ int name##_LHASH_COMP(const void *, const void *); #define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ const o_type *a = arg1; \ const o_type *b = arg2; \ return name##_cmp(a,b); } #define LHASH_COMP_FN(name) name##_LHASH_COMP #define DECLARE_LHASH_DOALL_FN(name, o_type) \ void name##_LHASH_DOALL(void *); #define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \ void name##_LHASH_DOALL(void *arg) { \ o_type *a = arg; \ name##_doall(a); } #define LHASH_DOALL_FN(name) name##_LHASH_DOALL #define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ void name##_LHASH_DOALL_ARG(void *, void *); #define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ o_type *a = arg1; \ a_type *b = arg2; \ name##_doall_arg(a, b); } #define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG An example of a hash table storing (pointers to) structures of type 'STUFF' could be defined as follows; /* Calculates the hash value of 'tohash' (implemented elsewhere) */ unsigned long STUFF_hash(const STUFF *tohash); /* Orders 'arg1' and 'arg2' (implemented elsewhere) */ int stuff_cmp(const STUFF *arg1, const STUFF *arg2); /* Create the type-safe wrapper functions for use in the LHASH internals */ static IMPLEMENT_LHASH_HASH_FN(stuff, STUFF); static IMPLEMENT_LHASH_COMP_FN(stuff, STUFF); /* ... */ int main(int argc, char *argv[]) { /* Create the new hash table using the hash/compare wrappers */ LHASH_OF(STUFF) *hashtable = lh_STUFF_new(LHASH_HASH_FN(STUFF_hash), LHASH_COMP_FN(STUFF_cmp)); /* ... */ }
lh_<type>_free() frees the LHASH_OF( lh_<type>_insert() inserts the structure pointed to by data into table. If there already is an entry with the same key, the old value is replaced. Note that lh_<type>_insert() stores pointers, the data are not copied. lh_<type>_delete() deletes an entry from table.
lh_<type>_retrieve() looks up an entry in table. Normally, data
is a structure with the key lh_<type>_doall() will, for every entry in the hash table, call func with the data item as its parameter. For lh_<type>_doall() and lh_<type>_doall_arg(), function pointer casting should be avoided in the callbacks (see NOTE) - instead use the declare/implement macros to create type-checked wrappers that cast variables prior to calling your type-specific callbacks. An example of this is illustrated here where the callback is used to cleanup resources for items in the hash table prior to the hashtable itself being deallocated: /* Cleans up resources belonging to 'a' (this is implemented elsewhere) */ void STUFF_cleanup_doall(STUFF *a); /* Implement a prototype-compatible wrapper for "STUFF_cleanup" */ IMPLEMENT_LHASH_DOALL_FN(STUFF_cleanup, STUFF) /* ... then later in the code ... */ /* So to run "STUFF_cleanup" against all items in a hash table ... */ lh_STUFF_doall(hashtable, LHASH_DOALL_FN(STUFF_cleanup)); /* Then the hash table itself can be deallocated */ lh_STUFF_free(hashtable); When doing this, be careful if you delete entries from the hash table in your callbacks: the table may decrease in size, moving the item that you are currently on down lower in the hash table - this could cause some entries to be skipped during the iteration. The second best solution to this problem is to set hash->down_load=0 before you start (which will stop the hash table ever decreasing in size). The best solution is probably to avoid deleting items from the hash table inside a ``doall'' callback!
lh_<type>_doall_arg() is the same as lh_<type>_doall() except that
func will be called with arg as the second argument and func
should be of type LHASH_DOALL_ARG_FN_TYPE (a callback prototype that is passed both the table entry and an extra
argument). As with /* Prints item 'a' to 'output_bio' (this is implemented elsewhere) */ void STUFF_print_doall_arg(const STUFF *a, BIO *output_bio); /* Implement a prototype-compatible wrapper for "STUFF_print" */ static IMPLEMENT_LHASH_DOALL_ARG_FN(STUFF, const STUFF, BIO) /* ... then later in the code ... */ /* Print out the entire hashtable to a particular BIO */ lh_STUFF_doall_arg(hashtable, LHASH_DOALL_ARG_FN(STUFF_print), BIO, logging_bio); lh_<type>_error() can be used to determine if an error occurred in the last operation. lh_<type>_error() is a macro.
RETURN VALUESlh_<type>_new() returns NULL on error, otherwise a pointer to the new LHASH structure. When a hash table entry is replaced, lh_<type>_insert() returns the value being replaced. NULL is returned on normal operation and on error. lh_<type>_delete() returns the entry being deleted. NULL is returned if there is no such value in the hash table. lh_<type>_retrieve() returns the hash table entry if it has been found, NULL otherwise. lh_<type>_error() returns 1 if an error occurred in the last operation, 0 otherwise. lh_<type>_free(), lh_<type>_doall() and lh_<type>_doall_arg() return no values.
NOTEThe various LHASH macros and callback types exist to make it possible to write type-checked code without resorting to function-prototype casting - an evil that makes application code much harder to audit/verify and also opens the window of opportunity for stack corruption and other hard-to-find bugs. It also, apparently, violates ANSI-C.
The LHASH code regards table entries as constant data. As such, it
internally represents
As an example, a hash table may be maintained by code that, for reasons of
encapsulation, has only ``const'' access to the data being indexed in the
hash table (ie. it is returned as ``const'' from elsewhere in their code) -
in this case the LHASH prototypes are appropriate as-is. Conversely, if the
caller is responsible for the life-time of the data in question, then they
may well wish to make modifications to table item passed back in the
Callers that only have ``const'' access to data they're indexing in a table, yet declare callbacks without constant types (or cast the ``const'' away themselves), are therefore creating their own risks/bugs without being encouraged to do so by the API. On a related note, those auditing code should pay special attention to any instances of DECLARE/IMPLEMENT_LHASH_DOALL_[ARG_]_FN macros that provide types without any ``const'' qualifiers.
BUGSlh_<type>_insert() returns NULL both for success and error.
INTERNALSThe following description is based on the SSLeay documentation:
The lhash library implements a hash table described in the
Communications of the ACM in 1991. What makes this hash table different is that as the table fills,
the hash table is increased (or decreased) in size via
The state for a particular hash table is kept in the LHASH structure. The decision to increase or decrease the hash table size is made depending on the 'load' of the hash table. The load is the number of items in the hash table divided by the size of the hash table. The default values are as follows. If (hash->up_load < load) => expand. if (hash->down_load > load) => contract. The up_load has a default value of 1 and down_load has a default value of 2. These numbers can be modified by the application by just playing with the up_load and down_load variables. The 'load' is kept in a form which is multiplied by 256. So hash->up_load=8*256; will cause a load of 8 to be set. If you are interested in performance the field to watch is num_comp_calls. The hash library keeps track of the 'hash' value for each item so when a lookup is done, the 'hashes' are compared, if there is a match, then a full compare is done, and hash->num_comp_calls is incremented. If num_comp_calls is not equal to num_delete plus num_retrieve it means that your hash function is generating hashes that are the same for different values. It is probably worth changing your hash function if this is the case because even if your hash table has 10 items in a 'bucket', it can be searched with 10 unsigned long compares and 10 linked list traverses. This will be much less expensive that 10 calls to your compare function.
unsigned long lh_strhash(const char *c); Since the LHASH routines would normally be passed structures, this routine would not normally be passed to lh_<type>_new(), rather it would be used in the function passed to lh_<type>_new().
SEE ALSO
HISTORY
The lhash library is available in all versions of SSLeay and OpenSSL.
This manpage is derived from the SSLeay documentation. In OpenSSL 0.9.7, all lhash functions that were passed function pointers were changed for better type safety, and the function types LHASH_COMP_FN_TYPE, LHASH_HASH_FN_TYPE, LHASH_DOALL_FN_TYPE and LHASH_DOALL_ARG_FN_TYPE became available. In OpenSSL 1.0.0, the lhash interface was revamped for even better type checking. | ||||||||||||||||||||


Historical Bitcoin Transactions
Not connected to controller
CreatedAt:
Block:
Value
Fees
Size
Fee Density
NumTx:
Max:
Max:
Max:
bytes
NumIn:
Total:
Total:
Total:
bytes
NumOut:
Avg:
Avg:
Avg:
bytes
Avg:
NumNodes:


Menu
Home
About
Posts
Projects
Projects
Victoria Auger
Web Development
Fran Berger
Web Development
Suited Mag
Web Development
Energy Life Sciences
Web Development
World Soccer 5s
Web Design | Development
The Beauty Destination
Web Design | Development
Creative 2.0
Web Design | Development
New Jersey Real Estate
Web Design | Development
Foundation Business
Web Design | Development
Embark Web Services
Web Design | Development


Talks tagged as "{{object.name}}"
{% if object_list %}
{% include "_partials/tag_pagination.html" with url_target='tags:tag-details-paginated' %}
{% include "_partials/list_talks.html" %}
{% include "_partials/tag_pagination.html" with url_target='tags:tag-details-paginated' %}
{% else %}
No results.
{% endif %}


We're sorry but painting-api-vue doesn't work properly without JavaScript enabled. Please enable it to continue.


Welcome to Pacific States Aviation's Technical Course Outline
This site is currently under construction
Login
Username
Password


Table actions are a set of icon buttons and other tools meant to perform actions on the table or the data inside of it. In the table you can provide a series of components via content projection.
For the table actions to appear, you must toggle them on by using showTableActions
Also, the size of the button icons can be controlled via the binding buttonSize
.
The design guidelines suggest using buttonSize="medium"
.
For more details, you can refer to the Button Size section on the
Icon Button documentation.


| Instructor | Dr. Scott Pollack s k o t e p <at> r i c e . e d u |
Tu/Th 4-4:30PM DCH Sym II |
|---|---|---|
| TAs | Max Grossman | W 5-6PM DCH 3036 |
| Leo Elworth | M 11-12AM DCH 3121 |
|
| Class | Tu/Th 2:30-3:45PM Symonds II Lab |
|
| Announcements & Discussion |
https://piazza.com/class/ibpbmkjtg5e3m8 |
Potentially out of date PDFs containing the course syllabus for COMP431 and COMP531. The information on this page always superceeds any information in the syllabus documents.
In this project-based course, students create multi-user Web applications utilizing many of the latest Web design technologies. Students are involved in all aspects of application development including front-end and back-end programming. Students learn and exercise industry best practices including test driven development and version control, and they explore modern Web structural frameworks.
The desired learning outcomes for the course are
The graduate section of the course contains the following additional learning outcome that will be achieved through paper and presentation: the evaluation and comparison of different web applications, web application designs, and web structural frameworks in regards to usability, efficiency, maintainability, and security.
This is a project-based course and as such you are expected to be adept at installing software on your computer, navigating file systems, using an integrated development environment, etc.
There are no required textbooks for the class. Instead, there will be a collection of suggested books that can be used to supplement lectures and online documentation. Students are expected to have access to a computer to complete the assignments.
The course grade includes small group in-class exercises, individually contributed web development homework assignments, and a final project. Additional grading policies will be posted on the course web site.
The graduate section of the course additionally includes a written paper and presentation along with user feedback surveys.
There are no make-up assignments and late work will not be accepted in this course without approval conditional on notification prior to the due date of any assignment.
A portion of the grade for the class will be in-class exercises. If a student misses a lecture they are expected to notify the instructor before the class meeting and after the class session they are to review the material for that lecture and complete and submit (with prior confirmation) any in-class exercises that were missed.
In this course, all students will be held to the standards of the Rice Honor Code, a code that you pledged to honor when you matriculated at this institution. If you are unfamiliar with the details of this code and how it is administered, you should consult the Honor System Handbook at http://honor.rice.edu/honor-system-handbook/. This handbook outlines the University's expectations for the integrity of your academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.
The in-class exercises may be performed in small teams or two or three students. This work is shared work that all students of the team may use for their class assignments, but should not be shared with other members of the class.
All submitted homework is expected to be the result of the student's individual effort. Outside of the in-class exercise contributions, portions of code presented in class or posted on the class website, class assignments should be completed solely by student submitting the assignment. Students are encouraged to discuss with their peers techniques for completing the assignments, but all code should be written by the submitting student and not copied or refactored from sources not approved by the instructor, and in those cases should be properly attributed.
If you have a documented disability or other condition that may affect academic performance you should make sure this documentation is on file with Disability Support Services and talk with the instructor to discuss your accommodation needs.
This syllabus is only a guide for the course and is subject to change. The latest syllabus information for the course will always be available HERE on the course web site.


Bringing cutting-edge speakers to the valley
Town hall has the answer for only $100 , you can get a book of tickes for alt the renmaning speakers And the bargain includes a second book of tickers for a companion
Or, for $50 you can give yourself the gifl of our speakers, and extra tickers for a compion but for just one of the evens
See you at the next show?


FLOWING SQUARES
spinning boxes
rocking triangles
triangle paths
linear expansion
better ant
flowing squares
hollow boxes
point illusion
black donut
bubble bg dark
bubble bg
black hole
colours
3d shapes bg
3d shapes
langtons ant
langtons failure
clear pixels
blurry pixels
bubbles
shaky triangles
polygon
rectangle
idle
idle jquery
units
better ant - 2019-04-11
Browsing the web i found this demonstration of Langtons Ant and noticed the much better performance, so being inspired to improve my attempt I did so. And also changed the color.
flowing squares - 2019-04-12
This one uses various techniques that i've learned such as border detection, Class creation, moving a defined shape etc. creating this rug of squares, bouncing from wall to wall. Like those DVD screensavers.
hollow boxes - 2019-04-09
For this one I went back to the 3D shape/webGL library three.js and played around with stacking boxes further away but with decreasing size, using a depth material for the mesh, and blabla. Looks nice.
point illusion - 2019-03-21
Same as last, difference being is the circle motioned drawing speed. Making for a very slowly adding of blackness with expanding patterns that you barely notice at first.
black hole - 2019-03-20
This one is one of my favourites, just because it feels very clean and reminds me of being little and seeing similar shapes and animations which would get me stuck staring at them for just a bit too long.
colours - 2019-03-20
Having a bit more experience I decided to move away from using libraries to learn more about the basics of JavaScript. Which turned out to be a good idea making me discover a technique for creating cool patterns. Such as this one.
3d shapes bg - 2019-03-07
Edited the last one a bit so that it could be used as a background, the moving is actually the camera rotating along its axes.
3d shapes - 2019-03-06
Found a library: three.js making it easy to create 3D shapes and animations. So, i defined a cube, plopped a couple of rotating shapes with random colors and added camera controls.
langtons ant - 2019-03-06
Working version of Langtons Ant 👌.
langtons failure - 2019-03-02
I've known about Langtons Ant for awhile and wanted to tackle it since i'd learnt a bit about canvas coding, did not work as expected. Looks pretty.
clear pixels - 2019-03-01
"Fixed" the last one and got the right resolution for the squares making it much clearer.
blurry pixels - 2019-03-01
Trying another library: paper.js which I use for the next 3 projects. Played around with squares, pixel-grids and colours, the blurry effect is actually me not scaling the squares the right amount, albeit buggy, cool effect.
bubbles - 2019-03-01
Did not actually make this one myself although i thought it looked cool, and so later I made one myself without the help of PixiJS.
shaky triangles - 2019-02-28
Went a bit further with the polygon creation. In this one the points defining the shape are moving around randomly(a bit jittery, but funny).
polygon - 2019-02-28
Created a polygon, bit harded since you have to defined the points of the shape, also made it spin 😌.
rectangle - 2019-02-26
First canvas drawing in JavaScript i managed to create, using a library: PixiJS, that I used for the next 3 aswell.


//Matthew Shotton, R&D User Experience,© BBC 2015
const TYPE = "GraphNode";
class GraphNode {
/**
* Base class from which all processing and source nodes are derrived.
*/
constructor(gl, renderGraph, inputNames, limitConnections = false) {
this._renderGraph = renderGraph;
this._limitConnections = limitConnections;
this._inputNames = inputNames;
this._destroyed = false;
//Setup WebGL output texture
this._gl = gl;
this._renderGraph = renderGraph;
this._rendered = false;
this._displayName = TYPE;
}
/**
* Get a string representation of the class name.
*
* @return String A string of the class name.
*/
get displayName() {
return this._displayName;
}
/**
* Get the names of the inputs to this node.
*
* @return {String[]} An array of the names of the inputs ot the node.
*/
get inputNames() {
return this._inputNames.slice();
}
/**
* The maximum number of connections that can be made to this node. If there is not limit this will return Infinity.
*
* @return {number} The number of connections which can be made to this node.
*/
get maximumConnections() {
if (this._limitConnections === false) return Infinity;
return this._inputNames.length;
}
/**
* Get an array of all the nodes which connect to this node.
*
* @return {GraphNode[]} An array of nodes which connect to this node.
*/
get inputs() {
let result = this._renderGraph.getInputsForNode(this);
result = result.filter(function(n) {
return n !== undefined;
});
return result;
}
/**
* Get an array of all the nodes which this node outputs to.
*
* @return {GraphNode[]} An array of nodes which this node connects to.
*/
get outputs() {
return this._renderGraph.getOutputsForNode(this);
}
/**
* Get whether the node has been destroyed or not.
*
* @return {boolean} A true/false value of whather the node has been destoryed or not.
*/
get destroyed() {
return this._destroyed;
}
/**
* Connect this node to the targetNode
*
* @param {GraphNode} targetNode - the node to connect.
* @param {(number| String)} [targetPort] - the port on the targetNode to connect to, this can be an index, a string identifier, or undefined (in which case the next available port will be connected to).
*
*/
connect(targetNode, targetPort) {
return this._renderGraph.registerConnection(this, targetNode, targetPort);
}
/**
* Disconnect this node from the targetNode. If targetNode is undefind remove all out-bound connections.
*
* @param {GraphNode} [targetNode] - the node to disconnect from. If undefined, disconnect from all nodes.
*
*/
disconnect(targetNode) {
if (targetNode === undefined) {
let toRemove = this._renderGraph.getOutputsForNode(this);
toRemove.forEach(target => this._renderGraph.unregisterConnection(this, target));
if (toRemove.length > 0) return true;
return false;
}
return this._renderGraph.unregisterConnection(this, targetNode);
}
/**
* Destory this node, removing it from the graph.
*/
destroy() {
this.disconnect();
for (let input of this.inputs) {
input.disconnect(this);
}
this._destroyed = true;
}
}
export { TYPE as GRAPHTYPE };
export default GraphNode;


A simple, but flexible loading-mask plugin for jQuery
See the full documentation on github .
Use $.busyLoadSetup() to preconfigure busy-load, so you don't have to set your default options all the time.
$.busyLoadSetup({ animation: "slide", background: "rgba(255, 152, 0, 0.86)" });
For a fullscreen-overlay use $.busyLoadFull()
$.busyLoadFull("show");
$.busyLoadFull("hide");
In former versions of busy-load a tardis-image was included. Due to the package-size, the image was now outsourced. If you want to include it, just use this url on the image-option or download it form there.
Choose one of the built in CSS-spinners.
Use an image as spinner.
Include the fontawesome-library and use its icons a spinner.
Pass in your own jQuery-Element. Here's a quick example:
let count = 1125;
let customElement = $("<div>", {
id: "countdown",
css: { "font-size" : "50px" }, text: count
});
$("#el").busyLoad("show", {
background: "brown", custom: customElement
});
let interval = setInterval(function(){
count--;
customElement.text(count);
if (count <= 0) {
clearInterval(interval);
$("#el").busyLoad("hide");
}
}, 1000);
Use maxSize & minSize for sizing the spinner. This only works with CSS- & image-spinners.
Explicitly hide the spinner.
$("#el").busyLoad("show", { text: "LOADING ...",
spinner: false
});
show
$("#el").busyLoad("show", {
text: "LOADING ...",
textColor: "white",
color: "red",
background: "brown"
});
show
$("#el").busyLoad("show", { text: "LOADING ...",
textPosition: "bottom"
});
show
Add your own-classes to the components of the overlay.
$("#el").busyLoad("show", {
containerItemClass: "my-own-container-item-class"
});
show
If the calling element has a position of static, busy-load will turn it into relative, because otherwise the overlay would be positioned to a parent element other than static.


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 4
Bastilla is a Moroccan staple, combining sweet and savoury flavours, and perfect for sharing.
Heat the oil in a large frying pan. Add the chicken and fry, skin side-down for 2 minutes, or until crispy and brown. Turn over and cook for 2 minutes more, then transfer to a plate. Add the butter to the pan and, when it has melted, add the onions and sauté until soft. Add the garlic and spices (no need to soak the saffron) and fry for a couple more minutes.
Return the chicken to the pan. pour over the stock and season to taste. Simmer, covered, for 30 minutes, or until the chicken is cooked through and tender.
Remove the chicken again and set aside. When it is cool enough to handle, finely chop it. Meanwhile, reduce the cooking liquid by half.
Add the eggs to the cooking liquid and cook over a low heat until it resembles loose-textured scrambled eggs. Add the almonds and stir, then stir in the dates, orange blossom water, orange zest, chicken and finally the parsley. Remove from the heat and leave to cool.
Preheat the oven to 180C/160C Fan/Gas 4. To assemble the pie, use a 28cm/11in round ovenproof dish – you can use a ceramic quiche or flan dish or a metal tart tin.
Brush a sheet of filo with melted butter. Drape it over the dish, gently pushing it into the corners without tearing it. Repeat with another sheet of filo, placing it at right angles to the first. Repeat with a further 2 sheets of filo, placing them on a diagonal angle.
Spread the filling over the pastry. Fold over the overhanging filo, in reverse order – the filling should be just about covered by the filo. Cut the remaining 2 sheets of filo to fit the dish. Brush with melted butter, then cover the pie with the pastry, tucking under any corners. Bake for 30 minutes, or until crisp and brown. Leave to cool a little before dusting it with the icing sugar and cinnamon.


Canvas Settings
new drawing
16px
24px
32px
64px
Primary Tools
Canvas Tools
Color Picker
Current Color
Color Palette
drag color here from current color
Grid Settings


This package hosts sensors for quasi stationary multiphase circuits. Quasi stationary theory can be found in the references.
| Name | Description |
|---|---|
| ReferenceSensor | Sensor of reference angle gamma |
| FrequencySensor | Frequency sensor |
| PotentialSensor | Potential sensor |
| VoltageSensor | Voltage sensor |
| VoltageQuasiRMSSensor | Continuous quasi voltage RMS sensor for multi phase system |
| CurrentSensor | Current Sensor |
| CurrentQuasiRMSSensor | Continuous quasi current RMS sensor for multi phase system |
| PowerSensor | Power sensor |
| MultiSensor | Multiphase sensor to measure current, voltage and power |
| AronSensor | threephase Aron sensor for active power |
| ReactivePowerSensor | threephase sensor for reactive power |


Layer 7 routing overview
Estimated reading time: 5 minutesApplication-layer (Layer 7) routing is the application routing and load balancing (ingress routing) system included with Docker Enterprise for Swarm orchestration. Interlock architecture takes advantage of the underlying Swarm components to provide scalable Layer 7 routing and Layer 4 VIP mode functionality.
Interlock is specific to the Swarm orchestrator. If you’re trying to route traffic to your Kubernetes applications, check layer 7 routing with Kubernetes.
Interlock uses the Docker Remote API to automatically configure extensions such as NGINX or HAProxy for application traffic. Interlock is designed for:
- Full integration with Docker (Swarm, Services, Secrets, Configs)
- Enhanced configuration (context roots, TLS, zero downtime deploy, rollback)
- Support for external load balancers (nginx, haproxy, F5, etc) via extensions
- Least privilege for extensions (no Docker API access)
Docker Engine running in swarm mode has a routing mesh, which makes it easy to expose your services to the outside world. Since all nodes participate in the routing mesh, users can access a service by contacting any node.
For example, a WordPress service is listening on port 8000 of the routing mesh. Even though the service is running on a single node, users can access WordPress using the domain name or IP of any of the nodes that are part of the swarm.
UCP extends this one step further with layer 7 layer routing (also known as application layer 7), allowing users to access Docker services using domain names instead of IP addresses. This functionality is made available through the Interlock component.
Using Interlock in the previous example, users can access the WordPress service using
http://wordpress.example.org
. Interlock takes care of routing traffic to
the right place.
Terminology
- Cluster: A group of compute resources running Docker
- Swarm: A Docker cluster running in Swarm mode
- Upstream: An upstream container that serves an application
- Proxy Service: A service that provides load balancing and proxying (such as Nginx)
- Extension Service: A helper service that configures the proxy service
- Service Cluster: A service cluster is an Interlock extension+proxy service
- gRPC: A high-performance RPC framework
Interlock services
Interlock has three primary services:
- Interlock: This is the central piece of the layer 7 routing solution. The core service is responsible for interacting with the Docker Remote API and building an upstream configuration for the extensions. It uses the Docker API to monitor events, and manages the extension and proxy services. This is served on a gRPC API that the extensions are configured to access.
- Interlock-extension: This is a helper service that queries the Interlock gRPC API for the upstream configuration. The extension service uses this to configure the proxy service. For proxy services that use files such as Nginx or HAProxy, the extension service generates the file and sends it to Interlock using the gRPC API. Interlock then updates the corresponding Docker Config object for the proxy service.
- Interlock-proxy: This is a proxy/load-balancing service that handles requests for the upstream application services. These are configured using the data created by the corresponding extension service. By default, this service is a containerized NGINX deployment.
Interlock manages both extension and proxy service updates for both configuration changes and application service deployments. There is no intervention from the operator required.
The following image shows the default Interlock configuration, once you enable layer 7 routing in UCP:
The Interlock service starts a single replica on a manager node. The Interlock-extension service runs a single replica on any available node, and the Interlock-proxy service starts two replicas on any available node.
If you don’t have any worker nodes in your cluster, then all Interlock components run on manager nodes.
Features and benefits
Layer 7 routing in UCP supports:
- High availability: All the components used for layer 7 routing leverage Docker swarm for high availability, and handle failures gracefully.
- Automatic configuration: Interlock uses the Docker API for configuration. You do not have to manually update or restart anything to make services available. UCP monitors your services and automatically reconfigures proxy services.
- Scalability: Interlock uses a modular design with a separate proxy service. This allows an operator to individually customize and scale the proxy layer to handle user requests and meet services demands, with transparency and no downtime for users.
- TLS: You can leverage Docker secrets to securely manage TLS Certificates and keys for your services. Both TLS termination and TCP passthrough are supported.
- Context-based routing: Interlock supports advanced application request routing by context or path.
- Host mode networking: By default, layer 7 routing leverages the Docker Swarm routing mesh, but Interlock supports running proxy and application services in “host” mode networking, allowing you to bypass the routing mesh completely. This is beneficial if you want maximum performance for your applications.
- Security: The layer 7 routing components that are exposed to the outside world run on worker nodes. Even if they are compromised, your cluster aren’t.
- SSL: Interlock leverages Docker Secrets to securely store and use SSL certificates for services. Both SSL termination and TCP passthrough are supported.
- Blue-Green and Canary Service Deployment: Interlock supports blue-green service deployment allowing an operator to deploy a new application while the current version is serving. Once traffic is verified to the new application, the operator can scale the older version to zero. If there is a problem, the operation is easily reversible.
- Service Cluster Support: Interlock supports multiple extension+proxy combinations allowing for operators to partition load balancing resources for uses such as region or organization based load balancing.
- Least Privilege: Interlock supports (and recommends) being deployed where the load balancing proxies do not need to be colocated with a Swarm manager. This makes the deployment more secure by not exposing the Docker API access to the extension or proxy services.


Changes¶ ↑
Version 2.0.4 - 16-Dec-2020¶ ↑
-
Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.
Version 2.0.3 - 8-Nov-2020¶ ↑
-
Added support for handling “slim” format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. #120.
-
Fixed
TimeWithOffset#getlocal
returning aTimeWithOffset
with thetimezone_offset
still assigned when called with an offset argument on JRuby 9.3. -
Rubinius is no longer supported.
Version 2.0.2 - 2-Apr-2020¶ ↑
-
Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
-
Fixed warnings when running on Ruby 2.8. #113.
Version 2.0.1 - 24-Dec-2019¶ ↑
-
Fixed “SecurityError: Insecure operation - require” exceptions when loading data with recent Ruby releases in safe mode. #100.
-
Fixed warnings when running on Ruby 2.7. #109.
-
Added a
TZInfo::Timezone#=~
method that performs a regex match on the time zone identifier. #99. -
Added a
TZInfo::Country#=~
method that performs a regex match on the country code.
Version 2.0.0 - 26-Dec-2018¶ ↑
Added¶ ↑
-
to_local
andperiod_for
instance methods have been added toTZInfo::Timezone
. These are similar toutc_to_local
andperiod_for_utc
, but take the UTC offset of the given time into account. -
abbreviation
,dst?
,base_utc_offset
andobserved_utc_offset
instance methods have been added toTZInfo::Timezone
, returning the abbreviation, whether daylight savings time is in effect and the UTC offset of the time zone at a specified time. -
A
TZInfo::Timestamp
class has been added. It can be used withTZInfo::Timezone
in place of aTime
orDateTime
. -
local_time
,local_datetime
andlocal_timestamp
instance methods have been added toTZInfo::Timezone
. These methods construct localTime
,DateTime
andTZInfo::Timestamp
instances with the correct UTC offset and abbreviation for the time zone. -
Support for a (yet to be released) version 2 of tzinfo-data has been added, in addition to support for version 1. The new version will remove the (no longer needed)
DateTime
parameters from transition times, reduce memory consumption and improve the efficiency of loading timezone and country indexes. -
A
TZInfo::VERSION
constant has been added, indicating theTZInfo
version number.
Changed¶ ↑
-
The minimum supported Ruby versions are now Ruby MRI 1.9.3, JRuby 1.7 (in 1.9 or later mode) and Rubinius 3.
-
Local times are now returned using the correct UTC offset (instead of using UTC). #49 and #52.
-
Local times are returned as instances of
TimeWithOffset
,DateTimeWithOffset
orTZInfo::TimestampWithOffset
. These classes subclassTime
,DateTime
andTZInfo::Timestamp
respectively. They override the default behaviour of the base classes to return information about the observed offset at the indicated time. For example, the zone abbreviation is returned when using the%Z
directive withstrftime
. -
The
transitions_up_to
,offsets_up_to
andstrftime
instance methods ofTZInfo::Timezone
now take the UTC offsets of given times into account (instead of ignoring them as was previously the case). -
The
TZInfo::TimezonePeriod
class has been split into two subclasses:TZInfo::OffsetTimezonePeriod
andTZInfo::TransitionsTimezonePeriod
.TZInfo::OffsetTimezonePeriod
is returned for time zones that only have a single offset.TZInfo::TransitionsTimezonePeriod
is returned for periods that start or end with a transition. -
TZInfo::TimezoneOffset#abbreviation
,TZInfo::TimezonePeriod#abbreviation
andTZInfo::TimezonePeriod#zone_identifier
now return frozenString
instances instead of instances ofSymbol
. -
The
utc_offset
andutc_total_offset
attributes ofTZInfo::TimezonePeriod
andTZInfo::TimezoneOffset
have been renamedbase_utc_offset
andobserved_utc_offset
respectively. The former names have been retained as aliases. -
TZInfo::Timezone.get
,TZInfo::Timezone.get_proxy
andTZInfo::Country.get
can now be used with strings having any encoding. Previously, only encodings that are directly comparable with UTF-8 were supported. -
The requested identifier is included in
TZInfo::InvalidTimezoneIdentifier
exception messages. -
The requested country code is included in
TZInfo::InvalidCountryCode
exception messages. -
The full range of transitions is now loaded from zoneinfo files. Zoneinfo files produced with version 2014c of the
zic
tool contain an initial transition2**63
seconds before the epoch. Zoneinfo files produced with version 2014d or later ofzic
contain an initial transition2**59
seconds before the epoch. These transitions would previously have been ignored, but are now returned in methods such asTZInfo::Timezone#transitions_up_to
. -
The
TZInfo::RubyDataSource
andTZInfo::ZoneinfoDataSource
classes have been moved into a newTZInfo::DataSources
module. Code that is settingTZInfo::ZoneinfoDataSource.search_path
orTZInfo::ZoneinfoDataSource.alternate_iso3166_tab_search_path
will need to be updated accordingly. -
The
TZInfo::InvalidZoneinfoDirectory
andTZInfo::ZoneinfoDirectoryNotFound
exception classes raised byTZInfo::DataSources::ZoneinfoDataSource
have been moved into theTZInfo::DataSources
module. -
Setting the data source to
:ruby
or instantiatingTZInfo::DataSources::RubyDataSource
will now immediately raise aTZInfo::DataSources::TZInfoDataNotFound
exception ifrequire 'tzinfo/data'
fails. Previously, a failure would only occur later when accessing an index or loading a timezone or country. -
The
DEFAULT_SEARCH_PATH
andDEFAULT_ALTERNATE_ISO3166_TAB_SEARCH_PATH
constants ofTZInfo::DataSources::ZoneinfoDataSource
have been made private. -
The
TZInfo::Country.data_source
,TZInfo::DataSource.create_default_data_source
,TZInfo::DataSources::ZoneinfoDataSource.process_search_path
,TZInfo::Timezone.get_proxies
andTZInfo::Timezone.data_source
methods have been made private. -
The performance of loading zoneinfo files and the associated indexes has been improved.
-
Memory use has been decreased by deduplicating
String
instances when loading country and time zone data. -
The dependency on the deprecated thread_safe gem as been removed and replaced by concurrent-ruby.
-
The Info classes used to return time zone and country information from
TZInfo::DataSource
implementations have been moved into theTZInfo::DataSources
module. -
The
TZInfo::TransitionDataTimezoneInfo
class has been removed and replaced withTZInfo::DataSources::TransitionsDataTimezoneInfo
andTZInfo::DataSources::ConstantOffsetDataTimezoneInfo
.TZInfo::DataSources::TransitionsDataTimezoneInfo
is constructed with anArray
ofTZInfo::TimezoneTransition
instances representing times when the offset changes.TZInfo::DataSources::ConstantOffsetDataTimezoneInfo
is constructed with aTZInfo::TimezoneOffset
instance representing the offset constantly observed in a time zone. -
The
TZInfo::DataSource#timezone_identifiers
method should no longer be overridden in custom data source implementations. The implementation in the base class now calculates a result fromTZInfo::DataSource#data_timezone_identifiers
andTZInfo::DataSource#linked_timezone_identifiers
. -
The results of the
TZInfo::DataSources::RubyDataSource
to_s
andinspect
methods now include the time zone database and tzinfo-data versions.
Removed¶ ↑
-
Methods of
TZInfo::Timezone
that accept time arguments no longer allowInteger
timestamp values.Time
,DateTime
orTZInfo::Timestamp
values or objects that respond toto_i
,subsec
and optionallyutc_offset
must be used instead. -
The
%:::z
format directive can now only be used withTZInfo::Timezone#strftime
if it is supported byTime#strftime
on the runtime platform. -
Using
TZInfo::Timezone.new(identifier)
andTZInfo::Country.new(code)
to obtain a specificTZInfo::Timezone
orTZInfo::Country
will no longer work.TZInfo::Timezone.get(identifier)
andTZInfo::Country.get(code)
should be used instead. -
The
TZInfo::TimeOrDateTime
class has been removed. -
The
valid_for_utc?
,utc_after_start?
,utc_before_end?
,valid_for_local?
,local_after_start?
andlocal_before_end?
instance methods ofTZInfo::TimezonePeriod
have been removed. Comparisons can be performed with the results of thestarts_at
,ends_at
,local_starts_at
andlocal_ends_at
methods instead. -
The
to_local
andto_utc
instance methods ofTZInfo::TimezonePeriod
andTZInfo::TimezoneOffset
have been removed. Conversions should be performed using theTZInfo::Timezone
class instead. -
The
TZInfo::TimezonePeriod#utc_total_offset_rational
method has been removed. Equivalent information can be obtained using theTZInfo::TimezonePeriod#observed_utc_offset
method. -
The
datetime
,time
,local_end
,local_end_time
,local_start
andlocal_start_time
instance methods ofTZInfo::TimezoneTransition
have been removed. Theat
,local_end_at
andlocal_start_at
methods should be used instead and the result (aTZInfo::TimestampWithOffset
) converted to either aDateTime
orTime
by callingto_datetime
orto_time
on the result. -
The
us_zones
andus_zone_identifiers
class methods ofTZInfo::Timezone
have been removed.TZInfo::Country.get('US').zones
andTZInfo::Country.get('US').zone_identifiers
should be used instead.
Version 1.2.9 - 16-Dec-2020¶ ↑
-
Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a zoneinfo file that includes rules specifying an additional transition to the final defined offset (for example, Africa/Casablanca in version 2018e of the Time Zone Database). #123.
Version 1.2.8 - 8-Nov-2020¶ ↑
-
Added support for handling “slim” format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
-
Rubinius is no longer supported.
Version 1.2.7 - 2-Apr-2020¶ ↑
-
Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
-
Fixed warnings when running on Ruby 2.8. #112.
Version 1.2.6 - 24-Dec-2019¶ ↑
-
Timezone#strftime('%s', time)
will now return the correct number of seconds since the epoch. #91. -
Removed the unused
TZInfo::RubyDataSource::REQUIRE_PATH
constant. -
Fixed “SecurityError: Insecure operation - require” exceptions when loading data with recent Ruby releases in safe mode.
-
Fixed warnings when running on Ruby 2.7. #106 and #111.
Version 1.2.5 - 4-Feb-2018¶ ↑
-
Support recursively (deep) freezing
Country
andTimezone
instances. #80. -
Allow negative daylight savings time offsets to be derived when reading from zoneinfo files. The utc_offset and std_offset are now derived correctly for Europe/Dublin in the 2018a and 2018b releases of the Time Zone Database.
Version 1.2.4 - 26-Oct-2017¶ ↑
-
Ignore the leapseconds file that is included in zoneinfo directories installed with version 2017c and later of the Time Zone Database.
Version 1.2.3 - 25-Mar-2017¶ ↑
-
Reduce the number of
String
objects allocated when loading zoneinfo files. #54. -
Make
Timezone#friendly_identifier
compatible with frozen string literals. -
Improve the algorithm for deriving the
utc_offset
from zoneinfo files. This now correctly handles Pacific/Apia switching from one side of the International Date Line to the other whilst observing daylight savings time. #66. -
Fix an
UnknownTimezone
exception when calling transitions_up_to or offsets_up_to on aTimezoneProxy
instance obtained fromTimezone.get_proxy
. -
Allow the Factory zone to be obtained from the Zoneinfo data source.
-
Ignore the /usr/share/zoneinfo/timeconfig symlink included in Slackware distributions. #64.
-
Fix
Timezone#strftime
handling of%Z
expansion when%Z
is prefixed with more than one percent. #31. -
Support expansion of
%z
,%:z
,%::z
and%:::z
to the UTC offset of the time zone inTimezone#strftime
. #31 and #67.
Version 1.2.2 - 8-Aug-2014¶ ↑
-
Fix an error with duplicates being returned by
Timezone#all_country_zones
andTimezone#all_country_zone_identifiers
when used with tzinfo-data v1.2014.6 or later. -
Use the zone1970.tab file for country timezone data if it is found in the zoneinfo directory (and fallback to zone.tab if not). zone1970.tab was added in tzdata 2014f. zone.tab is now deprecated.
Version 1.2.1 - 1-Jun-2014¶ ↑
-
Support zoneinfo files generated with zic version 2014c and later.
-
On platforms that only support positive 32-bit timestamps, ensure that conversions are accurate from the epoch instead of just from the first transition after the epoch.
-
Minor documentation improvements.
Version 1.2.0 - 26-May-2014¶ ↑
-
Raise the minimum supported Ruby version to 1.8.7.
-
Support loading system zoneinfo data on FreeBSD, OpenBSD and Solaris. Resolves #15.
-
Add
canonical_identifier
andcanonical_zone
methods toTimezone
. Resolves #16. -
Add a link to a
DataSourceNotFound
help page in theTZInfo::DataSourceNotFound
exception message. -
Load iso3166.tab and zone.tab files as UTF-8.
-
Fix
Timezone#local_to_utc
returning localTime
instances on systems using UTC as the local time zone. Resolves #13. -
Fix
==
methods raising an exception when passed an instance of a different class by making<=>
returnnil
if passed a non-comparable argument. -
Eliminate
require 'rational'
warnings. Resolves #10. -
Eliminate “assigned but unused variable - info” warnings. Resolves #11.
-
Switch to minitest v5 for unit tests. Resolves #18.
Version 1.1.0 - 25-Sep-2013¶ ↑
-
TZInfo
is now thread safe.ThreadSafe::Cache
is now used instead ofHash
to cacheTimezone
andCountry
instances returned byTimezone.get
andCountry.get
. The tzinfo gem now depends on thread_safe ~> 0.1. -
Added a
transitions_up_to
method toTimezone
that returns a list of the times where the UTC offset of the timezone changes. -
Added an
offsets_up_to
method toTimezone
that returns the set of offsets that have been observed in a defined timezone. -
Fixed a “can't modify frozen String” error when loading a
Timezone
from a zoneinfo file using an identifierString
that is both tainted and frozen. Resolves #3. -
Support TZif3 format zoneinfo files (now produced by zic from tzcode version 2013e onwards).
-
Support using YARD to generate documentation (added a .yardopts file).
-
Ignore the +VERSION file included in the zoneinfo directory on Mac OS X.
-
Added a note to the documentation concerning 32-bit zoneinfo files (as included with Mac OS X).
Version 1.0.1 - 22-Jun-2013¶ ↑
-
Fix a test case failure when tests are run from a directory that contains a dot in the path (issue #29751).
Version 1.0.0 - 2-Jun-2013¶ ↑
-
Allow
TZInfo
to be used with different data sources instead of just the built-in Ruby module data files. -
Include a data source that allows
TZInfo
to load data from the binary zoneinfo files produced by zic and included with many Linux and Unix-like distributions. -
Remove the definition and index Ruby modules from
TZInfo
and move them into a separate TZInfo::Data library (available as the tzinfo-data gem). -
Default to using the TZInfo::Data library as the data source if it is installed, otherwise use zoneinfo files instead.
-
Preserve the nanoseconds of local timezone Time objects when performing conversions (issue #29705).
-
Don't add the tzinfo lib directory to the search path when requiring 'tzinfo'. The tzinfo lib directory must now be in the search path before 'tzinfo' is required.
-
Add
utc_start_time
,utc_end_time
,local_start_time
andlocal_end_time
instance methods toTimezonePeriod
. These return an identical value as the existingutc_start
,utc_end
,local_start
andlocal_end
methods, but returnTime
instances instead ofDateTime
. -
Make the
start_transition
,end_transition
andoffset
properties ofTimezonePeriod
protected. To access properties of the period, callers should use otherTimezonePeriod
instance methods instead (issue #7655).
Version 0.3.58 (tzdata v2020d) - 8-Nov-2020¶ ↑
-
Updated to tzdata version 2020d (mm.icann.org/pipermail/tz-announce/2020-October/000062.html).
Version 0.3.57 (tzdata v2020a) - 17-May-2020¶ ↑
-
Updated to tzdata version 2020a (mm.icann.org/pipermail/tz-announce/2020-April/000058.html).
Version 0.3.56 (tzdata v2019c) - 1-Nov-2019¶ ↑
-
Updated to tzdata version 2019c (mm.icann.org/pipermail/tz-announce/2019-September/000057.html).
Version 0.3.55 (tzdata v2018g) - 27-Oct-2018¶ ↑
-
Updated to tzdata version 2018g (mm.icann.org/pipermail/tz-announce/2018-October/000052.html).
Version 0.3.54 (tzdata v2018d) - 25-Mar-2018¶ ↑
-
Updated to tzdata version 2018d (mm.icann.org/pipermail/tz-announce/2018-March/000049.html).
Version 0.3.53 (tzdata v2017b) - 23-Mar-2017¶ ↑
-
Updated to tzdata version 2017b (mm.icann.org/pipermail/tz-announce/2017-March/000046.html).
Version 0.3.52 (tzdata v2016h) - 28-Oct-2016¶ ↑
-
Updated to tzdata version 2016h (mm.icann.org/pipermail/tz-announce/2016-October/000042.html).
Version 0.3.51 (tzdata v2016f) - 5-Jul-2016¶ ↑
-
Updated to tzdata version 2016f (mm.icann.org/pipermail/tz-announce/2016-July/000040.html).
Version 0.3.50 (tzdata v2016e) - 14-Jun-2016¶ ↑
-
Updated to tzdata version 2016e (mm.icann.org/pipermail/tz-announce/2016-June/000039.html).
Version 0.3.49 (tzdata v2016d) - 18-Apr-2016¶ ↑
-
Updated to tzdata version 2016d (mm.icann.org/pipermail/tz-announce/2016-April/000038.html).
Version 0.3.48 (tzdata v2016c) - 23-Mar-2016¶ ↑
-
Updated to tzdata version 2016c (mm.icann.org/pipermail/tz-announce/2016-March/000037.html).
Version 0.3.47 (tzdata v2016b) - 15-Mar-2016¶ ↑
-
Updated to tzdata version 2016b (mm.icann.org/pipermail/tz-announce/2016-March/000036.html).
Version 0.3.46 (tzdata v2015g) - 2-Dec-2015¶ ↑
-
From version 2015e, the IANA time zone database uses non-ASCII characters in country names. Backport the encoding handling from TZInfo::Data to allow
TZInfo
0.3.x to support Ruby 1.9 (which would otherwise fail with an invalid byte sequence error when loading the countries index). Resolves #41.
Version 0.3.45 (tzdata v2015g) - 3-Oct-2015¶ ↑
-
Updated to tzdata version 2015g (mm.icann.org/pipermail/tz-announce/2015-October/000034.html).
Version 0.3.44 (tzdata v2015d) - 24-Apr-2015¶ ↑
-
Updated to tzdata version 2015d (mm.icann.org/pipermail/tz-announce/2015-April/000031.html).
Version 0.3.43 (tzdata v2015a) - 31-Jan-2015¶ ↑
-
Updated to tzdata version 2015a (mm.icann.org/pipermail/tz-announce/2015-January/000028.html).
Version 0.3.42 (tzdata v2014i) - 23-Oct-2014¶ ↑
-
Updated to tzdata version 2014i (mm.icann.org/pipermail/tz-announce/2014-October/000026.html).
Version 0.3.41 (tzdata v2014f) - 8-Aug-2014¶ ↑
-
Updated to tzdata version 2014f (mm.icann.org/pipermail/tz-announce/2014-August/000023.html).
Version 0.3.40 (tzdata v2014e) - 10-Jul-2014¶ ↑
-
Updated to tzdata version 2014e (mm.icann.org/pipermail/tz-announce/2014-June/000022.html).
Version 0.3.39 (tzdata v2014a) - 9-Mar-2014¶ ↑
-
Updated to tzdata version 2014a (mm.icann.org/pipermail/tz-announce/2014-March/000018.html).
Version 0.3.38 (tzdata v2013g) - 8-Oct-2013¶ ↑
-
Updated to tzdata version 2013g (mm.icann.org/pipermail/tz-announce/2013-October/000015.html).
Version 0.3.37 (tzdata v2013b) - 11-Mar-2013¶ ↑
-
Updated to tzdata version 2013b (mm.icann.org/pipermail/tz-announce/2013-March/000010.html).
Version 0.3.36 (tzdata v2013a) - 3-Mar-2013¶ ↑
-
Updated to tzdata version 2013a (mm.icann.org/pipermail/tz-announce/2013-March/000009.html).
-
Fix
TimezoneTransitionInfo#eql?
incorrectly returning false when running on Ruby 2.0. -
Change
eql?
and==
implementations to test the class of the passed in object instead of checking individual properties withrespond_to?
.
Version 0.3.35 (tzdata v2012i) - 4-Nov-2012¶ ↑
-
Updated to tzdata version 2012i (mm.icann.org/pipermail/tz-announce/2012-November/000007.html).
Version 0.3.34 (tzdata v2012h) - 27-Oct-2012¶ ↑
-
Updated to tzdata version 2012h (mm.icann.org/pipermail/tz-announce/2012-October/000006.html).
Version 0.3.33 (tzdata v2012c) - 8-Apr-2012¶ ↑
-
Updated to tzdata version 2012c (mm.icann.org/pipermail/tz/2012-April/017627.html).
Version 0.3.32 (tzdata v2012b) - 4-Mar-2012¶ ↑
-
Updated to tzdata version 2012b (mm.icann.org/pipermail/tz/2012-March/017524.html).
Version 0.3.31 (tzdata v2011n) - 6-Nov-2011¶ ↑
-
Updated to tzdata version 2011n (mm.icann.org/pipermail/tz/2011-October/017201.html).
Version 0.3.30 (tzdata v2011k) - 29-Sep-2011¶ ↑
-
Updated to tzdata version 2011k (mm.icann.org/pipermail/tz/2011-September/008889.html).
Version 0.3.29 (tzdata v2011h) - 27-Jun-2011¶ ↑
-
Updated to tzdata version 2011h (mm.icann.org/pipermail/tz/2011-June/008576.html).
-
Allow the default value of the
local_to_utc
andperiod_for_local
dst
parameter to be specified globally with aTimezone.default_dst
attribute. Thanks to Kurt Werle for the suggestion and patch.
Version 0.3.28 (tzdata v2011g) - 13-Jun-2011¶ ↑
-
Add support for Ruby 1.9.3 (trunk revision 31668 and later). Thanks to Aaron Patterson for reporting the problems running on the new version. Closes #29233.
Version 0.3.27 (tzdata v2011g) - 26-Apr-2011¶ ↑
-
Updated to tzdata version 2011g (mm.icann.org/pipermail/tz/2011-April/016875.html).
Version 0.3.26 (tzdata v2011e) - 2-Apr-2011¶ ↑
-
Updated to tzdata version 2011e (mm.icann.org/pipermail/tz/2011-April/016809.html).
Version 0.3.25 (tzdata v2011d) - 14-Mar-2011¶ ↑
-
Updated to tzdata version 2011d (mm.icann.org/pipermail/tz/2011-March/016746.html).
Version 0.3.24 (tzdata v2010o) - 15-Jan-2011¶ ↑
-
Updated to tzdata version 2010o (mm.icann.org/pipermail/tz/2010-November/016517.html).
Version 0.3.23 (tzdata v2010l) - 19-Aug-2010¶ ↑
-
Updated to tzdata version 2010l (mm.icann.org/pipermail/tz/2010-August/016360.html).
Version 0.3.22 (tzdata v2010j) - 29-May-2010¶ ↑
-
Corrected file permissions issue with 0.3.21 release.
Version 0.3.21 (tzdata v2010j) - 28-May-2010¶ ↑
-
Updated to tzdata version 2010j (mm.icann.org/pipermail/tz/2010-May/016211.html).
-
Change invalid timezone check to exclude characters not used in timezone identifiers and avoid 'character class has duplicated range' warnings with Ruby 1.9.2.
-
Ruby 1.9.2 has deprecated
require 'rational'
, but older versions of Ruby need rational to be required. Require rational only when the Rational module has not already been loaded. -
Remove circular requires (now a warning in Ruby 1.9.2). Instead of using requires in each file for dependencies,
tzinfo.rb
now requires all tzinfo files. If you were previously requiring files within the tzinfo directory (e.g.require 'tzinfo/timezone'
), then you will now have torequire 'tzinfo'
instead.
Version 0.3.20 (tzdata v2010i) - 19-Apr-2010¶ ↑
-
Updated to tzdata version 2010i (mm.icann.org/pipermail/tz/2010-April/016184.html).
Version 0.3.19 (tzdata v2010h) - 5-Apr-2010¶ ↑
-
Updated to tzdata version 2010h (mm.icann.org/pipermail/tz/2010-April/016161.html).
Version 0.3.18 (tzdata v2010g) - 29-Mar-2010¶ ↑
-
Updated to tzdata version 2010g (mm.icann.org/pipermail/tz/2010-March/016140.html).
Version 0.3.17 (tzdata v2010e) - 8-Mar-2010¶ ↑
-
Updated to tzdata version 2010e (mm.icann.org/pipermail/tz/2010-March/016088.html).
Version 0.3.16 (tzdata v2009u) - 5-Jan-2010¶ ↑
-
Support the use of '-' to denote '0' as an offset in the tz data files. Used for the first time in the SAVE field in tzdata v2009u.
-
Updated to tzdata version 2009u (mm.icann.org/pipermail/tz/2009-December/016001.html).
Version 0.3.15 (tzdata v2009p) - 26-Oct-2009¶ ↑
-
Updated to tzdata version 2009p (mm.icann.org/pipermail/tz/2009-October/015889.html).
-
Added a description to the gem spec.
-
List test files in test_files instead of files in the gem spec.
Version 0.3.14 (tzdata v2009l) - 19-Aug-2009¶ ↑
-
Updated to tzdata version 2009l (mm.icann.org/pipermail/tz/2009-August/015729.html).
-
Include current directory in load path to allow running tests on Ruby 1.9.2, which doesn't include it by default any more.
Version 0.3.13 (tzdata v2009f) - 15-Apr-2009¶ ↑
-
Updated to tzdata version 2009f (mm.icann.org/pipermail/tz/2009-April/015544.html).
-
Untaint the timezone module filename after validation to allow use with
$SAFE == 1
(e.g. under mod_ruby). Thanks to Dmitry Borodaenko for the suggestion. Closes #25349.
Version 0.3.12 (tzdata v2008i) - 12-Nov-2008¶ ↑
-
Updated to tzdata version 2008i (mm.icann.org/pipermail/tz/2008-October/015260.html).
Version 0.3.11 (tzdata v2008g) - 7-Oct-2008¶ ↑
-
Updated to tzdata version 2008g (mm.icann.org/pipermail/tz/2008-October/015139.html).
-
Support Ruby 1.9.0-5.
Rational.new!
has now been removed in Ruby 1.9. Only useRational.new!
if it is available (it is preferable in Ruby 1.8 for performance reasons). Thanks to Jeremy Kemper and Pratik Naik for reporting this. Closes #22312. -
Apply a patch from Pratik Naik to replace assert calls that have been deprecated in the Ruby svn trunk. Closes #22308.
Version 0.3.10 (tzdata v2008f) - 16-Sep-2008¶ ↑
-
Updated to tzdata version 2008f (mm.icann.org/pipermail/tz/2008-September/015090.html).
Version 0.3.9 (tzdata v2008c) - 27-May-2008¶ ↑
-
Updated to tzdata version 2008c (mm.icann.org/pipermail/tz/2008-May/014956.html).
-
Support loading timezone data in the latest trunk versions of Ruby 1.9.
Rational.new!
is now private, so call it usingRational.send :new!
instead. Thanks to Jeremy Kemper and Pratik Naik for spotting this. Closes #19184. -
Prevent warnings from being output when running Ruby with the -v or -w command line options. Thanks to Paul McMahon for the patch. Closes #19719.
Version 0.3.8 (tzdata v2008b) - 24-Mar-2008¶ ↑
-
Updated to tzdata version 2008b (mm.icann.org/pipermail/tz/2008-March/014910.html).
-
Support loading timezone data in Ruby 1.9.0. Use
DateTime.new!
if it is available instead ofDateTime.new0
when constructing transition times.DateTime.new!
was added in Ruby 1.8.6.DateTime.new0
was removed in Ruby 1.9.0. Thanks to Joshua Peek for reporting this. Closes #17606. -
Modify some of the equality test cases to cope with the differences between Ruby 1.8.6 and Ruby 1.9.0.
Version 0.3.7 (tzdata v2008a) - 10-Mar-2008¶ ↑
-
Updated to tzdata version 2008a (mm.icann.org/pipermail/tz/2008-March/014851.html).
Version 0.3.6 (tzdata v2007k) - 1-Jan-2008¶ ↑
-
Updated to tzdata version 2007k (mm.icann.org/pipermail/tz/2007-December/014765.html).
-
Removed deprecated RubyGems autorequire option.
Version 0.3.5 (tzdata v2007h) - 1-Oct-2007¶ ↑
-
Updated to tzdata version 2007h (mm.icann.org/pipermail/tz/2007-October/014585.html).
Version 0.3.4 (tzdata v2007g) - 21-Aug-2007¶ ↑
-
Updated to tzdata version 2007g (mm.icann.org/pipermail/tz/2007-August/014499.html).
Version 0.3.3 (tzdata v2006p) - 27-Nov-2006¶ ↑
-
Updated to tzdata version 2006p (mm.icann.org/pipermail/tz/2006-November/013999.html).
Version 0.3.2 (tzdata v2006n) - 11-Oct-2006¶ ↑
-
Updated to tzdata version 2006n (mm.icann.org/pipermail/tz/2006-October/013911.html). Note that this release of tzdata removes the country Serbia and Montenegro (CS) and replaces it with separate Serbia (RS) and Montenegro (ME) entries.
Version 0.3.1 (tzdata v2006j) - 21-Aug-2006¶ ↑
-
Remove colon from case statements to avoid warning in Ruby 1.8.5. #5198.
-
Use temporary variable to avoid dynamic string warning from rdoc.
-
Updated to tzdata version 2006j (mm.icann.org/pipermail/tz/2006-August/013767.html).
Version 0.3.0 (tzdata v2006g) - 17-Jul-2006¶ ↑
-
New timezone data format. Timezone data now occupies less space on disk and takes less memory once loaded. #4142, #4144.
-
Timezone data is defined in modules rather than classes.
Timezone
instances returned byTimezone.get
are no longer instances of data classes, but are instead instances of newDataTimezone
andLinkedTimezone
classes. -
Timezone
instances can now be used withMarshal.dump
andMarshal.load
. #4240. -
Added a
Timezone.get_proxy
method that returns aTimezoneProxy
object for a given identifier. -
Country index data is now defined in a single module that is independent of the
Country
class implementation. -
Country
instances can now be used withMarshal.dump
andMarshal.load
. #4240. -
Country
has a newzone_info
method that returnsCountryTimezone
objects containing additional information (latitude, longitude and a description) relating to eachTimezone
. #4140. -
Time zones within a
Country
are now returned in an order that makes geographic sense. -
The zdumptest utility now checks local to utc conversions in addition to utc to local conversions.
-
eql?
method defined onCountry
andTimezone
that is equivalent to==
. -
The
==
method ofTimezone
no longer raises an exception when passed an object with no identifier method. -
The
==
method ofCountry
no longer raises an exception when passed an object with no code method. -
hash
method defined onCountry
that returns the hash of the code. -
hash
method defined onTimezone
that returns the hash of the identifier. -
Miscellaneous API documentation corrections and improvements.
-
Timezone definition and indexes are now excluded from rdoc (the contents were previously ignored with
#:nodoc:
anyway). -
Removed no longer needed
#:nodoc:
directives from timezone data files (which are now excluded from the rdoc build). -
Installation of the gem now causes rdoc API documentation to be generated. #4905.
-
When optimizing transitions to generate zone definitions, check the UTC and standard offsets separately rather than just the total offset to UTC. Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and Pacific/Auckland.
-
Eliminated unnecessary
.nil?
calls to give a minor performance gain. -
Timezone.all
andTimezone.all_identifiers
now return all theTimezone
instances/identifiers rather than just those associated with countries. #4146. -
Added
all_data_zones
,all_data_zone_identifiers
,all_linked_zones
andall_linked_zone_identifiers
class methods toTimezone
. -
Added a
strftime
method toTimezone
that converts a time in UTC to local time and then returns it formatted.%Z
is replaced with the timezone abbreviation for the given time (for example, EST or EDT). #4143. -
Fix escaping of quotes in
TZDataParser
. This affected country names and descriptions of time zones within countries.
Version 0.2.2 (tzdata v2006g) - 17-May-2006¶ ↑
-
Use class-scoped instance variables to store the Timezone identifier and singleton instance. Loading a linked zone no longer causes the parent zone's identifier to be changed. The instance method of a linked zone class also now returns an instance of the linked zone class rather than the parent class. #4502.
-
The zdumptest utility now compares the
TZInfo
zone identifier with the zdump zone identifier. -
The zdumptestall utility now exits if not supplied with enough parameters.
-
Updated to tzdata version 2006g (mm.icann.org/pipermail/tz/2006-May/013590.html).
Version 0.2.1 (tzdata v2006d) - 17-Apr-2006¶ ↑
-
Fix a performance issue caused in 0.2.0 with
Timezone.local_to_utc
. Conversions performed onTimeOrDateTime
instances passed to<=>
are now cached as originally intended. Thanks to Michael Smedberg for spotting this. -
Fix a performance issue with the
local_to_utc
period search algorithm originally implemented in 0.1.0. The condition that was supposed to cause the search to terminate when enough periods had been found was only being evaluated in a small subset of cases. Thanks to Michael Smedberg and Jamis Buck for reporting this. -
Added abbreviation as an alias for
TimezonePeriod.zone_identifier
. -
Updated to tzdata version 2006d (mm.icann.org/pipermail/tz/2006-April/013517.html).
-
Ignore any offset in
DateTime
instances passed in (as is already done forTime
instances). All of the following now refer to the same UTC time (15:40 on 17 April 2006). Previously, theDateTime
in the second line would have been interpreted as 20:40.tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0)) tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0).new_offset(Rational(5, 24))) tz.utc_to_local(Time.utc(2006, 4, 17, 15, 40, 0)) tz.utc_to_local(Time.local(2006, 4, 17, 15, 40, 0))
Version 0.2.0 (tzdata v2006c) - 3-Apr-2006¶ ↑
-
Use timestamps rather than
DateTime
objects in zone files for times between 1970 and 2037 (the range ofTime
). -
Don't convert passed in
Time
objects toDateTime
in most cases (provides a substantial performance improvement). -
Allow integer timestamps (time in seconds since 1970-1-1) to be used as well as
Time
andDateTime
objects in all public methods that take times as parameters. -
Tool to compare
TZInfo
conversions with output from zdump. -
TZDataParser
zone generation algorithm rewritten. Now based on the zic code.TZInfo
is now 100% compatible with zic/zdump output. -
Riyadh Solar Time zones now included again (generation time has been reduced with
TZDataParser
changes). -
Use binary mode when writing zone and country files to get Unix (n) new lines.
-
Omit unnecessary quotes in zone identifier symbols.
-
Omit the final transition to DST if there is a prior transition in the last year processed to standard time.
-
Updated to tzdata version 2006c (mm.icann.org/pipermail/tz/2006-April/013500.html).
Version 0.1.2 (tzdata v2006a) - 5-Feb-2006¶ ↑
-
Add lib directory to the load path when tzinfo is required. Makes it easier to use tzinfo gem when unpacked to vendor directory in rails.
-
Updated to tzdata version 2006a (mm.icann.org/pipermail/tz/2006-January/013311.html).
-
build_tz_classes
rake task now handles running svn add and svn delete as new time zones and countries are added and old ones are removed. -
Return a better error when attempting to use a
Timezone
instance that was constructed withTimezone.new(nil)
. This will occur when using Rails'composed_of
. When the timezone identifier in the database is null, attempting to use theTimezone
will now result in anUnknownTimezone
exception rather than aNameError
.
Version 0.1.1 (tzdata v2005q) - 18-Dec-2005¶ ↑
-
Time zones that are defined by a single unbounded period (e.g. UTC) now work again.
-
Updated to tzdata version 2005q.
Version 0.1.0 (tzdata v2005n) - 27-Nov-2005¶ ↑
-
period_for_local
andlocal_to_utc
now allow resolution of ambiguous times (e.g. when switching from daylight savings to standard time). The behaviour of these methods when faced with an ambiguous local time has now changed. If you are using these methods you should check the documentation. Thanks to Cliff Matthews for suggesting this change. -
Added
require 'date'
totimezone.rb
(date isn't loaded by default in all environments). -
Use rake to build packages and documentation.
-
License file is now included in gem distribution.
-
Dates in definitions stored as Astronomical Julian Day numbers rather than as civil dates (improves performance creating
DateTime
instances). -
Added options to
TZDataParser
to allow generation of specific zones and countries. -
Moved
TimezonePeriod
class totimezone_period.rb
. -
New
TimezonePeriodList
class to storeTimezonePeriod
instances for a timezone and perform searches for periods. -
Time zones are now defined using blocks.
TimezonePeriod
instances are only created when they are needed. Thanks to Jamis Buck for the suggestion. -
Add options to
TZDataParser
to allow exclusion of specific zones and countries. -
Exclude the Riyadh Solar Time zones. The rules are only for 1987 to 1989 and take a long time to generate and process. Riyadh Solar Time is no longer observed.
-
The last
TimezonePeriod
for eachTimezone
is now written out with an unbounded rather than arbitrary end time. -
Construct the
Rational
offset inTimezonePeriod
once when theTimezonePeriod
is constructed rather than each time it is needed. -
Timezone
andCountry
now keep a cache of loaded instances to avoid runningrequire
which can be slow on some platforms. -
Updated to tzdata version 2005n.
Version 0.0.4 (tzdata v2005m) - 18-Sep-2005¶ ↑
-
Removed debug output accidentally included in the previous release.
-
Fixed a bug in the generation of friendly zone identifiers (was inserting apostrophes into UTC, GMT, etc).
-
Fixed
Country
<=>
operator (was comparing non-existent attribute) -
Fixed
Timezone.period_for_local
error when period not found. -
Added test cases for
Timezone
,TimezoneProxy
,TimezonePeriod
,Country
and some selected time zones.
Version 0.0.3 (tzdata v2005m) - 17-Sep-2005¶ ↑
-
Reduced visibility of some methods added in
Timezone#setup
andCountry#setup
. -
Added
name
method toTimezone
(returns the identifier). -
Added
friendly_identifier
method toTimezone
. Returns a more friendly version of the identifier. -
Added
to_s
method toTimezone
. Returns the friendly identifier. -
Added
==
and<=>
operators toTimezone
(compares identifiers). -
Timezone
now includesComparable
. -
Added
to_s
method toCountry
. -
Added
==
and<=>
operators toCountry
(compares ISO 3166 country codes). -
Country
now includesComparable
. -
New
TimezoneProxy
class that behaves the same as aTimezone
but doesn't actually load in its definition until it is actually required. -
Modified
Timezone
andCountry
methods that returnTimezone
instances to returnTimezoneProxy
instances instead. This makes these methods much quicker.
In Ruby on Rails, you can now show a drop-down list of all time zones using the Rails time_zone_select
helper method:
<%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %>
Version 0.0.2 (tzdata v2005m) - 13-Sep-2005¶ ↑
-
Country
andTimezone
data is now loaded into class rather than instance variables. This makesTimezone
links more efficient and saves memory if creating specificTimezone
andCountry
classes directly. -
TimezonePeriod
zone_identifier
is now defined as a symbol to save memory (was previously a string). -
TimezonePeriod
zone_identifier
s that were previously''
are now:Unknown
. -
Timezone
andCountry
instances can now be returned usingTimezone.new(identifier)
andCountry.new(identifier)
. When passed an identifier, thenew
method callsget
to return an instance of the specified timezone or country. -
Added new class methods to
Timezone
to return sets of zones and identifiers.
Thanks to Scott Barron of Lunchbox Software for the suggestions in his article about using TZInfo
with Rails (web.archive.org/web/20060425190845/http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails)
Version 0.0.1 (tzdata v2005m) - 29-Aug-2005¶ ↑
-
First release.


--- layout: page title: "A Well-Known URL for Changing Passwords" description: "This specification defines a well-known URL that sites can use to make their change password forms discoverable by tools. This simple affordance provides a way for software to help the user find the way to change their password." ---
| Document Name: | W3C TR http://www.w3.org/TR/webappsec-change-password-url |
|---|---|
| Document URI: |
http://www.w3.org/TR/webappsec-change-password-url
|
| Online Version: |
http://www.w3.org/TR/webappsec-change-password-url
|
| Organization: | World Wide Web Consortium (W3C) |
| Series: | Technical Report (TR) |
| Abstract: | This specification defines a well-known URL that sites can use to make their change password forms discoverable by tools. This simple affordance provides a way for software to help the user find the way to change their password. |
change-password
Return to ( Series | Organization | all Specifications )


{{flowService.vendor}}
{{flowService.id}}
- API Version: {{flowService.apiVersion}}
- Can adjust amounts: {{flowService.canAdjustAmounts}}
- Can pay amounts: {{flowService.canPayAmounts}}
- Default currency: {{flowService.defaultCurrency}}
- Has accessibility mode: {{flowService.hasAccessibilityMode}}
-
Custom request types
-
Supported flow types
-
Stages
-
Payment methods
-
Supported currencies
-
Supported data keys


|
|
|
|
|
||
|
|
|
| Héritage/Implémentation (is-a) | |
| Dépendance (uses) | |
| Source: Diagrammes de classe / relations |
| Abstract factory | Allows a client to create families of objects without specifying their concrete classes |
| Factory method | Subclasses decide which concrete classes to create |
| Builder | Encapsulate the construction of a product and allow it to be constructed in steps |
| Prototype | Creates objects by cloning an existing object |
| Singleton | Restricts object creation for a class to only one instance |
| Adapter | Allows classes with incompatible interfaces to work together |
| Bridge | Decouples an abstraction from its implementation so that the two can vary independently |
| Composite | Treat collections of objects and individual objects uniformly |
| Decorator | Wraps an object to provide new behavior |
| Facade | Simplifies the interface of a set of classes |
| Flyweight | Reduces the cost of creating and manipulating a large number of similar objects |
| Proxy | Wraps an object to control access to it |
| Chain of Responsability | Delegates commands to a chain of processing objects |
| Command | Creates objects which encapsulate actions and parameters |
| Interpreter | Implements a specialized language |
| Iterator | Accesses the elements of an object sequentially without exposing its underlying representation |
| Mediator | Allows loose coupling between classes by being the only class that has detailed knowledge of their methods |
| Memento | Provides the ability to restore an object to its previous state (undo) |
| Observer | Publish/Subscribe pattern which allows a number of observer objects to see an event |
| State | Allows an object to alter its behavior when its internal state changes |
| Strategy | Allows one of a family of algorithms to be selected on-the-fly at runtime |
| Template method | Defines the skeleton of an algorithm as an abstract class, allowing its subclasses to provide concrete behavior |
| Visitor | Separates an algorithm from an object structure by moving the hierarchy of methods into one object |
Robert C. Martin (aka Uncle Bob), début des années 2000