The existing way of describing filters is via command line argument. It was previously defined this way out of concern that the exact set of metrics to use may change too quickly and hard to keep track of at the core logic. Now it has grown a bit too complex, yet is still unable to meet our needs to customize. The main reason is that metrics involve too many aspects of factors: groups(cpu, mem, net, etc), names (usage, readIOSize, etc), units (number, kiloBytesPerSecond, etc), instances (vmnic0, vmnic1, etc), entity types (virtual machines, hosts) to be described easily at command line.
After certain sets of metrics that are used frequently (or even routinely) are introduced to the library, user code that uses them have the benefits of
The old mechanism of filtering via command line still proves useful and shall be maintained as before.
We use entity UUID to encode perf db table names, yet hyphen characters are not allowed in tables names. By removing the hyphens, the encoding process can be simpler.
This change is trivial to implement: just change the UUID generator from str(uuid.uuid4()) to uuid.uuid4().hex.
Present idea is that perf data is stored in sqlite3 database files, organized with the help of file system. This arrangement has the benefits of better management and improved flexibility. Perf data essentially is periodic (typically per-day; to ease storing, querying, etc), per-entity type (entities of different types certainly have different perf metrics), per-entity (such that time can be primary key) This approach suffers from a number of shortcomings:
The file and table names of perf data may be stored in (and correlated directly to) the conf db, or a meta-data sqlite3 db somewhere in perf directory. This BP is related to [bp-201503-1-predefine-metrics-filter-sets], which will help further refine table names.
[Possibility of storing table names in sqlite3 DBMS] It is obvious that even with BP [bp-201503-1-predefine-metrics-filter-sets], it is difficult to have perf metrics, and hence table names fixed, considering that the available NICs and other factors have to be determined in runtime and may subject to changes. A pragmatic approach will be to (still) encode metrics digest in table name, then store table names in a dedicated db. This db is related more to the perf data than to the config db, therefore, it shall be stored together with perf data, and hence in sqlite3 DBMS. The columns are well-defined, data size is minimal, therefore it is preferable to write to sqlite3 db files directly.
The table name db shall be global to all vCenter servers such that perf data for cross-vCenter datastores can be managed in one place. Also, the db shall be sharded on per-entity type basis (for performance reasons only, AFAIK); this implies that entity type names shall be encoded in the db file names.
Its columns may be entity-id (UUID), begin, until, (we could use these two to know whether some perf data has or has not been fetched), table-name. We won't store file names in the DB, though, as the perf data is stored in a per-day periods, the file names change periodically. We could not store that in a db whose records may cover for much larger a period.
The fact that the number of tables and the table columns are well-defined suggests that we could use SQLAlchemy.
Chances are that the BP [bp-201503-1-predefine-metrics-filter-sets] may be deprecated after this BP could finally solve our problems.
[Update] Now that our model is based on SQLAlchemy, the actual impl. supports both sqlite3 and mysql.
The current approach of storing perf data in sqlite3 database file is too low-level. We must deal with two DBMS'es.
We explored SQLAlchemy a bit for ideas, but could not come up with a clear clue. Currently we'd rather maintain the sqlite3 DBMS, leaving this BP as low priority.
This BP shall develops an app based on the existing fetch-vcenter-configurations-and-perf-data.py that fetch perf data for entities of only a particular type. This reduces pressures on our metrics-filter command line description as we will only need to care about only a particular type. Chances are that this BP will leave BP [bp-201503-1-predefine-metrics-filter-sets] unnecessary.
This bp is considered dependent on [bug-201504-3-vCenter-entity-type-name-strings-out-of-control]; therefore, we delayed this bp until the latter is fixed.
There is one choice that we shall make: while fetching perf data for one particular entity type, do we need to update config info for entities of other types? Doing so make the config db tables updated together as a whole, but may be unnecessary. One solution will be to leave the burden of updating the config db tables to a dedicated daemon running app fetch-vcenter-configurations.py.
For simplicity, previously we write perf data for different vCenter with different prefix (via external bash scripts). Yet, this will make it difficult to fetch/query perf data for datastores shared across vCenter servers. Until we could know whether a datastore has its perf data fetched elsewhere, we would have to fetch and store the same data twice.
This BP shall remove those obstacles that stop us from keeping perf data together. Currently, the conf db is shared across vCenter servers, the abilities to disambiguate it provides is a good point to start. The remaining problems are:
vCenter perf data is available at different intervals, past hour (realtime), past day, etc. Pragmatically, we could not fetch data exactly in such periods. For one thing, some data points may be mysteriously missing at the beginning and ending of the requested time ranges (due to vCenter bugs). On the other hand, due to unexpected delays in our program execution time, the periodic requests we make may lave gaps in the time line that can never be filled.
Therefore, we shall fetch data in smaller ranges with endings aligned at specific boundaries, and for convenience, roughly half the size of the vCenter intervals: half hour for past hour, half day for past day, etc. The fetching frequency will double, but all beginning and ending time points will be at well-defined boundary, making perf data fetching/querying/processing easier in many aspects.
This idea is already implemented in fetching realtime perf data: for every half hour, fetch real time perf data for the last half hour at half-hour boundary (plus small extensions on both ends to work around aforementioned bugs). But it is not yet feature-complete: in impl. of BP [bp-201503-3-track-perf-file-and-table-names] (which is dependent on this BP) , a mechanism is needed to tell from the perf index db that whether the current fetch is needed, or can be avoided. In addition, it seems good to generalize such idea to other intervals. Thus, in this BP, we will define explicitly the actual ranges we support for the various intervals.
We already have the query db apps for clusters, datastores, resource pools; we shall implement the rest for the sake of completeness.
Our current implementation fails to fetch real time perf data for datastores, though obviously such data indeed exists according to vCenter.
Change tracking has always been one of the trickiest topic in information management. For vCenter server, this may include host CPU/memory changes (degradation due to hardware failure, or change of configuration by human), virtual machine CPU/memory changes (scaling, etc). Without precise tracking of the entity configurations, the perf data is very difficult if possible to interpret.
The perf data fetching code runs well. We shall land the querying code ASAP to provide feedback for the fetching code and other functionality alike.
Update: this bp is dependent on fix for [bug-201504-17-10-perf-db-table-names-begin-with-number], which shall define table name construction as code shared by both fetching and querying code.
In this bp, we may implement apps for hosts and virtual machines.
During working on [bp-201504-15-7-perf-data-querying-app], it is obvious that this class needs at least these improvements:
The functions related to perf data querying shall be introduced along with the usages.
Apps developed in [bp-201504-15-7-perf-data-querying-app] needs additional arguments time-range(begin/until), data prefix, while arguments used to connect to vCenter server shall be removed. This suggests that some refactoring.
As new features are landed, more and more time-related functionality are implemented and can potentially be shared.
The direct usage of vCenter entity type names in the codebase has grown more and more ubiquitous. From the practice of programming point of view, repeated usage of strings suggest that they shall be defined with dedicated names. This bug entry shall impl. such definitions.
This bug is filed to address the code obsoleted by new directions. For example, some apps are for old workflows. While we may use the old code sometime, we shall at least make such details well documented.
Previously, we thought 1GHz = 1024MHz, just as 1GB = 1024MB; but this turns out to be wrong.
Currently, the usages of time zone is rather arbitrary. Appropriate guide lines are needed. Old app fetch-perf-data-by-entity-type.py (and its dependent code) shall be kept as is. We just want it to work as before.
[Implementation notes] The core library part now uses vCenter server time (with time zone set to GMT) exclusively. Now the user land app may be implemented with time zone in mind.</>
MO IDs are generated by str(entity) for simplicity, but that will leave surrounding apostrophes (single quotes) in the string. We'd better remove them.
Different CPUs may be installed on different hosts in the same cluster. For example, while generally not recommended, AMD and Intel CPUs may co-exist. Our current implementation is to store only one model. If there are multiple models, select one randomly. The key part may be that, we need the exact CPU configuration of the host running the virtual machine, in order to interpret the perf data a bit more precisely.
While four copies of app fetch-vcenter-configurations-and-perf-data-by-entity-type.py are running on behalf of the four vCenter servers, sometimes the error 'Lock wait timeout exceeded; try restarting transaction' occurs on the config db. The cause turns out to be that we do not commit db sessions fast enough. After session.add() is called until the calling of session.commit(), the db record create/update/delete requests are pending at the db. Other requests have to wait for the pending requests to be persisted to the db, in order to gain the lock and proceed. After waiting for a period longer than a predefined value, the error appears.
Previously, we delay commit() as much as possible in the (not necessarily realistic) hope of better performance. Now we shall commit whenever a request is made to the db at session.flush() (possibly at calling session.add(), if autoflush defaults to True).
The bug is introduced in the initial implementation of perf index db, in which table names are simplified, which turned out to be an over-simplification. Now we shall prefix the table name with some well-defined non-number characters. Possible candidates are fixed strings maybe as simple as '_', or variable ones like entity types. The former is preferred, since it is the simplest and, actually, no other kinds of info may prove useful here.
The table construction is better defined as shared by fetching/querying code.
Previously, host CPU frequency is listed as invariants, as it is believed to remain the same as long as the CPU configuration does not change. But such change (by very small a quantity) is already observed, even when the CPU model, etc do not change. We shall relax the protection by invariants and take cpu frequency from invariants to mutables. On the other hand, the number of CPU cores may change during the hardware maintenance cycle. They are previously listed as mutables, now we consider it better defined as invariants, since hardware configuration change is one of the types of changes that we wish to track.
While computing id (actually md5 digest) for the metrics, we typically sort the columns such that the id does not change even if vCenter reorders the columns. Yet incorrectly-performed sorting resulting in wrong columns and hence data interpretation.
Metric filters, if not specified in command line argument, defaults to None. Yet None argument to hashlib.md5() will raise TypeError exception. The BP [bp-201505-06-2-argument-parsing-extension] shall define filters to default to '' if it is not specified, as a part of feature completeness effort. This bug targets shall default function argument, etc.
We shall mark entries that are old enough as obsoleted.
For now, the obsoleting is performed by the fetch-vcenter-configurations*.py apps. Essentially, one app fetch time from the vCenter server on behalf of which it is running, determine the time point, then obsolete all entries of all vCenter servers older than that time. This seems a bit ugly. But consider that in typical setup, all vCenter servers are configured to sync with the same NTP server; they can be considered to share time. Therefore, we don't consider such practice a great problem.
There are plenty of nits that invites update: code that does not conform to PEP8, innocent yet ugly coding, dead code, unused imports, outdated entries requirements.txt, obsoleted TODOs, comments that disagree with code, etc.
Presently, obsoleted config db entries cannot be re-picked up to use, as sync_into_session() never considers obsolete entries. This behavior contradicts with the design of the db record life cycle. The direct consequence is that the number of obsoleted entries will only irreversibly grow, or even double (e.g., on vCenter server and/or network failure). By re-using obsoleted entries, we essentially could tolerate unexpected consequences in the obsoleting code: if some entries are obsoleted yet should not have been, the re-picking up will simply reverse it.
The message shall at least contain the origin of the commit, blueprint id or bug id, etc.


