Faster - A Minimal PHP MVC Framework Copyright (c) 2011, Volo, LLC (http://volosites.com/) - Mike McKee All rights reserved. BSD License. Version 1.03 Why consider Faster, another minimalist PHP MVC framework? For these reasons: * It is faster. It will take you less time to learn it, less time to install it, less time to code with it, and less time to move a project from one server to another. Plus, it does a fine job of reducing spaghetti code. For this reason, we hope that far less people shy away from an MVC framework and try to learn one and use it. We also think it's a great framework with which to teach PHP in college. * There is far less likelihood when the framework is upgraded that it will have an impact on your projects. We're only providing the M, the V, and the C, and a way to easily connect to a database. That's about it. * What if you could combine a framework system folder, bootstrap, and front controller into one file and then slim it down to the barest minimums but yet make it still fairly functional? We did just that. The index.php is the framework, bootstrap, and front controller rolled into one. There's a simple beauty in that. * We think minimalist PHP MVC frameworks are great because they lessen the learning curve for people joining your team, the PHP library is fairly vast already, PDO is easier to manage in my opinion than an ORM, and it lets you use best-of-breed components from the web to complete your project. We think do-all PHP MVC frameworks are overblown, increase learning curves, keep people in forums fighting with the framework, and keep people from seeking out and using best-of-breed solutions to problems because they want to stick to what's in the framework. * We think it removes the notion, "My project is too small to require an MVC framework." We made Faster so lightweight that even the smallest project can justify it. * What if you didn't have to edit the .htaccess for the RewriteBase, or any other file for that matter, in order to make the project work on a different server? In Faster, you don't have to do anything except copy it to the other server. The $this->config->base() and $this->config-> baseurl() automatically are identified. * It has a unique URL routing system that is easy to understand, and once you grasp it, you'll wonder why this kind of routing system wasn't available previously. Plus, unlike Kohana's default routing system, you can get away with dashes in the URL for the controller (we call it a "group") and action parts of the URL instead of being forced to have to use underscores. Plus, in Faster, we made it such that you can do virtually anything you want in a URL without having to hop in a framework forum to learn how to edit the route scripts. Faster doesn't have a route script -- it has a clever technique. * It tacks on the framework to the $this object, which we think is kind of neat. This is available in the controllers and models. In the views, in order to reduce the likelihood of business logic in the view files, the $this object is limited to the Faster_Core class and the variables that were passed to it from the controller. * Ever get stuck in a tabbed text editor, working between controller, model, and view, and the files are named the same? We thought that was pretty frustrating. So, this is why our controller and view files all start with a prefix of either "c" or "v". We think this helps you work faster in a text editor. * It doesn't really need a forum to interact with in order to understand it. The framework is so small, and the docs are great.
Documentation generated on Wed, 29 Jun 2011 18:43:30 -0400 by phpDocumentor 1.4.3


Sitting on both banks of the River Mersey, Liverpool was, for much of its 800 years of history, the gateway to Ireland in addition to being the last sight of England for hundred of thousands of emigrants to America. Although heavily bombed during the 2nd world war, Liverpool today is a vibrant, modern city. It is, of course, also a very busy commercial port.
The entrance to the Leeds and Liverpool canal is at Stanley dock. This canal, 160 miles long, joins Liverpool to the east coast. Max. draft 1m.
The 31 mile long Manchester Ship canal has no such restrictions. Its entrance is at Eastham dock.
Location 53° 28'02"N,03° 01'08"W.
There is good shelter in the marina, based in the old Brunswick and Colburg docks. The entrance is 1NM S of the distictive Liver building. Access is about 2hrs +/- HW (less at neaps) from 0600 to 2200 in the summer.
Berths can also be found in the Albert and Canning docks. Access here is more restricted, and is generally HW-2 to HW, but not on every tide. It is also VERY expensive to use the lock.
Anchorage In settled weather, there is an anchorage on the SW side of the river.
Approaches Take care to keep to the buoyed fairways as the whole area of the approaches has many sandbanks and the channels shift. In strong wind over tide conditions, steep breaking seas can occur in the outer reaches where the tidal stream can be up to 5kn.
British Waterways
Tel:+44(0)151 709 6558. Mob 0771 752 7753
VHF Channel 37
Email<EMAIL_ADDRESS>Eastham Lock
VHF Channel 07 (24hrs)
Liverpool Harbour Master
Tel:+44(0)151 949 6134/5
Manchester Ship Canal
VHF Channel 14
Last updated April 2016.


When an organization introduces a change with a project or initiative, that change needs to be effectively managed on both the technical side and the people side. The discipline of project management provides the structure procsses and tools. What about the people side?


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
It's important to use Spanish paprika because its flavour is softer, which works well in this delicate stew.
For the Swiss chard stew, heat a little oil in a flame-proof casserole and gently fry the onion for 10 minutes until softened. Add the garlic and fry for a minute, then add the peppers and pimentón and fry for a few more minutes.
Stir in the potatoes and stock. Season generously with salt and pepper then bring to a simmer. Cover and cook for 20 minutes
Meanwhile, for the hake, heat a little olive oil in a large pan and gently fry the shallots for 5–10 minutes until really soft. Add the garlic and sage and cook for 30 seconds, then increase the heat and add the mushrooms. Fry for 4–5 minutes, then add the stock and simmer for a couple of minutes. Season with salt and pepper and set aside.
Heat a little oil in a heavy-based frying pan over a medium heat. Add the hake, skin-side down and cook for 4–5 minutes, or until almost cooked through. Turn and cook for 30 seconds on the other side. Place the cooked hake skin-side up into the pan containing the mushrooms. Cook for a minute or two more.
Add the chard to the stew for the last few minutes, then serve with the hake and lots of crusty bread to mop up the juices.


--- layout: default title: Joshua Abraham's CV ---
This page is currently under development! Download a temporary copy of my CV


SIMILE Widgets
Exhibit
Examples: Dynamic Loading
Examples:
Dynamic Loading
Create
Search:
Republican
Democratic
Other parties
Many parties
No party
Terms:
,
Religions:
Birth:
,
Death:
,
,


Racing drop video to latest single ‘Run Wild’
by ElevenprKiwi indie rock band Racing are getting us in the mood for summer with their new video for latest single ‘Run Wild’.
Quintessentially Kiwi, the video, shot around beautiful Matakana, was created in collaboration with arguably the ultimate summer drop - Long White Vodka.
The video, directed by Chris Searl, epitomises the magic of summer in Aotearoa, with a narrative focusing on four friends enjoying a classic weekend away.
Talking about how the music video came about lead singer Ed Knowles says; “We had just finished playing a gig at Leigh Sawmill when a nice ad-man came over and bought us a round of Long Whites.
“He watched the show and suggested collaborating together, we thought the idea was fresh and different so we went with it!’
With ‘Run Wild’ already playing on the radio, and the band nominated for Best Rock Artist at the Vodafone Music Awards, the band are eager for summer to get going with multiple gigs booked across the country.
Grab a cold Long White Vodka and be sure to catch them at one of their shows below.
• Fri Dec 13 - The Cabana, Napier
• Sat Dec 14 - San Fran, Wellington
• Fri Dec 20 - Galatos, Auckland
• Sat Dec 21 - Nivara Lounge, Hamilton
• Fri Dec 27th - Leigh Sawmill, Leigh
• Sun Dec 29th - Eggfest, Coromandel
• Tue Dec 31st - New Plymouth
• Fri Jan 3 - Totara St, Mount Maunganui
• Sat Jan 4 - Yot Club, Raglan
• Mon Jan 6 - Waihi Beach Hotel, Waihi
• Fri Jan 17th - Yonder, Queenstown
• Sat Jan 18th - Wunderbar, Christchurch
Watch the new video here


Scared of somethign new? Ok, go home
Name
Email
Submit
What is your Zodiac sign?
Capricorn
Aquarius
Pisces
Aries
Taurus
Gemini
Cancer
Leo
Virgo
Libra
Scorpio
Sagitarius
Pick a color that you like?
Black
Red
Yellow
Blue
Green
On a Friday night you are?
Poppin Bottles at the Club
Smooth Jazz and Candles
Reading a Book
Hitting up a sporting Event
Sitting by the Campfire
Sleeping
You can only pick one?
Hall and Oats
John Mayer
Bruno Mars
John Coltrane
Drake
Jason Aldean
You can only pick one?
Money
Love
Comfort
Great in the bedroom
On a first date, during dinner you're having?
Salad
Steak
Chicken
Fish
Just an Appetizer
Tat's?
Yay!
Nay!
Don't care!
What type of pet person would you prefer to date?
Cats
Reptiles
Hamsters
Horses
Dogs
You can only pick one drink?
Water
Beer
Wine
Coffee
Tea
At the door, end of the first date. You?
Kiss
Netflix and Chill
Turn the cheek
Shakehands


Running the simulation times, there is a % chance that at least 2 people out of share the same birthday.


An array of comma separated {latitude,longitude} strings.
Generated from the OpenAPI specification. edit Edit bug_report Report bug


Methodist College Alerts
Welcome to the new app for keeping up to date with what's going on in school!
Continue


LPVOID pClassObj;
if (condition 1)
{
CClass1 *pClassObj = new CClass1();
}
elseif (condition 2)
{
CClass2 *pClassObj = new CClass2();
}
else
{
return ERROR
}
if (pClassObj == NULL) return ERROR;
pClassObj->Method1();
pClassObj->Method2();
return SUCCESS;
But it can't compile ( pClassObj is not a class type )
Because CClass *pClassObj = new CClass(); is between braces I guess (out of scope). Is there a way to do something like this ?
Is there a relationship between CClass1 and CClass2? For example, are they derived from a common base class?
No. Well they are COM objects so they derived from IUnknown but they are unrelated to each other except for 2 methods of the same name.
I have a plan b which satisfy my needs but it would be a bit more elegant if it fits as plan a. I'm not a c++ guru so if it hits a limit I can do it some other way. Do not waste to much time on it ;-)


Temple Gates Locked Ahead of Dalit Wedding in MP Village, Groom Denied Entry
The groom, Sandeep Gawale, who was supposed to get married at the temple on Thursday, said that they had sent a prior approval to the Collector, however, miscreants locked the gates of the temple and denied them entry.
Burhanpur: In yet another case of discrimination against Dalits, a groom and his family were allegedly stopped from entering a temple by few miscreants in the Biroda village in Madhya Pradesh’s Burhanpur.
The groom, Sandeep Gawale, who was supposed to get married at the temple on Thursday, said that they had sent a prior approval to the Collector, however, miscreants locked the gates of the temple and denied them entry.
“The miscreants in the village do not allow us to enter the temple because we come from a lower caste. We had sought prior approval from the Collector too for arranging the wedding at the temple but still, this happened,” Gawale told news agency ANI.
Gawale also alleged that the gates of the temple had been locked at the order of the trustees of the temple. A complaint has now been registered against the miscraents and Sub-Divisional Magistrate (SDM) Kashiram Badole has assured that prompt action will be taken against those who were found guilty.
“A complaint was received by the Collector that miscreants did not allow Dalit family to enter the temple. The Collector had directed the police officials to take appropriate action against those found guilty,” Badole said.
Meanwhile, Bikram Singh Bomania, SHO of the Lalbagh police station said that the Dalit family will be given protection.
“We had sent a team at the spot to get the things in order after getting the complaint. We will provide protection to the family and will take action against the miscreants who are found guilty,” Bomania said.
For breaking news and live news updates, like us on Facebook or follow us on Twitter and Instagram. Read more on India Latest News on India.com.
Story Timeline
- 16 Nov 2019 Punjab: Dalit Man Who Was Thrashed, Forced to Drink Urine Succumbs to Injuries in Sangrur
- 08 Nov 2019 Uttar Pradesh: Two Teenaged Dalit Siblings Shot Dead in Kaushambhi
- 25 Sep 2019 Madhya Pradesh: 2 Dalit Children Lynched For Defecating in Public
Comments - Join the Discussion


"Disease of the body itself is nothing but the result of the disharmony between soul and mind. Remove the disharmony, and we regain harmony between soul and mind, and the body is once more perfect in all its parts."
― Dr. Edward Bach
"Disease of the body itself is nothing but the result of the disharmony between soul and mind. Remove the disharmony, and we regain harmony between soul and mind, and the body is once more perfect in all its parts."
― Dr. Edward Bach
Life is full of ups and downs and we’re trying to master both.
My motto is “search for the solution not the problem”… for the problem is always there visible to us, what is hidden, however, is the solution.
I believe that both “The doctor” and “The patient” are within each of us and that my job is to awaken the doctor so that he could cure the patient.
I believe that each illness whether physical or mental is meant to draw our attention to the fact that something in the way we run our lives is not good for us. I convey this way of thinking to all my patients, those who seek relief for their body, mind and spirit.
I am here for you, but for myself as well, because I love and believe in what I do.
Blesings From Earth has been successfully disposing to his clients for many years, constantly searching for new knowledge and methods. As part of my business, I work on discovering the causes of your problems as well as eliminating them, with a great help of Bach Flower Remedies.
My successful formula is a combination of state of the mind, soul and body and individual approach to each client
All Bach flower essences are supplied at Stock Level so they can be diluted into a treatment bottle (as suggested by Dr Bach) or used directly from from the stock if preferred. When used individualy the act the best but for some life situations you need more than one remedy so it is good to make a combination of essences
You can combine up to seven different essences in the single treatment bottle.
It's easy to make your own Bach Flower Remedy combination. Just put 2 drops of each Remedy you require into a glass dropper bottle. Add up to 30ml of spring water plus a teaspoon of organic apple cider vinegar or brandy to act as a preservative.
Larch, Centaury, Rock Rose, Gentian, Elm, Pine
Mixture of this remedies brings assertiveness and inner strength when life's challenges have sapped motivation and esteem.
It brings a stronger sense of individuality & the ability to function with more integrity.
Indicated for: poor sense of self, belittling, apologetic, lack of confidence, powerlessness, inferiority, submissive, self-effacement, discouraged, valueless, self sacrificing.
Larch, Elm, White Chestnut, Hornbeam, Gentian, Clematis
Mixture of this remedies helps clear the head, in the self and bring a positive attitude to learning and academic work.
It can help focus the mind if under the pressure of deadlines.

Aspen, Mimulus, Cherry Plum, Rock Rose, Red Chestnut, Elm
Fear is one of the most powerful emotion.
It has a very strong effect on your mind and body.
What you’re afraid of and how you act when you’re afraid of something can vary per person. Just knowing what makes you afraid and why, can be the first step to sorting out problems with fear.
Aspen is remedy for fear of unknown, fear that doesn't have a name. When you are afraid but don't know afraid of what.
Mimulus is fear of known. Fear of going to the dentist, fear before exam
Cherry Plum is for fear of loosing control. When you are facing thoughts "I cannot take it any more, I reached my limit, I am gonna loose my control.".
Rock Rose is remedy for shock which leaves an inprint on your mind which keeps coming back. Needed after a big fall, incident, an event that shocked us. It is for violent shock, for terror.
Red Chestnut is remedy for fear for loving ones. Mother is fear for her child. Friend for other friend.
Elm is remedy for beeing overwhelmed. When too much is happening and you think you cannot handle everything. Too many projects, too many responsabilities.
Olive, Oak, White Chestnut
We all experience tiredness at times, which can be relieved by sleep and rest. Fatigue is when the tiredness is often overwhelming and isn't relieved by sleep and rest.
Combination of above remedies helps you to recharge yourself
How do they work? Olive is for physical fatigue, Oak for emotional fatigue and White Chestnut for mental fatigue.


|
|
Boost.RegexRegular Expression Syntax |
|
This section covers the regular expression syntax used by this library, this is a programmers guide, the actual syntax presented to your program's users will depend upon the flags used during expression compilation.
All characters are literals except: ".", "|", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^", "$" and "\". These characters are literals when preceded by a "\". A literal is a character that matches itself, or matches the result of traits_type::translate(), where traits_type is the traits template parameter to class basic_regex.
The dot character "." matches any single character except : when match_not_dot_null is passed to the matching algorithms, the dot does not match a null character; when match_not_dot_newline is passed to the matching algorithms, then the dot does not match a newline character.
A repeat is an expression that is repeated an arbitrary number of times. An expression followed by "*" can be repeated any number of times including zero. An expression followed by "+" can be repeated any number of times, but at least once, if the expression is compiled with the flag regex_constants::bk_plus_qm then "+" is an ordinary character and "\+" represents a repeat of once or more. An expression followed by "?" may be repeated zero or one times only, if the expression is compiled with the flag regex_constants::bk_plus_qm then "?" is an ordinary character and "\?" represents the repeat zero or once operator. When it is necessary to specify the minimum and maximum number of repeats explicitly, the bounds operator "{}" may be used, thus "a{2}" is the letter "a" repeated exactly twice, "a{2,4}" represents the letter "a" repeated between 2 and 4 times, and "a{2,}" represents the letter "a" repeated at least twice with no upper limit. Note that there must be no white-space inside the {}, and there is no upper limit on the values of the lower and upper bounds. When the expression is compiled with the flag regex_constants::bk_braces then "{" and "}" are ordinary characters and "\{" and "\}" are used to delimit bounds instead. All repeat expressions refer to the shortest possible previous sub-expression: a single character; a character set, or a sub-expression grouped with "()" for example.
Examples:
"ba*" will match all of "b", "ba", "baaa" etc.
"ba+" will match "ba" or "baaaa" for example but not "b".
"ba?" will match "b" or "ba".
"ba{2,4}" will match "baa", "baaa" and "baaaa".
Whenever the "extended" regular expression syntax is in use (the default) then non-greedy repeats are possible by appending a '?' after the repeat; a non-greedy repeat is one which will match the shortest possible string.
For example to match html tag pairs one could use something like:
"<\s*tagname[^>]*>(.*?)<\s*/tagname\s*>"
In this case $1 will contain the text between the tag pairs, and will be the shortest possible matching string.
Parentheses serve two purposes, to group items together into a sub-expression, and to mark what generated the match. For example the expression "(ab)*" would match all of the string "ababab". The matching algorithms regex_match and regex_search each take an instance of match_results that reports what caused the match, on exit from these functions the match_results contains information both on what the whole expression matched and on what each sub-expression matched. In the example above match_results[1] would contain a pair of iterators denoting the final "ab" of the matching string. It is permissible for sub-expressions to match null strings. If a sub-expression takes no part in a match - for example if it is part of an alternative that is not taken - then both of the iterators that are returned for that sub-expression point to the end of the input string, and the matched parameter for that sub-expression is false. Sub-expressions are indexed from left to right starting from 1, sub-expression 0 is the whole expression.
Sometimes you need to group sub-expressions with parenthesis, but don't want the parenthesis to spit out another marked sub-expression, in this case a non-marking parenthesis (?:expression) can be used. For example the following expression creates no sub-expressions:
"(?:abc)*"
There are two forms of these; one for positive forward lookahead asserts, and one for negative lookahead asserts:
"(?=abc)" matches zero characters only if they are followed by the expression "abc".
"(?!abc)" matches zero characters only if they are not followed by the expression "abc".
"(?>expression)" matches "expression" as an independent atom (the algorithm will not backtrack into it if a failure occurs later in the expression).
Alternatives occur when the expression can match either one sub-expression or another, each alternative is separated by a "|", or a "\|" if the flag regex_constants::bk_vbar is set, or by a newline character if the flag regex_constants::newline_alt is set. Each alternative is the largest possible previous sub-expression; this is the opposite behavior from repetition operators.
Examples:
"a(b|c)" could match "ab" or "ac".
"abc|def" could match "abc" or "def".
A set is a set of characters that can match any single character that is a member of the set. Sets are delimited by "[" and "]" and can contain literals, character ranges, character classes, collating elements and equivalence classes. Set declarations that start with "^" contain the complement of the elements that follow.
Examples:
Character literals:
"[abc]" will match either of "a", "b", or "c".
"[^abc] will match any character other than "a", "b", or "c".
Character ranges:
"[a-z]" will match any character in the range "a" to "z".
"[^A-Z]" will match any character other than those in the range "A" to "Z".
Note that character ranges are highly locale dependent if the flag regex_constants::collate is set: they match any character that collates between the endpoints of the range, ranges will only behave according to ASCII rules when the default "C" locale is in effect. For example if the library is compiled with the Win32 localization model, then [a-z] will match the ASCII characters a-z, and also 'A', 'B' etc, but not 'Z' which collates just after 'z'. This locale specific behavior is disabled by default (in perl mode), and forces ranges to collate according to ASCII character code.
Character classes are denoted using the syntax "[:classname:]" within a set
declaration, for example "[[:space:]]" is the set of all whitespace characters.
Character classes are only available if the flag regex_constants::char_classes
is set. The available character classes are:
| alnum | Any alpha numeric character. | ||
| alpha | Any alphabetical character a-z and A-Z. Other characters may also be included depending upon the locale. | ||
| blank | Any blank character, either a space or a tab. | ||
| cntrl | Any control character. | ||
| digit | Any digit 0-9. | ||
| graph | Any graphical character. | ||
| lower | Any lower case character a-z. Other characters may also be included depending upon the locale. | ||
| Any printable character. | |||
| punct | Any punctuation character. | ||
| space | Any whitespace character. | ||
| upper | Any upper case character A-Z. Other characters may also be included depending upon the locale. | ||
| xdigit | Any hexadecimal digit character, 0-9, a-f and A-F. | ||
| word | Any word character - all alphanumeric characters plus the underscore. | ||
| Unicode | Any character whose code is greater than 255, this applies to the wide character traits classes only. |
There are some shortcuts that can be used in place of the character classes, provided the flag regex_constants::escape_in_lists is set then you can use:
\w in place of [:word:]
\s in place of [:space:]
\d in place of [:digit:]
\l in place of [:lower:]
\u in place of [:upper:]
Collating elements take the general form [.tagname.] inside a set declaration, where tagname is either a single character, or a name of a collating element, for example [[.a.]] is equivalent to [a], and [[.comma.]] is equivalent to [,]. The library supports all the standard POSIX collating element names, and in addition the following digraphs: "ae", "ch", "ll", "ss", "nj", "dz", "lj", each in lower, upper and title case variations. Multi-character collating elements can result in the set matching more than one character, for example [[.ae.]] would match two characters, but note that [^[.ae.]] would only match one character.
Equivalence classes take the generalform[=tagname=] inside a set declaration, where tagname is either a single character, or a name of a collating element, and matches any character that is a member of the same primary equivalence class as the collating element [.tagname.]. An equivalence class is a set of characters that collate the same, a primary equivalence class is a set of characters whose primary sort key are all the same (for example strings are typically collated by character, then by accent, and then by case; the primary sort key then relates to the character, the secondary to the accentation, and the tertiary to the case). If there is no equivalence class corresponding to tagname ,then[=tagname=] is exactly the same as [.tagname.]. Unfortunately there is no locale independent method of obtaining the primary sort key for a character, except under Win32. For other operating systems the library will "guess" the primary sort key from the full sort key (obtained from strxfrm), so equivalence classes are probably best considered broken under any operating system other than Win32.
To include a literal "-" in a set declaration then: make it the first character after the opening "[" or "[^", the endpoint of a range, a collating element, or if the flag regex_constants::escape_in_lists is set then precede with an escape character as in "[\-]". To include a literal "[" or "]" or "^" in a set then make them the endpoint of a range, a collating element, or precede with an escape character if the flag regex_constants::escape_in_lists is set.
An anchor is something that matches the null string at the start or end of a line: "^" matches the null string at the start of a line, "$" matches the null string at the end of a line.
A back reference is a reference to a previous sub-expression that has already been matched, the reference is to what the sub-expression matched, not to the expression itself. A back reference consists of the escape character "\" followed by a digit "1" to "9", "\1" refers to the first sub-expression, "\2" to the second etc. For example the expression "(.*)\1" matches any string that is repeated about its mid-point for example "abcabc" or "xyzxyz". A back reference to a sub-expression that did not participate in any match, matches the null string: NB this is different to some other regular expression matchers. Back references are only available if the expression is compiled with the flag regex_constants::bk_refs set.
This is an extension to the algorithm that is not available in other libraries, it consists of the escape character followed by the digit "0" followed by the octal character code. For example "\023" represents the character whose octal code is 23. Where ambiguity could occur use parentheses to break the expression up: "\0103" represents the character whose code is 103, "(\010)3 represents the character 10 followed by "3". To match characters by their hexadecimal code, use \x followed by a string of hexadecimal digits, optionally enclosed inside {}, for example \xf0 or \x{aff}, notice the latter example is a Unicode character.
The following operators are provided for compatibility with the GNU regular expression library.
"\w" matches any single character that is a member of the "word" character class, this is identical to the expression "[[:word:]]".
"\W" matches any single character that is not a member of the "word" character class, this is identical to the expression "[^[:word:]]".
"\<" matches the null string at the start of a word.
"\>" matches the null string at the end of the word.
"\b" matches the null string at either the start or the end of a word.
"\B" matches a null string within a word.
The start of the sequence passed to the matching algorithms is considered to be a potential start of a word unless the flag match_not_bow is set. The end of the sequence passed to the matching algorithms is considered to be a potential end of a word unless the flag match_not_eow is set.
The following operators are provided for compatibility with the GNU regular expression library, and Perl regular expressions:
"\`" matches the start of a buffer.
"\A" matches the start of the buffer.
"\'" matches the end of a buffer.
"\z" matches the end of a buffer.
"\Z" matches the end of a buffer, or possibly one or more new line characters followed by the end of the buffer.
A buffer is considered to consist of the whole sequence passed to the matching algorithms, unless the flags match_not_bob or match_not_eob are set.
The escape character "\" has several meanings.
Inside a set declaration the escape character is a normal character unless the flag regex_constants::escape_in_lists is set in which case whatever follows the escape is a literal character regardless of its normal meaning.
The escape operator may introduce an operator for example: back references, or a word operator.
The escape operator may make the following character normal, for example "\*" represents a literal "*" rather than the repeat operator.
The following escape sequences are aliases for single characters:
| Escape sequence | Character code | Meaning | ||
| \a | 0x07 | Bell character. | ||
| \f | 0x0C | Form feed. | ||
| \n | 0x0A | Newline character. | ||
| \r | 0x0D | Carriage return. | ||
| \t | 0x09 | Tab character. | ||
| \v | 0x0B | Vertical tab. | ||
| \e | 0x1B | ASCII Escape character. | ||
| \0dd | 0dd | An octal character code, where dd is one or more octal digits. | ||
| \xXX | 0xXX | A hexadecimal character code, where XX is one or more hexadecimal digits. | ||
| \x{XX} | 0xXX | A hexadecimal character code, where XX is one or more hexadecimal digits, optionally a Unicode character. | ||
| \cZ | z-@ | An ASCII escape sequence control-Z, where Z is any ASCII character greater than or equal to the character code for '@'. |
The following are provided mostly for perl compatibility, but note that there
are some differences in the meanings of \l \L \u and \U:
| \w | Equivalent to [[:word:]]. | ||
| \W | Equivalent to [^[:word:]]. | ||
| \s | Equivalent to [[:space:]]. | ||
| \S | Equivalent to [^[:space:]]. | ||
| \d | Equivalent to [[:digit:]]. | ||
| \D | Equivalent to [^[:digit:]]. | ||
| \l | Equivalent to [[:lower:]]. | ||
| \L | Equivalent to [^[:lower:]]. | ||
| \u | Equivalent to [[:upper:]]. | ||
| \U | Equivalent to [^[:upper:]]. | ||
| \C | Any single character, equivalent to '.'. | ||
| \X | Match any Unicode combining character sequence, for example "a\x 0301" (a letter a with an acute). | ||
| \Q | The begin quote operator, everything that follows is treated as a literal character until a \E end quote operator is found. | ||
| \E | The end quote operator, terminates a sequence begun with \Q. |
When the expression is compiled as a Perl-compatible regex then the matching algorithms will perform a depth first search on the state machine and report the first match found.
When the expression is compiled as a POSIX-compatible regex then the matching algorithms will match the first possible matching string, if more than one string starting at a given location can match then it matches the longest possible string, unless the flag match_any is set, in which case the first match encountered is returned. Use of the match_any option can reduce the time taken to find the match - but is only useful if the user is less concerned about what matched - for example it would not be suitable for search and replace operations. In cases where their are multiple possible matches all starting at the same location, and all of the same length, then the match chosen is the one with the longest first sub-expression, if that is the same for two or more matches, then the second sub-expression will be examined and so on.
The following table examples illustrate the main differences between Perl and POSIX regular expression matching rules:
|
Expression |
Text |
POSIX leftmost longest match |
ECMAScript depth first search match |
|
|
|
|
|
|
|
|
$0 = " abc def xyz " |
$0 = " abc def xyz " |
|
|
|
|
|
These differences between Perl matching rules, and POSIX matching rules, mean that these two regular expression syntaxes differ not only in the features offered, but also in the form that the state machine takes and/or the algorithms used to traverse the state machine.
Revised 24 Oct 2003
© Copyright John Maddock 1998- 2003
Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Next: Implementation Limits on Array Rank, Previous: Multidimensional Arrays, Up: Array Elements
Multidimensional arrays store their components in row-major order; that is, internally a multidimensional array is stored as a one-dimensional array, with the multidimensional index sets ordered lexicographically, last index varying fastest.


Banking, finance, insurance
When it comes to identity theft and instances of fraud, there is no industry as vulnerable as banking, finance, and insurance sectors. Identity verification is required at every step of the way, and official databases need to be cross-checked regularly even when a customer has been onboarded. This process demands a huge task-force and endless paperwork. With InVoid’s services, these sectors hold the potential for being completely transformed by introducing the possibility of remote onboarding and verification. The possibilities InVoid can open up for banking, finance, and insurance sectors are endless.
- Verify loan applications without the paperwork
- Complete customer verification remotely
- Avoid identity theft with e-KYC biometrics, facial recognition and liveness checks
- Ensure that the right person is availing insurance benefits
- Link payment wallets with your bank without going to a KYC store
- Enable demat account openings
- Verify identity before transferring hefty amounts
Shared Economy
The concept of owning goods that you may or may not need on a regular basis is a thing of the past. Shared economies, in relatively simple terms, allow individuals to borrow services or items from other individuals or companies who own them. While this has become one of the most convenient practises for modern times, it also poses significant dangers to the user, the owner, as well as the mediator, if there is one. inVOID provides solutions that ensure your safety beyond financial capacities, while also making sure you’re receiving quality services.
- Secure ridesharing apps from mishaps and criminal activities
- Foolproof peer-to-peer lending exchanges and keep long-term customers
- Rental companies can avoid damage to items by lending to quality customers
- Avoid large-scale fraud in B2B transactions
Mobile Apps
Almost every transactional operation that took place in person before is now fulfilled by an endlessly increasing hoard of service-based apps. Therefore, as more and more people jump on to using apps instead of making transactions in person, the risk of identity fraud and no-shows is increasing at an unprecedented rate. While most mobile apps have run on actively attracting a massive user-base, the lack of verification has led to more losses than profits. With InVoid’s minute-long verification, you can secure your business while also keeping genuine customers on board.
- Secure e-wallets from criminal activities and exchanges
- Protect failed or fraud deliveries on food delivery apps
- Keep criminals and fake profiles away from dating apps
- Make your streaming app user-base scaleable
Telcos
Gone are the days when your customer had to fill those long, tedious, but important forms, and leave you with endless paperwork to authenticate in order to finally bring them on board your network. The telecommerce industry has adapted to digital solutions more quickly than most industries out there, but still lags behind when it comes to digitally verifying consumers. With InVoid, your business can soar into an absolute giant with the sheer potential it holds! Onboard customers by cutting your costs exponentially and your paperwork likewise, and have an endless inflow of tension-free customers.
- Reduce drop-off during verification process
- Reach remote user bases
- Verify fraudulent identity
- Make the customer’s in-store experience easier
Visitor and Employee Management
Wouldn’t it be much easier to run a company if you knew that you knew everyone who entered and left its premises? And no, not just on a camera, where it’s always easy for someone to make an escape, or never be identified. InVoid does not only offer an innovative solution to visitor management, but also makes employee management easier. It’s always much better to know that you’re not bringing a fraudster employee onboard. Moreover, even when you do have someone legitimate in your company, inVOID makes data management as easy as a breeze.
- Make employee attendance easy with biometrics
- Protect failed or fraud deliveries on food delivery apps
- Make sure only genuine people enter and leave the building premises
- Leave behind lengthy HR manual paperwork
- Protect specific sections of your company premises
- Keep things flexible with multiple government IDs as options


visual-check-testcafe Report
Total tests:
{{total}}
Fixture
Test
Total passed
Total failed
Test status
Toggle tests
{{#each results as |result|}}
{{result.fixtureName}}
{{result.testName}}
{{result.totalPassed}}
{{result.totalFailed}}
{{result.testStatus}}
Show Tests
Browser
OS
Status
Toggle details
{{#each result.reportResults as |testResult|}}
{{testResult.browser}}
{{testResult.os}}
{{testResult.status}}
Show Details
Baseline
Actual
Diff
{{#each testResult.details as |detail| }}
{{/each}}
{{/each}}
{{/each}}
Scroll top


Prototype GOV.UK Design Resources
Design resource protoype for teams building digital public services.
Site map
Discussions
These pages show the discussion functionality in various states.
- Telephone support - no guidance, no discussion
- Check your answers page - some guidance, no discussion
- Dates and times - some guidance, some discussion


Class WxRobot_Robot
WxRobot 入口类
public
|
|
public static
|
|
public
|
|
public
xml
|
public static
|
$_instance
WxRobot_Robot Instance |
#
null
|


Static text is object that is used to draw regular static line of text, like head lines, names of the column in table or some comments. In word everything that you place in design time and want to be there exactly how you put it.
To draw Static text, select it from object toolbar and place it on page inside of Container (Static or Dynamic balloon). Like shown in picture below.
To set specific options for Static text, select it like shown in picture below.
Specific properties for Static text are:
Text, is text that be shown.
Font, name and size of the font you want to use. (Do not use Unicode font, they are NOT supported at this moment)
ForeColor, is color in which text would be drawn.


{% extends "base.html" %} {% block content %}
Click the links below to make a grab a local copy of the links on this page.


|
| const double | queryWeight (const std::string &w, std::vector< std::string > queries) const |
| |
const std::multimap< const
double, const IndexItem,
std::greater< double > > | score (const std::vector< std::string > queries) const |
| |
|
void | mergeDictionary () |
| |
|
|
unsigned long | size |
| |
|
std::vector< IndexItem > | itemList |
| |
std::map< const std::string,
unsigned long > | dictionary |
| |
std::map< const std::string,
unsigned long > | docFreMap |
| |
std::map< const std::string,
std::multimap< const double,
const IndexItem > > | tf_idf_map |
| |
default constructor, which creates an empty index
| const std::map< const std::string, unsigned long > Indexer::getDictionary |
( |
) | |
|
The map storing word and its count
- Returns
| const double Indexer::getDocumentFrequency |
( |
const std::string & |
w) | |
const |
Calculate document frequency The document frequency df t for a term t is defined as the number of documents that t appears in
- Parameters
-
- Returns
- df
this word appeared in how many documents
| const double Indexer::getQueryWeight |
( |
const std::string & |
t, |
|
|
const IndexItem & |
d |
|
) |
| const |
Calculate term weight the tf-idf weight of a term t in a document d is defined as the given formula
- Parameters
-
- Returns
- term weight
| const long Indexer::getSize |
( |
) | |
const |
- Returns
- the number of documents in the index
| const double Indexer::getWeight |
( |
const std::string & |
t, |
|
|
const IndexItem & |
d |
|
) |
| const |
Calculate term weight the tf-idf weight of a term t in a document d is defined as the given formula
- Parameters
-
- Returns
- term weight
| const double Indexer::getWeight |
( |
const std::string & |
t, |
|
|
double |
tf, |
|
|
const IndexItem & |
d |
|
) |
| const |
Calculate term weight the tf-idf weight of a term t in a document d is defined as the given formula
- Parameters
-
- Returns
- term weight
| void Indexer::normalize |
( |
) | |
|
computes the tf-idf weights based on the number N of indexed documents
- term frequency (in one document)
- document frequency (in all document)
- calculate weight, based on 1 and 2.
- update score map
| const IndexItem * Indexer::operator[] |
( |
unsigned long |
index) | |
const |
|
virtual |
provides access to its indexed documents with an overloaded operator[]: e.g., idx[3] would return the fourth document in the index, as an object of class document.
- Returns
Reimplemented in SentenceIndexer.
| const vector< QueryResult > Indexer::query |
( |
const std::string |
s, |
|
|
const unsigned int |
top = 10 |
|
) |
| |
|
virtual |
query the index with the provided string. By default, it returns the top-10 results, but this can be overridden on a per-query basis (optional second argument). If the index has not been normalized, attempting to query it will throw an exception (adding a new document after normalization also results in a non-normalized index). The query() function returns a vector<query result>, where each result object has a document and its score.
- Returns
Reimplemented in SentenceIndexer.
| const double Indexer::queryWeight |
( |
const std::string & |
w, |
|
|
std::vector< std::string > |
queries |
|
) |
| const |
|
protected |
the weight of query string
- Parameters
-
- Returns
A new document can be read into the index through an overloaded extractor (operator>>)
- Returns
| std::map<const std::string, unsigned long> Indexer::dictionary |
|
protected |
a word appeared how many times in total
| std::map<const std::string, unsigned long> Indexer::docFreMap |
|
protected |
a word appeared in how many documents in total
The documentation for this class was generated from the following files:


vignettes/Speeding_up_anticlustering.Rmd
Speeding_up_anticlustering.Rmd
This vignette documents various ways by which the speed of the
anticlustering method implemented in the anticlust
package
can be adjusted. Speedup is particularly useful for large data sets when
the default anticlustering algorithm becomes too slow. A fast method may
also be desirable for testing purposes, even if the final anticlustering
is based on a slower method.
The default anticlustering algorithm works by exchanging data points
between clusters in such a way that exchanges improve the anticlustering
objective as much as possible. Details on the exchange method may also
be found in Papenberg and Klau (2021; https://doi.org/10.1037/met0000301), Papenberg (2023; https://doi.org/10.1111/bmsp.12315), or the
anticlust
documentation (?anticlustering
).
Basically, running more exchanges tends to improve the results, but the
improvements are diminishing with many repetitions—especially for large
data sets. So, to speed up anticlustering()
, we can reduce
the number of exchanges. Here we will learn how to do that. However,
first we learn how to slow down anticlustering. Slowing down can lead to
better results and is recommended if you have the time.
The default exchange algorithm
(anticlustering(..., method = "exchange")
) iterates through
all input elements and attempts to improve the anticlustering by
swapping each input element with a element that is currently assigned to
a different cluster. No swap is conducted if an element cannot be
swapped in such a way that the anticlustering objective is improved. The
process stops after all possible exchanges have been evaluated for each
element. When the number of input elements is \(N\), this process leads to approximately
\(N^2\)—or \(O(N^2)\)—attempted exchanges, because each
element is swapped with all elements that are currently assigned to a
different cluster. To give a concrete example, when having \(N = 100\) data points and \(K = 4\) equal-sized groups, 75 swaps are
evaluated for each element and the best swap is realized. This leads to
100 * 75 = 7500 exchanges that have to be conducted during the entire
exchange algorithm, and for each exchange the objective function has to
be re-evaluated. This is less exchanges than \(N^2 = 100^2 = 10000\) because we skip
exchanges with the 25 elements that are currently in the same cluster
(including itself). However, according to the Big O notation,
we would still classify the number of exchanges as \(O(N^2)\), independent of the number of
groups. Thus, the total theoretical run time of the exchange method is
\(O(N^2)\) multiplied with the effort
needed to compute an anticlustering objective.
The results of the exchange method can be improved by not stopping
after a single iteration through the data set; instead we may repeat the
process until no single exchange is able to further improve the
anticlustering objective, i.e., until a local maximum is found. This
happens if we use
anticlustering(..., method = "local-maximum")
. This method
corresponds to the algorithm “LCW” in Weitz and Lakshminarayanan (1998).
Using the local maximum method leads to more exchanges and thus to
longer running time, but also better results than the default exchange
method.
Let’s compare the two exchange methods with regard to their running time, using the iris data set, which contains 150 elements.
K <- 3
system.time(anticlustering(iris[, -5], K = K, method = "exchange"))
#> user system elapsed
#> 0.013 0.000 0.013
system.time(anticlustering(iris[, -5], K = K, method = "local-maximum"))
#> user system elapsed
#> 0.056 0.000 0.056
Depending on how many iterations are needed, the default exchange
method can be much faster than the local maximum method. Generally I
would recommend to use method = "local-maximum"
for better
results, but if speed is an issue, stick with the default.
To slow down even more: The exchange process may be restarted several
times, each time using a different initial grouping of the elements.
This is accomplished when specifying the repetitions
argument, which defaults to 1 repetition of the exchange / local maximum
algorithm. Thus, for better results, we may increase the number of
repetitions:
K <- 3
system.time(anticlustering(iris[, -5], K = K, method = "exchange"))
#> user system elapsed
#> 0.01 0.00 0.01
system.time(anticlustering(iris[, -5], K = K, method = "local-maximum"))
#> user system elapsed
#> 0.045 0.000 0.045
system.time(anticlustering(iris[, -5], K = K, method = "local-maximum", repetitions = 10))
#> user system elapsed
#> 0.458 0.000 0.458
In this case, sticking with the default leads to run times that are much much faster. Still, if your data set is not too large, using several repetitions may be useful (but you can judge yourself via the results). The good news is that fewer exchanges may be enough in large data sets: anticlustering generally becomes easier with more data.
If the default exchange method is not fast enough for your taste, it is possible to use fewer exchange partners during the anticlustering process. By default, the exchange method evaluates each possible exchange with all elements that are currently assigned to a different cluster, leading to \(O(N^2)\) exchanges. If we only use a fixed number of exchange partners per element, we can reduce the number of exchanges to \(O(N)\), corresponding to a gain of an order of magnitude in terms of run time. Using fewer exchange partners for each element may decrease the quality of the results, and is generally only recommended for (very) large data sets. But the run time will be considerably faster.
One way of doing using fewer exchange partners is by including
“preclustering” restrictions (see ?anticlustering
). When
setting preclustering = TRUE
, the optimization restricts
the number of exchange partners to K - 1
(very similar)
elements. Note that the preclustering algorithm itself has \(O(N^2)\) run time, which has to be
performed prior to the anticlustering algorithm. Thus, we have to use a
larger data set to see the improvement in running time:
N <- 1000
M <- 5
K <- 3
data <- matrix(rnorm(N*M), ncol = M)
system.time(anticlustering(data, K = K))
#> user system elapsed
#> 4.768 0.003 4.773
system.time(anticlustering(data, K = K, preclustering = TRUE))
#> user system elapsed
#> 0.098 0.008 0.107
As we can see, for N = 1000, the speedup is enormous. There is also
an additional “hidden” method to make the anticlustering()
function run faster. This method also relies on using fewer exchange
partners during the exchange process, but does not use preclustering.
This approach is documented here and mostly relies on a dirty “hack”
involving the anticlustering()
argument
categories
:
The first step that I am using here is not strictly necessary—in the
next section, we will learn more about what this accomplishes—but let’s
create the initial clusters before calling
anticlustering()
.  Lets create random
groups of 10 elements that serve as exchange elements for each
other:
n_exchange_partners <- 10
exchange_partners <- sample(rep_len(1:(N/n_exchange_partners), N))
exchange_partners
#> [1] 5 13 2 11 7 5 6 1 7 3 1 1 15 3 10 10 8 4 14 15 15 7 8 3 2
#> [26] 13 1 9 11 6 13 6 9 13 13 1 9 11 15 7 12 8 12 13 14 7 3 10 12 8
#> [51] 11 11 7 5 15 5 6 14 15 4 9 5 15 12 14 4 4 6 11 10 1 9 6 12 1
#> [76] 8 10 11 14 11 15 14 10 7 2 8 4 8 5 15 3 1 2 4 5 12 12 3 9 13
#> [101] 3 8 5 10 1 2 7 9 6 10 1 8 10 5 4 4 9 2 3 14 9 2 5 7 10
#> [126] 12 11 13 12 6 9 6 14 14 15 13 13 4 3 4 14 11 2 6 2 3 8 2 12 7
The variable exchange_partners
now defines groups of
elements that are exchanged with each other. Only elements having the
same value in exchange_partners
serve as exchange partners
for each other. Thus, each element is only swapped with 10 other
elements instead of all 150 elements.
Now let’s call anticlustering using the exchange partners we just defined:
system.time(anticlustering(iris[, -5], K = initial_clusters))
#> user system elapsed
#> 0.009 0.000 0.010
system.time(anticlustering(iris[, -5], K = initial_clusters, categories = exchange_partners))
#> user system elapsed
#> 0.003 0.000 0.003
Well, there is not a lot going on here with this very small data set (N = 150), so let’s do this for a larger data set with 1000 data points.
N <- 1000
M <- 2
K <- 5
data <- matrix(rnorm(M*N), ncol = M)
initial_clusters <- sample(rep_len(1:K, N))
n_exchange_partners <- 10
exchange_partners <- sample(rep_len(1:(N/n_exchange_partners), N))
system.time(anticlustering(data, K = initial_clusters))
#> user system elapsed
#> 3.274 0.000 3.274
system.time(anticlustering(data, K = initial_clusters, categories = exchange_partners))
#> user system elapsed
#> 0.050 0.007 0.057
The speedup is enormous! Note that this approach even reduces the theoretical run time of the algorithm, because the number of exchanges no longer depends on the size of the input data, but instead is given a fixed value.
The previous approach to speed up the anticlustering by requiring
fewer exchange partners used the categories
argument. We
should now reflect how this was accomplished, and first note that the
categories
argument usually has a different purpose: It is
used to evenly distribute a categorical variable across groups—we did
not care for that in the previous example.
For example, coming back to the iris data set, we may require to evenly distribute the species of the iris plants across 5 groups of plants:
groups <- anticlustering(iris[, -5], K = 5, categories = iris$Species)
table(groups, iris$Species)
#>
#> groups setosa versicolor virginica
#> 1 10 10 10
#> 2 10 10 10
#> 3 10 10 10
#> 4 10 10 10
#> 5 10 10 10
How does the categories
argument accomplish the even
spread of the species? First, the initial grouping of the elements is
not random, but instead a “stratified split”, which ensures that a
categorical variable occurs an equal number of times in each split.
anticlust
has the function
categorical_sampling()
for this purpose. After conducting
the initial stratified split, only plants belonging to the same species
serve as exchange partners for each other. This second purpose of the
categories
argument is the one that we used above to
restrict the number of exchange partners to speed up anticlustering:
Only elements that have the same value in categories
serve
as exchange partners for each other.
In the example above, we prevented anticlustering()
from
conducting a stratified split on the basis of the
categories
argument because we passed the initial grouping
of the variables ourselves. The insight that the categories
argument has a twofold purpose—one of which can be shut down by using
the K
argument as the initial grouping vector—leads to the
following approach, where I combine the speedup aspect of
categories
with the aspect of conducting a stratified
split.
First, we conduct a manual stratified split as the initial grouping
vector for the K
argument in
anticlustering()
:
initial_groups <- categorical_sampling(iris$Species, K = 5)
table(initial_groups, iris$Species) # even!
#>
#> initial_groups setosa versicolor virginica
#> 1 10 10 10
#> 2 10 10 10
#> 3 10 10 10
#> 4 10 10 10
#> 5 10 10 10
Next, as in the previous section, we generate a vector that defines groups of pairwise exchange partners.
N <- nrow(iris)
n_exchange_partners <- 10
exchange_partners <- sample(rep_len(1:(N/n_exchange_partners), N))
Now, and this is the crucial part, we pass to the argument
categories
a matrix that contains both the species as well
as the exchange_partners
vector, and to the argument
K
the vector that encodes the stratified split. This way we
ensure that:
K
)categories
)categories
)
groups <- anticlustering(
iris[, -5],
K = initial_groups,
categories = cbind(iris$Species, exchange_partners)
)
The groups are still balanced after anticlustering()
was
called:
table(groups, iris$Species)
#>
#> groups setosa versicolor virginica
#> 1 10 10 10
#> 2 10 10 10
#> 3 10 10 10
#> 4 10 10 10
#> 5 10 10 10
The package anticlust
primarily implements two objective
functions for anticlustering: k-means and the diversity.1 The k-means criterion
is well-known in cluster analysis and is computed as the sum of the
squared Euclidean distances between all data points and the centroid of
their respective cluster. The diversity is the overall sum of distances
of elements in the same sets (for details, see Papenberg & Klau,
2021). By default, anticlustering()
optimizes the
“Euclidean diversity”: the diversity objective using the Euclidean
distance as measure of pairwise dissimilarity. However, any kind of
dissimilarity matrix can be used as input.
As stated above, the anticlustering algorithms recompute the
objective function for each attempted exchange. Thus, computing the
objective is the major contributor to overall run time. In
anticlust
, I exploit the fact that anticlustering
objectives can be recomputed faster when only two items have swapped
between clusters and the objective value prior to the exchange is known.
For example, computing the diversity objective “from scratch” is in
\(O(N^2)\), but when only two items
differ between swaps, it is not necessary to spend the entire \(O(N^2)\) time during each exchange.
Instead, by “cleverly” updating the objective before and after the swap,
the computation reduces to \(O(N)\),
leading to about \(O(N^3)\) for the
entire exchange method (instead of \(O(N^4)\)—this is a huge difference).
Computing the k-means objective (objective = "variance"
) is
in \(O(M \cdot N)\), where \(M\) is the number of variables.
anticlust
uses some optimizations during the exchange
process to prevent the entire re-computation of the cluster centroids
for each exchange, which otherwise consumes most of the run time.
However, this does not change the theoretical \(O(M \cdot N)\) run time of the computation.
Thus, theoretically, re-computing the k-means objective is slower than
re-computing the diversity objective. In practice, however, I observe
that k-means anticlustering is oftentimes faster than diversity
anticlustering. That is, when \(N\) is
large as compared to \(M\) and \(K\). For example, let’s compare running
times for k-means and diversity anticlustering for \(N = 1000\), \(M =
2\) variables and \(K = 5\)
groups:
N <- 1000
M <- 2
K <- 5
data <- matrix(rnorm(M*N), ncol = M)
system.time(anticlustering(data, K = K, objective = "diversity"))
#> user system elapsed
#> 3.323 0.008 3.332
system.time(anticlustering(data, K = K, objective = "variance")) # k-means anticlustering
#> user system elapsed
#> 1.854 0.000 1.854
When \(M\) and/or \(K\) increase, the diversity implementation may be faster, e.g. using \(N = 1000\), \(M = 20\) variables and \(K = 50\) yields:
N <- 1000
M <- 20
K <- 50
data <- matrix(rnorm(M*N), ncol = M)
system.time(anticlustering(data, K = K, objective = "diversity"))
#> user system elapsed
#> 0.217 0.000 0.218
system.time(anticlustering(data, K = K, objective = "variance"))
#> user system elapsed
#> 0.830 0.000 0.831
In most application I am aware of, the k-means method is faster because \(M\) and \(K\) are usually not very large. However, for example, if we happen to have (approximately) “\(M = N\)”, the diversity implementation is much faster because its theoretical run time is better. Note that for very large data sets, however, using the diversity objective may not be feasible at all. The reason for this is that a quadratic matrix of between-item distances has to be computed and stored in memory. It is my experience that on a personal computer this becomes difficult for about > 20000 elements (where the distance matrix has 20000^2 = 400000000 elements). Thus, for large data sets a change of the objective is reasonable; the k-means objective is computationally more efficient and even very large data sets can be processed—at least this is true when the number of variables is (much) smaller than the number of elements. I live in a world where this is usually the case.
Because the k-means objective has some disadvantages for anticlustering (see Papenberg, 2023),2 you may consider using the k-plus objective, which extends—and effectively re-uses—the k-means criterion. For example, the following code—using \(N = 50000\), 2 features and 2 exchange partners per element—ran in just about 15 seconds on my 10 year old personal computer:
N <- 50000
M <- 2
K <- 5
data <- matrix(rnorm(M*N), ncol = M)
initial_clusters <- sample(rep_len(1:K, N))
n_exchange_partners <- 2
exchange_partners <- sample(rep_len(1:(N/n_exchange_partners), N))
kplus_anticlustering(data, K = initial_clusters, categories = exchange_partners)
My computer crashes when I insert 50000 data points into diversity anticlustering.
fast_anticlustering()
The anticlust
package contains a function called
fast_anticlustering()
, which (as the name suggests) was
introduced to be a faster version of anticlustering()
to
process large data sets. fast_anticlustering()
optimizes
the k-means criterion and has an argument k_neighbours
,
which adjusts the number of exchange partners. Details are found in the
documentation (?fast_anticlustering
) and in Papenberg and
Klau (2021). In my view, the fast_anticlustering()
approach
to adjusting the number of exchange partners is theoretically and
practically more satisfying than the previous “hack” of using the
categories
argument. However, while the function may still
be useful in some settings, I currently do not recommend its use. This
is because the exchange algorithm that is called in
anticlustering()
(and therefore also
kplus_anticlustering()
, which calls
anticlustering()
) has been rewritten in C after including
fast_anticlustering()
in the package. The C implementation
is considerably faster as compared to the R implementation in
fast_anticlustering()
. Due to the way in which exchange
partners are generated in fast_anticlustering()
, it is also
not straight forward use the C implementation of the exchange method in
fast_anticlustering()
—I would like to change this in the
future, but I am not sure when this will happen. So, ironically,
fast_anticlustering()
is currently not the fastest method
for anticlustering, by a long shot:
N <- 1000
M <- 2
K <- 5
data <- matrix(rnorm(M*N), ncol = M)
initial_clusters <- sample(rep_len(1:K, N))
n_exchange_partners <- 10
exchange_partners <- sample(rep_len(1:(N/n_exchange_partners), N))
# fast_anticlustering() always optimizes the k-means criterion (i.e., objective = "variance")
system.time(anticlustering(data, K = initial_clusters, categories = exchange_partners, objective = "variance"))
#> user system elapsed
#> 0.026 0.000 0.026
system.time(fast_anticlustering(data, K = initial_clusters, k_neighbours = n_exchange_partners))
#> user system elapsed
#> 1.407 0.000 1.407
Papenberg, M., & Klau, G. W. (2021). Using anticlustering to partition data sets into equivalent parts. Psychological Methods, 26(2), 161–174. https://doi.org/10.1037/met0000301.
Papenberg, M. (2023). K-plus Anticlustering: An Improved k-means Criterion for Maximizing Between-Group Similarity. British Journal of Mathematical and Statistical Psychology. Advance online publication. https://doi.org/10.1111/bmsp.12315
Weitz, R., & Lakshminarayanan, S. (1998). An empirical comparison of heuristic methods for creating maximally diverse groups. Journal of the Operational Research Society, 49(6), 635–646. https://doi.org/10.1057/palgrave.jors.2600510
Actually, four objectives are natively supported for the
anticlustering()
argument objective
:
"diversity"
, "variance"
(i.e, k-means),
"kplus"
and "dispersion"
. However, the k-plus
objective as implemented in anticlust
effectively re-uses
the original k-means criterion and just extends the input data
internally. The dispersion objective has a different goal than the other
objectives as it does not strive for between-group similarity, so it
cannot be used as an alternative to the other objectives.↩
The primary disadvantage is that k-means anticlustering only leads to similarity in means, but not in standard deviations or any other distribution aspects; the k-plus criterion can be used to equalize arbitrary distribution moments between groups.↩


FAQ
IMPORTANT: If you are using iOS 11 or higher, make sure the app has been updated to version 1.17 or higher.
Log In troubles?
IMPORTANT: If you are using iOS 11 or higher, make sure the app has been updated to version 1.17 or higher.
These are the most common errors regarding log in:
Authorization required errors
IMPORTANT: If you are using iOS 11 or higher, make sure the app has been updated to version 1.17 or higher.
You have got the following message:
- “Authorization required”
This happens if when have been asked you not granted the app access to your iOS Twitter accounts. In order to correct it follow this step by step guide:
1.- Go to Settings app and then to the Twitter section.
2.- Switch to green the button for Still Follows app in section “ALLOW THESE APPS TO USE YOUR ACCOUNT”. If this button does not appear then go to step 3.
3.- OPTIONAL: If the button of step 2 does not appear (as in the image below) then it means you don’t have any Twitter account configured on your device. In such a case, first we need to add an account. In order to do so follow instructions here
4.- Go back to Still Follows and now the app will be able to show your accounts.
No Twitter Accounts
IMPORTANT: If you are using iOS 11 or higher, make sure the app has been updated to version 1.17 or higher.
The “No Twitter Accounts” message appears when no Twitter accounts are set up in your iOS device. The message looks like this:
In order to add your Twitter account follow the next instructions:
1.- Go to the Settings app and then to the Twitter section.
2.- Once in Twitter settings, fill your Twitter username and password and finally tap “Sign in”.
3.- Now you have added your Twitter account to your iOS device.
4.-
Expired credentials errors
IMPORTANT: If you are using iOS 11 or higher, make sure the app has been updated to version 1.17 or higher.
You have got one of the following messages:
- “Invalid or expired token”
- “Your credentials do not allow access to this resource”
In practice it does mean that you need to repeat the Twitter authentication process in your iOS device. In order to do so follow this step by step guide:
1.- Go to Settings app and then to the Twitter section.
2.- First of all check that Still Follows app is authorized in section “ALLOW THESE APPS TO USE YOUR ACCOUNT”.
3.- Now tap on your Twitter account to access the account parameters.
4.- Delete the contents of the password field and then re-enter the password again. Finally tap “Done”.
5.- Close Still Follows app and the open again and try to log in. Now it should be working. In case it is still not working, please go to step 5.
6.- OPTIONAL: If step 5 fails, then the only solution will be to remove the Twitter account from the device and then add it again. The way to do it is just to repeat steps from 1 to 4 but tapping the “Delete account” button in step 4. Once deleted, you can sign in again with the “Add account” or the “Sign in” button.
7.- Now it should be working.


Overview of my argument
- Technology is getting more specialized/complex.
- This complexity drives up the value of technical knowledge, making it more prized than writing skills.
- To handle the complexity, technical writers must play increasingly collaborative roles with engineers to create documentation
Questions?


Origami Designs
Origami Designs
About Us
Follow Us
Interesting Facts about Chameleon
- Chameleon are reptiles that are partof the iguana suborder
- Changing skin colour is an important part of communication among chameleon
- Most chameleon have a prehensile tail they use to wrap around tree branches
Interesting Facts about Pigeon
- Pigeons are incredibly complex and intelligent animals
- Pigeons are renowned for their outstanding navigationnal abilities
- Pigeons have excellent hearing abilities
Interesting Facts about Camel
- Camel's ears are furry
- Camel can move easily across the sand because of its specially designed feet
- When they find water. they will drink as much as possible.
Interesting Facts about Panda
- Panda have great camouflage for their environment
- Panda eyes are different to normal bears
- Panda are well protected in their first month
Interesting Facts about Teddy
- Teddy bear is going to be very soft and expensive
- Teddy bear help the kids for the lonlyless
- Teddy bears are made from alpaca pelt
Interesting Facts about Cicada
- Adult cicadas only live 4-6 weeks before they die
- Cicadas are 15 broods of cicadas on record
- Cicadas shells on the trees are left behind by the NYMPH


--- layout: post title: Re-using workflow definitions date: 2012-09-11 19:56:45.000000000 +01:00 categories: Objectflow published: true type: post featured: false author: garfieldmoore image: 'http://dd03isve2g8o3.cloudfront.net/workflow.jpeg' ---
In the last post I showed how to define a workflow;
var workflow = Workflow<CustomerState>.Definition() .Configure() .On<Exception>(() => Console.WriteLine("Caught an exception")) .When<CustomerState>() .Do<PlaceOrder>() .Do<PayForCoffee>() .Do<PickUp>();
Although this is fine for defining small workflows, this would be cumbersome for more complex workflows.
The frameworks AsAWorkflow<T> abstract class solves this problem. All we have to do is create a derived class and copy the above code into the Configure() method;
public class CoffeeCustomerService : AsAWorkflow<CustomerState> { // Obsolete contructor public CoffeeCustomerService(IDefine<CustomerState> workflow) : base(workflow) { } // Obsolete method public override void Configure(IDefine<CustomerState> workflow) { } public override IWorkflow<CustomerState> Configure() { return Workflow<CustomerState>.Definition() .Configure() .On<Exception>(() => Console.WriteLine("Caught an exception")) .When<CustomerState>() .Do<PlaceOrder>() .Do<PayForCoffee>() .Do<PickUp>(); } }
The constructor and parameterised Configure method are obsolete and will be removed in a future release. The workflow is defined in the Configure() method as usual.
All the client has to do is instantiate this class and pass the initial state to the start method;
var coffeeCustomerWorkflow = new CoffeeCustomerService(new Workflow<CustomerState>()); var customerState = new CustomerState(); coffeeCustomerWorkflow.Start(customerState);
This is a bit tidier and more re-useable.
The next minor release will have a default constructor for this class as we plan to obsolete the parameterized constructor.


Foot Printing
Search Engines
Google, duckduckgo, bing, Archive
inurl, allinurl, intitle, allintitle, site, related, filetype, intext
GHDB
People
Facebook, Linkedin, Google+, Twitter
Website
Debugger->Network->Server Version, Content-Types, Cookie, Powered-By
Chrome Dev Tool, Firebug, Burp Suite, Zaproxy, Wirershark, cli:telnet
Html Source: Dev comments, frameworks
Grabbing Websites
cli:wget --recursive --depth=10
, httrack(Windows), Pavu, WebRipper 2.0, WinWSD
Email Tracking
1.hidden element 2.Link Redirection 3.Tools - YesWare - HubSpot - BananaTag - GetNotify - ReadNotify - WhoReadMe - MsgTag - DidTheyReadIt
IP Blocks
cli:host [domain]
, ARIN, AFRINIC, APNIC, LACNIC, RIPE NCC
OS
Netcraft, Shodan
cli: nmap -A [domain]
Path Analysis
Unix:traceroute [domain/ip]
: UDP by default, -I to use ICMP
Windows:tracert
: ICMP only
Tools: OpenVisualTrace
DNS/WhoIs
cli:nslookup
, dig ANY [domain]
, whois [domain]
Tools
Maltego, Domain Name Analyzer Pro, Web Extractor, cli: tctrace
ICMP Scanning
nmap -sS [domain/subnet]
Network Scanning
TCP/IP Package Builder
nmap
TCP Scanning Types
Full: Will be logged(friendly).
- Open: SYN->, SYN/ACK<-, ACK/RST->
- Closed: SYN->, RST<-
Half-Open:
- Open: SYN->, SYN/ACK, RST->
- Closed: SYN->, RST<-
XMAS:
- Open: FIN/PSH/URG->, NO RESPONSE
- Closed: FIN/PSH/URG->, RST<-
FIN:
- Open: FIN->, NO RESPONSE
- Closed: FIN->, RST/ACK<-
NULL:
- Open: NO FLAGS->, NO RESPONSE
- Closed: NO FLAGS->, RST/ACK<-
IDLE: Determined by IP ID increment. Zombie ports are closed.
- Open(increment by 2):
- A->Zombie: SYN/ACK
- Zombie->A: RST(Get IP ID in the header)
- Spoofed Zombie->B: SYN
- B->Zombie: SYN/ACK
- Zombie->B(IP ID ++): RST
- A->Zombie: SYN/ACK
- Zombie->A(IP ID ++): RST
- Closed(increment by 1):
- A->Zombie: SYN/ACK
- Zombie->A: RST(Get IP ID in the header)
- Spoofed Zombie->B: SYN
- B->Zombie: RST
- A->Zombie: SYN/ACK
- Zombie->A(IP ID ++): RST
- Open(increment by 2):
Inverse TCP: invalid flags will be ignored when port is open. E.g. XMAS, FIN, NULL, etc.
ACK: Can only check if there is a filter between Src and Dest.
- Reachable: Open, Closed: RST
- Unreachable: NO RESPONSE
Avoid Intrusion Detection/Prevention Systems
- Fragmentation(commonly used): send small MTU packets and reassemble on destination.
- IP Spoofing: like IDLE scan.
- via Proxy.
- Source Routing: specify intermediate hops, rarely used.
Banner Grabbing
telnet [Host IP] [Port]
nc [Host IP] [Port]
- grc.com
- netcraft.com
Extension: Microsoft IIS: .aspx
Banner Hiding
Apache:
- apache2.conf:
- ServerSignature Off
- ServerTokens Prod
- mod_headers:
- set Server “CheetOS 1.2”
- apache2.conf:
IIS:
- IIS Lockdown Tool
HTTP Tunnel
Recuires VNC(?
SSH Tunnel
Recuires VNC(?
ssh -L [Local Port]:[Dest. VNC IP]:[Dest. Port] [Username]@[Dest. SSH IP]
IP Spoofing Detection
- TTL: should be the same
- IP ID: should be near or greater
- TCP Flow: Window Size should not be 0, with SYN/ACK
- Router: Incomming Ip should not be an IP inside. Leaving destination should not target the IPs inside.
Enumeration
Common Services/Ports
- DNS: TCP/UDP 53
- SMB: TCP/UDP 445
- SNMP: UDP 161
- LDAP: TCP/UDP 389
- RPC: TCP/UDP 135
- NBNS: TCP/UDP 137
- NBSS: TCP/UDP 139
Ports are subject to change.
NetBIOS
Network Basic Input/Ouptput System
RFC 1001 RFC 1002 RFC 1987


A celestial pillow fight of monumental proportions was declared the night we arrived in the Swiss alpine village of Grindelwald. I love a serious blizzard so I stood out on the balcony of our chalet until the snow stuck to my eyelashes and began to freeze. When I peeked out the window at 4am, it was still snowing heavily . . . but no one else in our Kiwi quintet seemed remotely interested at my announcement that 50cm of the prayed-for white stuff had fallen overnight.
The shadow of the mighty Eiger loomed above us and wisps of pink cloud hung in the evening sky, keeping company with a pale sickle moon.
In the days that followed, we travelled by Jungfrau Railways to ski at Kleiner Scheidegg, part of a vast domain linked to Lauberhorn, Männlichen and Wengen by a network of chairlifts, gondolas, trains and massive cablecars.
We skied high above the valley and lunched at a quaint restaurant at Kleiner Scheidegg, a tiny alpine village in the shadow of the Eiger (3970m), Mönch (4107m) and Jungfau (4158m). A cluster of hotels, chalets and restaurants nestle at the foot of Eigergletscher (Eiger Glacier), the railway station where passengers embark on the trip of a lifetime to Jungfraujoch (3454m), the highest-altitude railway station in Europe.
I spent an afternoon at the “Top of Europe” where the view from the Sphinx Terrace (3571m) is literally breath-taking - a spectacular 360-degree panorama with row-upon-row of mountain peaks and glaciers stretching across Switzerland, France, Italy and Germany.
Skiing was thrilling enough for me but the younger members of our team tried out the First Flyer, an 800m-long flying fox from First to Schreckfeld which reaches speeds of 84km/h. There are four harnesses on cables side-by-side so you don’t have to go it alone. I’m reliably informed the experience is an eye-popping adrenalin buzz . . . and it’s included in the lift pass so you can fly as many times as you want.
Just before we left we embarked on a sleigh ride, buried under layers of fur and sheep-skin (or possibly lama-skin) blankets, sipping champagne that nearly froze in our glasses. Our driver Heinrich Egger, who owns the sleigh business, seemed unfazed by the sub-zero temperatures as his two sturdy horses trotted along the river and around the little village which was even more picturesque at night with Christmas decorations suspended above. It was a magical experience. -Justine Tyerman
Justine Tyerman flew Cathay Pacific to Paris then travelled by train to Grindelwald. She skied courtesy of Jungfrau Railways and Intersport Graf Sport, and travelled in Switzerland courtesy of the Swiss Travel Pass.
A farming village for centuries, the alpine community of Le Grand Bornand has long links with the mountains and the fertile lands which lie at high altitudes in the Haute-Savoie region of south-eastern France.
We visited Le Grand Bornand in spring. At this time of year (March) snow still covers the village; on most buildings the snow was up to 50cms thick, and the ski areas and beyond were covered with a powder that rivals any seen in the Southern Hemisphere.
In the heart of the Aravis Mountains, Le Grand Bornand lies between Mont Blanc, Lake Annecy and the Swiss border.
The village itself is separated across two distinct elevations; Le Grand Bornand at 1,000 metres, and Le Grand Bornand Chinaillon six kilometres up the road at 1300 metres. Chinaillon is the main base for skiing and snowboarding, although the extensive slopes are accessible from either part of the village.
Steeped in history, the well-preserved historic village centre dates back to the 17th Century and its architecture still informs that of the contemporary dwellings and civic structures.
The town sits at the base of an extensive ski area, of which 29 lifts and two gondolas allow access to 90km of exquisitely groomed runs while 184 snow cannons cover 86 hectares of terrain.
Off piste terrain options are abundant and worth a look if you can. Guided tours operate frequently taking skiers to parts of the mountains that aren’t otherwise easily accessible.
But skiing and snowboarding aren’t the only winter activities locals here rave about. The ski bike was invented in a neighbouring village and the locals love pedalling their invention.
We set out on a ski bike trip not knowing quite what to expect. Clad in our ski gear and hiking shoes we met our guide and were swiftly bundled onto a chairlift with the bikes hooked on behind us.
At the top of a green run, we were given little instruction other than how to brake and off we went. Minutes into it and I realised why there was such a lack of direction: it’s easy. If you can ride a bike, you can ride a ski bike.
It’s a heady sensation riding down the ski field on a bike of sorts, and one that we took immense pleasure in as we quickly became more confident.
Le Grand Bornand is also a great destination for snowshoeing due to its expansive historical and working farm buildings dotted across the mountains.
We took to the hills behind Chinaillon and found ourselves in a vast expanse within minutes surrounded by towering near-vertical cliff faces and waist-deep snow. Along the way we were lucky enough to spot a bearded vulture and a group of ibeks high above us on a steep cliff face.
This is a town that knows its strengths and provides an alluring, unique mountain escape; an experience that sets Le Grand Bornand apart from its more well-known resort neighbour, Chamonix. - Clare Chapman.
Clare skied courtesy of Lake Annecy Ski Resorts.


Rewriting HTTP Proxy
URL
TODO, currently doesn't work.
View
Rules
Match
Replace With
{{ range . }}
{{ .Match }}
{{ .Replace }}
{{ end }}
Match
Replace
Add Rule


If you are not redirected automatically, follow this
link to the latest documentation
.
If you want to view documentation for a particular version, follow this
link
.


Blogs
Week Seven:14th July-20th July 2014
Cultural blog:
Exploring Your Values
Technical blog:SQL vs NoSQL
Week Six:7th July-13th July 2014
Cultural blog:
Stereotype Threat
Technical blog:Blocks, Procs & Lambdas
Week Five:30th June-6th July 2014
Cultural blog:
My thoughts on pairing and feedback so far
Technical blog:Ruby Classes
Week Four:23rd June 2014-29th June 2014
Cultural blog: The Future of Data Storage
Where is all our data going to be stored in the future?
Technical blog:Technical blog: Teach about Enumberable method #group_by
Week Three:16th June 2014-22nd June 2014
Cultural blog:Thinking Styles
Looking at my Gregorc thinking style and growth vs. mindset
Technical blog: The Popularity of JavascriptPopularity of Javascript: The good the bad and the ugly
Week Two: 9th June 2014-15th June 2014
My Wireframe
Creating a wireframe for this index website
Pairing session pt. 1First pairing session, with Steve;This is the direct result we had after coding together
Pairing Session pt. 2My version of the page based on our work together
Technical BlogCSS Positioning
Week One: 2nd June 2014-8th June 2014
EDA 1:first webpage
Designed to introduce yourself...I didnt't read the brief properly!
EDA 2:second webpageTeaching something:How to make haloumi cheese yum yum!
My first ever blog!Technical blog:considering webpage design
Getting into this blogging thing!
Cultural blog:first impressions of EDA
WireframingFirst time giving wireframing a go!


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Victorious Flooring
Legal Name:
Victorious Flooring
Operating Name:
Victorious Flooring Carpet Sales, Installation & Repairs
Mailing Address:
87 Atherton Ave(Accounting / Only For Mailing)
AJAX, Ontario
L1T 0L3
Location Address:
6750 Columbus Rd(Shop / Showroom By Appointment)
MISSISSAUGA, Ontario
L5T 2G1
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Victorious Flooring Sales, Installation and Repair Services is your one stop carpet flooring solution provider across Toronto, Mississauga, Markham, Richmond Hill, Scarborough, Pickering, Ajax, Whitby & Oshawa with no obligation consulting and estimate service! For your satisfaction, we offer unconditional LIFETIME labour warranty on all of our projects.
We offer a wide range of Carpet Flooring services including Sales, Installation, Repair and Stretching Services. Not only supplying with affordable and competitive priced broadloom carpets but also fixing permanent stains and iron burns on wall to wall carpet. Stretching your carpet to remove dangerous buckles, bulges and wrinkles. Repairing snags on Berber carpet, cat and dog chews or damages on stairs and thresholds.
Our services includes but are not limited to:
Warehouse priced, wide range Wool, Wool blend, Nylon, Polypropylene (Olefin) and Polyester fibre wall to wall carpets, broadlooms, commercial carpets and commercial carpet tiles for residential and commercial applications.
Full Installation for Residential, Commercial & Marine carpeting.
(We use Computerized Carpet Flooring Measurement / Estimate Software that minimizes the waste and saves you money)
Custom Carpet bindings such as extra wide cotton tape / fabric binding, invisible hand binding, blind stitching, machine mesh binding and surging.
Environmental Friendly & Solvent FREE, CRI Approved Commercial Carpet Installation & Repair Services for your office and retail store that improves the indoor air quality. We strictly use non-toxic, odourless and non-flammable adhesives, calculated with zero VOCs
Patching discoloured, stained or burned spots. (such as cigarette, iron, charcoal burns & bleach spots on you carpet)
All type of cat, dog and pet damages on your plush carpet, berber carpet or sisal carpet. Whether the carpet damage from your cat or dog is on your threshold, seam, or the stairs / steps. We can repair them all.
Loose or exposed seam repair.
Underpad replacement for water leaks and damages.
Stretching to remove dangerous ripples, buckles and wrinkles from your wall to wall carpet and broadlooms.
Underpadding / Carpet cushion bulge repairs.
Worn or damaged carpet on stairs, landings or railings (Cat Dog Pet damages)
Detached carpet from tack strips
Replacing tack strips and rotted tack strips
Squeaky Floor repair
VCT (Vinyl Composition Tile), Karndean Tile and Plank
Floor Preparations
Our Carpet Sales, Installations and Repairs are done in-house; we do NOT hire any sub-contractors. There is also NO SALESMAN COMMISSION paid here! FINANCING AVAILABLE! Starting as low as $1000 and up to 60 months for payment.†
For additional information, please check our REFERENCES at www.victoriousflooring.com
Accepted Payment TypesWe accept Cheque, Interac Email Money Transfer, PayPal, Visa and MasterCard.
Please feel free to contact us 7 days a week for a no obligation consultation or estimate!
(416) 858-7006
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
Full Installation for Residential, Commercial & Marine carpeting
(We use Computerized Measurement Software that minimizes the waste and saves you money)
Custom Carpet Bindings such as extra wide cotton tape/fabric binding, invisible hand binding, blind stitching, machine mesh binding and serging.
Environmental Friendly & Solvent FREE Commercial Carpet Installation & Repair Services for your office and retail store that improves the indoor air quality. We strictly use non-toxic, odourless and non-flammable adhesives, calculated with zero VOCs
Patching discoloured, stained or burned spots (such as cigarette, iron, charcoal burns & bleach spots on carpet)
Loose or exposed seam repair
Underpad replacement for water leaks and damages
Stretching to remove dangerous ripples, buckles and wrinkles from your wall to wall carpet and broadlooms
Underpadding / Carpet cushion bulge repairs
Worn or damaged carpet on stairs, landings or railings (Cat Dog damages)
Detached carpet from tack strips
Replacing tack strips and rotted tack strips
Squeaky Floor repair
VCT (Vinyl Composition Tile), Karndean Tile and Plank
Floor Preparations
Market profile
Industry sector market interests:
- Construction
- Service Industry
- Wholesale/Retail
Sector information
Unique applications:
Our mission is to provide a service with both integrity of a high quality workmanship in addition to a fair and competitive pricing. In today's ever changing economy, it's important to spend your money wisely. Repairs can cost a fraction of the price of purchasing and installing new carpet. A few simple repairs can have your carpet looking like new again.We can fix the cigarette or iron burns. Stretch the buckled / wrinkled wall to wall carpet. Repair the snag on your Berber carpet. Patch the bleach or other permanent stained spots. Treat the dog chew or cat scratches on your stairs or thresholds. Re-seam the loosed and exposed Seams.
Key / Major clients:
We serve directly to homeowners, realtors, builders, staging designers, interior designers, contractors, offices, churches, retirement homes, building managements, restaurants, RV, boat and yacht owners, yacht clubs, child care centres, health clinics and much more! For additional information, please check our REFERENCES at http://www.victoriousflooring.com/references/Success stories:
Rated #1 Flooring Company for the last four years in a rowWinner of Best of 2011, 10, 09 and 2008 Toronto awards.
Victorious Flooring made again the list for the Best of 2011 based on ratings and reviews from the home and business owners that hired us. This is the third year that we have been rated as the best of the year in our highly competitive category. We would like to show the result and have a traceable proof of our If it doesnt start right, it will NOT finish right! principle. Thank you again for your business and referrals.
 Residential or Commercial grade, Nylon, Polyester, Olefin or Wool. We Can Fix Them All. Free estimates and consultations provided.We promise you that your interaction with us will not be that of a bottom-line, sales-focused person, but rather a solution-oriented floor technician. We provide services in English and in German.
Top 5 Reasons to Choose Us
1. Award Winning Service (Rated the #1 for the last two year. (Check us at http://victoriousflooring.homestars.com)
2. Honest Upfront Pricing with No Hiding Costs
3. Free Accidental Service Call
4. Unbeatable Life Time Unconditional Labour Warranty
5. Convenient Appointment Times
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
Full Installation for Residential, Commercial & Marine carpeting
(We use Computerized Measurement Software that minimizes the waste and saves you money)
Custom Carpet Bindings such as extra wide cotton tape/fabric binding, invisible hand binding, blind stitching, machine mesh binding and serging.
Environmental Friendly & Solvent FREE Commercial Carpet Installation & Repair Services for your office and retail store that improves the indoor air quality. We strictly use non-toxic, odourless and non-flammable adhesives, calculated with zero VOCs
Patching discoloured, stained or burned spots (such as cigarette, iron, charcoal burns & bleach spots on carpet)
Loose or exposed seam repair
Underpad replacement for water leaks and damages
Stretching to remove dangerous ripples, buckles and wrinkles from your wall to wall carpet and broadlooms
Underpadding / Carpet cushion bulge repairs
Worn or damaged carpet on stairs, landings or railings (Cat Dog damages)
Detached carpet from tack strips
Replacing tack strips and rotted tack strips
Squeaky Floor repair
VCT (Vinyl Composition Tile), Karndean Tile and Plank
Floor Preparations
Market
Market profile
Industry sector market interests:
- Construction
- Service Industry
- Wholesale/Retail
Sector
Sector information
Unique applications:
Our mission is to provide a service with both integrity of a high quality workmanship in addition to a fair and competitive pricing. In today's ever changing economy, it's important to spend your money wisely. Repairs can cost a fraction of the price of purchasing and installing new carpet. A few simple repairs can have your carpet looking like new again.We can fix the cigarette or iron burns. Stretch the buckled / wrinkled wall to wall carpet. Repair the snag on your Berber carpet. Patch the bleach or other permanent stained spots. Treat the dog chew or cat scratches on your stairs or thresholds. Re-seam the loosed and exposed Seams.
Key / Major clients:
We serve directly to homeowners, realtors, builders, staging designers, interior designers, contractors, offices, churches, retirement homes, building managements, restaurants, RV, boat and yacht owners, yacht clubs, child care centres, health clinics and much more! For additional information, please check our REFERENCES at http://www.victoriousflooring.com/references/Success stories:
Rated #1 Flooring Company for the last four years in a rowWinner of Best of 2011, 10, 09 and 2008 Toronto awards.
Victorious Flooring made again the list for the Best of 2011 based on ratings and reviews from the home and business owners that hired us. This is the third year that we have been rated as the best of the year in our highly competitive category. We would like to show the result and have a traceable proof of our If it doesnt start right, it will NOT finish right! principle. Thank you again for your business and referrals.
 Residential or Commercial grade, Nylon, Polyester, Olefin or Wool. We Can Fix Them All. Free estimates and consultations provided.We promise you that your interaction with us will not be that of a bottom-line, sales-focused person, but rather a solution-oriented floor technician. We provide services in English and in German.
Top 5 Reasons to Choose Us
1. Award Winning Service (Rated the #1 for the last two year. (Check us at http://victoriousflooring.homestars.com)
2. Honest Upfront Pricing with No Hiding Costs
3. Free Accidental Service Call
4. Unbeatable Life Time Unconditional Labour Warranty
5. Convenient Appointment Times


|
Boost.Locale
|
| boost::locale::abstract_calendar | |
| boost::locale::util::base_converter | This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point |
| boost::locale::basic_format< CharType > | Printf like class that allows type-safe and locale aware message formatting |
| boost::locale::basic_message< CharType > | This class represents a message that can be converted to a specific locale message |
| boost::locale::boundary::boundary_indexing< Char > | This facet generates an index for boundary analysis for a given text |
| boost::locale::boundary::boundary_point< IteratorType > | This class represents a boundary point in the text |
| boost::locale::boundary::boundary_point_index< BaseIterator > | This class holds an index of boundary points and allows iterating over them |
| boost::locale::boundary::break_info | This structure is used for representing boundary point that follows the offset |
| boost::locale::calendar | This class provides an access to general calendar information |
| boost::locale::calendar_facet | Facet that generates calendar for specific locale |
| boost::locale::collator< CharType > | Collation facet |
| boost::locale::collator_base | Base class that includes collation level flags |
| boost::locale::comparator< CharType, default_level > | This class can be used in STL algorithms and containers for comparison of strings with a level other than primary |
| boost::locale::conv::conversion_error | The excepton that is thrown in case of conversion error |
| boost::locale::converter< Char > | The facet that implements text manipulation |
| boost::locale::converter_base | This class provides base flags for text manipulation. It is used as base for converter facet |
| boost::locale::date_time | This class represents a date time and allows to perform various operation according to the locale settings |
| boost::locale::date_time_duration | This class represents a period: a pair of two date_time objects |
| boost::locale::date_time_error | This error is thrown in case of invalid state that occurred |
| boost::locale::date_time_period | This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years |
| boost::locale::date_time_period_set | This class that represents a set of periods, |
| boost::locale::gnu_gettext::messages_info::domain | This type represents GNU Gettext domain name for the messages |
| boost::locale::generator | Major class used for locale generation |
| boost::locale::hold_ptr< T > | Smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer) |
| boost::locale::info | Facet that holds general information about locale |
| boost::locale::conv::invalid_charset_error | This exception is thrown in case of use of unsupported or invalid character set |
| boost::locale::ios_info | This class holds an external data - beyond existing fmtflags that std::ios_base holds |
| boost::locale::localization_backend | This class represents a localization backend that can be used for localizing your application |
| boost::locale::localization_backend_manager | Localization backend manager is a class that holds various backend and allows creation of their combination or selection |
| boost::locale::message_format< CharType > | This facet provides message formatting abilities |
| boost::locale::gnu_gettext::messages_info | This structure holds all information required for creating gnu-gettext message catalogs, |
| boost::locale::period::period_type | This class holds a type that represents certain period of time like year, hour, second and so on |
| boost::locale::posix_time | |
| boost::locale::boundary::segment< IteratorType > | Segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it |
| boost::locale::boundary::segment_index< BaseIterator > | This class holds an index of segments in the text range and allows to iterate over them |
| boost::locale::utf::utf_traits< CharType, size > | UTF Traits class - functions to convert UTF sequences to and from Unicode code points |


We are aspiring developers trying our hands on different technologies.
We love to code and learn.
We love to work on various websites as it gives us a self reward of finishing a project.
Developer and Content Writer
CSE Undergraduate At NIT Rourkela
<EMAIL_ADDRESS>Developer and Designer
CSE Undergraduate At NIT Rourkela
swati@example.com


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| js/ | 0% | 0/23 | 0% | 0/10 | 0% | 0/3 | 0% | 0/23 | |
| js/base/ | 95.3% | 142/149 | 87.1% | 81/93 | 96.97% | 32/33 | 95.3% | 142/149 | |
| js/base/core/ | 81.94% | 694/847 | 76.01% | 358/471 | 87.15% | 156/179 | 82.11% | 684/833 | |
| js/base/editing/ | 84.15% | 207/246 | 69.92% | 86/123 | 87.27% | 48/55 | 84.15% | 207/246 | |
| js/base/module/ | 61.22% | 390/637 | 30.74% | 71/231 | 62.82% | 98/156 | 61.55% | 389/632 | |
| js/bs3/ | 92.42% | 61/66 | 55.88% | 19/34 | 84.21% | 16/19 | 92.42% | 61/66 | |
| js/bs3/module/ | 55.33% | 379/685 | 24.55% | 54/220 | 58.42% | 111/190 | 55.33% | 379/685 | |
| js/lite/ | 37.5% | 3/8 | 100% | 0/0 | 33.33% | 1/3 | 37.5% | 3/8 | |
| js/lite/module/ | 33.33% | 3/9 | 100% | 0/0 | 25% | 1/4 | 33.33% | 3/9 |


--- title: Importing Vectors sidebar: documentation_sidebar permalink: VectorsImport.html folder: documentation toc: false ---
Large lists of vectors can be imported from a text file by the command
{% highlight matlab %} fname = fullfile(mtexDataPath,'vector3d','vectors.txt'); v = vector3d.load(fname,'ColumnNames',{'polar angle','azimuth angle'}) {% endhighlight %} {% highlight plaintext %} v = vector3d size: 1000 x 1 {% endhighlight %}In order to visualize large lists of specimen directions scatter plots
{% highlight matlab %} scatter(v,'upper') {% endhighlight %}or contour plots may be helpful
{% highlight matlab %} contourf(v,'upper') {% endhighlight %}