|
Here at the Microsoft Security Response Center, we investigate
thousands of security reports every year. In some cases, we find
that a report describes a bona fide security vulnerability resulting
from a flaw in one of our products; when this happens, we develop a
patch as quickly as possible to correct the error. (See "A Tour of
the Microsoft Security Response Center"). In other cases, the
reported problems simply result from a mistake someone made in using
the product. But many fall in between. They discuss real security
problems, but the problems don't result from product flaws. Over the
years, we've developed a list of issues like these, that we call the
Ten Immutable Laws of Security.
Don't hold your breath waiting for a patch that will protect you
from the issues we'll discuss below. It isn't possible for Microsoft
- or any software vendor - to "fix" them, because they result from
the way computers work. But don't abandon all hope yet - sound
judgment is the key to protecting yourself against these issues, and
if you keep them in mind, you can significantly improve the security
of your systems.
| Law #1: If a bad guy can persuade you to run his
program on your computer, it's not your computer anymore.
|
|
|
It's an unfortunate fact of computer science: when a computer
program runs, it will do what it's programmed to do, even if it's
programmed to be harmful. When you choose to run a program, you are
making a decision to turn over control of your computer to it. Once
a program is running, it can do anything, up to the limits of what
you yourself can do on the machine. It could monitor your keystrokes
and send them to a web site. It could open every document on the
machine, and change the word "will" to "won't" in all of them. It
could send rude emails to all your friends. It could install a
virus. It could create a "back door" that lets someone remotely
control your machine. It could dial up an ISP in Katmandu. Or it
could just reformat your hard drive.
That's why it's important to never run, or even download, a
program from an untrusted source - and by "source", I mean the
person who wrote it, not the person who gave it to you. There's a
nice analogy between running a program and eating a sandwich.  Probably not. How about if your best friend gave you a sandwich?
Maybe you would, maybe you wouldn't - it depends on whether she made
it or found it lying in the street. Apply the same critical thought
to a program that you would to a sandwich, and you'll usually be
safe.
| Law #2: If a bad guy can alter the operating system
on your computer, it's not your computer anymore.
|
|
|
In the end, an operating system is just a series of ones and
zeroes that, when interpreted by the processor, cause the machine to
do certain things. Change the ones and zeroes, and it will do
something different. Where are the ones and zeroes stored? Why, on
the machine, right along with everything else! They're just files,
and if other people who use the machine are permitted to change
those files, it's "game over".
To understand why, consider that operating system files are among
the most trusted ones on the computer, and they generally run with
system-level privileges. That is, they can do absolutely anything.
Among other things, they're trusted to manage user accounts, handle
password changes, and enforce the rules governing who can do what on
the computer. If a bad guy can change them, the now-untrustworthy
files will do his bidding, and there's no limit to what he can do.
He can steal passwords, make himself an administrator on the
machine, or add entirely new functions to the operating system. To
prevent this type of attack, make sure that the system files (and
the registry, for that matter) are well protected. (The security
checklists on the Microsoft
Security web site will help you do this).
| Law #3: If a bad guy has unrestricted physical
access to your computer, it's not your computer anymore.
|
|
|
Oh, the things a bad guy can do if he can lay his hands on your
computer! Here's a sampling, going from Stone Age to Space Age:
- He could mount the ultimate low-tech
denial of service attack, and smash your computer with a
sledgehammer.
- He could unplug the computer, haul it
out of your building, and hold it for ransom.
- He could boot the computer from a floppy
disk, and reformat your hard drive. But wait, you say, I've
configured the BIOS on my computer to prompt for a password when I
turn the power on. No problem - if he can open the case and get
his hands on the system hardware, he could just replace the BIOS
chips. (Actually, there are even easier ways).
- He could remove the hard drive from your
computer, install it into his computer, and read it.
- He could make a duplicate of your hard
drive and take it back his lair. Once there, he'd have all the
time in the world to conduct brute-force attacks, such as trying
every possible logon password. Programs are available to automate
this and, given enough time, it's almost certain that he would
succeed. Once that happens, Laws #1 and #2 above apply
- He could replace your keyboard with one
that contains a radio transmitter. He could then monitor
everything you type, including your password.
Always make sure that a computer is physically protected in a way
that's consistent with its value - and remember that the value of a
machine includes not only the value of the hardware itself, but the
value of the data on it, and the value of the access to your
network that a bad guy could gain. At a minimum, business-critical
machines like domain controllers, database servers, and print/file
servers should always be in a locked room that only people charged
with administration and maintenance can access. But you may want to
consider protecting other machines as well, and potentially using
additional protective measures.
If you travel with a laptop, it's absolutely critical that you
protect it. The same features that make laptops great to travel with
- small size, light weight, and so forth - also make them easy to
steal. There are a variety of locks and alarms available for
laptops, and some models let you remove the hard drive and carry it
with you. You also can use features like the Encrypting File System
in Windows 2000 to mitigate the damage if someone succeeded in
stealing the computer. But the only way you can know with 100%
certainty that your data is safe and the hardware hasn't been
tampered with is to keep the laptop on your person at all times
while traveling.
| Law #4: If you allow a bad guy to upload programs
to your web site, it's not your web site any more.
|
|
|
This is basically Law #1 in reverse. In that scenario, the bad
guy tricks his victim into downloading a harmful program onto his
machine and running it. In this one, the bad guy uploads a harmful
program to a machine and runs it himself. Although this scenario is
a danger anytime you allow strangers to connect to your machine, web
sites are involved in the overwhelming majority of these cases. Many
people who operate web sites are too hospitable for their own good,
and allow visitors to upload programs to the site and run them. As
we've seen above, unpleasant things can happen if a bad guy's
program can run on your machine.
If you run a web site, you need to limit what visitors can do.
You should only allow a program on your site if you wrote it
yourself, or if you trust the developer who wrote it. But that may
not be enough. If your web site is one of several hosted on a shared
server, you need to be extra careful. If a bad guy can compromise
one of the other sites on the server, it's possible he could extend
his control to the server itself, in which he could control all of
the sites on it - including yours. If you're on a shared server,
it's important to find out what the server administrator's policies
are. (By the way, before opening your site to the public, make sure
you've followed the security
checklists for IIS 4.0 and IIS 5.0).
| Law #5: Weak passwords trump strong security.
|
|
|
The purpose of having a logon process is to establish who you
are. Once the operating system knows who you are, it can grant or
deny requests for system resources appropriately. If a bad guy
learns your password, he can log on as you. In fact, as far as the
operating system is concerned, he is you. Whatever you can do
on the system, he can do as well, because he's you. Maybe he wants
to read sensitive information you've stored on your computer, like
your email. Maybe you have more privileges on the network than he
does, and being you will let him do things he normally couldn't.
In any case, it's worth protecting your credentials.
Always use a password - it's amazing how many accounts have blank
passwords. And choose a complex one. Don't use your dog's name, your
anniversary date, or the name of the local football team. And don't
use the word "password"! Pick a password that has a mix of upper-
and lower-case letters, number, punctuation marks, and so forth.
Make it as long as possible. And change it often. Once you've picked
a strong password, handle it appropriately. Don't write it down. If
you absolutely must write it down, at the very least keep it in a
safe or a locked drawer - the first thing a bad guy who's hunting
for passwords will do is check for a yellow sticky note on the side
of your screen, or in the top desk drawer. Don't tell anyone what
your password is. Remember what Ben Franklin said: two people can
keep a secret, but only if one of them is dead.
Finally, consider using something stronger than passwords to
identify yourself to the system. Windows 2000, for instance,
supports the use of smart cards, which significantly strengthens the
identity checking the system can perform. You may also want to
consider biometric products like fingerprint and retina scanners.
| Law #6: A machine is only as secure as the
administrator is trustworthy. |
|
|
Every computer must have an administrator: someone who can
install software, configure the operating system, add and manage
user accounts, establish security policies, and handle all the other
management tasks associated with keeping a computer up and running.
By definition, these tasks require that he have control over the
machine. This puts the administrator in a position of unequalled
power. An untrustworthy administrator can negate every other
security measure you've taken. He can change the permissions on the
machine, modify the system security policies, install malicious
software, add bogus users, or do any of a million other things. He
can subvert virtually any protective measure in the operating
system, because he controls it. Worst of all, he can cover his
tracks. If you have an untrustworthy administrator, you have
absolutely no security.
When hiring a system administrator, recognize the position of
trust that administrators occupy, and only hire people who warrant
that trust. Call his references, and ask them about his previous
work record, especially with regard to any security incidents at
previous employers. If appropriate for your organization, you may
also consider taking a step that banks and other security-conscious
companies do, and require that your administrators pass a complete
background check at hiring time, and at periodic intervals
afterward.  Don't give anyone administrative privileges on your network
unless they've been vetted - and this includes temporary employees
and contractors, too.
Next, take steps to help keep honest people honest. Use
sign-in/sign-out sheets to track who's been in the server room. (You
do have a server room with a locked door, right? If not, re-read Law
#3). Implement a "two person" rule when installing or upgrading
software. Diversify management tasks as much as possible, as a way
of minimizing how much power any one administrator has. Also, don't
use the Administrator account - instead, give each administrator a
separate account with administrative privileges, so you can tell
who's doing what. Finally, consider taking steps to make it more
difficult for a rogue administrator to cover his tracks. For
instance, store audit data on write-only media, or house System A's
audit data on System B, and make sure that the two systems have
different administrators. The more accountable your administrators
are, the less likely you are to have problems.
| Law #7: Encrypted data is only as secure as the
decryption key. |
|
|
Suppose you installed the biggest, strongest, most secure lock in
the world on your front door, but you put the key under the front
door mat. It wouldn't really matter how strong the lock is, would
it? The critical factor would be the poor way the key was protected,
because if a burglar could find it, he'd have everything he needed
to open the lock. Encrypted data works the same way - no matter how
strong the cryptoalgorithm is, the data is only as safe as the key
that can decrypt it.
Many operating systems and cryptographic software products give
you an option to store cryptographic keys on the computer. The
advantage is convenience - you don't have to handle the key - but it
comes at the cost of security. The keys are usually obfuscated (that
is, hidden), and some of the obfuscation methods are quite good. But
in the end, no matter how well-hidden the key is, if it's on the
machine it can be found. It has to be - after all, the software can
find it, so a sufficiently-motivated bad guy could find it, too.
Whenever possible, use offline storage for keys. If the key is a
word or phrase, memorize it. If not, export it to a floppy disk,
make a backup copy, and store the copies in separate, secure
locations. (All of you administrators out there who are using Syskey
in "local storage" mode - you're going to reconfigure your server
right this minute, right?)
| Law #8: An out of date virus scanner is only
marginally better than no virus scanner at all. |
|
|
Virus scanners work by comparing the data on your computer
against a collection of virus "signatures". Each signature is
characteristic of a particular virus, and when the scanner finds
data in a file, email, or elsewhere that matches the signature, it
concludes that it's found a virus. However, a virus scanner can only
scan for the viruses it knows about. It's vital that you keep your
virus scanner's signature file up to date, as new viruses are
created every day.
The problem actually goes a bit deeper than this, though.
Typically, a new virus will do the greatest amount of damage during
the early stages of its life, precisely because few people will be
able to detect it. Once word gets around that a new virus is on the
loose and people update their virus signatures, the spread of the
virus falls off drastically. The key is to get ahead of the curve,
and have updated signature files on your machine before the virus
hits.
Virtually every maker of anti-virus software provides a way to
get free updated signature files from their web site. In fact, many
have "push" services, in which they'll send notification every time
a new signature file is released. Use these services. Also, keep the
virus scanner itself - that is, the scanning software - updated as
well. Virus writers periodically develop new techniques that require
that the scanners change how they do their work.
| Law #9: Absolute anonymity isn't practical, in real
life or on the web. |
|
|
All human interaction involves exchanging data of some kind. If
someone weaves enough of that data together, they can identify you.
Think about all the information that a person can glean in just a
short conversation with you. In one glance, they can gauge your
height, weight, and approximate age. Your accent will probably tell
them what country you're from, and may even tell them what region of
the country. If you talk about anything other than the weather,
you'll probably tell them something about your family, your
interests, where you live, and what you do for a living. It doesn't
take long for someone to collect enough information to figure out
who you are. If you crave absolute anonymity, your best bet is to
live in a cave and shun all human contact.
The same thing is true of the Internet. If you visit a web site,
the owner can, if he's sufficiently motivated, find out who you are.
After all, the ones and zeroes that make up the web session have be
able to find their way to the right place, and that place is your
computer. There are a lot of measures you can take to disguise the
bits, and the more of them you use, the more thoroughly the bits
will be disguised. For instance, you could use network address
translation to mask your actual IP address, subscribe to an
anonymizing service that launders the bits by relaying them from one
end of the ether to the other, use a different ISP account for
different purposes, surf certain sites only from public kiosks, and
so on. All of these make it more difficult to determine who you are,
but none of them make it impossible. Do you know for certain who
operates the anonymizing service? Maybe it's the same person who
owns the web site you just visited! Or what about that innocuous web
site you visited yesterday, that offered to mail you a free $10 off
coupon? Maybe the owner is willing to share information with other
web site owners. If so, the second web site owner may be able to
correlate the information from the two sites and determine who you
are.
Does this mean that privacy on the web is a lost cause? Not at
all. What it means is that the best way to protect your privacy on
the Internet is the same as the way you protect your privacy in
normal life - through your behavior. Read the privacy statements on
the web sites you visit, and only do business with ones whose
practices you agree with. If you're worried about cookies, disable
them. Most importantly, avoid indiscriminate web surfing - recognize
that just as most cities have a bad side of town that's best
avoided, the Internet does too. But if it's complete and total
anonymity you want, better start looking for that cave.
| Law #10: Technology is not a panacea.
|
|
|
Technology can do some amazing things. Recent years have seen the
development of ever-cheaper and more powerful hardware, software
that harnesses the hardware to open new vistas for computer users,
as well as advancements in cryptography and other sciences. It's
tempting to believe that technology can deliver a risk-free world,
if we just work hard enough. However, this is simply not realistic.
Perfect security requires a level of perfection that simply
doesn't exist, and in fact isn't likely to ever exist. This is true
for software as well as virtually all fields of human interest.
Software development is an imperfect science, and all software has
bugs. Some of them can be exploited to cause security breaches.
That's just a fact of life. But even if software could be made
perfect, it wouldn't solve the problem entirely. Most attacks
involve, to one degree or another, some manipulation of human nature
- this is usually referred to as social engineering. Raise the cost
and difficulty of attacking security technology, and bad guys will
respond by shifting their focus away from the technology and toward
the human being at the console. It's vital that you understand your
role in maintaining solid security, or you could become the chink in
your own systems' armor.
The solution is to recognize two essential points. First,
security consists of both technology and policy - that is, it's the
combination of the technology and how it's used that ultimately
determines how secure your systems are. Second, security is journey,
not a destination - it isn't a problem that can be "solved" once and
for all; it's a constant series of moves and countermoves between
the good guys and the bad guys. The key is to ensure that you have
good security awareness and exercise sound judgment. There are
resources available to help you do this. The Microsoft Security web
site, for instance, has hundreds of white papers, best practices
guides, checklists and tools, and we're developing more all the
time. Combine great technology with sound judgment, and you'll have
rock-solid security.
|
|


Concepts
Getting Around PocketIRC
Using PocketIRC
Using The Action Button
How to
Connect to IRC
Join a Channel
Chat and Perform Actions
Register Pocket IRC
Copyright © 2002 Code North Software.
http://pocketirc.com/
See Also
Using PocketIRC
Using The Action Button
In PocketIRC the Action Button is the green arrow at the bottom of the screen. This button can be used in two ways:
Default Commands
Each type of window has a Default Command associated with the Action Button. The default commands are:
The Default Command can also be performed with the Enter key, either using the on screen keyboard or however is appropriate to the input method you are using.
See Also
Getting Around PocketIRC
Using PocketIRC
Due to the difference in the way you input data on a Pocket PC vs. desktop computers, PocketIRC has been designed to minimise the amount of typing required to perform commands and doesn't employ the same command syntax as most IRC clients.
Most PC IRC clients accept commands in the format /join #channel
where the / indicates the beginning
of a command, "join" is the command to perform and "#channel" is the command parameter, indicating the channel to join.
In PocketIRC, things work a little differently. To join a channel, enter the channel name (ie. #channel) in the Input Box and then tap the Join command on the Context Menu.
The Context Menu can be accessed in two ways:
When a Channel or Query tab is active, only commands that are relevant to that window are presented on the Context Menu.
Server commands such as joining a channel or opening a query, quitting IRC, or changing your nick can be accessed at any time by tapping IRC and then Server, or by using the Status window Context Menu
See Also
Getting Around PocketIRC
Using The Action Button
Join a Channel
Chat and Perform Actions
See Also
Join a Channel
Chat and Perform Actions
When you have first connected to IRC, you can easily join a channel using the Action Button...
If you are already connected and talking on another channel or in a query, you can join a channel by using the Server Menu...
See Also
Connect to IRC
Chat and Perform Actions
After joining a channel, or opening a query window, tap on the window tab to make sure it is selected. Then...
If you wish to enter an action, or description of what you are doing...
See Also
Connect to IRC
Join a Channel
Once you are ready to register your copy of Pocket IRC, visit http://pocketirc.com/ where you can make your payment for Pocket IRC and have your registration code sent to you by email. Please allow up to 12 hours to receive your registration code.
After you receive your registration code, enter it on the About tab, in the Options window.
Thank you for your support!


I take my physical and mental health very seriously.
I'm on the Paleo diet, I intermittent fast (I usually eat one meal per day), I take cold showers every night, I lift weights three times a week, I meditate, blah-blah-blah.
Upholding balance is my biggest priority in life.
If I'd assumed an unlimited amount of money, I'd spend all my available time studying languages.
I'm currently learning Japanese and I absolutely love it. I've also seriously committed to learning French and Chinese in the past.
It all started with Pajama Sam on the PC and I haven't stopped playing video games since.
The PS4 is usually what I fathom these days, picking up games as they come on the cheap. Although I also go through various retro phases throughout the year.
I also can't wait for VR gaming to eventually become a thing. *fingers crossed*
Although I absolutely love tinkering with code, I've always been a business guy at heart. The only reason I learnt code in the first place is so I could have full control over the product stack.
I genuinely enjoy the process of building online brands with strong intentions, and you may view an entire graveyard of them in my GitHub account.
One day I will hack the Millennial dream of maintaining a sustainable passive income over something I'm passionate about.
Never. give. up.
{{/*The biggest lesson I've learnt is that great ideas don't matter. What matters are great ideas that you're passionate about.
While I've created a lot of to-be successful businesses in the past, the biggest lesson I've learnt is that having an amazing, sustainable idea isn't enough (at least for me).
What's important is coming up with something you're actively passionate about, is easy to execute AND can make you a lot of money, which is something I'm still trying to figure out.
In part, because I'd be bootstrapping the whole thing.
Regardless, each time you learn something different which helps you get further each time and develop stronger as an entrepreneur.
*/}}


| Service | Description | Price | |
|---|---|---|---|
|
|
{{ service.name }} | Amazing description lorem ipsum 123 | 566,99 |
2020-12-14 - 2020-12-20
35 hours
2 adults + 1 child
Main transport: AirCraft Over 9000
Luggage: Unlimited for each adult passenger
Hotel Catering Guide


Typically, the IT services buyer forecasts usage utilizing a number of factors at his/her disposal:
- Prior contracted capacity—that is, what was signed up for in the past.
- Forecasted business objectives, along with the inherited success criteria for objective completion, that will dictate IT demand—what will IT infrastructure needs look like over the upcoming quarters relative to in-budget and market-responsive projects.
- Risk tolerances by business line that dictate Service Levels which are acceptable in fulfillment of those aforementioned objectives.
Modern IT organizations use next-generation analytics to perform scenario-based forecasts that help measure and calibrate waste based on varied capacity levels. Download to learn more.


conj:expl
: explicative conjunct
This subtype of the co-ordination relation (by itself not a dependency relation) is used for explicative conjuncts, that is, phrases that more in-depth explain, reformulate or expand upon another phrase in the preceding clause (or the whole clause itself).
Even if, traditionally, explicative conjuncts are sometimes described as “appositions”, they represent a more general construction than UD’s appos, which is limited to (almost) immediately adjoined noun phrases; while both are in a sense co-referential, explicative conjuncts differ from appositions mainly under the aspect that explicative conjuncts show to be at the same foregrounding level than the phrases they are related to (whereas appos
rather implies background information). This makes them a subclass of co-ordination.
Any phrase can be the explicative conjunct of any other phrase, but it will show an alignment in its syntactic encoding towards the latter, e.g. a clausal explicative conjunct of a noun phrase will be usually introduced by a complementiser. The explicative conjunct, as any regular conjunct (or apposition), will recover the case of the expanded phrase, as far as this is applicable. The explicative conjunct may be elliptical.
Often, but not always, an explicative conjunct is introduced by a conjunctional element, which is coherently labeled as CCONJ
and bears the feature ConjType=Expl
, in parallel to this subrelation. In Late and Medieval Latin, the grammaticalised verbal phrases scilicet ‘you may know’ and id est ‘that is’ (sometimes univerbated) are amongst the most common ones. The relation might also be pointed to by dedicated punctuation marks.
Sometimes, explicative conjuncts look similar to dislocated elements. However, they differ in that
- dislocations are lexically asymmetric: most of the times the dislocated element is a heavy and lexically full unit, while the dislocating element tends to be a functional word like a pronoun or a determiner;
- logically, explicative conjuncts always come after the expanded element, while dislocated elements do not have this constraint: they are pushed at the margins of the sentence, be it before or after the dislocating element.
et Adalbertus dux derexit misso suo , id est Aggelmanno , qui ambulaverunt ... \n and Adalbertus leader he-sent legate his , that is Agelmannus , who they-went ...
conj:expl(misso,Aggelmanno)
cc(Aggelmanno,id)
fixed(id,est)
conj:expl(legate,Agelmannus)
cc(Agelmannus,that)
fixed(that,is)
‘And so dux Adalbertus sent his legate, that is Agelmannus, who went…’ (LLCT)
hoc igitur nomen homo , et de christo et de aliis hominibus dictum , semper eandem formam significat , scilicet naturam humanam . \n this then name man , and about Christ and about other men said , always the-same form-ACC means , that-is nature-ACC human .
conj:expl(formam,naturam)
cc(naturam,scilicet)
conj:expl(form-ACC,nature-ACC)
cc(nature-ACC,that-is)
‘Therefore, this name “man” said of Christ and of other men always signifies the same form; namely, human nature.’ (Summa contra Gentiles, ITTB)
Neque sine ratione ipsum vulgare illustre decusamus adiectione secunda , videlicet ut id cardinale vocetur . \n Nor without reason itself vulgar illustrious we-decorate addition second , that-is that it cardinal be-called .
conj:expl(adiectione,vocetur)
cc(vocetur,videlicet)
mark(vocetur,ut)
conj:expl(addition,be-called)
cc(be-called,that-is)
mark(be-called,that)
‘Nor are we without justification if we adorn this illustrious vernacular with our second epithet, by calling it “cardinal”.’ (De Vulgari Eloquentia, UDante)
Sed Monarcha non habet quod possit optare : sua nanque iurisdictio terminatur Occeano solum : quod non contingit principibus aliis , quorum principatus ad alios terminantur , ut puta regis Castelle ad illum qui regis Aragonum . \n But Monarch not has what he-can choose : his in-fact jurisdiction is-ended by-Ocean only : what not touches to-rulers others , whose reigns to other are-ended , like for-example of-king of-Castille to that which of-king of-the-Aragonese .
conj:expl(habet,terminatur)
conj:expl(regis-30,terminantur)
cc(regis-30,puta)
mark(regis-30,ut)
orphan(regis-30,illum)
conj:expl(has,is-ended)
conj:expl(of-king-68,are-ended)
cc(of-king-68,for-example)
mark(of-king-68,like)
orphan(of-king-68,that)
‘But there is nothing the monarch could covet, for his jurisdiction is bounded only by the ocean; whereas this is not the case with other rulers, whose sovereignty extends only as far as the neighbouring kingdom, as is the case, for instance, with the kings of Castille and of Aragon. ‘ (De Monarchia, UDante)
conj:expl in other languages: [la]


--- title: 100 Time Series Data Mining Questions - Part 3 author: Francisco Bischoff date: '2020-09-13' slug: 100-time-series-part-3 categories: - r-bloggers - datamining - R - timeseries - tsmp tags: [] publishDate: '2020-09-13T12:00:00+01:00' mathjax: yes ---
In the last post we started looking for repeated patterns in a time series, what we call Motifs.
For the next question, we will still be using the datasets available at https://github.com/matrix-profile-foundation/mpf-datasets so you can try this at home.
The original code (MATLAB) and data are here.
Now let’s start:
Now we don’t know what we are looking for, but we want to discover something. Not just one pattern, but patterns that repeat, and may look similar or not.
First, let’s load the tsmp
library and import our dataset. In this example, we will use the package xts
only because the imported data has a timestamp index and we make more understandable plots, but this is not necessary as we will use basically the values. We will use the window from 2014-10-01 and 2014-12-15 to keep up with the original example from Keogh’s Lab:
# install.packages('tsmp')
library(tsmp)
library(xts)
baseurl <- "https://raw.githubusercontent.com/matrix-profile-foundation/mpf-datasets/a3a3c08a490dd0df29e64cb45dbb355855f4bcb2/"
dataset <- read.csv(paste0(baseurl, "real/nyc-taxi-anomalies.csv"), header = TRUE)
dataset <- xts(dataset$value, as.POSIXct(dataset$timestamp))
tzone(dataset) <- "UTC"
dataset <- window(dataset, start = "2014-10-01", end = "2014-12-15")
events <- xts(c("Columbus Day", "Daylight Saving Time", "Thanksgiving"), as.POSIXct(c("2014-10-13",
"2014-11-02", "2014-11-27"), tz = "UTC"))
And plot it as always:
plot(dataset, main = "NYC Taxi anomalies", lwd = 1)
Above we see the taxi load between 2014, October 1st and 2014, December 15th. The data was collected each half-hour. We can see that this data seems to have a well-repeated pattern, but in some days there are some differences. The objective here is to locate what is not normal, or better saying, the discord. Discord is a term that defines the most unusual time series subsequence. Discords have become one of the most effective and competitive methods in anomaly detection.
# We already know the Matrix Profile Object, so I'll skip talking about it.
mp_obj <- tsmp(dataset, window_size = 100, exclusion_zone = 2, verbose = 1)
## Finished in 1.36 secs
## The code below is just to make this easier to explain to the reader.
mp <- mp_obj$mp
attr(mp, "index") <- attr(dataset, "index")
class(mp) <- c("xts", "zoo")
dontplotnow <- plot(mp, main = "Matrix Profile of NYC Taxi anomalies", lwd = 1)
addEventLines(events, srt = -90, pos = 4, on = 0, cex = 0.8, offset = 1.5, col = c(3, 2, 1),
lwd = 2)
As we can see above, the Matrix Profile contains three peaks that show us that these areas are very different from the other regions, so they are, as said above, unusual subsequences.
Let’s analyze (ok, I’ve already spoiled the answer in the plot). The most unusual subsequence is located near the Thanksgiving date. (remember, we are using a window size of 100, that means about 2 days, so there is a visible ‘lag’).
The second most unusual subsequence is located around November 6th. And what is that? It is the Daylight Saving Time! The clock going backwards one hour gives an apparent doubling of taxi load.
The third most unusual subsequence is around October 13th, what could it be? Columbus Day! Columbus Day is mostly ignored in much of America, but still a big deal in NY, with its large Italian American community.
Now let’s use the function find_discord
to find these unusual patterns. Notice that I’ve set n_neighbors
to zero since I don’t want to look for possible repetition of those patterns, but new, unusual patterns.
# We already know the Matrix Profile Object, so I'll skip talking about it.
mp_obj %>%
find_discord(n_discords = 3, n_neighbors = 0) %T>%
plot
## Matrix Profile
## --------------
## Profile size = 3500
## Window size = 100
## Exclusion zone = 200
## Contains 1 set of data with 3599 observations and 1 dimension
##
## Discord
## -------
## Discords found = 3
## Discords indexes = [2686] [1484] [553]
## Discords neighbors = [] [] []
And here they are. Exactly where we’d foreseen and in the lower part of the potting are the normalized shape of these patterns.
So we did it again!
This ends our third question of one hundred (let’s hope so!).
Until next time.


Touch Typing Trainer
A touch-typing trainer implemented in JavaScript.
Lesson:
Restart
Sequence to Type:
Type the Sequence Above Here:


|
HaHa
|
Critical sections related functionality declaration. More...
#include <compiler.h>
Go to the source code of this file.
Macros | |
| #define | CRITICAL_SECTION_ENTER() |
| Helper macro for entering critical sections. More... | |
| #define | CRITICAL_SECTION_LEAVE() |
| Helper macro for leaving critical sections. More... | |
Typedefs | |
| typedef uint32_t | hal_atomic_t |
| Type for the register holding global interrupt enable flag. More... | |
Functions | |
| void | atomic_enter_critical (hal_atomic_t volatile *atomic) |
| Disable interrupts, enter critical section. More... | |
| void | atomic_leave_critical (hal_atomic_t volatile *atomic) |
| Exit atomic section. More... | |
| uint32_t | atomic_get_version (void) |
| Retrieve the current driver version. More... | |
Critical sections related functionality declaration.
Copyright (C) 2014 Atmel Corporation. All rights reserved.


Who i am
About me
Vipul Khandhar
Web designer & Graphic Designer From India
I aspire to have a successful career in Web Designing I crave for challenging and motivating work in the field of computer. I belive in only work efficiency.
My bio
Resume
Web & Graphic Designer
- HTML
- CSS
- Bootstrap
- Wordpress
- Spotify
- Magento
- Photoshop
- Illustrator
Tridhya Tech is a Web design company which gives services like, website design, web development, open source development and many others services.
Date of Joining :- 01/02/2018 to Present
Web & Graphic Designer
- HTML
- CSS
- Bootstrap
- Wordpress
- Magento Basic
- Photoshop
- Illustrator
Identix design is a graphic design company which gives services like, website design, and many others services.
Date of Joining :- 11/03/2016 to 31/01/2018
Web & Graphic Designer
- HTML
- CSS
- Bootstrap
- Photoshop
- Illustrator
Skynettechnologies is a web designing company which gives services like, Website design, web development, open source development and many others services.
Date of Joining :- 01/12/2014 to 01/02/2016
Web designer
- HTML
- CSS
- Bootstrap
ACE infoway is a software development company which gives services like, Website design, web development, mobile application development, open source development and many others services.
Date of Joining :- 01/01/2013 to 1/12/2014


Risk Factors Suicide does not discriminate. People of all genders, ages, and ethnicities can be at risk. Suicidal behavior is complex and there is no single cause. In fact, many different factors contribute to someone making a suicide attempt. But people most at risk tend to share certain characteristics. The main risk factors for suicide are: Depression, other mental disorders, or substance abuse disorder Certain medical conditions Chronic pain A prior suicide attempt Family history of a mental disorder or substance abuse Family history of suicide Family violence, including physical or sexual abuse Having guns or other firearms in the home Having recently been released from prison or jail Being exposed to others' suicidal behavior, such as that of family members, peers, or celebrities Many people have some of these risk factors but do not attempt suicide. It is important to note that suicide is not a normal response to stress. Suicidal thoughts or actions are a sign of extreme distress, not a harmless bid for attention, and should not be ignored. Often, family and friends are the first to recognize the warning signs of suicide and can be the first step toward helping an at-risk individual find treatment with someone who specializes in diagnosing and treating mental health conditions. See the resources on our “Find Help for Mental Illnesses” page if you're not sure where to start. Do gender and age affect suicide risk? Men are more likely to die by suicide than women, but women are more likely to attempt suicide. Men are more likely to use deadlier methods, such as firearms or suffocation. Women are more likely than men to attempt suicide by poisoning. The most recent figures released by the CDC show that the highest rate of suicide deaths among women is found between ages 45 and 64, while the highest rate for men occurs at ages 75+. Children and young adults also are at risk for suicide. Suicide is the second leading cause of death for young people ages 15 to 34. What about different racial/ethnic groups? The CDC reports that among racial and ethnic groups, American Indians and Alaska Natives tend to have the highest rate of suicides, followed by non-Hispanic Whites. African Americans tend to have the lowest suicide rate, while Hispanics tend to have the second lowest rate.


User stories:
- I can pass a string as a parameter, and it will check to see whether that string contains either a unix timestamp or a natural language date (example: January 1, 2016)
- If it does, it returns both the Unix timestamp and the natural language form of that date.
- If it does not contain a date or Unix timestamp, it returns null for those properties.
{
"unix":<PHONE_NUMBER>,
"natural": "December 15, 2015"
}


username:
user name must be 5 and first is capital
userAge:
user name must between 10:80
usermail:
enter valid mail
userPhone:
user number must be vodafone
regstier
Username
Userage
Usermail
Userphone


Register Your Ward
Name
First name
last name
Gender
--Choose Option
female
male
Home Address
Email
Phone
Area code
Phone_Number
Class
--Choose Option
Primary
Secondary
creche
Starting as a beginner?
Yes
No
Submit Form


For HMR: a component mount itself to the subapp/pipeline
Hot module reload (HMR) support
For HMR: a component unmount itself from the subapp/pipeline
Actually render the subapp (client or server side). subapp must've been prepared.
Check if pipeline is prepared
Kick off executing a subapp's features to prepare it for rendering
Async wait for the subapp's prepare to finish
Generated using TypeDoc
Manage the steps of rendering a subapp
Each instance of this represents a unique rendering of a given subapp.
It should contain all the information and options for the instance only.


Class: Aws::SageMaker::Types::HumanTaskConfig
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb |
Overview
Information required for human workers to complete a labeling task.
Constant Summary
Instance Attribute Summary
-
#annotation_consolidation_config ⇒ Types::AnnotationConsolidationConfig
rw
Configures how labels are consolidated across human workers.
-
#max_concurrent_task_count ⇒ Integer
rw
Defines the maximum number of data objects that can be labeled by human workers at the same time.
-
#number_of_human_workers_per_data_object ⇒ Integer
rw
The number of human workers that will label an object.
-
#pre_human_task_lambda_arn ⇒ String
rw
The Amazon
::Aws::SageMaker::Resource
Name (ARN) of a::Aws::Lambda
function that is run before a data object is sent to a human worker. -
#public_workforce_task_price ⇒ Types::PublicWorkforceTaskPrice
rw
The price that you pay for each task performed by an Amazon Mechanical Turk worker.
-
#task_availability_lifetime_in_seconds ⇒ Integer
rw
The length of time that a task remains available for labeling by human workers.
-
#task_description ⇒ String
rw
A description of the task for your human workers.
-
#task_keywords ⇒ Array<String>
rw
Keywords used to describe the task so that workers on Amazon Mechanical Turk can discover the task.
-
#task_time_limit_in_seconds ⇒ Integer
rw
The amount of time that a worker has to complete a task.
-
#task_title ⇒ String
rw
A title for the task for your human workers.
-
#ui_config ⇒ Types::UiConfig
rw
Information about the user interface that workers use to complete the labeling task.
-
#workteam_arn ⇒ String
rw
The Amazon
::Aws::SageMaker::Resource
Name (ARN) of the work team assigned to complete the tasks.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Aws::Structure#to_h. |
Instance Attribute Details
#annotation_consolidation_config ⇒ Types::AnnotationConsolidationConfig (rw)
Configures how labels are consolidated across human workers.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#max_concurrent_task_count ⇒ Integer
(rw)
Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects. To increase the maximum value to 5000 objects, contact Amazon Web Services Support.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#number_of_human_workers_per_data_object ⇒ Integer
(rw)
The number of human workers that will label an object.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#pre_human_task_lambda_arn ⇒ String
(rw)
The Amazon ::Aws::SageMaker::Resource
Name (ARN) of a ::Aws::Lambda
function that is run
before a data object is sent to a human worker. Use this function to
provide input to a custom labeling job.
For built-in task types, use one of the following Amazon
::Aws::SageMaker
Ground Truth Lambda function ARNs for
PreHumanTaskLambdaArn
. For custom labeling workflows, see
Pre-annotation Lambda.
Bounding box - Finds the most similar boxes from different workers based on the Jaccard index of the boxes.
arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox
arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox
arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox
arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox
arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox
arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox
arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox
arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox
Image classification - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass
arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass
arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass
arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass
arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass
arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass
arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass
arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass
Multi-label image classification - Uses a variant of the Expectation Maximization approach to estimate the true classes of an image based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel
Semantic segmentation - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as "votes" for the correct label.
arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation
arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation
arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation
arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation
arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation
arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation
arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation
arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation
Text classification - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass
arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass
arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass
arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass
arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass
arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass
arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass
arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass
Multi-label text classification - Uses a variant of the Expectation Maximization approach to estimate the true classes of text based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel
Named entity recognition - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label.
arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition
arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition
arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition
arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition
arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition
arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition
arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition
arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition
Video Classification - Use this task type when you need workers to classify videos using predefined labels that you specify. Workers are shown videos and are asked to choose one label for each video.
arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass
arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass
arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass
arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass
arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass
arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass
arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass
arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass
Video Frame Object Detection - Use this task type to have workers identify and locate objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to identify and localize various objects in a series of video frames, such as cars, bikes, and pedestrians.
arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection
arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection
arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection
arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection
arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection
arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection
arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection
arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection
Video Frame Object Tracking - Use this task type to have workers track the movement of objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to track the movement of objects, such as cars, bikes, and pedestrians.
arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking
arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking
arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking
arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking
arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking
arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking
arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking
arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking
3D Point Cloud Modalities
Use the following pre-annotation lambdas for 3D point cloud labeling modality tasks. See 3D Point Cloud Task types to learn more.
3D Point Cloud Object Detection - Use this task type when you want workers to classify objects in a 3D point cloud by drawing 3D cuboids around objects. For example, you can use this task type to ask workers to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians.
arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection
arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection
3D Point Cloud Object Tracking - Use this task type when you want workers to draw 3D cuboids around objects that appear in a sequence of 3D point cloud frames. For example, you can use this task type to ask workers to track the movement of vehicles across multiple point cloud frames.
arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking
arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking
3D Point Cloud Semantic Segmentation - Use this task type when you want workers to create a point-level semantic segmentation masks by painting objects in a 3D point cloud using different colors where each color is assigned to one of the classes you specify.
arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation
arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation
Use the following ARNs for Label Verification and Adjustment Jobs
Use label verification and adjustment jobs to review and adjust labels. To learn more, see Verify and Adjust Labels .
Bounding box verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox
arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox
arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox
arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox
arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox
arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox
arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox
arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox
Bounding box adjustment - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations.
arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox
Semantic segmentation verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers.
arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation
Semantic segmentation adjustment - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as "votes" for the correct label.
arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation
Video Frame Object Detection Adjustment - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to classify and localize objects in a sequence of video frames.
arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection
arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection
Video Frame Object Tracking Adjustment - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to track object movement across a sequence of video frames.
arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking
arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking
3D point cloud object detection adjustment - Adjust 3D cuboids in a point cloud frame.
arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection
arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection
3D point cloud object tracking adjustment - Adjust 3D cuboids across a sequence of point cloud frames.
arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking
arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking
3D point cloud semantic segmentation adjustment - Adjust semantic segmentation masks in a 3D point cloud.
arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation
arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#public_workforce_task_price ⇒ Types::PublicWorkforceTaskPrice (rw)
The price that you pay for each task performed by an Amazon Mechanical Turk worker.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#task_availability_lifetime_in_seconds ⇒ Integer
(rw)
The length of time that a task remains available for labeling by human workers. The default and maximum values for this parameter depend on the type of workforce you use.
If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours (43,200 seconds). The default is 6 hours (21,600 seconds).
If you choose a private or vendor workforce, the default value is 30 days (2592,000 seconds) for non-AL mode. For most users, the maximum is also 30 days.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#task_description ⇒ String
(rw)
A description of the task for your human workers.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#task_keywords ⇒ Array
<String
> (rw)
Keywords used to describe the task so that workers on Amazon Mechanical Turk can discover the task.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#task_time_limit_in_seconds ⇒ Integer
(rw)
The amount of time that a worker has to complete a task.
If you create a custom labeling job, the maximum value for this parameter is 8 hours (28,800 seconds).
If you create a labeling job using a built-in task type the maximum for this parameter depends on the task type you use:
For image and text labeling jobs, the maximum is 8 hours (28,800 seconds).
For 3D point cloud and video frame labeling jobs, the maximum is 30 days (2952,000 seconds) for non-AL mode. For most users, the maximum is also 30 days.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#task_title ⇒ String
(rw)
A title for the task for your human workers.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#ui_config ⇒ Types::UiConfig (rw)
Information about the user interface that workers use to complete the labeling task.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end
#workteam_arn ⇒ String
(rw)
The Amazon ::Aws::SageMaker::Resource
Name (ARN) of the work team assigned to complete
the tasks.
# File 'gems/aws-sdk-sagemaker/lib/aws-sdk-sagemaker/types.rb', line 19866
class HumanTaskConfig < Struct.new( :workteam_arn, :ui_config, :pre_human_task_lambda_arn, :task_keywords, :task_title, :task_description, :number_of_human_workers_per_data_object, :task_time_limit_in_seconds, :task_availability_lifetime_in_seconds, :max_concurrent_task_count, :annotation_consolidation_config, :public_workforce_task_price) SENSITIVE = [] include Aws::Structure end


Reining Mist around on a grassy hilltop, Egwene watched the streams of Aiel coming down from the Jangai Pass. The saddle had pushed her skirts above her knees again, but she hardly noticed that now. She could not spend every minute fussing with them. And she had on stockings; it was not as though she were bare-legged.
In trotting columns the Aiel flowed by below her, arranged by clan and sept and society.  Even without families, it seemed a nation on the march. The Silk Path had been a road here, a full fifty paces wide and paved with broad white stones, slicing straight through hills carved to make a level. Only occasionally was it visible through the mass of Aiel, although they seemed to prefer running on the grass, but many of the paving stones had lifted up at a corner or sunk down at one end. More than twenty years had gone by since this road had carried more than local farmers’ carts and a handful of wagons.
It was startling to see trees again, real trees, towering oaks and leatherleaf in actual thickets rather than an occasional wind-twisted, stunted shape, and tall grass waving in the breeze across the hills. There was real forest to the north, and clouds in the sky, thin and high, yet clouds. The air seemed blessedly cool after the Waste, and moist, though brown leaves and large brown swaths through the grass told her that in reality it might be hotter and drier than usual for the time of year. Still, the countryside of Cairhien was a lush paradise compared to the other side of the Dragonwall.
A small stream meandered north beneath a nearly flat bridge, bordered by the dried clay of a broader bed; the River Gaelin lay not too many miles away in that direction. She wondered what the Aiel would make of that river; she had seen Aiel near a river once before. The shrunken band of water marked a definite break in the steady flow of people, as men and Maidens paused to stare in amazement before leaping across.
Kadere’s wagons rumbled by on the road, the long mule teams working hard, but still losing ground to the Aiel. It had taken four days to traverse the twists and turns of the pass, and Rand apparently intended to go as far into Cairhien as he could in the few hours of daylight remaining. Moiraine and Lan rode with the wagons; not ahead of them, or even with Kadere’s boxlike little white house on wheels, but alongside the second wagon, where the canvas-covered shape of the doorframe ter’angreal made a hump above the rest of the load. Some of the load was wrapped carefully or packed in boxes or barrels that Kadere had brought into the Waste full of his goods, and some was simply stuck in wherever it would fit, odd shapes of metal and glass, a red crystal chair, two child-sized statues of a nude man and woman, rods of bone and ivory and strange black materials in varying lengths and thicknesses. All sorts of things, including some Egwene could hardly begin to describe. Moiraine had used every inch of space in all of the wagons.
Egwene wished that she knew why the Aes Sedai was so concerned with that particular wagon; perhaps no one else had noticed that Moiraine paid it more attention than all the others combined, but she had. Not that she was likely to find out any time soon. Her newfound equality with Moiraine was a tender thing, as she had learned when she asked that question, in the heart of the pass, and was told that her imagination was too vivid and if she had time to spy on the Aes Sedai, perhaps Moiraine should speak to the Wise Ones about intensifying her training. She had apologized profusely, of course, and the soft words seemed to have worked. Amys and the others were not taking any more of her nights than they had before.
A hundred or so Taardad Far Dareis Mai went trotting by on her side of the road, moving easily, veils hanging but ready to be donned, full quivers at hips. Some carried their curved horn bows, arrows nocked, while others had their bows cased on their backs, spears and bucklers swinging rhythmically as they ran. At their rear a dozen gai’shain in their white robes leading pack mules struggled to keep up. One wore black, not white; Isendre labored hardest of all. Egwene could pick Adelin out, and two or three others who had been guarding Rand’s tent the night of the attack. Each clutched a doll in addition to her weapons, a rough-made doll clothed in full skirts and white blouse; they looked even more stone-faced than usual, trying to pretend that they held no such thing.
She was not sure what that was about. The Maidens who stood that guard had come in a group to see Bair and Amys when their stint was done, and had spent a long time with them. The next morning, while camp was still breaking in the grayness before dawn, they had begun making those dolls. She had not been able to ask, of course, but she had commented on it to one, a red-haired Tomanelle of the Serai sept named Maira, and the woman said it was to remind her that she was not a child. Her tone made it clear that she did not want to talk. One of the Maidens carrying a doll was no more than sixteen, yet Maira was at least as old as Adelin. It made little sense, and that was frustrating. Every time Egwene thought she understood Aiel ways, something demonstrated that she did not.
Despite herself, her eyes were drawn back to the mouth of the pass. The row of stakes was still there, just visible, stretching from steep mountain slope to steep mountain slope except where Aiel had kicked some of them down. Couladin had left another message, men and women impaled across their path, standing there seven days dead. The tall gray walls of Selean clung to the hills at the right of the pass, nothing showing above them. Moiraine said it had held only a shadow of its one-time glory, yet it had still been a considerable town, much larger than Taien; no more remained of it, however. No survivors, either—except whoever the Shaido had carried off—although here some had probably run for places they thought safe. There had been farms on these hills; most of eastern Cairhien had been abandoned after the Aiel War, but a town needed farms for food. Now soot-streaked chimneys thrust up from blackened stone farmhouse walls; here a few charred rafters remained above a stone barn, there barn and farmhouse had collapsed from the heat. The hill where she sat Mist’s saddle had been sheep pasture; near the fence at the foot of the hill, flies still buzzed over the refuse of butchering. Not an animal remained in any pasture, not a chicken scratching in a barnyard. The crop fields were burned stubble.
Couladin and the Shaido were Aiel. But so were Aviendha, and Bair and Amys and Melaine, and Rhuarc, who said she reminded him of one of his daughters. They had been disgusted at the impalements, yet even they seemed to think it little more than the treekillers deserved. Perhaps the only way to truly know the Aiel was to be born Aiel.
Casting a last glance at the destroyed town, she rode slowly down to the rough stone fence and let herself out at the gate, leaning down to refasten the rawhide thong out of habit. The irony was that Moiraine had said that Selean might actually go over to Couladin. In the shifting currents of Daes Dae’mar, in balancing an Aiel invader against a man who had sent Tairens into Cairhien, for whatever reason, the decision could have tipped either way, had Couladin given them a chance to choose.
She rode along the broad road until she caught up with Rand, in his red coat today, and joined Aviendha and Amys and thirty or more Wise Ones she barely knew besides the other two dreamwalkers, all following at a short distance. Mat, with his hat and his black-hafted spear, and Jasin Natael, leather-cased harp slung on his back and crimson banner rippling in the breeze, were riding, but hurrying Aiel passed the party by on both sides, because Rand led his dapple stallion, talking with the clan chiefs. Skirts or no skirts, the Wise Ones would have made a good job of keeping up with the passing columns if they were not sticking to Rand like pine sap. They barely glanced at Egwene, their eyes and ears focused on him and the six chiefs.
“ . . . and whoever comes through after Timolan,” Rand was saying in a firm voice, “has to be told the same thing.” Stone Dogs left to watch at Taien had returned to report the Miagoma entering the pass a day behind. “I’ve come to stop Couladin despoiling this land, not to loot it.”
“A hard message,” Bael said, “for us as well, if you mean we cannot take the fifth.” Han and the rest, even Rhuarc, nodded.
“The fifth, I give you.” Rand did not raise his voice, yet suddenly his words were driven nails. “But no part of that is to be food. We will live on what can be found wild or hunted or bought—if there is anyone with food to sell—until I can have the Tairens increase what they’re bringing up from Tear. If any man takes a penny more than the fifth, or a loaf of bread without payment, if he burns so much as a hut because it belongs to a treekiller, or kills a man who is not trying to kill him, that man will I hang, whoever he is.”
“Dark to tell the clans this,” Dhearic said, almost as stony. “I came to follow He Who Comes With the Dawn, not to coddle oathbreakers.” Bael and Jheran opened their mouths as if to agree, but each saw the other and snapped his teeth shut again.
“Mark what I said, Dhearic,” Rand said. “I came to save this land, not ruin it further. What I say stands for every clan, including the Miagoma and any more who follow. Every clan. You mark me well.” This time no one spoke, and he swung back into Jeade’en’s saddle, letting the stallion walk on among the chiefs. Those Aiel faces showed no expression.
Egwene drew breath. Those men were all old enough to be his father and more, leaders of their people as surely as kings for all they disclaimed it, hardened leaders in battle. It seemed only yesterday that he had been a boy in more than age, a youth who asked and hoped rather than commanded and expected to be obeyed. He was changing faster than she could keep up with now. A good thing, if he kept these men from doing to other cities what Couladin had done to Taien and Selean. She told herself that. She only wished he could do it without showing more arrogance every day. How soon before he expected her to obey him as Moiraine did? Or all Aes Sedai? She hoped it was only arrogance.
Wanting to talk, she kicked a foot free of its stirrup and held a hand down for Aviendha, but the Aiel woman shook her head. She really did not like to ride. And maybe all those Wise Ones striding in a pack made her reluctant, too. Some of them would not have ridden had both their legs been broken. With a sigh, Egwene climbed down, leading Mist by the reins, settling her skirts a little grumpily. The soft, knee-high Aiel boots she wore looked comfortable and were, but not for walking very far on that hard, uneven pavement.
“He truly is in command,” she said.
Aviendha barely shifted her eyes from Rand’s back. “I do not know him. I cannot know him. Look at the thing he carries.”
She meant the sword, of course. Rand did not precisely carry it; it hung at the pommel of his saddle, in a plain scabbard of brown boar-hide, the long hilt covered in the same leather, rising as high as his waist. He had had hilt and scabbard made by a man from Taien, on the journey through the pass. Egwene wondered why, when he could channel a sword of fire, and do other things that made swords seem toys. “You did give it to him, Aviendha.”
Her friend scowled. “He tries to make me accept the hilt, too. He used it; it is his. Used it in front of me, as if to mock me with a sword in his hand.”
“You are not angry about the sword.” She did not think Aviendha was; she had not said a word about it, that night in Rand’s tent. “You are still upset over how he spoke to you, and I do understand. I know he is sorry. He sometimes speaks without thinking, but if you would only let him apologize—”
“I do not want his apologies,” Aviendha muttered. “I do not want . . . I can bear this no more. I cannot sleep in his tent any longer.” Suddenly she took Egwene’s arm, and if Egwene had not known better, she would have thought her on the brink of tears. “You must speak to them for me. To Amys and Bair and Melaine. They will listen to you. You are Aes Sedai. They must let me return to their tents. They must!”
“Who must do what?” Sorilea said, dropping back from the others to walk alongside them.  And clear green eyes that could knock a horse down at ten paces. That was the way she normally looked at anyone. When Sorilea was angry, other Wise Ones sat quietly and clan chiefs made excuses to leave.
Melaine and another Wise One, a graying Black Water Nakai, started to join them too, until Sorilea turned those eyes on them. “If you were not so busy thinking of that new husband, Melaine, you would know Amys wants to talk with you. You, also, Aerin.” Melaine flushed bright red, and scurried back to the others, but the older woman got there first. Sorilea watched them go, then put her full attention on Aviendha. “Now we can have a quiet talk. So you do not want to do something. Something you were told to do, of course.
 As I am still alive, it is still my day. Need I make myself clearer?”
Aviendha took a deep breath. “No, Sorilea,” she said meekly.
The old woman’s eyes came to rest on Egwene. “And you? Do you think you are going to beg her off?”
“No, Sorilea.” Egwene felt as though she should curtsy.
“Good,” Sonlea said, not sounding satisfied, just as if it was what she had expected. It almost certainly was. “Now I can speak to you of what I really want to know. I hear the Car’a’carn has given you an interest gift like no other ever heard of, rubies and moonstones.”
Aviendha jumped as if a mouse had run up her leg. Well, she probably would not, but it was the way Egwene would have jumped in that circumstance. The Aiel explained about Laman’s sword and the scabbard so hastily that her words tripped over one another.
Sorilea shifted her shawl, muttering about girls touching swords, even wrapped in blankets, and about having a sharp word with “young Bair.” “So he has not captured your eye. A pity. It would bind him to us; he sees too many people as his, now.” For a moment she eyed Aviendha up and down. “I will have Feran look at you. His greatfather is my sister-son. You have other duties to the people than learning to be a Wise One. Those hips were made for babes.”
Aviendha stumbled over an upraised paving stone and just caught herself short of falling. “I . . . I will think on him, when there is time,” she said breathlessly. “I have much to learn yet, of being a Wise One, and Feran is Seia Doon, and the Black Eyes have vowed not to sleep beneath roof or tent until Couladin is dead.” Couladin was Seia Doon.
The leathery-faced Wise One nodded as though everything had been settled. “You, young Aes Sedai. You know the Car’a’carn well, it is said. Will he do as he has threatened?  More quickly, Egwene added, “But I am sure he can be brought to see reason.” She was not sure of any such thing, or even that it was reason—what he had said sounded only just—but justice would do him no good if he found the others turning against him as well as the Shaido.
Sorilea glanced at her in surprise, then turned a gaze on the chiefs around Rand’s horse that should have knocked the lot of them flat. “You mistake me. He must show that mangy pack of wolves that he is the chief wolf.  Every day a few more men, and even Maidens, are taken by the bleakness, but they are the soft outer bark of the ironwood: what remains is the hard inner core, and he must be hard to lead them.” Egwene noticed that she did not include herself or the other Wise Ones among those who would be led. Muttering to herself about “mangy wolves,” Sorilea strode ahead, and soon had all the Wise Ones listening as they walked. Whatever she was saying, it did not carry.
“Who is this Feran?” Egwene asked. “I’ve never heard you speak of him. What does he look like?”
Frowning at Sorilea’s back, more than half hidden by the women clustered around her, Aviendha spoke absently. “He looks much like Rhuarc, only younger, taller and more handsome, with much redder hair. For over a year he has been trying to attract Enaila’s interest, but I think she will teach him to sing before she gives up the spear.”
“I don’t understand. Do you mean to share him with Enaila?” It still felt odd, speaking so casually of that.
Aviendha stumbled again, and stared at her. “Share him? I want no part of him.  Why didn’t you tell her what you just told me?”
The other woman’s low laugh sounded pained. “Egwene, if she thought I was trying to balk in this, she would make the bridal wreath herself and drag both Feran and me by the neck to be wed. Have you ever seen anyone say ‘no’ to Sorilea? Could you?”
Egwene opened her mouth to say that of course she could, and promptly closed it again. Making Nynaeve step back was one thing, and trying the same with Sorilea quite another. It would be like standing in the path of a landslide and telling it to stop.
To change the subject, she said, “I will speak to Amys and the others for you.” Not that she really thought it would do much good now. The right time had been before it began. At least Aviendha saw the impropriety of the situation finally. Perhaps . . . “If we go to them together, I am sure they will listen.”
“No, Egwene. I must obey the Wise Ones. Ji’e’toh requires it.” Just as if she had not been asking for intercession a moment earlier. Just as if she had not all but begged the Wise Ones not to make her sleep in Rand’s tent. “But why is my duty to the people never what I wish? Why must it be what I would rather die before doing?”
“Aviendha, no one is going to make you marry, or have babies. Not even Sorilea.” Egwene wished she had sounded a bit less limp on that last.
“You do not understand,” the other woman said softly, “and I cannot explain it to you.” She gathered her shawl around her and would not speak of it further. She was willing to discuss their lessons, or whether Couladin would turn and give battle, or how marriage had affected Melaine—who seemed to have to work at being prickly now—or anything at all except what it was that she could not, or would not, explain.


{{ partial "header.html" . }}
I am a technologist with more than 15 years of professional software development experience, primarily focused in the domains of backend services, distributed computing and system architecture.
Here you will find my thoughts on various subjects that interests me, ranging from distributed technologies to tabletop gaming. And maybe a few pictures of my cat. Okay, not that many. I promise.
In this talk I gave a breakdown on blockchains and how payment providers can leverage it to gain an edge in the market.
In two separate talks, I covered the impacts of blockchains and what are the common pitfalls when accepting cryptocurrencies
Similar to the talk in Manilla, I spoke about blockchains and how it can build the internet of value of the future.
In this fintech conference I largely spoke about blockchains and how it impacts the finance world at large.
In this conference I spoke about ways you can use ZeroMQ to do cool stuff in node.js.