A Better Writing Process in 5 Steps
Writing is a way to end up thinking something you couldn't have started out thinking.
Writing is a combination of research, drafting, and rewriting. I won't lie to you. Writing is painful. Incredibly painful. Your first twenty articles - blog posts, research papers, news columns - will challenge you. Those first articles are the dip when it comes to being a better writer.
But, consistency and ritual are key. Make sure you write at the same time every day, at least for those first twenty articles. This will help you build a habit. Once you've built the habit the writing process becomes easier. You can then write at any time you choose.
The Writing Process
You learned how to write drafts in school to keep you from becoming a derelict. To become a better writer you need to use those unused skills. Tap into what your teachers taught you. Remember all the red comments Ms. Wilson - your second grade teacher - wrote on your rough drafts.
 The reason you don't like it is because you weren't taught the purpose of drafting. Drafting is a technique to develop more cohesive thoughts.
Drafting helps you organize thoughts to communicate them more effectively.

The rough draft is your first attempt at explaining what you are trying to say. Write without thinking.  Don't edit. If you start making a mistake or have another idea, write it down.
The point of the rough draft is to get your thoughts on paper. Although I use the word paper, it doesn't matter if your medium is a paper, a type writer, or computer screen.
It may help to listen to white noise. I personally like Ambient music.
You are the only person who will read this version. In its current form, you are also the only one who can make sense of the babble. Once you are done writing, don't go back and read it. Not yet.
Researching Thoughts and Ideas
Science is the process that takes us from confusion to understanding...
As you write your rough draft, you will write facts you've overheard, statistics that aren't true, and quotes you can't remember.  Looking up things will hinder you from finishing your thoughts.
Once you've finished the rough draft, you can fill in the blanks. Go research those thoughts and ideas now. Use facts to support your thoughts.
When researching you may discover an idea or thought is totally wrong. That's great! No one has read it but you. Finding new information while researching thoughts and ideas is a great way to learn.
The new facts may change the shape of your original idea or it may completely change the purpose of your original article. Respond to the new data and adapt your article as you need. Use the new information to write a better essay.
Rewriting: The First Draft
You now have a rough draft with facts that support your ideas. But, as I mentioned, no one but you can currently read it. You now need to convert your thoughts into a consumable format.
Start at the beginning and read your article out loud. You will notice things that don't make sense: Thoughts that go nowhere, one idea smashing into another, or unordered ideas.
Edit as you go. Make the article read better. Pay attention to the transitions. One thought should lead to the next. Move sentences, paragraphs, and sections around. Elaborate on key ideas. Fill in blanks.
This is all about rewriting the article. Continue adding, removing, and editing until the flow makes sense and the ideas are easily understood.
Editing: The Second Draft
The article now has a strong outline, great transitions, and facts which support your ideas.
You now want to channel Ms. Wilson - your incredibly picky English teacher. This part will be painful. Prepare yourself. You are not as good of a writer as you think you are.
But, chaneling Ms. Wilson can be hard because you don't know what to look for. Fortunatly for you, developers uploaded Ms. Wilson's brain into an online tool called Nitpicker.
Copy and paste the article of your text into Nitpicker and you will learn how bad of a writer you are. Remember, we put our well written draft into this tool and it still comes out red - or yellow in this case.
The first time you use nitpicker, you will not even know what it's complaining about. Do your research. This is why the first twenty articles are painful. There is a large hill to climb, but with repetition, you will learn about each of the items the tool is complaining about. Pay attention to passive voice.
But, don't fix all the things nitpicker points out. The tool is making suggestions, but you are the author of the work. Use the highlights as suggestions. For instance, I like reading contractions for blog posts. It's less formal and reads the way a friend talks. Keep in mind what type of reading your audience perfers.
Publishing
The Final step. Releasing your thoughts into the world is the final step in the writing process. It's the most important step. If you don't let others read your ideas, do they matter?
I can't emphasize enough how painful publishishing is initially. Letting other's read your work is hard, but necessary.
If you continue writing, editing, and using online tools you will become a stronger writer. You can write without involving anyone else. No one likes editing. Even people who do it for a living.
You can write on your own. Continue writing and keep hitting publish.


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import viewmodels.AnswerRow @( addCssClass: Option[String] = None, answers: Seq[AnswerRow] )(implicit messages: Messages) @cssClass = @{ if(addCssClass.isDefined) s"form-group ${addCssClass.get}" else "form-group" }


Ocean [av13], ocean, in The Outer Sea
Last updated Turn #136
Ocean [av13], ocean, in The Outer Sea
------------------------------------------------------------------------
11: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
11: 22% damaged, arrived from Ocean [au13], owner:
11: Phantasm [n4b], Imperial Empire, duke, with two workers,
11: eight sailors
12: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
12: 22% damaged, departed for Open Pampas [aw13].
Routes leaving Ocean:
North, to Ocean [au13], 6 days
East, to Ocean [av14], 6 days
South, plain, to Open Pampas [aw13], Mandoria, 2 days
West, to Ocean [av12], 6 days


Life at Google
Get to know who we are - from the inside out. From our history and culture, to the people behind our products, get the inside scoop on all things Googley.
1 / 4
Do Cool Things That Matter
Googlers solve complex problems everyday in the name of our core mission to organize the world’s information and make it universally accessible to our users. But what makes working at Google truly unique is the workplace culture that encourages innovation and a healthy disregard for the impossible. Watch Alan Eustace, SVP of knowledge, explain the secret ingredient that makes Google a great place to work: our people.
2 / 4
Thinking big: Larry Page talks moon shots
Whether it’s creating self-driving cars or translating the web into 64 languages, we love big bets. Our company culture encourages experimentation and the free flow of ideas. This perspective is not limited to our engineering teams and technical roles, but extends to all Googlers who share a desire to challenge what’s possible.
3 / 4
Google by design
Since Larry Page took over as CEO in 2011, we've been more focused than ever on improving the user experience across all of our products. Learn how our design teams worked together to engineer a creative revolution in this story from The Verge.
4 / 4
Creating an office for work and play
When you want people to think creatively and push the boundaries of what’s possible, their workspace shouldn’t be a drab maze of beige cubicles. Our offices have become well known for their innovative, fun and—some might say wacky—design. Like most of our decisions, data shows that these spaces have a positive impact on productivity, collaboration and inspiration.  A reporter from The New York Times stopped by our Manhattan offices and was surprised by what he found.
Benefits
When it comes to our benefits and perks, we have everything you'd expect from a large company, like health insurance, retirement benefits and so on. But we also offer way more than the basics. Our benefits are part of who we are, and they're designed to take care of the whole you and keep you healthy, whether physically, emotionally, financially or socially.
How we hire
Our process is pretty basic; the path to getting hired usually involves a first conversation with a recruiter, a phone interview and an onsite interview at one of our offices. But there are a few things we've baked in along the way that make getting hired at Google a little different.


MEET THE PARENTS (Universal) Starring: Robert DeNiro, Ben Stiller, Blythe Danner, Teri Polo, Owen Wilson. Screenplay: Jim Herzfeld and John Hamburg. Producers: Nance Tenenbaum, Jay Roach, Jane Rosenthal and Robert DeNiro. Director: Jay Roach. MPAA Rating: PG-13 (profanity, adult themes, drug references) Running Time: 105 minutes. Reviewed by Scott Renshaw.
Not surprisingly, MEET THE PARENTS is being promoted as a film "from the director of AUSTIN POWERS;" when you've got a connection to a $200 million film in Hollywood, you take advantage of it. It just strikes me as an absurdity of the highest order to pump up Jay Roach for his POWERS oeuvre. They were Mike Myers films, plain and simple, and pretending otherwise is like giving Tom Shadyac credit for the success of ACE VENTURA, or Dennis Dugan for BIG DADDY. To his credit, Roach knew enough to mostly get out of Myers' way, showing he understands how to take advantage of a gifted comic performer's strengths. Let's not forget, however, that this is also the director of MYSTERY, ALASKA -- not exactly the second coming of Preston Sturges.
In MEET THE PARENTS, Roach gets to oversee yet another gifted comic performer, and once again the film is primarily effective to the extent that it gets out of that performer's way.  But before he does, there's a key test to pass: Pam's no-nonsense father Jack (Robert DeNiro). Greg has gotten an inkling that Jack is a tough man to win over, yet he's optimistic when he and Pam head to upstate New York for the weekend to attend the wedding of Pam's sister. And that's when Greg realizes that Jack may be an impossible man to win over, with his every attempt to make things better inevitably making things worse instead.
With Woody Allen having migrated away from his trademark schlemiel character in recent years, Ben Stiller has become cinema's reigning champion of outsider anxiety as comedy. There's more of an undercurrent of hostility to Stiller's on-screen persona, but he still makes has an uncanny ability to make his characters' frustrations and awkward situations hilarious. MEET THE PARENTS gives Stiller plenty of opportunities to squirm -- notably when he concocts an impromptu recollection about milking the family cat -- and his discomfort is almost always good for a laugh. He also gets a great straight man to work with in DeNiro, whose straight-faced portrayal of the over-protective Jack is just the right counterpoint for Stiller's manic antics.
Unfortunately, Stiller does have to struggle against an inconsistent script and flaccid direction. Though MEET THE PARENTS is at least subtle enough to avoid make Greg's antagonist an out-and-out villain, it's still primarily a film of broad individual gags. The situations grow more elaborate, and the set pieces more convoluted, but there's no natural build-up to the comedy. Roach's direction misses the right rhythm both for individual scenes (notably the domino effect after Greg unwittingly lets the Byrnes' cat out of the house) and for the film as a whole. There's never any sense that MEET THE PARENTS is building to a humorous crescendo so much as it is doling out punch lines and pratfalls at regular intervals. Every possible situation comes to the expected worst-case scenario for Greg, and the characters come to the expected epiphanies at the expected times.
That the film works in spite of the people behind the camera says a lot for the people in front of the camera. The supporting players support effectively; Owen Wilson, even underused as he is here, still adds an off-beat edge to every scene he's in. MEET THE PARENTS is one of those films where most of the laughs come from waiting for the protagonist's next humiliation, and often such films are as nerve-wracking as they are amusing. Stiller is simply so funny when he's sweating -- and so determined not to be a victim even as he's being victimized -- that the amusement manages to emerge triumphant. It's a shame that he's working with a workmanlike director who cuts off scenes before they've reached their zenith, but it's often the fate of brilliant comics that they can't find brilliant directors to work with. Working with the likes of Mike Myers and Ben Stiller is a smart career move for the Jay Roaches of the cinema world. Even when the performers' gifts manage to emerge, the reverse is rarely true.
On the Renshaw scale of 0 to 10 missed directions: 6.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
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


{{ partial "head.html" . }}
{{ partial "navbar.html" . }} {{ partial "list-content.html" . }} {{ partial "footer.html" . }} {{ partial "scripts.html" . }}


--- layout: example.html title: Multiple Geometry types Example shortdesc: SDK app testing multiple geometry types docs: >


Hollyoaks star Stephanie Davis reveals high-functioning autism diagnosis
Hollyoaks star Stephanie Davis has revealed she’s been diagnosed with high-functioning autism.
The actress — who plays Sinead O’Connor in the Channel 4 soap — took to Twitter on Monday to inform her follows that she was going to talk about her recent diagnosis in a new video.
She uploaded the clip onto YouTube — which will be the first of a new on-going video blog.
The first instalment — entitled ‘I Have High Functioning Autism. This is me’ — sees Stephanie speak about her recent diagnosis.
Explaining her reasons for wanting to make a video blog, Stephanie said in the clip: ‘I just like to reach out to people — like-minded people who can give me a bit of advice and help me, because I’m only human and I have things that I need help with too.’
Advertisement Advertisement
‘I’ve been diagnosed with a few mental health issues. I’m not ready to talk about them all yet. I don’t know if I ever will be’
‘This is a lot for me — doing this. I can’t make decisions for myself, so I texted me mum and asked if I should do it or not. She said to sleep on it. I feel like I’ve thought about it for a while, and I feel like it really helps me.’
After informing viewers of her diagnosis, she continued: ‘I’ve guessed I just went under the radar with this, but it explains a lot to me.’
‘I think since knowing I’m more aware of what I’m doing, but I’ve struggled my whole life with it, it’s actually quite sad.’
‘My mum felt a bit gutted for me because she was like, ‘I knew that you struggled with these things, but I didn’t even think…’ I think she felt upset at the way my little head must’ve been struggling for so many years.’
In the video, the actress told her viewers that she hoped her blog would help others, and that it would also be a way that she could receive help and tips from those watching as well.
Stephanie has received acclaim for her portrayal of Sinead in Hollyoaks, and the character was recently seen starting a new relationship with Sami Maalik (Rishi Nair). However, problems ensued when Sinead didn’t turn up for her own wedding day, after it was revealed her and Sami had fallen out on holiday.
Advertisement Advertisement
Hollyoaks continues Tuesday 19th November at 7pm on E4.


Rails <IP_ADDRESS> (June 26, 2023)
- No changes.
Rails <IP_ADDRESS> (March 13, 2023)
Implement SafeBuffer#bytesplice
[CVE-2023-28120]
Rails <IP_ADDRESS> (January 24, 2023)
- No changes.
Rails <IP_ADDRESS> (January 17, 2023)
Avoid regex backtracking in Inflector.underscore
[CVE-2023-22796]
Rails 6.1.7 (September 09, 2022)
- No changes.
Rails <IP_ADDRESS> (July 12, 2022)
- No changes.
Rails 6.1.6 (May 09, 2022)
- No changes.
Rails <IP_ADDRESS> (April 26, 2022)
Fix and add protections for XSS in
::ActionView::Helpers
and::ERB::Util
.Add the method ERB::Util.xml_name_escape to escape dangerous characters in names of tags and names of attributes, following the specification of XML.
Álvaro Martín Fraguas
Rails 6.1.5 (March 09, 2022)
Fix ActiveSupport::Duration.build to support negative values.
The algorithm to collect the
parts
of the::ActiveSupport::Duration
ignored the sign of thevalue
and accumulated incorrect part values. This impacted ActiveSupport::Duration#sum (which is dependent onparts
) but not ActiveSupport::Duration#eql? (which is dependent onvalue
).Caleb Buxton, Braden Staudacher
Time#change and methods that call it (eg. Time#advance) will now return a
Time
with the timezone argument provided, if the caller was initialized with a timezone argument.Fixes #42467.
Alex Ghiculescu
Clone to keep extended Logger methods for tagged logger.
Orhan Toy
assert_changes
works on includingActiveSupport::Assertions
module.Pedro Medeiros
Rails <IP_ADDRESS> (March 08, 2022)
- No changes.
Rails <IP_ADDRESS> (February 11, 2022)
- Fix Reloader method signature to work with the new Executor signature
Rails <IP_ADDRESS> (February 11, 2022)
- No changes.
Rails <IP_ADDRESS> (December 15, 2021)
- No changes.
Rails <IP_ADDRESS> (December 14, 2021)
- No changes.
Rails <IP_ADDRESS> (December 14, 2021)
- No changes.
Rails <IP_ADDRESS> (August 19, 2021)
- No changes.
Rails 6.1.4 (June 24, 2021)
MemCacheStore: convert any underlying value (including
false
) to anEntry
.See #42559.
Alex Ghiculescu
Fix bug in
number_with_precision
when using largeBigDecimal
values.Fixes #42302.
Federico Aldunate, Zachary Scott
Check byte size instead of length on
secure_compare
.Tietew
Fix Time.at to not lose
:in
option.Ryuta Kamizono
Require a path for
config.cache_store = :file_store
.Alex Ghiculescu
Avoid having to store complex object in the default translation file.
Rafael Mendonça França
Rails <IP_ADDRESS> (May 05, 2021)
- No changes.
Rails <IP_ADDRESS> (March 26, 2021)
- No changes.
Rails 6.1.3 (February 17, 2021)
- No changes.
Rails <IP_ADDRESS> (February 10, 2021)
- No changes.
Rails 6.1.2 (February 09, 2021)
::ActiveSupport::Cache::MemCacheStore
now accepts an explicitnil
for itsaddresses
argument.config.cache_store = :mem_cache_store, nil # is now equivalent to config.cache_store = :mem_cache_store # and is also equivalent to config.cache_store = :mem_cache_store, ENV["MEMCACHE_SERVERS"] || "localhost:11211" # which is the fallback behavior of Dalli
This helps those migrating from
:dalli_store
, where an explicitnil
was permitted.Michael Overmeyer
Rails 6.1.1 (January 07, 2021)
Change
IPAddr#to_json
to match the behavior of the json gem returning the string representation instead of the instance variables of the object.Before:
IPAddr.new("<IP_ADDRESS>").to_json # => "{\"addr\":2130706433,\"family\":2,\"mask_addr\":4294967295}"
After:
IPAddr.new("<IP_ADDRESS>").to_json # => "\"<IP_ADDRESS>\""
Rails 6.1.0 (December 09, 2020)
Ensure
MemoryStore
disables compression by default. Reverts behavior ofMemoryStore
to its prior rails5.1
behavior.Max Gurewitz
Calling
iso8601
on negative durations retains the negative sign on individual digits instead of prepending it.This change is required so we can interoperate with PostgreSQL, which prefers negative signs for each component.
Compatibility with other iso8601 parsers which support leading negatives as well as negatives per component is still retained.
Before:
(-1.year - 1.day).iso8601 # => "-P1Y1D"
After:
(-1.year - 1.day).iso8601 # => "P-1Y-1D"
Vipul A M
Remove deprecated
ActiveSupport::Notifications::Instrumenter#end=
.Rafael Mendonça França
Deprecate ActiveSupport::Multibyte::Unicode#default_normalization_form.
Rafael Mendonça França
Remove deprecated
ActiveSupport::Multibyte::Unicode.pack_graphemes
,ActiveSupport::Multibyte::Unicode.unpack_graphemes
,ActiveSupport::Multibyte::Unicode.normalize
,ActiveSupport::Multibyte::Unicode.downcase
,ActiveSupport::Multibyte::Unicode.upcase
andActiveSupport::Multibyte::Unicode.swapcase
.Rafael Mendonça França
Remove deprecated
ActiveSupport::Multibyte::Chars#consumes?
andActiveSupport::Multibyte::Chars#normalize
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/range/include_range
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/hash/transform_values
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/hash/compact
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/array/prepend_and_append
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/numeric/inquiry
.Rafael Mendonça França
Remove deprecated file
active_support/core_ext/module/reachable
.Rafael Mendonça França
Remove deprecated
Module#parent_name
,Module#parent
andModule#parents
.Rafael Mendonça França
Remove deprecated
ActiveSupport::LoggerThreadSafeLevel#after_initialize
.Rafael Mendonça França
Remove deprecated
LoggerSilence
constant.Rafael Mendonça França
Remove deprecated fallback to
I18n.default_local
whenconfig.i18n.fallbacks
is empty.Rafael Mendonça França
Remove entries from local cache on
RedisCacheStore#delete_matched
Fixes #38627
ojab
Speed up ActiveSupport::SecurityUtils.fixed_length_secure_compare by using
OpenSSL.fixed_length_secure_compare
, if available.Nate Matykiewicz
::ActiveSupport::Cache::MemCacheStore
now checksENV["MEMCACHE_SERVERS"]
before falling back to"localhost:11211"
if configured without any addresses.config.cache_store = :mem_cache_store # is now equivalent to config.cache_store = :mem_cache_store, ENV["MEMCACHE_SERVERS"] || "localhost:11211" # instead of config.cache_store = :mem_cache_store, "localhost:11211" # ignores ENV["MEMCACHE_SERVERS"]
Sam Bostock
ActiveSupport::Subscriber#attach_to
now accepts aninherit_all:
argument. When set to true, it allows a subscriber to receive events for methods defined in the subscriber's ancestor class(es).class ActionControllerSubscriber < ActiveSupport::Subscriber attach_to :action_controller def start_processing(event) info "Processing by #{event.payload[:controller]}##{event.payload[:action]} as #{format}" end def redirect_to(event) info { "Redirected to #{event.payload[:location]}" } end end # We detach ActionControllerSubscriber from the :action_controller namespace so that our CustomActionControllerSubscriber # can provide its own instrumentation for certain events in the namespace ActionControllerSubscriber.detach_from(:action_controller) class CustomActionControllerSubscriber < ActionControllerSubscriber attach_to :action_controller, inherit_all: true def start_processing(event) info "A custom response to start_processing events" end # => CustomActionControllerSubscriber will process events for "start_processing.action_controller" notifications # using its own #start_processing implementation, while retaining ActionControllerSubscriber's instrumentation # for "redirect_to.action_controller" notifications end
Adrianna Chang
Allow the digest class used to generate non-sensitive digests to be configured with
config.active_support.hash_digest_class
.config.active_support.use_sha1_digests
is deprecated in favour ofconfig.active_support.hash_digest_class = ::Digest::SHA1
.Dirkjan Bussink
Fix bug to make memcached write_entry expire correctly with unless_exist
Jye Lee
Add
::ActiveSupport::Duration
conversion methodsin_seconds
,in_minutes
,in_hours
,in_days
,in_weeks
,in_months
, andin_years
return the respective duration covered.Jason York
Fixed issue in
::ActiveSupport::Cache::RedisCacheStore
not passing options toread_multi
causingfetch_multi
to not work properlyRajesh Sharma
Fixed issue in
::ActiveSupport::Cache::MemCacheStore
which caused duplicate compression, and caused the providedcompression_threshold
to not be respected.Max Gurewitz
Prevent
RedisCacheStore
andMemCacheStore
from performing compression when reading entries written withraw: true
.Max Gurewitz
URI.parser is deprecated and will be removed in
Rails
7.0. UseURI::DEFAULT_PARSER
instead.Jean Boussier
require_dependency
has been documented to be obsolete in:zeitwerk
mode. The method is not deprecated as such (yet), but applications are encouraged to not use it.In
:zeitwerk
mode, semantics match Ruby's and you do not need to be defensive with load order. Just refer to classes and modules normally. If the constant name is dynamic, camelize if needed, and constantize.Xavier Noria
Add 3rd person aliases of Symbol#start_with? and Symbol#end_with?.
:foo.starts_with?("f") # => true :foo.ends_with?("o") # => true
Ryuta Kamizono
Add override of unary plus for
::ActiveSupport::Duration
.+ 1.second
is now identical to+1.second
to prevent errors where a seemingly innocent change of formatting leads to a change in the code behavior.Before:
+1.second.class # => ActiveSupport::Duration (+ 1.second).class # => Integer
After:
+1.second.class # => ActiveSupport::Duration (+ 1.second).class # => ActiveSupport::Duration
Fixes #39079.
Roman Kushnir
Add subsec to ActiveSupport::TimeWithZone#inspect.
Before:
Time.at(1498099140).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00 UTC +00:00" Time.at(1498099140, 123456780, :nsec).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00 UTC +00:00" Time.at(1498099140 + Rational("1/3")).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00 UTC +00:00"
After:
Time.at(1498099140).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00.000000000 UTC +00:00" Time.at(1498099140, 123456780, :nsec).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00.123456780 UTC +00:00" Time.at(1498099140 + Rational("1/3")).in_time_zone.inspect # => "Thu, 22 Jun 2017 02:39:00.333333333 UTC +00:00"
akinomaeni
Calling ActiveSupport::TaggedLogging#tagged without a block now returns a tagged logger.
logger.tagged("BCX").info("Funky time!") # => [BCX] Funky time!
Eugene Kenny
Align
Range#cover?
extension behavior with Ruby behavior for backwards ranges.(1..10).cover?(5..3)
now returnsfalse
, as it does in plain Ruby.Also update
#include?
and#===
behavior to match.Michael Groeneman
Update to TZInfo v2.0.0.
This changes the output of ActiveSupport::TimeZone#utc_to_local, but can be controlled with the ActiveSupport.utc_to_local_returns_utc_offset_times config.
New Rails 6.1 apps have it enabled by default, existing apps can upgrade via the config in config/initializers/new_framework_defaults_6_1.rb
See the
utc_to_local_returns_utc_offset_times
documentation for details.Phil Ross, Jared Beck
Add Date and
Time
#yesterday?
and#tomorrow?
alongside#today?
.Aliased to
#prev_day?
and#next_day?
to match the existing#prev/next_day
methods.Jatin Dhankhar
Add Enumerable#pick to complement
ActiveRecord::Relation#pick
.Eugene Kenny
[Breaking change] ActiveSupport::Callbacks#halted_callback_hook now receive a 2nd argument:
ActiveSupport::Callbacks#halted_callback_hook now receive the name of the callback being halted as second argument. This change will allow you to differentiate which callbacks halted the chain and act accordingly.
class Book < ApplicationRecord before_save { throw(:abort) } before_create { throw(:abort) } def halted_callback_hook(filter, callback_name) Rails.logger.info("Book couldn't be #{callback_name}d") end Book.create # => "Book couldn't be created" book.save # => "Book couldn't be saved" end
Edouard Chin
Support
prepend
with::ActiveSupport::Concern
.Allows a module with
extend ActiveSupport::Concern
to be prepended.module Imposter extend ActiveSupport::Concern # Same as `included`, except only run when prepended. prepended do end end class Person prepend Imposter end
Class methods are prepended to the base class, concerning is also updated:
concerning :Imposter, prepend: true do
.Jason Karns, Elia Schito
Deprecate using
Range#include?
method to check the inclusion of a value in a date time range. It is recommended to useRange#cover?
method instead ofRange#include?
to check the inclusion of a value in a date time range.Vishal Telangre
Support added for a
round_mode
parameter, in all number helpers. (See:BigDecimal::mode
.)number_to_currency(1234567890.50, precision: 0, round_mode: :half_down) # => "$1,234,567,890" number_to_percentage(302.24398923423, precision: 5, round_mode: :down) # => "302.24398%" number_to_rounded(389.32314, precision: 0, round_mode: :ceil) # => "390" number_to_human_size(483989, precision: 2, round_mode: :up) # => "480 KB" number_to_human(489939, precision: 2, round_mode: :floor) # => "480 Thousand" 485000.to_s(:human, precision: 2, round_mode: :half_even) # => "480 Thousand"
Tom Lord
Array#to_sentence no longer returns a frozen string.
Before:
['one', 'two'].to_sentence.frozen? # => true
After:
['one', 'two'].to_sentence.frozen? # => false
Nicolas Dular
When an instance of
::ActiveSupport::Duration
is converted to aniso8601
duration string, ifweeks
are mixed withdate
parts, theweek
part will be converted to days. This keeps the parser and serializer on the same page.duration = ActiveSupport::Duration.build(1000000) # 1 week, 4 days, 13 hours, 46 minutes, and 40.0 seconds duration_iso = duration.iso8601 # P11DT13H46M40S ActiveSupport::Duration.parse(duration_iso) # 11 days, 13 hours, 46 minutes, and 40 seconds duration = ActiveSupport::Duration.build(604800) # 1 week duration_iso = duration.iso8601 # P1W ActiveSupport::Duration.parse(duration_iso) # 1 week
Abhishek Sarkar
Add block support to ActiveSupport::Testing::TimeHelpers#travel_back.
Tim Masliuchenko
Update ActiveSupport::Messages::Metadata#fresh? to work for cookies with expiry set when
ActiveSupport.parse_json_times = true
.Christian Gregg
Support symbolic links for
content_path
in::ActiveSupport::EncryptedFile
.Takumi Shotoku
Improve
Range#===
,Range#include?
, andRange#cover?
to work with beginless (startless) and endless range targets.Allen Hsu, Andrew Hodgkinson
Don't use
Process#clock_gettime(CLOCK_THREAD_CPUTIME_ID)
on Solaris.Iain Beeston
Prevent
ActiveSupport::Duration.build(value)
from creating instances of::ActiveSupport::Duration
unlessvalue
is of typeNumeric
.Addresses the errant set of behaviours described in #37012 where
::ActiveSupport::Duration
comparisons would fail confusingly or return unexpected results when comparing durations built from instances ofString
.Before:
small_duration_from_string = ActiveSupport::Duration.build('9') large_duration_from_string = ActiveSupport::Duration.build('100000000000000') small_duration_from_int = ActiveSupport::Duration.build(9) large_duration_from_string > small_duration_from_string # => false small_duration_from_string == small_duration_from_int # => false small_duration_from_int < large_duration_from_string # => ArgumentError (comparison of ActiveSupport::Duration::Scalar with ActiveSupport::Duration failed) large_duration_from_string > small_duration_from_int # => ArgumentError (comparison of String with ActiveSupport::Duration failed)
After:
small_duration_from_string = ActiveSupport::Duration.build('9') # => TypeError (can't build an ActiveSupport::Duration from a String)
Alexei Emam
Add ActiveSupport::Cache::Store#delete_multi method to delete multiple keys from the cache store.
Peter Zhu
Support multiple arguments in HashWithIndifferentAccess for
merge
andupdate
methods, to follow Ruby 2.6 addition.Wojciech Wnętrzak
Allow initializing
thread_mattr_*
attributes via:default
option.class Scraper thread_mattr_reader :client, default: Api::Client.new end
Guilherme Mansur
Add
compact_blank
for those times when you want to remove #blank? values from an Enumerable (alsocompact_blank!
on Hash, Array, ActionController::Parameters).Dana Sherson
Make ActiveSupport::Logger Fiber-safe.
Use
Fiber.current.id
inActiveSupport::Logger#local_level=
in order to make log level local to Ruby Fibers in addition to Threads.Example:
logger = ActiveSupport::Logger.new(STDOUT) logger.level = 1 puts "Main is debug? #{logger.debug?}" Fiber.new { logger.local_level = 0 puts "Thread is debug? #{logger.debug?}" }.resume puts "Main is debug? #{logger.debug?}"
Before:
Main is debug? false Thread is debug? true Main is debug? true
After:
Main is debug? false Thread is debug? true Main is debug? false
Fixes #36752.
Alexander Varnin
Allow the
on_rotation
proc used when decrypting/verifying a message to be passed at the constructor level.Before:
crypt = ActiveSupport::MessageEncryptor.new('long_secret') crypt.decrypt_and_verify(encrypted_message, on_rotation: proc { ... }) crypt.decrypt_and_verify(another_encrypted_message, on_rotation: proc { ... })
After:
crypt = ActiveSupport::MessageEncryptor.new('long_secret', on_rotation: proc { ... }) crypt.decrypt_and_verify(encrypted_message) crypt.decrypt_and_verify(another_encrypted_message)
Edouard Chin
delegate_missing_to
would raise aDelegationError
if the object delegated to wasnil
. Now theallow_nil
option has been added to enable the user to specify they wantnil
returned in this case.Matthew Tanous
truncate
would return the original string if it was too short to be truncated and a frozen string if it were long enough to be truncated. Now truncate will consistently return an unfrozen string regardless. This behavior is consistent withgsub
andstrip
.Before:
'foobar'.truncate(5).frozen? # => true 'foobar'.truncate(6).frozen? # => false
After:
'foobar'.truncate(5).frozen? # => false 'foobar'.truncate(6).frozen? # => false
Jordan Thomas
Please check [6-0-stable]) for previous changes.


Chart Type
Standard Velocity Chart
Velocity Control Chart
Fields for unstarted work
Fields for committed work
Fields for completed work
Fields for closed work
Effort Field
Microsoft.VSTS.Scheduling.Effort
Microsoft.VSTS.Scheduling.StoryPoints
State Field
System.BoardColumn


Yay! You did it!
/
Restart
Loading...
Fast Burglars
Click to play
← ↑ → ↓ = Drive car
SPACE = flip the car
ESC = pause
Developed by
Hugo Teixeira
|
Follow Me
View Source Code
Developed with
Typescript
,
Gulp
,
ThreeJS
and
Ammo.js
3D models created with
Blender
and
Adobe Photoshop
Loading...


It seems your browser does not support HTML5 canvas. Please try another browser like Chrome or Firefox.
Click here to see the entire game collection.
Copyright (c) 2017 ApertaTeam


Traditionist
Advertising
Ecommerce
Icons
logo
Minimal
Photography
SEO
Web design
Karen Finerman // CNBC // Metropolitan Capital
California Arts & Music Consortium
Ray Kurzweil
Seniors Helping Seniors
Gilt Founders
Think Like Zuck


Path traversal is a very powerful attack but not necessarily easy to find, fortunatly DotDotPwn is here to help you! DotDotPwn is a powerful traversal directory fuzzer. Written in perl, it’s installed in Kali Linux by default.
Basic usage is:
dotdotpwn.pl -m <module> -h <host>
Several options are available:
-h: the host you want to test
-m: it supports http, ftp or text file as a payload
-o and -O: enable the operating system detection
-d: max depth it will look for (ie. max ../
)
-f : file to grab (default is /etc/passwd
for *nix system)
-E: try to grab some extra files depending of the os detection result
-S: ssl support
-x: specify the port
-r: output file
-q: quiet mode
-k: keyword to match in the response who means a win
-b: exit after the first vulnerability found
-M: http method to use with http module (can’t make it work)
-e: add an extension (.php, .png, …)
and some more…
Example:
Will produce the following Apache logs (note that the User-Agent is different for each request):
To deal with session and cookies you can use a payload to provide details about the HTTP request.
The keyword TRAVERSAL
is required by DotDotPwn to specify where the injection should be performed.
For instance in the file inclusion section in DVWA, you can try this:
GET /vulnerabilities/fi/?page=TRAVERSAL HTTP/1.1
Host: local.dvwa.com
Cookie: security=low; PHPSESSID=rcvkns45jv1i62t1c4jqj8ogu4
With the following command:
$ dotdotpwn.pl -m payload -h local.dvwa.com -p ~/dvwa_fi.txt -x 80 -k "root:" -f /etc/passwd


CHOWN
Section: Linux Programmer's Manual (2)Updated: 2008-06-16
Index Return to Main Contents
NAME
chown, fchown, lchown - change ownership of a fileSYNOPSIS
#include <unistd.h>
int chown(const char *path, uid_t owner, gid_t group);
int fchown(int fd, uid_t owner, gid_t group);
int lchown(const char *path, uid_t owner, gid_t group);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
fchown(), lchown(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
DESCRIPTION
These system calls change the owner and group of a file. The differ only in how the file is specified:- *
- chown() changes the ownership of the file specified by path, which is dereferenced if it is a symbolic link.
- *
- fchown() changes the ownership of the file referred to by the open file descriptor fd.
- *
- lchown() is like chown(), but does not dereference symbolic links.
Only a privileged process (Linux: one with the CAP_CHOWN capability) may change the owner of a file. The owner of a file may change the group of the file to any group of which that owner is a member. A privileged process (Linux: with CAP_CHOWN) may change the group arbitrarily.
If the owner or group is specified as -1, then that ID is not changed.
When the owner or group of an executable file are changed by a non-superuser, the S_ISUID and S_ISGID mode bits are cleared. POSIX does not specify whether this also should happen when root does the chown(); the Linux behavior depends on the kernel version. In case of a non-group-executable file (i.e., one for which the S_IXGRP bit is not set) the S_ISGID bit indicates mandatory locking, and is not cleared by a chown().
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.ERRORS
Depending on the file system, other errors can be returned. The more general errors for chown() are listed below.- EACCES
- Search permission is denied on a component of the path prefix. (See also path_resolution(7).)
- EFAULT
- path points outside your accessible address space.
- ELOOP
- Too many symbolic links were encountered in resolving path.
- ENAMETOOLONG
- path is too long.
- ENOENT
- The file does not exist.
- ENOMEM
- Insufficient kernel memory was available.
- ENOTDIR
- A component of the path prefix is not a directory.
- EPERM
- The calling process did not have the required permissions (see above) to change owner and/or group.
- EROFS
- The named file resides on a read-only file system.
The general errors for fchown() are listed below:
- EBADF
- The descriptor is not valid.
- EIO
- A low-level I/O error occurred while modifying the inode.
- ENOENT
- See above.
- EPERM
- See above.
- EROFS
- See above.
CONFORMING TO
4.4BSD, SVr4, POSIX.1-2001.The 4.4BSD version can only be used by the superuser (that is, ordinary users cannot give away files).
NOTES
When a new file is created (by, for example, open(2) or mkdir(2)), its owner is made the same as the file system user ID of the creating process. The group of the file depends on a range of factors, including the type of file system, the options used to mount the file system, and whether or not the set-group-ID permission bit is enabled on the parent directory. If the file system supports the -o grpid (or, synonymously -o bsdgroups) and -o nogrpid (or, synonymously -o sysvgroups) mount(8) options, then the rules are as follows:- *
- If the file system is mounted with -o grpid, then the group of a new file is made the same as that of the parent directory.
- *
- If the file system is mounted with -o nogrpid and the set-group-ID bit is disabled on the parent directory, then the group of a new file is made the same as the process's file system GID.
- *
- If the file system is mounted with -o nogrpid and the set-group-ID bit is enabled on the parent directory, then the group of a new file is made the same as that of the parent directory.
As at Linux 2.6.25, the -o grpid and -o nogrpid mount options are supported by ext2, ext3, ext4, and XFS. File systems that don't support these mount options follow the -o nogrpid rules.
The chown() semantics are deliberately violated on NFS file systems which have UID mapping enabled. Additionally, the semantics of all system calls which access the file contents are violated, because chown() may cause immediate access revocation on already open files. Client side caching may lead to a delay between the time where ownership have been changed to allow access for a user and the time where the file can actually be accessed by the user on other clients.
In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), chown() did not follow symbolic links. Since Linux 2.1.81, chown() does follow symbolic links, and there is a new system call lchown() that does not follow symbolic links. Since Linux 2.1.86, this new call (that has the same semantics as the old chown()) has got the same syscall number, and chown() got the newly introduced number.
EXAMPLE
The following program changes the ownership of the file named in its second command-line argument to the value specified in its first command-line argument. The new owner can be specified either as a numeric user ID, or as a username (which is converted to a user ID by using getpwnam(3) to perform a lookup in the system password file).
#include <pwd.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { uid_t uid; struct passwd *pwd; char *endptr; if (argc != 3 || argv[1][0] == aq\0aq) { fprintf(stderr, "%s <owner> <file>\n", argv[0]); exit(EXIT_FAILURE); } uid = strtol(argv[1], &endptr, 10); /* Allow a numeric string */ if (*endptr != aq\0aq) { /* Was not pure numeric string */ pwd = getpwnam(argv[1]); /* Try getting UID for username */ if (pwd == NULL) { perror("getpwnam"); exit(EXIT_FAILURE); } uid = pwd->pw_uid; } if (chown(argv[2], uid, -1) == -1) { perror("chown"); exit(EXIT_FAILURE); } /* if */ exit(EXIT_SUCCESS); } /* main */
SEE ALSO
chmod(2), fchownat(2), flock(2), path_resolution(7), symlink(7)COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.
Index
This document was created by man2html, using the manual pages.
Time: 05:33:03 GMT, December 24, 2015


HW 4
11/22/2017
EE-227A
6
Q.1)
They will never figure out that I, Nicholas Weaver, am the real outis. -insert evil laughter here-


Hello world nylas is cool. nylas://plugins?test=stuff nylas:plugins?test=stuff nylas://plugins?test=stuff Don't you like nylas?


Real Time Strategy - UE4
-
What is it?
-
I've been playing around with the templates of the Unreal Engine 4.
The default mechanics of the engine are fantastic for first person, third person and 2D games.
I thought it would be a fun challenge to attempt to set up an RTS system.
Free-form camera and AI player characters.
Check out my video demonstrating it working here!


Congratulations on your success. You've handled yourself very well. Who would have thought that Cédric Kinsinger would turn out to be a terrorist?
You really should have informed me that you were being contacted by IAM operatives, though. That's kinda important, you know, and I don't have time to sift through everyone's mails every single day.
Oh well, everything turned out all right, and we'll catch the hackers some other day. I'll let it slide this time. Just let me know if they contact you again.
Oskar Jönsson
Managing Consultant
Head of IT security


{% extends "base.html" %} {% load static %} {% block content %} Contact Us Home Contact Us Quick Contact Headquarters 321, Breaking Street, 2nd cros, Newyork ,USA 10002 Call Us+321 4567 89 012 & 79 023 Mail<EMAIL_ADDRESS>Opening TimeMon - Sat: 09.00am to 18.00pm Support Centre 226, Breaking Street, 2nd cros, Newyork ,USA 1002 Call Us+321 4567 89 012 & 79 023 Mail<EMAIL_ADDRESS>Opening TimeMon - Sat: 09.00am to 18.00pm Send Message Us send message {% endblock content %}


Opportunity Question {{vm.opportunityQuestion.id}}
- Description
-
{{vm.opportunityQuestion.description}}
- Date
-
{{vm.opportunityQuestion.date | date:'mediumDate'}}
- Votes
-
{{vm.opportunityQuestion.votes}}
- Owner Login
-
{{vm.opportunityQuestion.ownerLogin}}
- Answer
-
{{vm.opportunityQuestion.answer}}


|
|
SlickGrid alternate RowMove plugin
var moveRowsPlugin = new Slick.RowMoveManager({
cancelEditOnDrag: true,
keepSelectionOnMove: true,
singleStaysSelected: false,
preventDroppingOnSelf: true
});
grid.registerPlugin(moveRowsPlugin);
Differences from original plugin behaviour:
- one or more selected + grabbing an unselected row:
the grabbed row will be selected in additon to the current
selection, all selected rows will be moved, and stay selected
after being dropped (keepSelectionOnMove: true)
- no selection + grabbing a row: row moved, but it will not
become selected after being dropped. This has an effect only
if we grab a single row and it was not originally selected.
(singleStaysSelected: false)
- If the rows are being dropped on top of themselves, the
event will be prevented. The original plugin does not deal with
this, and leaves the implementation for outside, as shown
by the example demo. (preventDroppingOnSelf: true)
Identical behaviour to the original:
- one or more selected + grabbing a selected row: all selected rows moved,
and they all stay selected in the end
|
|
|
Revert to original plugin behavior, for comparison
var moveRowsPlugin = new Slick.RowMoveManager({
cancelEditOnDrag: true,
//keepSelectionOnMove: false,
//singleStaysSelected: true,
//preventDroppingOnSelf: false
});
grid.registerPlugin(moveRowsPlugin);
- no selection + grabbing a row: row moved, and
stays selected after being dropped
- one or more selected + grabbing a selected row: all selected rows moved,
and they all stay selected in the end
- one or more selected + grabbing an unselected row:
current selection are cleared, the grabbed row will be moved,
and stays selected after being dropped
|


I started my journey in technologies when I was 17 (cause my birthday is in December, just in case). and I decided to study a Degree in Engineering in Telecommunication Technologies at University Rey Juan Carlos (Madrid, Spain), then I continued studying a Master's Degree in Telecommunication Engineering. But I wanted more, and I decided to start my journey on research, doing a PhD on data (mostly data related to software) visualization in Extended Reality, I'm currently on the PhD (hoping to finish it soon 😁)
Regarding my technology stack (for job or research), I always belonged to software development, focused on the web (the most powerful technology right now, change my mind), working now with Virtual Reality (VR) and mostly Front-End (you now, frameworks, and so on) but I really love to touch every part of a system, and as a part of a startup, I'm used to "touch" backends, mainly in Python. And please, let spread the knowledge and come to the OSS!
Not everything is about experience or jobs, I recognize that I'm always trying to make new things or learning (something web-related) but I also really love to ride my bike (currently Kawasaki ER6N), I really love to create gadgets using my 3D printer and electronics things (Arduino, Raspi, just a couple of cables, etc.). I like to play videogames (this is my games blog), retrogrames (from NES to PSX, not beyond/below that) and I'm a board game lover. I can mix these hobbies with a nice coffee or a beer!
Visualize the NPM dependencies city ecosystem of your node project in VR
BabiaXR: Virtual Reality Data Visualizations for the browser
BabiaXR: Virtual Reality Data Visualizations using only Front-End
Network plugin, un plugin de visualización para mostrar redes en Kibana
Enhancing CodeCity: Code Evolution in VR using Web Technologies
Moreno-Lumbreras, David & Gonzalez-Barahona, Jesus & Robles,
Gregorio
BabiaXR: Virtual Reality software data visualizations
for the Web
Moreno, David & Gonzalez-Barahona, Jesus & Villaverde,
Andrea
CodeCity: On-Screen or in Virtual Reality? -
Artifact
Moreno-Lumbreras, David & Minelli, Roberto & Villaverde,
Andrea &
González-Barahona, Jesús M. & Lanza, Michele
I served as a mentor under the CHAOSS organization int he Google Summer of Code of 2020.
BabiaXR is a project to create HTML-based 3-D data visualizations suitable for use in XR (virtual reality, extended reality) scenes within the browser. BabiaXR is built on A-Frame and other JavaScript modules (including Three.js), and aims to easy of use and easy integration with other A-Frame components.
Kibana is data visualization plugin for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. I've contributed to this community, I've developed many plugins of Kibana in order to get new visualizations types and I am always thinking about more plugins.


brightlightz
Try me
Have mercY
StoP RnaodM ScrolL
Collections
Products
Philo
Press
Articles
2
Eye Wear for every side of you
Collection
See More
Give money
EXPLORE
Give money
EXPLORE
For sale
EXPLORE
Come on Buy me
EXPLORE
Spring Summer Collection
Sunglasses
allen
98$
color
Add to cart
allen
98$
color
Add to cart
allen
98$
color
Add to cart
allen
98$
color
Add to cart
Browse All


{% extends 'layouts/auth.html' %} {% import 'bootstrap/wtf.html' as wtf %} {% set active_page = "login" %} {% block app_content %} {% if current_user.is_active %}
You are logged in as {{ current_user.username }}. To login as a different user, first log out.
{% else %}Sign in to your account using email and password provided during registration
{{ wtf.quick_form(form) }}Don't have account? Sign up
{% endif %} {% endblock %}


SVG is an XML-based, two-dimensional image format with support for interactivity and animation
SVG is a markup language similar to HTML but is designed for another purpose: rendering shapes and images
Since it is vector based, it can be scaled up and down maintaining the spatial relationships between the shapes.
And without loosing quality.
Since it is markup, it allows us to style or interact with the indivual elements that compose an SVG
Basic SVG features have good browser support.
But UC Browser does not support masks at all...
Nope. It depends
...But if you need to create a high resolution version of it perhaps it worths it.
And SVG's can be gzipped also...
Each individual case is different. Test and compare.
Area where the SVG content is drawn.
It is a concept: infinite in both dimensions. Can be any size
It is rendered on the screen relative to a finite region: the viewport
Sort of a window through which you see a particular scene
We could see the whole scene, or a portion of it.
It is defined with specific dimensions.
We can set the dimension with or without a unit identifier:
Once this dimensions are set, the browser stablishes two coordinate systems
It has its origin set at the top left corner of the viewport.
It is similar to the coordinate system established on an HTML element using the CSS box model.
Coordinate system established on the SVG canvas.
Initially identical to the viewport coordinate system.
It can be modified using the viewBox attribute
Coordinate system used to draw the SVG content onto the canvas.
Can be smaller or bigger than the viewport.
It can be fully or partially visible inside the viewport too.
It takes four parameters:
By altering the viewBox properties we can scale or crop it
So far, we have altered the viewBox but taking care of keeping the aspect ratio of the viewport.
But if we don't keep it...
Scale the graphic as much as possible, the entire viewBox fits inside the viewport.
Scale the graphic enough to cover the viewport area. Part of the viewbox is sliced
Path Data attribute
Contains items defined for later reuse
Used to group items together
Require a circle to be defined. cx, cy, r define this circle
A focus can also be defined using fx , fy
It can be embedded in a document in different ways, each of which has prons and cons
.el {background-image: url(mySVG.svg);}
The recommended way is using the object tag
The simplest way is using the svg inline
CSS background and img are treated in a similar way
The most important thing to keep in mind is to remove width and height from the root svg element.
The viewBox attribute must be preserved.
Also preserveAspectRatio must be set to xMidYMid meet, but this is the default.
To achieve a consistent responsive behavior we need to deal with quite a lot of browser inconsistencies and bugs
Mostly, because how browser determine the dimensions of an SVG differ.
The line between HTML and CSS is clear.
SVG blurs this line.
We can use a subset of CSS properties to style SVG elements.
We can also set this attributes inline or in a style tag.
The style tag can be placed inside the svg tag or outside it (e.g in the head of the document)
And you can link to an external style sheet from the SVG file.
Most CSS selectors can be used to target SVG elements: type, class and ID
And also pseudo-classes like :hover or :first-child
Using CSS keyframes and animation properties.
Using CSS transitions.
Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at http://slides.com.
Press ESC to enter the slide overview.
Hold down alt and click on any element to zoom in on it using zoom.js. Alt + click anywhere to zoom back out.
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
Hit the next arrow...
... to step through ...
... a fragmented slide.
There's different types of fragments, like:
grow
shrink
fade-out
current-visible
highlight-red
highlight-blue
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
Set data-background="#dddddd"
on a slide to change the background color. All CSS color formats are supported.

Different background transitions are available via the backgroundTransition option. This one's called "zoom".
Reveal.configure({ backgroundTransition: 'zoom' })
You can override background transitions per-slide.

function linkify( selector ) {
if( supports3DTransforms ) {
var nodes = document.querySelectorAll( selector );
for( var i = 0, len = nodes.length; i < len; i++ ) {
var node = nodes[i];
if( !node.className ) {
node.className += ' roll';
}
}
}
}
Code syntax highlighting courtesy of highlight.js.
| Item | Value | Quantity |
|---|---|---|
| Apples | $1 | 7 |
| Lemonade | $2 | 18 |
| Bread | $3 | 2 |
These guys come in two forms, inline:
“The nice thing about standards is that there are so many to choose from”
and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
You can link between slides internally, like this.
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
Press the S key to try it out.
Presentations can be exported to PDF, here's an example:
Set data-state="something"
on a slide and "something"
will be added as a class to the document element when the slide is open.
Additionally custom events can be triggered on a per slide basis by binding to the data-state
name.
Reveal.addEventListener( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.


Interface IRelationship
Relationship
- Orm\IRelationship implements IteratorAggregate, Countable, Orm\IEntityInjection
Namespace: Orm
Package: Orm
Subpackage: Relationships
Author: Petr Procházka
Located at Relationships/IRelationship.php
Package: Orm
Subpackage: Relationships
Author: Petr Procházka
Located at Relationships/IRelationship.php
public
|
|
public
|
|
public
|
|
public
|
|
public
boolean
|
|
public
|
getIterator()
|
count()
|
getInjectedValue(),
setInjectedValue()
|


Changelog 0.9.4
September 5, 2013
- Improved CSRF prevention support (thanks to @sgress454)
- Support for CORS (thanks to @sgress454)
- CoffeeScript supported client-side by default in gruntfile thanks to @reecelewellen
- Improves/fixes internationalization (thanks to @xdissent and @silvinci)
- Removed vanilla HAML support and tests since it was incomplete (jade is still supported)
- Config: Sails core is no longer automatically copied as a dependency during
sails new
. This speeds up the process significantly and avoids occassional recursive copy death spirals.
- Config: Added explicit
--port
option to sails lift
.
- Sockets: Added query string parsing to requests.
- Sockets: Headers can now be specified in requests (This has implications on full compatibility w/ most Express middleware!)
- Routing: Fixed issues with default 404 and 500 responses.
- Other minor bug fixes/inconsistencies and documentation enhancements
And thanks a ton to anybody I left out! Send me a message on twitter and I'll add you.
Back to Support


Methods
- A
- C
- D
- E
- F
- M
- P
- R
Included Modules
Constants
| REVIEWER | = | 'reviewer' |
| EDITOR | = | 'editor' |
| COLLABORATOR | = | 'collaborator' |
| ADMIN | = | 'admin' |
| PARTICIPANT | = | 'participant' |
| ALL_ROLES | = | [REVIEWER, EDITOR, COLLABORATOR, ADMIN, PARTICIPANT] |
Class Public methods
admins()
Link
collaborators()
Link
editors()
Link
for_role(role)
Link
for_user(user)
Link
most_recent_for(user)
Link
participants()
Link
reviewers()
Link
reviewers_for(paper)
Link
Instance Public methods


Introduction
Izmir is a mini CSS library allowing you to quickly create beautiful image hover elements. Packed with a host of styling classes and custom properties, Izmir allows you total control and almost limitless possibilites. Simply load the CSS library in to your project, add the element markup combined with the style classes of your choice to custom build your perfect image hover effect.
Features
- 1000’s of possible style combinations
- 20 animated border effects
- 9 animated image effect
- 12 animated text effects
- Overlay style classes
- Animation delay classes
- Text layout classes
- Collection of custom properties to further custom style your element
- Border width
- Border margin
- Border color
- Primary color
- Secondary color
- Text color
- Image hover opacity
- Image hover color
- Image hover gradient
- Accesible (hover triggered on focus)
- Ultra small file size (2KB GZipped)
- Complete documentation
Installation
- Extract and copy the CSS files in the root of your download folder to your projects CSS folder.
- Include a link to the CSS your document’s

tags
<link rel="stylesheet" href="css/izmir.min.css">
- Use the following markup to create the most basic instance of an image hover element..

Some sample text


plain text -> encryption -> ciphertext
ciphertext -> decryption -> plain text
Letters written on long strip of leather - wrap around cylinder - thickness of wood is the key
Shift letters to the right by N
ci = (pi + k) % 26


Make 2048
A Pepe version of Gabriele Cirulli's original 2048.
The original version is a small clone of 1024, based on Saming's 2048 (also a clone).
License
2048 is licensed under the MIT license.
Donations
Gabriele made this in his spare time, and it's hosted on GitHub (which means I don't have any hosting costs), but if you enjoyed the game and feel like buying him coffee, you can donate at his BTC address: 1Ec6onfsQmoP9kkL3zkpB6c5sA4PVcXU2i
.


--- creation_epoch:<PHONE_NUMBER> lastmod_epoch:<PHONE_NUMBER> categories: ['Free Stuff'] title: Free encrypted USB key drive on Windows without administrator privileges --- I found a cool freeware utility that can create an encrypted USB drive that works under Windows without administrator privileges. You can insert the USB drive (it doesn't have to be U3, any type will work), and it will have a drive letter assigned after you enter a password.
It's called http://www.rohos.com/free-encryption/">Rohos Mini Drive
Update: No longer a legitimate website or product anymore


P1 Exercise 5 - Loops¶
Loops are yet another technique to automate repetitive behaviours, thus making you code and development time shorter. There are different types of loops, and here we’re going to introduce for-loops, while-loops and nested loops.
For-Loops¶
For-loops are used when something has to be repeated for a fixed number of periods. Figure 5.1 shows a use-case of a for-loop, where the task is to draw a limited number of dashes. Each cycle of the for-loop draws one dash but the loop is repeated for 5 times, resulting in this neat little dashed line.
While-Loops¶
While-loops are useful if the robot must do something while a specific condition is true. For example have a look at
figure 5.2. When the program is started, a couple of variables are initialized, most importantly a variable
called move_robot
. Then the program enters the while-loop and stays in there while the move_robot
is equal to true
.
The robot would be in this loop forever unless something changed the move_robot
variable to false
, which is done
in the robot.whenTouched
event (see the events exercise).
Nested Loops¶
Nested loop is when you have one loop inside another. This is useful for programming behaviours like “For every floor in this building, clean up every room on each floor”. An example of a nested loop can be seen on figure 5.3, where the robot draws a dashed octagon.


Search for orchestrators.
GET /rest/v1/orchestrators
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| QueryParameter |
query |
Query text. |
false |
string |
|
| QueryParameter |
connectedOnly |
If true only connected orchestrators will be retrieved. |
false |
boolean |
|
| QueryParameter |
from |
Query from the given index. |
false |
integer (int32) |
|
| QueryParameter |
size |
Maximum number of results to retrieve. |
false |
integer (int32) |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«GetMultipleDataResult«Orchestrator.»» |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Create a new orchestrators.
POST /rest/v1/orchestrators
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| BodyParameter |
orchestratorRequest |
Request for orchestrators creation |
true |
Request for creation of a new orchestrators. |
|
Responses
| HTTP Code |
Description |
Schema |
| 201 |
Created |
RestResponse«string» |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Get an orchestrators from it’s id.
GET /rest/v1/orchestrators/{id}
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrator to get |
true |
string |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«Orchestrator.» |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Update the name of an existing orchestrators.
PUT /rest/v1/orchestrators/{id}
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrators to update. |
true |
string |
|
| BodyParameter |
request |
Orchestrator update request, representing the fields to updates and their new values. |
true |
Orchestrator update request. |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«Void» |
| 201 |
Created |
No Content |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Delete an existing orchestrators.
DELETE /rest/v1/orchestrators/{id}
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrators to delete. |
true |
string |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«Void» |
| 401 |
Unauthorized |
No Content |
| 204 |
No Content |
No Content |
| 403 |
Forbidden |
No Content |
Consumes
Produces
GET /rest/v1/orchestrators/{id}/artifacts-support
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrator for which to get artifact support informations |
true |
string |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«Array«string»» |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Disable an orchestrator. Destroys the instance of the orchestrator connector.
DELETE /rest/v1/orchestrators/{id}/instance
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrator to enable |
true |
string |
|
| QueryParameter |
force |
This parameter is useful only when trying to disable the orchestrator, if deployments are performed using this orchestrator disable operation will fail unnless the force flag is true |
false |
boolean |
|
| QueryParameter |
clearDeployments |
In case an orchestrator with deployment is forced to be disabled, the user may decide to mark all deployments managed by this orchestrator as ended. |
false |
boolean |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«List«Usage»» |
| 401 |
Unauthorized |
No Content |
| 204 |
No Content |
No Content |
| 403 |
Forbidden |
No Content |
Consumes
Produces
Enable an orchestrator. Creates the instance of orchestrator if not already created.
POST /rest/v1/orchestrators/{id}/instance
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrator to enable |
true |
string |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«Void» |
| 201 |
Created |
No Content |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
GET /rest/v1/orchestrators/{id}/locationsupport
Parameters
| Type |
Name |
Description |
Required |
Schema |
Default |
| PathParameter |
id |
Id of the orchestrator for which to get location support informations |
true |
string |
|
Responses
| HTTP Code |
Description |
Schema |
| 200 |
OK |
RestResponse«LocationSupport» |
| 401 |
Unauthorized |
No Content |
| 403 |
Forbidden |
No Content |
| 404 |
Not Found |
No Content |
Consumes
Produces
Edit (pull request)


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Makes 12
Simon Rimmer’s version of the classic Spanish pastry makes the perfect snack.
For the filling, remove the meat from the sausages and discard the skins.
Heat the oil in a frying pan and fry the onion and garlic for 4-5 minutes, or until softened. Add the sausagemeat and fry for a further 4-5 minutes, or until browned.
Add the carrot, tomato purée, cumin, cocoa powder and chilli and cook for a further 3-4 minutes.
Add the stock, bring the mixture to the boil, reduce the heat and simmer for 25 minutes. Season, to taste, with salt and freshly ground black pepper and set aside to cool.
Meanwhile, for the pastry, pulse the flour, turmeric, chilli flakes, butter and salt in a food processor until the mixture resembles breadcrumbs.
Add the milk and egg yolk and pulse until the mixtures comes together as a dough.
Turn the dough out onto a lightly floured surface and knead for a few minutes, then wrap in cling film and chill in the fridge for an hour.
Preheat the oven to 200C/400F/Gas 6.
Roll the pastry out onto a lightly floured work surface and cut out 12 circles of 10cm/4in diameter.
Place a spoonful of the sausage filling into the centre of each pastry circle. Beat the egg in a bowl.
Brush the edge of one half of each of the circles with some of the beaten egg, then fold over the other side and seal - make sure you don't trap any air inside.
Mark around the edges of the sealed pastry with the tines of a fork.
Place the empanadas onto a baking tray and transfer to the oven to cook for 10 minutes, or until the pastry is golden-brown and the filling is hot.
To serve, place the empanadas onto a large serving plate with the sweet chilli dipping sauce in a bowl in the centre.


Saves a component to cache.
This method saves the serialized component into memory and as a file (if necessary).
Derived classes may override this method to provide other ways of caching component. Be sure to override cloneComponent to make it consistent.
Parameters:
Creates a component from cache.
This method unserializes a component from memory or a file.
Derived classes may override this method to provide other ways of caching component. Be sure to override cacheComponent to make it consistent.
Parameters:
void setCurrentModule(
string
$name)
|
|
Sets the current module name.
Since module is related with namespace partition, it is important for cache manager to know under which module (namespace) a component is created and cached. Module name affects the location a component is cached.
Parameters:


Caesar Cipher
Character list
Alphabet
Custom
Alphabet
Custom
Upper
Lower
Mode
Encrypt
Decrypt
Message
abcdef
List
Manual
×
Manual
Shift number
Increase
Decrease
Ok, Caesar!!!
Result
* Red color
text is missing character
Debug
Debug
Debug
Index
Source
Destination
×
List
* Red color
text is missing character
Replace "
" by
Result
Author
MaDnh


from db.models.jobs import Job
jobs = Job.objects.select_related(
"user",
"project",
"project__user",
"build_job",
"build_job__project",
"build_job__project__user",
"status")
jobs_details = jobs.select_related("original_job")
from db.models.jobs import Job
jobs = Job.objects.select_related(
"status",
)
jobs = jobs.prefetch_related(
"user",
"project",
"project__user",


class YARD::Parser::Ruby::AstNode
An AST node is characterized by a type and a list of children. It is most easily represented by the s-expression {#s} such as:
# AST for "if true; 5 end": s(s(:if, s(:var_ref, s(:kw, "true")), s(s(:int, "5")), nil))
The node type is not considered part of the list, only its children. So +ast+ does not refer to the type, but rather the first child
(or object). Items that are not AstNode
objects can be part of
the list, like Strings or Symbols representing names. To return only the AstNode children of the node, use {#children}.
Constants
- KEYWORDS
List of all known keywords @return [Hash]
Attributes
@deprecated Groups are now defined by directives @see Tags::GroupDirective
@return [AstNode, nil] the node's parent or nil if it is a root node.
@return [Symbol] the node's unique symbolic type
Public Class Methods
Creates a new AST node
@param [Symbol] type the type of node being created @param [Array<AstNode>] arr the child nodes @param [Hash] opts any extra line options @option opts [Fixnum] :line (nil) the line the node starts on in source @option opts [String] :char (nil) the character number the node starts on
in source
@option opts [Fixnum] :listline (nil) a special key like :line but for
list nodes
@option opts [Fixnum] :listchar (nil) a special key like :char but for
list nodes
@option opts [Boolean] :token (nil) whether the node represents a token
# File lib/yard/parser/ruby/ast_node.rb, line 152 def initialize(type, arr, opts = {}) super(arr) self.type = type self.line_range = opts[:line] self.source_range = opts[:char] @fallback_line = opts[:listline] @fallback_source = opts[:listchar] @token = true if opts[:token] @docstring = nil end
Finds the node subclass that should be instantiated for a specific node type
@param [Symbol] type the node type to find a subclass for @return [Class] a subclass of AstNode to instantiate the node with.
# File lib/yard/parser/ruby/ast_node.rb, line 110 def self.node_class_for(type) case type when :params ParameterNode when :call, :fcall, :vcall, :command, :command_call MethodCallNode when :if, :elsif, :if_mod, :unless, :unless_mod ConditionalNode when :for, :while, :while_mod, :until, :until_mod LoopNode when :def, :defs MethodDefinitionNode when :class, :sclass ClassNode when :module ModuleNode else if type.to_s =~ /_ref\Z/ ReferenceNode elsif type.to_s =~ /_literal\Z/ LiteralNode elsif KEYWORDS.key?(type) KeywordNode else AstNode end end end
Public Instance Methods
@return [Boolean] whether the node is equal to another by checking
the list and type
@private
# File lib/yard/parser/ruby/ast_node.rb, line 166 def ==(other) super && type == other.type end
@return [Boolean] whether the node has a block
# File lib/yard/parser/ruby/ast_node.rb, line 259 def block? respond_to?(:block) || condition? end
@return [Boolean] whether the node is a method call
# File lib/yard/parser/ruby/ast_node.rb, line 239 def call? false end
@return [Array<AstNode>] the {AstNode} children inside the node
# File lib/yard/parser/ruby/ast_node.rb, line 198 def children @children ||= select {|e| AstNode === e } end
@return [Boolean] whether the node is a if/elsif/else condition
# File lib/yard/parser/ruby/ast_node.rb, line 249 def condition? false end
@return [Boolean] whether the node is a method definition
# File lib/yard/parser/ruby/ast_node.rb, line 244 def def? false end
@return [String] the filename the node was parsed from
# File lib/yard/parser/ruby/ast_node.rb, line 75 def file return parent.file if parent @file end
@return [String] the first line of source represented by the node.
# File lib/yard/parser/ruby/ast_node.rb, line 276 def first_line full_source.split(/\r?\n/)[line - 1].strip end
@return [String] the full source that the node was parsed from
# File lib/yard/parser/ruby/ast_node.rb, line 81 def full_source return parent.full_source if parent return @full_source if @full_source return IO.read(@file) if file && File.exist?(file) end
@return [Boolean] whether the node has a {#line_range} set
# File lib/yard/parser/ruby/ast_node.rb, line 266 def has_line? @line_range ? true : false end
@return [String] inspects the object
# File lib/yard/parser/ruby/ast_node.rb, line 321 def inspect typeinfo = type && type != :list ? ':' + type.to_s + ', ' : '' 's(' + typeinfo + map(&:inspect).join(", ") + ')' end
Searches through the node and all descendants and returns the first node
with a type matching any of node_types
, otherwise returns the
original node (self).
@example Returns the first method definition in a block of code
ast = YARD.parse_string("if true; def x; end end").ast ast.jump(:def) # => s(:def, s(:ident, "x"), s(:params, nil, nil, nil, nil, # nil), s(s(:void_stmt, )))
@example Returns first 'def' or 'class' statement
ast = YARD.parse_string("class X; def y; end end") ast.jump(:def, :class).first # =>
@example If the node types are not present in the AST
ast = YARD.parse("def x; end") ast.jump(:def)
@param [Array<Symbol>] node_types a set of node types to match @return [AstNode] the matching node, if one was found @return [self] if no node was found
# File lib/yard/parser/ruby/ast_node.rb, line 192 def jump(*node_types) traverse {|child| return(child) if node_types.include?(child.type) } self end
@return [Boolean] whether the node is a keyword
# File lib/yard/parser/ruby/ast_node.rb, line 234 def kw? false end
@return [Fixnum] the starting line number of the node
# File lib/yard/parser/ruby/ast_node.rb, line 271 def line line_range && line_range.first end
@return [Range] the line range in {#full_source} represented
by the node
# File lib/yard/parser/ruby/ast_node.rb, line 69 def line_range reset_line_info unless @line_range @line_range end
@return [Boolean] whether the node is a literal value
# File lib/yard/parser/ruby/ast_node.rb, line 229 def literal? false end
@return [Boolean] whether the node is a loop
# File lib/yard/parser/ruby/ast_node.rb, line 254 def loop? false end
@return [nil] pretty prints the node
# File lib/yard/parser/ruby/ast_node.rb, line 288 def pretty_print(q) objs = dup + [:__last__] objs.unshift(type) if type && type != :list options = [] options << ['docstring', docstring] if @docstring if @source_range || @line_range options << ['line', line_range] options << ['source', source_range] end objs.pop if options.empty? q.group(3, 's(', ')') do q.seplist(objs, nil, :each) do |v| if v == :__last__ q.seplist(options, nil, :each) do |arr| k, v2 = *arr q.group(3) do q.text k q.group(3) do q.text ': ' q.pp v2 end end end else q.pp v end end end end
@return [Boolean] whether the node is a reference (variable,
constant name)
# File lib/yard/parser/ruby/ast_node.rb, line 224 def ref? false end
@return [String] the first line of source the node represents
# File lib/yard/parser/ruby/ast_node.rb, line 283 def show "\t#{line}: #{first_line}" end
@return [Range] the character range in {#full_source} represented
by the node
# File lib/yard/parser/ruby/ast_node.rb, line 62 def source_range reset_line_info unless @source_range @source_range end
@return [Boolean] whether the node is a token
# File lib/yard/parser/ruby/ast_node.rb, line 218 def token? @token end
Traverses the object and yields each node (including descendants) in order.
@yield each descendant node in order @yieldparam [AstNode] self, or a child/descendant node @return [void]
# File lib/yard/parser/ruby/ast_node.rb, line 207 def traverse nodes = [self] nodes.each.with_index do |node, index| yield node nodes.insert index + 1, *node.children end end
Resets node state in tree
# File lib/yard/parser/ruby/ast_node.rb, line 329 def unfreeze @children = nil end
Private Instance Methods
Resets line information @return [void]
# File lib/yard/parser/ruby/ast_node.rb, line 339 def reset_line_info if size == 0 self.line_range = @fallback_line self.source_range = @fallback_source elsif !children.empty? f = children.first l = children.last self.line_range = Range.new(f.line_range.first, l.line_range.last) self.source_range = Range.new(f.source_range.first, l.source_range.last) elsif @fallback_line || @fallback_source self.line_range = @fallback_line self.source_range = @fallback_source else self.line_range = 0...0 self.source_range = 0...0 end end


I'm a Celeb viewers turn on Adele and Roman after row by voting them for trial
After a row between Adele and Roman in the celebrity jungle, the public voted them for the next eating Bushtucker trial
by Verity Sulway, https://www.mirror.co.uk/authors/verity-sulway/I'm a Celebrity stars Adele Roberts and Roman Kemp will be the next campmates subjected to a horrifying Bushtucker trial.
They found out their fate after a public vote which revealed viewers turned on Adele and Roman following their row.
Adele was upset by Roman's questioning that she brought in a framed photo of Loose Women's Jane McDonald as her luxury item.
Roman apologised for upsetting her, and they embraced in an awkward hug.
Tomorrow night, the two radio presenters will go head to head in Just Desserts, the first eating trial of the series.
The pair will have to eat whatever the show bosses put in front of them, in order to win meals for the camp.
Viewers took to Twitter to voice their glee at the warring campmates being voted for the horror challenge.
"The fact Adele and Roman have been voted for this trial together already says the public are loving the tension (and...over Jane McDonald LOL)", said one.
"Everyone defo put Roman in the trial with Adele cos she didnt like how he spoke about Jane", predicted another.
"Finding it so funny adele got the trial with Roman after his 'prejudice'", laughed another.
A fourth pondered: "I’m guessing Roman was voted for the trial as he’s a favourite, and Adele was voted because she’s annoying people?"
The clash started when Roman admitted he was puzzled why Adele chose a picture of Jane McDonald as her luxury item.
When asked if she knows any of her songs, Adele said: “I know her off Loose Women, I don’t know her actual songs but I know her from the cruising show when she does covers.”
Giggling Roman caused offence when he claimed: "No one knows what she does."
Adele strongly insisted: "That’s prejudice, I’m allowed to like what I want."
Realising he had upset Adele, Roman said: "I wasn't saying that at all, I’m sorry, I didn’t mean to."
But the bickering did not stop there as Roman claimed he found the situation "funny".
Adele sarcastically asked: "I’m not allowed to like what I want?"
The DJ got Kate's backing and Roman apologised once again for winding Adele up.
She said: "It’s fine, you are just going on about it so much…"
* I'm A Celebrity...Get Me Out Of Here! airs on ITV at 9pm


Trader Erinu:
How is your training progressing?
When you need more challenges than this island can offer, please come and see me again.
(Only characters who are level 17 or higher may undertake this quest.)


 Serve with garlic bread or a simple green salad.
Preheat the oven to 200C/180C Fan/Gas 6. Grease a 2.5 litre/4½ pint ovenproof dish with butter and line two baking trays with non-stick baking paper.
Arrange the aubergine slices in a single layer on the prepared trays. Drizzle over the oil and season with salt and pepper. Roast for 20–25 minutes turning the slices over halfway through the cooking time. Set aside.
Lay the pasta sheets in a dish and cover with hot water for 10 minutes to soften.
To make the béchamel sauce, heat the butter in a saucepan. Once melted, sprinkle in the flour and whisk for a few minutes over a high heat to form a roux. Pour the warmed milk into the roux and whisk. Bring to the boil, whisking for a few minutes until smooth. Add the mustard and two-thirds of the Parmesan. Season with salt and pepper and stir. Set aside.
To make the tomato sauce, put all the ingredients in a mixing bowl. Season with salt and pepper.
To assemble, spoon a third of the tomato sauce in the base of the prepared dish, top with a third of the béchamel. Arrange a third of the aubergines on top and 3–3½ sheets of lasagne (you may need to break the lasagne into pieces to make it fit in an even layer). Repeat so you have three layers of sauce and two layers of pasta, sprinkle with the remaining Parmesan.
Leave to stand for 1 hour before cooking, or overnight.
Bake for 35–45 minutes until golden-brown and bubbling. Stand for 5 minutes before serving. Serve hot with garlic bread.


Creates a new IPv6 address.
Possible inputs are:
Adds a certain amount of octets to this
octets.
amount
must have at most the same length as this
octet.s
If amount
is shorter than this
, the octets of amount
will be
treated as the lowest values.
Returns if this
is the same address as other
.
Returns if this
is greater or equal than other
.
Returns the address in decimal format.
WARNING! Due to Javascript limitations (and because I don't want to depend on a bignum library) this function may returns inaccurate results if the decimal address value is bigger than 2^53.
Returns the string address fully expanded.
Same as Address6.getRfc5952
Returns the octets of the address as an array of bytes (number from 0 to 255).
The length of this array is determined by the address size.
Returns the string address compressed following RFC 5952.
Returns if this
is greater than other
.
Returns if this
is lesser or equal than other
.
Returns if this
is lesser than other
.
Returns if this
is a different address than other
.
Substracts a certain amount of octets to this
octets.
amount
must have at most the same length as this
octets.
If amount
is shorter than this
, the octets of amount
will be
treated as the lowest values.
Returns getIpString()
.
Generated using TypeDoc
IPv6 address.
The objects of this class are meant to be immutable.


Welcome to the page
Here is some sample text to welcome you to the page. Click Here to open up a link
Sessions
| Morning | Afternoon | Evening |
|---|---|---|
| West Building | West Building | West Building |
| East Building | East Building | East Building |
| South Building | South Building | South Building |
Testominals
Name
We had a great day
Name
We had a great day
Name
We had a great day


Type "Dictionary Word List," for the file name; then press Enter. By default, the document will be saved in the Documents folder unless the location for saving files has been changed.