CHARSETS
Section: Linux Programmer's Manual (7)
Updated: 2014-08-19
Index
Return to Main Contents
NAME
charsets - character set standards and internationalization
DESCRIPTION
This manual page gives an overview on different character set standards
and how they were used on Linux before Unicode became ubiquitous.
Some of this information is still helpful for people working with legacy
systems and documents.
Standards discussed include such as
ASCII, GB 2312, ISO 8859, JIS, KOI8-R, KS, and Unicode.
The primary emphasis is on character sets that were actually used by
locale character sets, not the myriad others that could be found in data
from other systems.
ASCII
ASCII (American Standard Code For Information Interchange) is the original
7-bit character set, originally designed for American English.
Also known as US-ASCII.
It is currently described by the ISO 646:1991 IRV
(International Reference Version) standard.
Various ASCII variants replacing the dollar sign with other currency
symbols and replacing punctuation with non-English alphabetic
characters to cover German, French, Spanish, and others in 7 bits
emerged.
All are deprecated;
glibc does not support locales whose character sets are not true
supersets of ASCII.
As Unicode, when using UTF-8, is ASCII-compatible, plain ASCII text
still renders properly on modern UTF-8 using systems.
ISO 8859
ISO 8859 is a series of 15 8-bit character sets, all of which have ASCII
in their low (7-bit) half, invisible control characters in positions
128 to 159, and 96 fixed-width graphics in positions 160-255.
Of these, the most important is ISO 8859-1
("Latin Alphabet No .1" / Latin-1).
It was widely adopted and supported by different systems,
and is gradually being replaced with Unicode.
The ISO 8859-1 characters are also the first 256 characters of Unicode.
Console support for the other 8859 character sets is available under
Linux through user-mode utilities (such as
setfont(8))
that modify keyboard bindings and the EGA graphics
table and employ the "user mapping" font table in the console
driver.
Here are brief descriptions of each set:
- 8859-1 (Latin-1)
-
Latin-1 covers many West European languages such as Albanian, Basque,
Danish, English, Faroese, Galician, Icelandic, Irish, Italian,
Norwegian, Portuguese, Spanish, and Swedish.
The lack of the ligatures Dutch Ĳ/ĳ, French œ, and old-style „German“
quotation marks was considered tolerable.
- 8859-2 (Latin-2)
-
Latin-2 supports many Latin-written Central and East European
languages such as Bosnian, Croatian, Czech, German, Hungarian, Polish,
Slovak, and Slovene.
Replacing Romanian ș/ț with ş/ţ was considered tolerable.
- 8859-3 (Latin-3)
-
Latin-3 was designed to cover of Esperanto, Maltese, and Turkish, but
8859-9 later superseded it for Turkish.
- 8859-4 (Latin-4)
-
Latin-4 introduced letters for North European languages such as
Estonian, Latvian, and Lithuanian, but was superseded by 8859-10 and
8859-13.
- 8859-5
-
Cyrillic letters supporting Bulgarian, Byelorussian, Macedonian,
Russian, Serbian, and (almost completely) Ukrainian.
It was never widely used, see the discussion of KOI8-R/KOI8-U below.
- 8859-6
-
Was created for Arabic.
The 8859-6 glyph table is a fixed font of separate
letter forms, but a proper display engine should combine these
using the proper initial, medial, and final forms.
- 8859-7
-
Was created for Modern Greek in 1987, updated in 2003.
- 8859-8
-
Supports Modern Hebrew without niqud (punctuation signs).
Niqud and full-fledged Biblical Hebrew were outside the scope of this
character set.
- 8859-9 (Latin-5)
-
This is a variant of Latin-1 that replaces Icelandic letters with
Turkish ones.
- 8859-10 (Latin-6)
-
Latin-6 added the Inuit (Greenlandic) and Sami (Lappish) letters that were
missing in Latin-4 to cover the entire Nordic area.
- 8859-11
-
Supports the Thai alphabet and is nearly identical to the TIS-620
standard.
- 8859-12
-
This set does not exist.
- 8859-13 (Latin-7)
-
Supports the Baltic Rim languages; in particular, it includes Latvian
characters not found in Latin-4.
- 8859-14 (Latin-8)
-
This is the Celtic character set, covering Old Irish, Manx, Gaelic,
Welsh, Cornish, and Breton.
- 8859-15 (Latin-9)
-
Latin-9 is similar to the widely used Latin-1 but replaces some less
common symbols with the Euro sign and French and Finnish letters that
were missing in Latin-1.
- 8859-16 (Latin-10)
-
This set covers many Southeast European languages, and most
importantly supports Romanian more completely than Latin-2.
KOI8-R / KOI8-U
KOI8-R is a non-ISO character set popular in Russia before Unicode.
The lower half is ASCII;
the upper is a Cyrillic character set somewhat better designed than
ISO 8859-5.
KOI8-U, based on KOI8-R, has better support for Ukrainian.
Neither of these sets are ISO-2022 compatible,
unlike the ISO-8859 series.
Console support for KOI8-R is available under Linux through user-mode
utilities that modify keyboard bindings and the EGA graphics table,
and employ the "user mapping" font table in the console driver.
GB 2312
GB 2312 is a mainland Chinese national standard character set used
to express simplified Chinese.
Just like JIS X 0208, characters are
mapped into a 94x94 two-byte matrix used to construct EUC-CN.
EUC-CN
is the most important encoding for Linux and includes ASCII and
GB 2312.
Note that EUC-CN is often called as GB, GB 2312, or CN-GB.
Big5
Big5 was a popular character set in Taiwan to express traditional
Chinese.
(Big5 is both a character set and an encoding.)
It is a superset of ASCII.
Non-ASCII characters are expressed in two bytes.
Bytes 0xa1-0xfe are used as leading bytes for two-byte characters.
Big5 and its extension were widely used in Taiwan and Hong Kong.
It is not ISO 2022 compliant.
JIS X 0208
JIS X 0208 is a Japanese national standard character set.
Though there are some more Japanese national standard character sets (like
JIS X 0201, JIS X 0212, and JIS X 0213), this is the most important one.
Characters are mapped into a 94x94 two-byte matrix,
whose each byte is in the range 0x21-0x7e.
Note that JIS X 0208 is a character set, not an encoding.
This means that JIS X 0208
itself is not used for expressing text data.
JIS X 0208 is used
as a component to construct encodings such as EUC-JP, Shift_JIS,
and ISO-2022-JP.
EUC-JP is the most important encoding for Linux
and includes ASCII and JIS X 0208.
In EUC-JP, JIS X 0208
characters are expressed in two bytes, each of which is the
JIS X 0208 code plus 0x80.
KS X 1001
KS X 1001 is a Korean national standard character set.
Just as
JIS X 0208, characters are mapped into a 94x94 two-byte matrix.
KS X 1001 is used like JIS X 0208, as a component
to construct encodings such as EUC-KR, Johab, and ISO-2022-KR.
EUC-KR is the most important encoding for Linux and includes
ASCII and KS X 1001.
KS C 5601 is an older name for KS X 1001.
ISO 2022 and ISO 4873
The ISO 2022 and 4873 standards describe a font-control model
based on VT100 practice.
This model is (partially) supported
by the Linux kernel and by
xterm(1).
Several ISO 2022-based character encodings have been defined,
especially for Japanese.
There are 4 graphic character sets, called G0, G1, G2, and G3,
and one of them is the current character set for codes with
high bit zero (initially G0), and one of them is the current
character set for codes with high bit one (initially G1).
Each graphic character set has 94 or 96 characters, and is
essentially a 7-bit character set.
It uses codes either
040-0177 (041-0176) or 0240-0377 (0241-0376).
G0 always has size 94 and uses codes 041-0176.
Switching between character sets is done using the shift functions
^N (SO or LS1), ^O (SI or LS0), ESC n (LS2), ESC o (LS3),
ESC N (SS2), ESC O (SS3), ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R).
The function LSn makes character set Gn the current one
for codes with high bit zero.
The function LSnR makes character set Gn the current one
for codes with high bit one.
The function SSn makes character set Gn (n=2 or 3)
the current one for the next character only (regardless of the value
of its high order bit).
A 94-character set is designated as Gn character set
by an escape sequence ESC ( xx (for G0), ESC ) xx (for G1),
ESC * xx (for G2), ESC + xx (for G3), where xx is a symbol
or a pair of symbols found in the ISO 2375 International
Register of Coded Character Sets.
For example, ESC ( @ selects the ISO 646 character set as G0,
ESC ( A selects the UK standard character set (with pound
instead of number sign), ESC ( B selects ASCII (with dollar
instead of currency sign), ESC ( M selects a character set
for African languages, ESC ( ! A selects the Cuban character
set, and so on.
A 96-character set is designated as Gn character set
by an escape sequence ESC - xx (for G1), ESC . xx (for G2)
or ESC / xx (for G3).
For example, ESC - G selects the Hebrew alphabet as G1.
A multibyte character set is designated as Gn character set
by an escape sequence ESC $ xx or ESC $ ( xx (for G0),
ESC $ ) xx (for G1), ESC $ * xx (for G2), ESC $ + xx (for G3).
For example, ESC $ ( C selects the Korean character set for G0.
The Japanese character set selected by ESC $ B has a more
recent version selected by ESC & @ ESC $ B.
ISO 4873 stipulates a narrower use of character sets, where G0
is fixed (always ASCII), so that G1, G2 and G3
can be invoked only for codes with the high order bit set.
In particular, ^N and ^O are not used anymore, ESC ( xx
can be used only with xx=B, and ESC ) xx, ESC * xx, ESC + xx
are equivalent to ESC - xx, ESC . xx, ESC / xx, respectively.
TIS-620
TIS-620 is a Thai national standard character set and a superset
of ASCII.
In the same fashion as the ISO 8859 series, Thai characters are mapped into
0xa1-0xfe.
Unicode
Unicode (ISO 10646) is a standard which aims to unambiguously represent
every character in every human language.
Unicode's structure permits 20.1 bits to encode every character.
Since most computers don't include 20.1-bit integers, Unicode is
usually encoded as 32-bit integers internally and either a series of
16-bit integers (UTF-16) (needing two 16-bit integers only when
encoding certain rare characters) or a series of 8-bit bytes (UTF-8).
Linux represents Unicode using the 8-bit Unicode Transformation Format
(UTF-8).
UTF-8 is a variable length encoding of Unicode.
It uses 1
byte to code 7 bits, 2 bytes for 11 bits, 3 bytes for 16 bits, 4 bytes
for 21 bits, 5 bytes for 26 bits, 6 bytes for 31 bits.
Let 0,1,x stand for a zero, one, or arbitrary bit.
A byte 0xxxxxxx
stands for the Unicode 00000000 0xxxxxxx which codes the same symbol
as the ASCII 0xxxxxxx.
Thus, ASCII goes unchanged into UTF-8, and
people using only ASCII do not notice any change: not in code, and not
in file size.
A byte 110xxxxx is the start of a 2-byte code, and 110xxxxx 10yyyyyy
is assembled into 00000xxx xxyyyyyy.
A byte 1110xxxx is the start
of a 3-byte code, and 1110xxxx 10yyyyyy 10zzzzzz is assembled
into xxxxyyyy yyzzzzzz.
(When UTF-8 is used to code the 31-bit ISO 10646
then this progression continues up to 6-byte codes.)
For most texts in ISO-8859 character sets, this means that the
characters outside of ASCII are now coded with two bytes.
This tends
to expand ordinary text files by only one or two percent.
For Russian
or Greek texts, this expands ordinary text files by 100%, since text in
those languages is mostly outside of ASCII.
For Japanese users this means
that the 16-bit codes now in common use will take three bytes.
While there are algorithmic conversions from some character sets
(especially ISO 8859-1) to Unicode, general conversion requires
carrying around conversion tables, which can be quite large for 16-bit
codes.
Note that UTF-8 is self-synchronizing: 10xxxxxx is a tail, any other
byte is the head of a code.
Note that the only way ASCII bytes occur
in a UTF-8 stream, is as themselves.
In particular, there are no
embedded NULs ('\0') or '/'s that form part of some larger code.
Since ASCII, and, in particular, NUL and '/', are unchanged, the
kernel does not notice that UTF-8 is being used.
It does not care at
all what the bytes it is handling stand for.
Rendering of Unicode data streams is typically handled through
"subfont" tables which map a subset of Unicode to glyphs.
Internally
the kernel uses Unicode to describe the subfont loaded in video RAM.
This means that in the Linux console in UTF-8 mode, one can use a character
set with 512 different symbols.
This is not enough for Japanese, Chinese, and
Korean, but it is enough for most other purposes.

Time: 02:55:20 GMT, September 18, 2014


Class responsible for making copies
More...
|
| static Queue< List< Project > > | Tasks [get, set] |
| | Queue with all CopyTasks More...
|
| |
| static DateTime | LastTask = new Queue<List<Project>>() [get, set] |
| | DateTime when last copy was made More...
|
| |
|
static CancellationTokenSource | CurrentTaskToken = DateTime.Now [get, set] |
| |
Class responsible for making copies
◆ BackupFiles()
| static void Archivist.Backup.BackupFiles |
( |
Project |
project | ) |
|
|
staticprivate |
Create backup of all files found in project
- Parameters
-
| project | Project that represents project data that you want to make backup of |
◆ CleanUp()
| static void Archivist.Backup.CleanUp |
( |
string |
directoryPath | ) |
|
|
staticprivate |
Clear all temporary files
- Parameters
-
◆ CopyFileIntoDirectory()
| static void Archivist.Backup.CopyFileIntoDirectory |
( |
string |
fileName, |
|
|
string |
fileDirectory, |
|
|
string |
outputDirectory |
|
) |
| |
|
staticprivate |
Copy fileName from fileDirectory into outputDirectory
- Parameters
-
| fileName | Name of the file |
| fileDirectory | Directory path where file is |
| outputDirectory | Directory where to put copied file |
◆ Create()
| static void Archivist.Backup.Create |
( |
object |
sender, |
|
|
EventArgs |
e |
|
) |
| |
|
static |
Creates Backup of current project
◆ CreateZipFile()
| static void Archivist.Backup.CreateZipFile |
( |
string |
temporaryDirectoryPath, |
|
|
string |
archivePath, |
|
|
Project |
project |
|
) |
| |
|
staticprivate |
Creates Zip file from temporary directory
- Parameters
-
| temporaryDirectoryPath | Path to folder with files to create zip file from |
| archivePath | Path to where save created zip file |
| project | Project with information about project |
◆ GetProjectInformation()
| static List<Project> Archivist.Backup.GetProjectInformation |
( |
string |
solutionFilePath, |
|
|
Project |
ProjectInfo |
|
) |
| |
|
staticprivate |
Returns information about projects found in .sln file
- Parameters
-
- Returns
◆ GetSourceFiles()
| static List<string> Archivist.Backup.GetSourceFiles |
( |
Project |
project | ) |
|
|
staticprivate |
Returns List of source files found in project
- Parameters
-
| project | Project with project data to get files from |
- Returns
◆ ProcessTask()
| static async Task Archivist.Backup.ProcessTask |
( |
| ) |
|
|
static |
infinite loop that process all tasks
◆ LastTask
| DateTime Archivist.Backup.LastTask = new Queue<List<Project>>() |
|
staticgetsetprivate |
DateTime when last copy was made
◆ Tasks
| Queue<List<Project> > Archivist.Backup.Tasks |
|
staticgetsetprivate |
The documentation for this class was generated from the following file:
- C:/Users/Themo/Git/Archivist/Source/Archivist/Models/Backup.cs


Luka Doncic: ‘It’s a Long Season. It’s Only Been One Month’
by Marcel MutoniLuka Doncic is currently playing otherworldly basketball, but realizes that the NBA season is a marathon, not a sprint.
The 20-year-old superstar remains laser-focused on dragging Dallas (11-5) back to the playoffs.
Doncic heard “MVP!” chants from the Houston crowd Sunday after leading the Mavs past the Rockets 137-123 Sunday.
Per ESPN:
“For me, it’s making the playoffs still,” said Doncic, who had 41 points, 6 rebounds and 10 assists in the win, more than holding his own in a duel with perennial MVP candidate James Harden (32 points, 9 rebounds, 11 assists). “It’s a long season. It’s only been one month. We didn’t make the playoffs yet, so we’ve just got to keep going right now.”
Doncic lightly clapped his hands above his head and gave the fans two thumbs up to show his appreciation before heading into the tunnel, but he kept an even keel, a theme for the Mavericks after they extended their winning streak to five games with a 137-123 victory over the Houston Rockets on Sunday afternoon.
“We’re not going to get overexcited,” Mavs coach Rick Carlisle said. “We know we’re capable. … The team is growing. This is a big win, there’s no question about that. This is a big-time place to play, and you’re playing against great players, and so our guys deserve credit. But, look, this is a process, and it’s day by day, week by week.”
[Doncic] joined LeBron James as the lone players in NBA history to have multiple outings with at least 40 points and 10 assists before their 21st birthday.
“Luka runs the show,” Mavs power forward Kristaps Porzingis said. “We all depend on him most of the game, and he’s playing incredible right now. He’s getting guys open looks. … He’s playing incredible right now. I’m super happy for him.”
Related Luka Doncic: ‘I Knew I Was Going to Be Good, But Not That Good’


IntroductionThe post method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. Essentially this means that the POST data will be stored by the server and usually will be processed by a server side application. Post is designed to allow a uniform method to cover the following functions:
It is generally expected that a POST request will have some side effect on the server such as writing to a database, and the HTTP specification suggests that user agents represent user actions which result in a POST request in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested. This however, is not a requirement. Typical UsageThere are two major steps to using the POST method, firstly providing the data for the request and secondly reading the response from the server. The request data is supplied by one of the variants of
The POST response body can be read using any of the PostMethod post = new PostMethod("http://jakarata.apache.org/"); NameValuePair[] data = { new NameValuePair("user", "joe"), new NameValuePair("password", "bloggs") }; post.setRequestBody(data); // execute method and handle any error responses. ... InputStream in = post.getResponseBodyAsStream(); // handle response. Common ProblemsThe most common problem when using the post method is not reading the entire response body and calling releaseConnection regardless of the response received from the server or whether or not the response body is useful to your application. RFC SectionThe post method is defined in section 8.3 of RFC1945 and similarly redefined for HTTP 1.1 in section 9.5 of RFC2616. |


offers foolproof deep cloning of objects, arrays, numbers, strings etc. in JavaScript.
npm install clone
(It also works with browserify, ender or standalone.)
This will print:
clone masters cloning simple objects (even with custom prototype), arrays, Date objects, and RegExp objects. Everything is cloned recursively, so that you can clone dates in arrays in objects, for example.
clone(val, circular, depth)
val
– the value that you want to clone, any type allowedcircular
– boolean
Call clone
with circular
set to false
if you are certain that obj
contains no circular references. This will give better performance if needed.
There is no error if undefined
or null
is passed as obj
.
depth
– depth to which the object is to be cloned (optional,
defaults to infinity)clone.clonePrototype(obj)
obj
– the object that you want to cloneDoes a prototype clone as described by Oran Looney.
This will print:
1{ hello: "world", myself: [Circular] }
So, b.myself
points to b
, not a
. Neat!
npm test
Some special objects like a socket or process.stdout
/stderr
are known to not
be cloneable. If you find other objects that cannot be cloned, please open an
issue.
If you encounter any bugs or issues, feel free to open an issue at github or send me an email to<EMAIL_ADDRESS>I also always like to hear from you, if you’re using my code.
Copyright © 2011-2015 Paul Vorbach and contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


This website could not be accessed. Alternative URLs:
Or contact us by sending an email to rwb@greatfire.org.


Build-A-Battle
Home
Contact
Team
GitHub
Cade Thomasson
Project Leader
Compter Science Senior
Brandon Hollier
Software Engineer
Compter Science Senior
Doug Berlin
Software Engineer
Compter Science Senior
Allen Williams
Graphic Designeer
Compter Science Senior
José Hernandez
Software Engineer
Compter Science Senior
Hardika Patel
Web Developer
Compter Science Senior


Department of Advanced Science and Technology
University of Computer Studies
B.C.Sc/B.C.Tech. ( Third Year)
Computer Organization
Mid Tearm Examination
Data Communication (CST-302)
Zone III
Answer ALL Questions
Time allowed 3hours.
-
- Find the Fourier seriex of
f(x)=x2(- ת < x <
ת) ,
which is awwumed to have the period 2ת. Show the details of your works.
- Is the function from the following Figure even or odd or neither even nor odd? Find its Fourier series. Show the details of your work.
-
- Represent
| f(x)={
|
ex if 0 < x <1 |
| 0 if x >1 | as an Fourier Sinne inntegral.
-
- Let z1 =
- 2 + 11i, z2 = 2-i. Showing the details of your work, find
(z1 - z2)2/16,
(z1/4 - z2/4)2 in the form x + iy.
- Solve z2- (6 - 2i)z + 17 -6i = 0 and graph the solution. Show details
-
- Is the function u = xy harmonic? If so, find its analytic function f(z) = u(x,y)+ iv(x,y)
- Find Re and Im of exp
(z3).
- Find cosh(- 1 + 2i),cos(-2 -i) in the form u + iv.
-
- Graph a sample space for the experiment: Rolling a die until the first Six appears.
- If we inspect photocopy paper by randomly drawing 6 sheets without replacement from every pack of 500, what is the probability of getting 6 clean sheets although 0.5% of the sheets contain spots?
-
- Let X be the number of years before a certain kind of pump needs replacement. Let X have the probability function f(x) = kx3, x=0,1,2,3,4,5, Find k. Sketch f and F.
- Let X be normal with means 50 and variance 9. Determine c such that
P(X < c) = 5%,, P(X > c) = 1%,
P(50-c < X < 50 +c) = 50%.


The next shelf of books you see has a sign that says Adult Fiction.  On its cover is a girl's face with the "date" 1Q84 overlaid in different colors. Wanting to know more about it, you decided to read the summary on the inside cover. It reads:
The year is 1984, and the city is Tokyo.
A young woman named Aomame follows a taxi driver's enigmatic suggestion and begins to notice puzzling discrepancies in the world around her. She has entered, she realizes, a parallel existence, which she calls 1Q84. Q is for question mark. A world that bears a question.
Meanwhile, an aspiring writer named Tengo takes on a suspect ghostwriting project. He becomes so wrapped up with the work and its unusual author that, soon, his previously placid life begins to come unraveled.

A love story, a mystery, a fantasy, a novel of self-discovery, a dystopia to rival George Orwell'só1Q84 is Haruki Murakami's most ambitious undertaking yet: an instant bestseller in his native Japan, and a tremendous feat of imagination from one of our most revered contemporary writers.
It's thick, but you are compelled to hang on to it. Intending to check it out after you finish looking around.
| Go North | ||
| Go West | Go East | |
| Go South |


Snakes
Play the infamous game of snakes on 3 different modes : Classic, Campaign and Doubles, on your browser!
Play classic
Play campaign
Play doubles
ŠAGZ Game Studios
Play the infamous game of snakes on 3 different modes : Classic, Campaign and Doubles, on your browser!
ŠAGZ Game Studios


akka.http.scaladsl.server.directives
Adds a TransformationRejection cancelling all rejections equal to the given one to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections equal to the given one to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections for which the given filter function returns true to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections for which the given filter function returns true to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections of one of the given classes to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections of one of the given classes to the list of rejections potentially coming back from the inner route.
Extracts a single value using the given function.
Extracts a single value using the given function.
Extracts the akka.actor.ActorSystem if the available Materializer is an akka.stream.ActorMaterializer.
Extracts the akka.actor.ActorSystem if the available Materializer is an akka.stream.ActorMaterializer. Otherwise throws an exception as it won't be able to extract the system from arbitrary materializers.
Extracts the entities dataBytes
akka.stream.scaladsl.Source from the akka.http.scaladsl.server.RequestContext.
Extracts the entities dataBytes
akka.stream.scaladsl.Source from the akka.http.scaladsl.server.RequestContext.
Extracts the scala.concurrent.ExecutionContextExecutor from the akka.http.scaladsl.server.RequestContext.
Extracts the scala.concurrent.ExecutionContextExecutor from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.event.LoggingAdapter from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.event.LoggingAdapter from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.stream.Materializer from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.stream.Materializer from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.http.scaladsl.settings.ParserSettings from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.http.scaladsl.settings.ParserSettings from the akka.http.scaladsl.server.RequestContext.
Extracts the current HttpRequest instance.
Extracts the current HttpRequest instance.
Extracts the akka.http.scaladsl.server.RequestContext itself.
Extracts the akka.http.scaladsl.server.RequestContext itself.
Extracts the akka.http.scaladsl.model.RequestEntity from the akka.http.scaladsl.server.RequestContext.
Extracts the akka.http.scaladsl.model.RequestEntity from the akka.http.scaladsl.server.RequestContext.
Extracts the RoutingSettings from the akka.http.scaladsl.server.RequestContext.
Extracts the RoutingSettings from the akka.http.scaladsl.server.RequestContext.
WARNING: This will read the entire request entity into memory regardless of size and effectively disable streaming.
WARNING: This will read the entire request entity into memory regardless of size and effectively disable streaming.
Converts the HttpEntity from the akka.http.scaladsl.server.RequestContext into an akka.http.scaladsl.model.HttpEntity.Strict and extracts it, or fails the route if unable to drain the entire request body within the timeout.
The directive is failed if the stream isn't completed after the given timeout.
Extracts the yet unmatched path from the RequestContext.
Extracts the yet unmatched path from the RequestContext.
Extracts the complete request URI.
Extracts the complete request URI.
Runs the inner route with settings mapped by the given function.
Runs the inner route with settings mapped by the given function.
Transforms the unmatchedPath of the RequestContext using the given function.
Transforms the unmatchedPath of the RequestContext using the given function.
A Directive0 that always passes the request on to its inner route (i.e.
A Directive0 that always passes the request on to its inner route (i.e. does nothing with the request or the response).
Injects the given value into a directive.
Injects the given value into a directive.
Extracts a number of values using the given function.
Extracts a number of values using the given function.
WARNING: This will read the entire request entity into memory regardless of size and effectively disable streaming.
WARNING: This will read the entire request entity into memory regardless of size and effectively disable streaming.
Extracts the akka.http.scaladsl.server.RequestContext itself with the strict HTTP entity, or fails the route if unable to drain the entire request body within the timeout.
The directive is failed if the stream isn't completed after the given timeout.
Injects the given values into a directive.
Injects the given values into a directive.
Runs its inner route with the given alternative scala.concurrent.ExecutionContextExecutor.
Runs its inner route with the given alternative scala.concurrent.ExecutionContextExecutor.
Runs its inner route with the given alternative akka.event.LoggingAdapter.
Runs its inner route with the given alternative akka.event.LoggingAdapter.
Runs its inner route with the given alternative akka.stream.Materializer.
Runs its inner route with the given alternative akka.stream.Materializer.
Runs its inner route with the given alternative RoutingSettings.
Runs its inner route with the given alternative RoutingSettings.


Before Change
// threshold to tune. So we only need to update the input to the next
// layer, and propagate the scale. The input layer (i == 0) counts as
// spiking.
if i > 0 and not is_spiking(layer, config):
x = y
scales[layer.name] = scales[model_copy.layers[i - 1].name]
continue
// The highest EPSP determines whether to raise threshold.
y_max = get_scale_fac(y[np.nonzero(y)], 100)
print("Maximum increase in compartment voltage per timestep: {}."
"".format(int(y_max)))
After Change
// Loihi AveragePooling layers get weights of ones. To reproduce
// this in our Keras model, we need to apply the same
// transformations as for a regular layer that has weights.
elif "AveragePooling" in get_type(layer):
a = np.prod(layer.pool_size) * (2 ** num_weight_bits - 1)
y = y * _weight_gain * 2 ** (weight_exponent + prev_scale) * a


Hi! My name is Charlie Lertlumprasert. I was born in Thailand, and moved to Northern Virginia when I was 9 years old. I'm currently a senior at Virginia Tech, majoring in mechanical engineering and minoring in computer science. I'm passionate about making a positive impact on other people's lives, which is the reason I am on the Executive Board of the Student Engineers' Council, and worked as a Student Innovation Fellow at the Technology-Enhanced Learning and Online Strategies Center.
One day I hope to work at the intersection of technology and sustainability, specifically in the food industry. But for now, my plan after graduation is to move out to Seattle to work as a Program Manager on the Microsoft365 Foundational Experiences Team.
Health and fitness are huge parts of my life. After swimming competitively for 14 years, I got into weightlifting, then calisthenics, and now running. I love to cook and am on a (mostly) whole foods plant-based diet. In my free time, I enjoy playing guitar, singing, traveling, watching movies, and picking up new skills - like web development and video editing!
ResumeElectronics and Controls Subteam Lead
Date: Aug 2019 - present
Location: Blacksburg, VA
This lower-body gravity compensating exoskeleton will support 50 pounds of body weight per leg while walking, climbing stairs, and performing basic, everyday activities. Our target customers are people with physical, lower-body impairments, as well as first responders and industrial workers. Current lower body exoskeletons are expensive, restrictive, stiff, and bulky. Our goals are to make the exoskeleton lightweight, low profile, and comfortable by matching a natural gait cycle.
The final design is a single-joint frame, single-motor actuation system, pictured below.
Links: Midterm Presentation | Midterm Report. These cover everything we did in our first semester: identification of customer needs and target specifications, concept generation and selection, mathematical analyses, and prototyping.
*placeholder for final presentation and report*
I worked on the electronics and controls side of the project, which is the actuator system – animation below!
The actuator system consists mainly of a motor and a spring. The gravity compensation comes from the motor compressing the spring, which provides an upward force on the body. So, selecting a motor that can provide enough torque and speed to mimic a natural gait cycle is very important and involves a lot of calculations. A big factor in how much torque and speed the motor needs to provide is the spring’s length and spring constant. Selecting the right combination of motor and spring can help minimize how much the motor needs to travel, and therefore power consumption.
To start off, we gathered from published gait studies joint angle data as a function of the gait cycles for 4 movements: walking, ascending and descending stairs, and sitting to standing. These hip, knee, and ankle angles, combined with anthropometric data, allowed us to create animations on MATLAB of these movements. The walking animation of a person with a height in the 5th percentile is shown below.
From these stick figure calculations, a map of the body’s position at every point in the gait cycle can be obtained for all four modes of motion. Since the actuator will be attached on the upper thigh and the upper shin, the distance between the upper thigh and the upper shin as a function of the gait cycle can be calculated. With this information, along with ground reaction force (GRF) data, we can determine the motor’s required position throughout the gait cycle.
From the motor’s required position as a function of the gait cycle, we can also determine its required velocity and acceleration. Then, the moment of inertia of the motor and screw system was calculated to obtain the motor’s required torque. Finally, after plotting the speed and torque requirements on a graph, we can find out what the motor’s power, no-load speed, and stall torque should be! Here are the graphs I’m talking about.
That was a super simplified, so if you are interested in a little more detail on the calculations, here is a document that includes some derivations, as well as the MATLAB code. And here is a spring comparison document.
The electrical system consists of force sensors, distance sensors, spring potentiometer, battery, knee angle encoders, ankle angle encoders, motors, motor encoders, an Arduino, an IMU, a buck converter, and wires. The sensor selection process was mainly based on the information we knew about the frame, which kept evolving. Ultimately, we needed to select sensors that could be mounted safely, caused minimal protrusion, and that could be compatible with the microcontroller (5V or 3.3V input, serial or analog communication, etc.).
The most frustrating thing about sensors, is that they sometimes didn’t work the way we expected them to. For example, the force sensors we originally picked were force resistive sensors. After ordering them, waiting for them to ship, and testing, there just wasn’t a way to mount them on the footplate to get accurate readings. So, we had to find different ones.
Finally, after lots of testing and scouring the internet for sensors that fit our needs, here is the final electrical schematic:
Below is the state machine that I made for the exoskeleton’s controls system. More details on the methods, variables, and calculations can be found here.
Summit for Developing Leaders
Date: Jan 2019
Location: Plano, TX
A week long summit for freshmen and sophomores to learn more about Capital One.
The summit consisted of many workshops, like a public speaking workshop, teamworking workshop, etc. The main challenge of the week was a case study, which was my first exposure to developing a holistic solution to a problem with the big picture in mind. Up until this point, I had only been exposed to technical problems and had never really thought about everything else that goes into creating a product. We considered everything from the target customer, value proposition, key performance metrics, costs, projected revenues, and even the marketing campaign. This summit sparked my interest in becoming a program manager. Our final presentation is attached below!
PresentationThe team!
Here's a low-quality picture of me presenting our case study to Cap1 Execs
Microsoft 365 Foundational Experience Program Manager Intern
Date: May 2019 - Aug 2019
Location: Redmond, WA
"Foundational Experience" are just fancy words for everything that is on the interface of the Windows Operating System (OS): the Taskbar, the Start Menu, File Explorer, etc. So, everything you see on Windows is what my team is responsible for.
To clear up any potential confusion, our "product" is the Windows OS, and the "features" are things like the Taskbar, Start Menu, etc.
Again, because of NDA, I can't say much about what exactly I did here. Here's a brief overview:
My deliverable for the summer was a recommendation on whether or not we should add a new feature. At the start of my internship, the feature was not yet defined. So, I was also in charge of "spec-ing" it out: what it would look like, where it would be in the product, what kind of content should be on it, and what the user experience should look like. I worked with a team of two software developers, a data scientist, a designer, and a user researcher. To make this recommendation, there were two overarching questions I needed to answer:
To answer these questions, I needed to really understand our customers and how this new feature would influence the way they use and feel about our product. This involved conducting user research experiments and using the results from those experiments to inform the design of the feature. I also needed to make sure that each design modification was technically feasible.
The hardest part this process was orchestrating with the rest of the product team. I needed to make sure that every decision I made about this feature aligned with everyone else's feature goals and the product's goals as a whole. With such a large product team, I was constantly pulled in different directions and constantly overwhelmed with new information.
Once I spec'd out the feature to a certain level of detail, it was time to figure out its business impacts. This involved running Monte Carlo simulations using existing data to predict user engagement with the feature.
At the end of the summer, I had the chance to present my recommendation to Joe Belfiore, the Corporate Vice President of our division -- and my intern project was the only one out of 100+ that was presented to him!
Cloud and Artificial Intelligence Security Explorer Intern
Date: May 2018 - Aug 2018
Location: Redmond, WA
I wrote service-layer threat detections for a new feature in Azure called Management Groups.
TLDR: Management Groups are containers for subscriptions. It allows you to organize your subscriptions in a hierachical tree structure in order to efficiently manage access, policies, and compliance.
Because of NDA, I can't say much about what exactly I did here. Here's a brief overview:
With the added convenience of Management Groups comes a much broader attack surface. Management Groups is still in preview right now, and there are a lot of things that will change before it rolls out publicly. I worked with many different service teams to protect Management Groups, both from the prevention and detection sides.
From the prevention side, I worked to integrate security features into the design of Management Groups. With the help of Azure Red Team engineers, I identified vulnerabilities in the current version of the feature and worked with the feature team to write threat protection plans and specifications.
On the detection side, I worked with the Identity Machine Learning team on writing cross-service detections for the feature. The main goal was to identify the hundreds, or even thousands, of attack scenarios in order to send security analysts alerts with a high signal-to-noise ratio.
The Student Engineers' Council (SEC) at Virginia Tech is an umbrella organization devoted to serving the University's College of Engineering. We help foster a professional network for students by organizing events such as E-Week, Engineering Exposition, and the Leadership in Engineering Conference. The Engineering Exposition is one of the largest student-run career fairs in the country, bringing in 300+ companies, 6,000+ student attendees, and $500,000+ in revenue. With the profit from Expo, we're able to put on our other events and grant over $160,000 per year to design teams, engineering organizations, and faculty.
Ultimately, our mission is to provide students with the tools and opportunities they need to succeed, both in and out of the classroom.
For our National Conference, I edited this video to submit as part of our Best Overall Large Council application. My goal was to summarize all the work that we do.
Date: March 2019 - Present
As Vice President, my responsibilities are to serve as a mentor to the 12 chairs and directors on the executive board. My job is to make sure that everyone is meeting the goals they've set for themselves, and to make sure that those goals align with SEC's mission and vision. I work with the President to outline that mission and vision and come up with 1 year, 3 year, and 5 year plans for the SEC.
To me, an important part of being a mentor is having personal relationships with each member of the board. So, a tradition I've started during my term is semesterly one-on-one meetings with each member. This has been one of the most rewarding things I've done during my time on the SEC. I feel that through these meetings, I've been able to facilitate the growth of our members. For example, the Awards and Scholarships chair shared new award ideas that she was too shy to share during board meetings with me, and I was able to help those ideas come to fruition. Additionally, the Director of Philanthropy voiced to me some concerns he had about our funding process, and I was able to help transform our process to be more fair towards organizations and inclusive towards our members. Lastly, the Membership Enrichment Chair told me that she felt like her voice wasn't heard during board meetings, and I was able to help direct more attention towards her during meetings.
Beyond typical Vice President responsibilities, I want to do one last thing for the College of Engineering that hits close to home. Having seen my older sisters work part time all throughout college to fund their education, I was overwhelmed with gratitude for my scholarship. Without my scholarship, I simply would not have been able to afford my academic performance, my involvement in the SEC and Technology-enhanced Learning and Online Strategies (TLOS), and the time I have dedicated to countless other pursuits. I’ve never lost sight of how privileged I am to have been given this level of support and opportunity, and it would mean the world to me if I could make this type of impact on someone else’s life. Therefore, I’m working to repurpose one of the SEC’s endowments to give 3 full scholarships to low-income and minority engineering students.
The President, Director of Finance, and I are also working with Virginia Tech's Associate Dean of Administration and Chief of Staff on contributing SEC funds to a "maker space" accessible to all undergraduate students. This has been a stretch goal of ours for a couple of years, and I'm really excited that we're finally starting conversations about the possibility of this maker space. Virginia Tech currently does not have an engineering lab accessible to all students, with equipment like 3D printers, laser cutters, drill presses, and CNC machines. The goal of this space is to make those equipments available to everyone, to facilitate more hands-on learning through personal projects.
Date: May 2018 - March 2019
As Director of Finance (DOF), I was in charge of managing finances for the organization: day-to-day operation costs and income, philantropy efforts, and endowments totaling over $1 million. I created and administered the organization's annual budget, as well as consult with accountants and financial professionals to file taxes, manage investments, and maintain our status as a 501(c)(3) non profit organization.
Beyond typical responsibilities of the DOF above, I was able to make a difference of my own during my term. I led the SEC in fully endowing the Lynn Nystrom Engineering Organization Fund of $1,000,000 two years ahead of schedule; the fund was started in 2011 and was scheduled to be fully endowed in 2021. This fund is now being awarded to undergraduate students presenting their research at educational conferences, to help finance their travel expenses. In the same term, I also led the SEC in fully endowing the Humanitarian Endowment of $120,000 one year ahead of schedule. This fund is now being awarded to students and faculty involved in educational activities related to international humanitarian projects.
Date: February 2017 - May 2018
As LEC Chair, I was in charge of organizing an event that brings in a diverse group of company representatives and speakers to educate and work with our engineering students. The focus of the conference is to help students recognize the value of leadership skills in various engineering fields.
The 2016 LEC was awarded Best Professional Development Event at our National Conference. I was able to more than double attendance from the previous year and was voted Member of the Month of the National Association of Engineering Student Councils.
"TLOS improves student learning by fostering faculty digital fluency, partnering with faculty to design and develop successful digital learning experiences, and creating technology-enhanced learning environments for traditional, distance, and hybrid courses. In each of these endeavors, TLOS provides essential support, strives for inclusivity, and actively pursues opportunities for innovation." Website
Date: August 2018 - December 2018
At the beginning of the semester, I promised my boss and my mechanical design professor that I would build an augmented reality app that helps teach stress analysis concepts – with no AR development experience. In many mechanical engineering classes, we learn about a lot of abstract concepts, and I’ve always thought AR would allow students to interact with the material in a more concrete way. I was excited to combine and apply my two areas of study to help students gain a deeper understanding of mechanical design. I was terrified, though, that I wouldn’t be able to deliver what I promised due to lack of experience, especially because I was the only person working on it.
I had to learn a new language, C#, a new tool, Unity, and a new modeling software, Maya. I sought out every resource I could think of – YouTube, Unity website, friends of friends of friends, faculty, professors. By the end of the semester, I built an app that recognizes figures, brings up their corresponding 3D model, and animates in a way that real structures would deform under the given forces and moments, among other features that illustrate stress analysis concepts (video below!). My classmates have said they wished they had this app earlier, and my professor is enthusiastic about using the app in her class!
2 projects out of 16 at TLOS Innovation Studio were selected to make promotional videos about. Here's the promotional video that was made on my project.
Engineer Intern
Date: May 2017 - Aug 2017
Location: Sterling, VA
I worked under the Lean Leader, so all of my projects were process improvement efforts in order to drive up productivity. I was not allowed to take pictures, so all the text might be a little boring.
Chemistry Research Intern
Date: Jun 2015 - Aug 2015
Location: Washington DC
Again, because of NDA, I'll just give a brief overview of what I worked on.
My goal was to develop a new method to study platinum catalysts using the nuclear magnetic resonance (NMR) technique. Nuclear magnetic resonance is an analytical tool that tells us about the structure of molecules. By performing experiments with the nuclei of atoms, the chemical environment of the nuclei can be determined from the data collected.
Since the NMR spectroscopy is used to determine the chemical environment of nuclei, it can be used to study how molecules interact with each other in a chemical reaction. Platinum catalysts are used for industrial purposes, such as autocatalysts and fuel cell technologies. However, platinum has a very broad lineshape, which means that there is a very wide range of frequencies that can excite platinum nuclei. A single experiment does not allow us to see platinum’s whole line. Consequently, we cannot determine the active structural features and optimize its use. To be able to see its whole line, we can vary the external magnetic field. Since we can only see a small section of its line, varying the external magnetic field will allow us to see different sections of the line, and we can then put together the pieces!
Autonomous Underwater Vehicle
Date: Sept 2015 - May 2016
Location: Thomas Jefferson High School for Science and Technology
Autonomous Underwater Vehicles (AUVs) are self-powered robots which peruse waters independently and are capable of completing their surveyed missions without operator intervention. Underwater Gliders are a sub-class of AUVs, which operate by manipulating buoyancy, the tendency of objects to float in fluids, through varied models of internal actuators. The gliders in our experiment use internal tanks and pumps fashioned from syringes in conjunction with a set of external wings and a tail to dictate pitch (angle of ascent/descent) and direction.
Gliders move on a saw-tooth pattern, gliding downwards when their internal fluid volume is denser than surrounding waters, and upwards when their internal fluid volume is less dense than surrounding waters. Gliders’ ability to survey shallower waters than boats, and deeper waters than human divers or tethered vehicles can make AUVs are attractive options for oceanographic research. Underwater gliders are ideal due to their low cost, and low-power yet high endurance nature. Additionally, gliders have significantly greater range (hundreds or thousands of kilometers) and mission duration (weeks to months) than AUVs propelled by electric motors. Gliders can be outfitted with oceanographic sensors to measure various variables of the ocean. This data can provide scientists with information about ocean processes, like mixing; meteorologists with information about weather events, such as hurricanes; managers and business supervisors with information about water quality; and climate modelers with information regarding changes in the water over time.
I was in charge of the glider hull design and construction.
Our glider is 30 inches
long, 4 inches in diameter, and 22 inches in wingspan. The shape of our glider
is inspired by a study by Parsons and Goodsons from Purdue University. The shape is called X-35 and is
designed to be streamlined and low drag. Our glider is a somewhat elongated version of that shape. It
has
one-third of the drag of a regular torpedo shape, which is extremely efficient. In addition, it has
adjustable
wings to control the center of gravity, and consequently the angle of the dive. The farther the wing
is
from the center of gravity, the steeper the angle of descent and ascent. Although the wings were
commercially
bought from surfboard fins, it is extremely efficient. The winglets on the wings capture the lost
vorticity
and converts it to energy, which help reduce drag.
Our whole design was 3D printed. It took 100 hours to print the middle section and 40-50 hours to
print the front and back
section each. Our current design is printed with polylactic acid (PLA). However, PLA is not strong
enough
for our actual application. It is biodegradable, has a lower melting temperature, and is more rigid,
making
it harder for assembly. If PLA sits too long in the sun, it has a tendency to melt, which is not ideal
for collecting data in coastal waters. Acrylonitrile butadiene styrene (ABS) would be more suitable
for
our goals. ABS is stronger, more flexible, and has a higher temperature resistance, and is not harmful
to the environment.
An important part of building this glider was waterproofing it so that the insides do not flood with
water and short the
circuits. We waterproofed our glider based on a proven design by National Geographic using o-rings and
screws. At the end of the nosecone and the backend of the glider, there are two grooves and series of
screw
holes. The o-rings are placed in the grooves and provide a tight fit when placed into the back half.
The
screws are used to add extra security to the whole design and hold everything in place. When the
assembly
experiences pressure, the outside pressure tends to crush the middle of the tube. When the center of
the
tube crushes, the screws outside the o-rings keep the tube from pulling away from the o-rings and
breaking
the seals, and consequently flooding the contents. Additionally, the middle section has stiffening
rods
and fin supports to further resist crushing by pressure. As the glider goes deeper underwater, the
pressure
increases one atmosphere for every 10 meters of depth. For our applications, the glider will go as
deep
as 200 feet, in which the pressure will be 20 times greater than the pressure at sea level.
I think one of the best ways to bond with other people and destress is to play music. Here are some of my YouTube covers -- I'm by no means a great singer/guitar player, but I love doing it anyway.
This one is SUPER old
My goal is to travel somewhere new every year and make little videos of each place.


World box office: 'Frozen 2' already a success
LOS ANGELES, Nov 26 — On its first weekend in theatres, the long-awaited sequel to the magical adventures of Elsa and Anna has enjoyed a prodigious launch with US$350 million (RM1.46 billion) in sales worldwide. Frozen 2 has set a new record for the highest-grossing opening for an animated film.
Released in 38 territories at the weekend, Frozen 2 has already taken in US$350.2 million around the globe, according to the latest figures from ComScore.
In North America, Disney's animated film totalled US$127 million, ahead of China's US$53 million. The new feature is also a success in South Korea (US$31.5million), Japan (US$18.2million), Great Britain (US$17.8 million), Germany (US$14.9 million), France (US$13.4 million), Mexico (US$9.3 million), Indonesia (US$6.2 million), the Philippines (US$6.1 million) and Spain (US$5.8 million).
Frozen 2 now tops the rankings for the highest grossing launch of an animated movie, if you do not take into account the latest live-action version of The Lion King, ahead of the Incredibles 2 (US$242 million) and Toy Story 4 (US$240.9 million). Of course the original 2013 Frozen was one of the biggest successes in the history of animated film with close to US$1.3 billion in sales.
Far behind, Ford v Ferrari, last week's world box-office leader, is now placed second with US$30.7 million. Released only in the US and Canada, A Beautiful Day in the Neighborhood with Tom Hanks has entered directly in third place with US$13.5 million.
The world box-office top 10 (in millions of US dollars)
1. Frozen 2 — 350.2
2. Ford v Ferrari — 30.7
3. A Beautiful Day in the Neighborhood — 13.5
4. Manhattan Lockdown — 12
5. Joker — 10.4
6. Midway — 10.1
7. Last Christmas — 9.7
8. Charlie's Angels — 7.8
9. Maleficent: Mistress of Evil — 7.1
10. Terminator: Dark Fate — 6.8 — AAFP-Relaxnews


| Apache Struts 2 Documentation > Home > Tutorials > Getting Started > Struts 2 Annotations |
| The example code for this tutorial, Struts2_Annotations_Ant or Struts2_Annotations_Mvn, is available on Google Code - http://code.google.com/p/struts2-examples/downloads/list. After downloading and unzipping the file, you'll have a folder named Struts2_Annotations_Ant (or Struts2_Annotations_Mvn). In that folder will be a README.txt file with instructions on now to build and run the example application. |
In our previous tutorials we've been using an XML file (struts.xml) to configure our applications. The XML file wires up the action names (register), with ActionSupport classes (RegisterAction.java), and with the result to render back to the browser (register.jsp). Struts 2 provides an alternative to using XML to configure your application by using standard naming conventions and annotations for your action names, ActionSupport classes, and results.
| This tutorial assumes you understand how to apply annotations to Java classes and methods. If you're not familiar with annotations, consult the Java online tutorial. |
| The Struts 2 user mailing list is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don't find an answer to your problem, post a question on the mailing list. |
Struts 2 enables the use of standard naming conventions and annotations when you include the Convention plugin in your application's class path. If you're using Maven you'll need to add a dependency:
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>2.2.1</version> </dependency>
If you're using Ant then copy the struts2-convention-plugin jar file from the Struts 2 download to your WEB-INF/lib folder.
| The convention plugin provide several different ways you can configure your Struts 2 application without using XML. Consult the Convention Plugin documentation for complete details. This tutorial only examines one simple way of following the conventions provided by the Convention plugin. |
When you run the example application you'll see on the index.jsp page a link to Get your hello. This URL for the link is hello.action. When you click on this link, the execute method of class HelloAction.java (which is a Struts 2 ActionSupport class) is run. The view page rendered back to the browser after the execute method returns success is hello-success.jsp.
None of the above is wired up using XML but rather happens because the application follows the standard naming conventions expected by the Convention plugin. The first convention is that the ActionSupport class, HelloAction.java, is in package org.apache.struts.struts2annotations.action. One of the Convention plugin's defaults is to look for ActionSupport classes that are in package structure that ends in action. The next convention the application follows is that HelloAction.java extends the ActionSupport class and defines an execute method. The link is hello.action. When the Struts 2 filter sees a request for hello.action it will map that request to the HelloAction class's execute method due to the Convention plugin being used.
So a link of hello.action causes the execute method of class HelloAction to be run. That method returns "success." Because the application is using the Convention plugin, Struts 2 will render back to the browser a view page named hello-success.jsp that is located in WEB-INF/content (by default the Convention plugin expects all view pages to be in this location). If the execute method returns "input" or "error" then the view page rendered would have been hello-input.jsp or hello-error.jsp.
In a previous tutorial we reviewed how to use the Struts 2 Configuration plugin to view the details of how Struts 2 has configured your application. When using the Convention plugin, it's very handy to also use the Configuration plugin during development. On the example application's home page is a link to the application's configuration. Click on that link and then the hello link on the left menu (under Actions in default). You'll see the configuration for the hello action including it's Action class, result, and view page.
If you want to go beyond the simple naming conventions provided by the Convention plugin, you can use the Struts 2 annotations also provided by the plugin. For example, a common work-flow for a Struts 2 application is to first execute the ActionSupport class's input method to setup form field default values and then to run the execute method of the same ActionSupport class when the form is submitted (to validate and save the user's input).
The link to Register for the drawing on the example application's home page follows this work flow. The link value is register-input.action. If you examine the RegisterAction.java class you'll find the input method with an Action annotation.
@Action("register-input") public String input() throws Exception { logger.info("In input method of class Register"); return INPUT; }
The Action annotation tells Struts 2 to execute the annotated method when the action link value equals the Action annotation's value ("register-input"). So a link of register-input.action will call the input method of class RegisterAction. On the example application's home page is a link to Register for the drawing with a URL of register-input.action.
The input method above returns "input". By the standards of the Convention plugin, the view page rendered will be register-input.jsp (from WEB-INF/content). On that view page is a Struts 2 form tag with an action attribute value of register. When submitting the form, the execute method of class RegisterAction will be run. Since the execute method returns success, the view page rendered is register-success.jsp.
In previous examples, we included in struts.xml values for some of the Struts 2 configuration parameters.
<constant name="struts.devMode" value="true" />
When we don't use a struts.xml file, we can set the value of these Struts 2 parameters by using filter parameters in web.xml:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.devMode</param-name> <param-value>true</param-value> </init-param> </filter>
We've just scratched the surface of what the Struts 2 convention plugin provides to reduce or eliminate the need to use an XML file to configure your Struts 2 application. The Struts 2 Convention plugin provides ways to map multiple actions to the same method, map results to different view pages, map errors to view pages, and much more. Be sure to read through the Convention Plugin documentation for alternative ways to configure your Struts 2 application.


Pagination in JSP
Custom JSP taglib for paging. This taglib takes some data and dynamically splits up this information into several pieces (pages)
as well as generates automatically an index for available pages. You have seen some like this many times in any search engine for example: a list of data plus some index
with links to next pages.
So body tag paging is a common wrapper. Body tag item describes a repeatable element (piece of data). Body tag index is a
wrapper for the generated index. For example, suppose you have to split file search.jsp :
<pg:paging>
<%
for (int i=1; i<=100; i++) {
%>
<pg:item>
your data …
</pg:item>
<%
}
%>
<pg:index>
<pg:page><%=thisPage%></pg:page>
</pg:index>
</pg:paging>
Just for example this page contains a loop that prints 100 times you data. Tag paging will print
the first 20 of them (default page size is 20) and the index that looks so:
where links are search.jsp?pageNum=2, search.jsp?pageNum=3 etc. (by default tag paging uses the same URL for index and default
name for page number parameter is pageNum). You can redefine all the elements we used here by default. For example, you can provide your own URL for
index pages (it is a parameter url for tag paging) as well as a new name for page number parameter (it is a parameter idPage):
…
</pg:paging>
and links for your index will be: /home/newPage.jsp?action=next&p=2, /home/newPage.jsp?action=next&p=3 etc.
also you can provide in this attribute a name for your JavaScript function that will be used in the index. This function must accept one parameter: page number.
…
</pg:paging>
and links for your index will be: yourFunction(2), yourFunction(3) etc.
Tag paging defines two page scope variables. The name for first variable will be described by the parameter idPage (default name is pageNum),
type is java.lang.Integer. You can use this variable as a reference to the current page number (within the tag’s body or outside it). The second variable is
lastPage (will be available outside of the tag, type is java.lang.Integer) describes the last page number.
Automatically generated index is also configurable. For example, you can replace a default title (Pages:):
…
</pg:index>
or
<pg:title>More:</pg:title>
…
</pg:index>
Body tag page lets you define the content for links in your index. It the above mentioned example it was just a
number of page. The hyperlink itself (<a href=…) will be generated automatically. Tag skips this generation for the current page
(page you are viewing right now).
You can restrict a number of pages in you index and add (Next,Prev) pair of links to the next (previous) portion of pages. Body tags prevPages and nextPages
describe content for such links. For example:
<pg:nextPages>[Next]</pg:nextPages>
<pg:prevPages>[Prev]</pg:prevPages>
…
</pg:index>
Body tags firstPage and lastPage describe content for the first (last) link.
Tag page describes a nested page scope variable you can use as a reference for the page number in the
generated link. The name for this variable is thisPage and type is java.lang.Integer.
Tags are:
paging
Body tag splits data and generates index. Parameters are:
1) idPage Optional parameter. Describes a name for the parameter with the current page number.
Default value is pageNum.
2) url Optional parameter. Describes the url or JavaScript function that will be used in the index.
By default tag will use the url of the current JSP page.
3) pageSize Optional parameter. Describes a size for pages (how many items per page).
Default value is 20.
4) indexSize Optional parameter. Describes a size for index.
By default is undefined.
item
Body tag describes an item (a repeatable element of data). Parameters are:
1) invokeAll Optional parameter. Possible values are
true or false. If this value is false tag will skip completely
all the items that are out of the scope for the current page. Otherwise items will be executed
always but output for out of the scope items will be suppressed.
Default value is true.
index
Body tag describes an index (links for pages). Parameters are:
1) title Optional parameter. Describes a title (caption) for index.
Default value is Pages:.
title
Body tag describes a title (caption) for index. Parameters are: none
page
Body tag describes how the link for the next page looks like. Parameters are: none
firstPage
Body tag describes how the link for the first index looks like. Parameters are: none
nextPages
Body tag describes how the link for the next portion of index looks like. Parameters are: none
prevPages
Body tag describes how the link for the previous portion of index looks like. Parameters are: none
lastPage
Body tag describes how the link for the last index looks like. Parameters are: none
for downloading:
Library: pagertag.jar Description: taglib.tld
This coding is integrated to my website..
its simply super and easy to modify..
Thanks..


Software Development Kit, Read this first
Supported languages
Static library (.lib)
MediaInfo is written in standart C++.
Some binaries are released (take a look to the download page):
- MSVC : Microsoft Visual C++ (static Multitreaded linked to C library)
- BCB : Borland C++ Builder
For others compilers, you must build from sources.
Dynamic library (.Dll)
DLL is available as a dynamic link from other languages (or C++ compilers users who wants to use a DLL).
Any language compatible with standart DLLs are compatible with MediaInfo DLL.
Some examples are included in the DLL release (take a look to the download page):
- MSVC : Microsoft Visual C++ 9 (aka 2005)
- MSCS : Microsoft C# 9 (aka 2005)
- MSJS : Microsoft J# 9 (aka 2005)
- MSVB : Microsoft Visual Basic 9 (aka 2005)
- BCB : Borland C++ Builder 6
- Delphi : Borland Delphi 7
Note: for Visual Studio 7 (aka 2002) or 8 (aka 2003), you can edit .sln and .xxproj to be compatible.
- .sln : "...Format Version 9.00" to 7.00
- .xxproj : "Version="8.00" or "Version="7.10" to 7.00
This is not always tested, but you should easily adapt them to your compiler)
There are contributions (in the "Contrib" directory), with no support:
- MSVB5 : Microsoft Visual Basic 5 and 6 example, from Ingo Brueckl
- ActiveX : ActiveX wrapper for MediaInfoDLL, with Internet Explorer and VB Script examples, from Ingo Brueckl
Don't forget to put MediaInfo.dll and Example.ogg in your executable folder.
Versioning method
- if one of 2 first numbers change, there is no guaranties that the DLL is compatible with old one. You should verify with MediaInfo_Option("Version") if you are compatible
- if one of 2 last numbers change, there is a guaranty that the DLL is compatible with old one.
So you should test the version of MediaInfo, and if one of the 2 first numbers change, disable it.
Conventions
Code is shown with C++ view:
ClassName::MethodName (Variables)
If you use the "C" interface (for example, if you use the DLL), you should map with:
ClassName_MethodName (Handle, Variables)
"Handle" is a unique identifier of the object you use (created by Handle=ClassName_New()
)
Because of the lack of namespaces in C language, you must change constants too:
XXX --> MediaInfo_XXX
If you use the "C++" interface, don't forget that all classes and typedefs are in the MediaInfoLib namespace:
use namespace MediaInfoLib;
Note : language specific formating (";" at the end of line, "L" for Unicode strings...) are not in this explaination.
Note : some languages permit more cutomization of constants, take a look in the header file to know exact names.


Lions scent mark their territory, using their wee, to create a border.
Muscular, deep-chested cat with a short, rounded head, a lion is a social species, forming groups called prides. A lion pride consists of a few adult males, related females and cubs. Groups of female lions usually hunt together, preying mostly on large ungulates.


Spicy Tables is a collection of random roll tables with text generation designed to spice up role playing games,
and a framework for building new ones. It was created by
Matt Fister.
It is built on
Tracery,
by
Kate Compton,
{{mustache}},
bootstrap, and
jquery.
The source is available at
Github.
It is easy to fork and build your own generators!
Contact me for info.


This weekend there will be a soldering workshop conducted at reserved-bit. The workshop is on 5th Feb 2017 from 10:00 - 13:00.
The 3-hour workshop plans cover to the following topics
- Electricity basics & Ohm’s Law Electronics basics
- Circuit components
- What is a solder?
- More on soldering equipment
- Practice session
- Making your own circuit (Carry it home)
Turns out I bought the first ticket for the workshop. I had couple of failed attempts of learning to solder due to which I usually ended going to a electrical shop to get my circuits soldered. Performing a cleaning soldering has always been an issue for me.
Hopefully with this workshop I can get rid of that dependency.
If you are centered around Pune, then register you can register for the workshop. Do remember to register asap because afaik the seats are limited.


{% extends 'cases/base.html' %} {% load static %} {% block content %} You're logged out. Please wait to be redirected in three seconds, or click here. {% endblock %}


The Language Management page allows users to manage multi-language site and language translations. Five languages (German, French, Spanish, Italian and Dutch) are provided with the default installation of DNN. It allows authorized users to perform the following:
The Languages module is pre-installed on the Admin > Advanced Settings > Languages page and can be added to site pages.
Tip: A large section of language packs are available from the DotNetNuke Store (http://store.dnnsoftware.com/).
The Languages Module


Test Steps:
- Click "Get Position" button to get current window position.
- Click "Move To (0, 0)" button, then click "Get Position".
- Click "Move To (200, 200)" button, then click "Get Position".
- Click "Move To (-512, -384)" button to verify that negative position argument is converted to (0, 0), then click "Get Position" .
Expected Output:
- Current window position is got.
- Window is moved to left-top and the current position is (0, 0)(or equals screen pixel minus toolbar).
- Window is moved normally and the current position is (200, 200).
- Window is moved to left-top and the current position is (0, 0)(or equals screen pixel minus toolbar).
Current window position is : (, )


Welcome to SAASbot
live video from your farm
Our Team
SAASbot Machines Inc.
Achala Athukorala
Menber01
Nipuna Ranasinghe
Menmber02
Kosala Herath
Member03


A valid e-mail address includes only Latin and Cirillic letters, a dash, a dot, numbers or an underscore<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>E-mail is required!
Invalid E-mail
Password is required!
Confirm password is required!


|
|
def | __init__ (self, x=0, y=0, z=0, max_forward_speed=0, heading_offset=0, use_fixed_heading=False, inertial_frame_id='world', radius_acceptance=0.0) |
| |
|
def | __eq__ (self, other) |
| |
|
def | __ne__ (self, other) |
| |
|
def | __str__ (self) |
| |
|
def | inertial_frame_id (self) |
| |
|
def | inertial_frame_id (self, frame_id) |
| |
|
def | x (self) |
| |
|
def | y (self) |
| |
|
def | z (self) |
| |
|
def | pos (self) |
| |
|
def | pos (self, new_pos) |
| |
|
def | violates_constraint (self) |
| |
|
def | violates_constraint (self, flag) |
| |
|
def | max_forward_speed (self) |
| |
|
def | max_forward_speed (self, vel) |
| |
|
def | heading_offset (self) |
| |
|
def | heading (self) |
| |
|
def | heading (self, angle) |
| |
|
def | radius_of_acceptance (self) |
| |
|
def | radius_of_acceptance (self, radius) |
| |
|
def | using_heading_offset (self) |
| |
|
def | get_color (self) |
| |
|
def | get_final_color (self) |
| |
|
def | from_message (self, msg) |
| |
|
def | to_message (self) |
| |
|
def | dist (self, pos) |
| |
|
def | calculate_heading (self, target) |
| |
|
|
list | FINAL_WAYPOINT_COLOR = [1.0, 131.0 / 255, 0.0] |
| |
|
list | OK_WAYPOINT = [31. / 255, 106. / 255, 226. / 255] |
| |
|
list | FAILED_WAYPOINT = [1.0, 0.0, 0.0] |
| |
The documentation for this class was generated from the following file:
- control_layer/uuv_trajectory_control/src/uuv_waypoints/waypoint.py


Demi Lovato - Sorry not Sorry
Maroon 5 - Sugar
Justin Bieber - Sorry
Duva Lipa - New Rules
Beyonce - Single ladies
Bruno Mars - Thats What I Like
Ed Sheeran - Shape of You
Justin Timberlake - Can't Stop The Feeling
Mark Ronson - Uptown Funk
Michael Jackson - Thriller
One Direction - Best Song Ever
Pharrell Williams - Happy
Spice Girls - Wannabe
Taylor Swift - Shake It Off


Getta Pizza!
Welcome, "try-a oura pizza builder"
Choose Sauce:
Red Sauce
White Sauce
Barbeque Sauce
Meat Toppings ($2.50 each):
Pepperoni
Sausage
Meatballs
Ground Beef
Grilled Chicken
Veggie Toppings ($1.50 each):
Onions
Sun-Dried Tomatoes
Jalapenos
Black Olives
Artichoke Hearts
Arugula
Choose Size:
Small (12 inch)
Medium (14 inch)
Large (17 inch)
Getta Pizza!
Thanks for your order!
Here's a summary of your pizza.


Intelligent IME
问题描述 :
We all use cell phone today. And we must be familiar with the intelligent English input method on the cell phone. To be specific, the number buttons may correspond to some English letters respectively, as shown below:
2 : a, b, c 3 : d, e, f 4 : g, h, i 5 : j, k, l 6 : m, n, o
7 : p, q, r, s 8 : t, u, v 9 : w, x, y, z
When we want to input the word “wing”, we press the button 9, 4, 6, 4, then the input method will choose from an embedded dictionary, all words matching the input number sequence, such as “wing”, “whoi”, “zhog”. Here comes our question, given a dictionary, how many words in it match some input number sequences?
2 : a, b, c 3 : d, e, f 4 : g, h, i 5 : j, k, l 6 : m, n, o
7 : p, q, r, s 8 : t, u, v 9 : w, x, y, z
When we want to input the word “wing”, we press the button 9, 4, 6, 4, then the input method will choose from an embedded dictionary, all words matching the input number sequence, such as “wing”, “whoi”, “zhog”. Here comes our question, given a dictionary, how many words in it match some input number sequences?
输入:
First is an integer T, indicating the number of test cases. Then T block follows, each of which is formatted like this:
Two integer N (1 <= N <= 5000), M (1 <= M <= 5000), indicating the number of input number sequences and the number of words in the dictionary, respectively. Then comes N lines, each line contains a number sequence, consisting of no more than 6 digits. Then comes M lines, each line contains a letter string, consisting of no more than 6 lower letters. It is guaranteed that there are neither duplicated number sequences nor duplicated words.
Two integer N (1 <= N <= 5000), M (1 <= M <= 5000), indicating the number of input number sequences and the number of words in the dictionary, respectively. Then comes N lines, each line contains a number sequence, consisting of no more than 6 digits. Then comes M lines, each line contains a letter string, consisting of no more than 6 lower letters. It is guaranteed that there are neither duplicated number sequences nor duplicated words.
输出:
First is an integer T, indicating the number of test cases. Then T block follows, each of which is formatted like this:
Two integer N (1 <= N <= 5000), M (1 <= M <= 5000), indicating the number of input number sequences and the number of words in the dictionary, respectively. Then comes N lines, each line contains a number sequence, consisting of no more than 6 digits. Then comes M lines, each line contains a letter string, consisting of no more than 6 lower letters. It is guaranteed that there are neither duplicated number sequences nor duplicated words.
Two integer N (1 <= N <= 5000), M (1 <= M <= 5000), indicating the number of input number sequences and the number of words in the dictionary, respectively. Then comes N lines, each line contains a number sequence, consisting of no more than 6 digits. Then comes M lines, each line contains a letter string, consisting of no more than 6 lower letters. It is guaranteed that there are neither duplicated number sequences nor duplicated words.
样例输入:
1 3 5 46 64448 74 go in night might gn
样例输出:
3 2 0
题目大意：手机键盘中与数字2相对应的字母有a,b,c；3相对应的字母有d，e，f。给出一些数字串如34，和一些小写字母串。求小写字母对应的数字串出现的次数。字符串abc对应的数字串是111，dh对应的数字串是34。则小写字符串中111出现一次，34出现一次。
程序中也用到简单的hash映射。
#include<stdio.h> #include<string.h> int hash[128]; struct TrieNode{ int no;//对应的数字串的编号，这个编号利于后面对出现次数进行统计 TrieNode *next[10]; }node[30005]; TrieNode *root = &node[0]; int cnt,result[5005]; char word[10],s[10]; void init() { //每个字母对应的数字 hash['a']=hash['b']=hash['c']=2; hash['d']=hash['e']=hash['f']=3; hash['g']=hash['h']=hash['i']=4; hash['j']=hash['k']=hash['l']=5; hash['m']=hash['n']=hash['o']=6; hash['p']=hash['q']=hash['r']=hash['s']=7; hash['t']=hash['u']=hash['v']=8; hash['w']=hash['x']=hash['y']=hash['z']=9; } void initRoot() { int i; for(i=0;i<10;i++) { root->next[i]=NULL; } } //向字典树中插入新的串。 void insert(char str[],int num) { TrieNode *p = root; int len=strlen(str),i,j; for(i=0;i<len;i++) { if(p->next[str[i]-'0']==NULL) { p->next[str[i]-'0']=&node[cnt]; for(j=0;j<10;j++)node[cnt].next[j]=NULL; node[cnt].no=-1; cnt++; } p=p->next[str[i]-'0']; } //设置数字串对应的编号 p->no=num; } /** 查询一个字母字符串对应的数字串 */ void query(char str[]) { int len=strlen(str),i; TrieNode *p=root; for(i=0;i<len;i++) { p=p->next[hash[str[i]]]; if(p==NULL)break; } if(p==NULL)return;//该串对应的数字串不存在。 else{ if(p->no!=-1)result[p->no]++; } } int main() { int t,m,n,i; scanf("%d",&t); init(); while(t--) { cnt=1; initRoot(); memset(result,0,sizeof(result)); scanf("%d%d",&n,&m); for(i=0;i<n;i++) { scanf("%s",word); insert(word,i); } for(i=0;i<m;i++) { scanf("%s",s); query(s); } for(i=0;i<n;i++) { //顺序打出每个串出现的次数。 printf("%d\n",result[i]); } } return 0; }
版权声明：本文为博主原创文章，未经博主允许不得转载。
参考：http://blog.csdn.net/mxway/article/details/9205101
(adsbygoogle = window.adsbygoogle || []).push({});
现实中的IE这么嫩就好咯
没想到觉醒如此小肚鸡肠，听不得任何反面意见，评论功能就是允许别人对某篇文章进行评论发表自己的看法，难道网站上每篇文章下面清一色的支持就是好？你们这是要搞和谐吗？思维碰撞才能出火花，你们也是喜欢P民直接不加过滤的接受你们的暗示和引导？


ABOUT
I am creative Front-End Developer, Graphic and 3D designer
aspiring to be an entreprenure. Always looking for best
innovative ways to design and to build web application. Highly
motivated individual with problem solving ability and
commited to keep improving my skills. I am always try to
combine my technical and artistic skills to bring
something new.
When I don’t code or design, I like to play outdoor sports and
whatching movies which really gives me a lot of ideas for
my work.I also like to spend some time at the place where
land and watermeet-it’s my drug.


{{ message }}
The count is even {{ count }}
NEW LIST
{{ route.name }}
{{ route.description }}
first name
{{ firstname }}
surname
{{ surname }}
submit
Welcome to the club {{ firstname }} {{ surname }}


A work originating from
the Vyasabharatha (Mahabharath), it has caught the stylised language
and mood of the great epic. It gives a new intellectual and spiritual
dimension to the recreated Draupadi (the wife of the Pandavas). Her
painful story unveils around the unacknowledged eldest Pandava, Karna,
born to maiden Kunti from the sun god. It won him the Kerala Sahitya
Akademi award, Sahitya Pravarthaka Benefit Fund award and the prestigious
Vayalar award given in honour of the poet Vayalar Rama Varma,who was
immortalised in Malayalam cinema by his beautiful lyrics.
Balakrishnan has 11 published works to his credit as on date. His only
other novel is' Pluto priyapetta
Pluto' (Pluto, my dear Pluto), the story of his real life dog named
after the Walt Disney counterpart.


PageViewActivity
class PageViewActivity
extends
ViewActivity
Represents an application activity with a view that is rendered as a full page (when active).
Constructor
(name?: string, path?: string): PageViewActivity
.placement
View placement mode, determines if and how view is rendered when activated.
.view
Inherited from ViewActivity.view
.
.modalShadeOpacity
number
Inherited from ViewActivity.modalShadeOpacity
.
.render()
(callback?: RenderCallback<Output<
UIRenderable
, any>>): void
Inherited from ViewActivity.render
.
.removeViewAsync()
(): Promise<void>
Inherited from ViewActivity.removeViewAsync
.
.restoreFocus()
(firstFocused?: boolean): void
Inherited from ViewActivity.restoreFocus
.
.onFocusIn() protected
(e:
ComponentEvent
<
Component
>): void
Inherited from ViewActivity.onFocusIn
.
.firstFocused
Inherited from ViewActivity.firstFocused
.
.lastFocused
Inherited from ViewActivity.lastFocused
.
.showDialogAsync()
(View:
UIRenderableConstructor
, eventHandler?: (this:
DialogViewActivity
, e:
ManagedEvent
) => void): Promise<
ViewActivity
>
Inherited from ViewActivity.showDialogAsync
.
.showConfirmationDialogAsync()
(message:
Stringable
|
Stringable
[], title?:
Stringable
, confirmButtonLabel?:
Stringable
, cancelButtonLabel?:
Stringable
): Promise<...>
Inherited from ViewActivity.showConfirmationDialogAsync
.
.name
string
Inherited from AppActivity.name
.
.path
string
Inherited from AppActivity.path
.
.match
Readonly<MatchedPath>
Inherited from AppActivity.match
.
.getParentActivity()
():
AppActivity
Inherited from AppActivity.getParentActivity
.
.getApplication()
():
Application
Inherited from AppActivity.getApplication
.
.activateAsync()
(match?: MatchedPath): Promise<void>
Inherited from AppActivity.activateAsync
.
.destroyAsync()
(): Promise<void>
Inherited from AppActivity.destroyAsync
.
.isActive()
(): boolean
Inherited from AppActivity.isActive
.
.activated
number
Inherited from AppActivity.activated
.
.deactivated
number
Inherited from AppActivity.deactivated
.
.renderContext
Inherited from AppComponent.renderContext
.
.viewportContext
any
Inherited from AppComponent.viewportContext
.
.activationContext
Inherited from AppComponent.activationContext
.
.isPresetComponent() protected
(): boolean
Inherited from Component.isPresetComponent
.
.delegateEvent() protected
(e:
ManagedEvent
, propertyName: string): boolean | void
Inherited from Component.delegateEvent
.
.getParentComponent()
<TParent extends Component = Component>(ParentClass?:
ComponentConstructor
<TParent>): TParent
Inherited from Component.getParentComponent
.
.getBoundParentComponent()
<TParent extends Component>(ParentClass?:
ComponentConstructor
<TParent>): TParent
Inherited from Component.getBoundParentComponent
.
.emitAction()
(name: string, inner?:
ManagedEvent
, context?:
ManagedObject
): void
Inherited from Component.emitAction
.
.propagateComponentEvent() deprecated
(name: string, inner?:
ManagedEvent
): void
Inherited from Component.propagateComponentEvent
.
.managedId
number
Inherited from ManagedObject.managedId
.
.managedState
Inherited from ManagedObject.managedState
.
.getReferenceCount() protected
(): number
Inherited from ManagedObject.getReferenceCount
.
.getManagedReferrers() protected
():
ManagedObject
[]
Inherited from ManagedObject.getManagedReferrers
.
.getManagedParent() protected
<TParent extends ManagedObject = ManagedObject>(ParentClass?:
ManagedObjectConstructor
<TParent>): TParent
Inherited from ManagedObject.getManagedParent
.
.emit()
<TEvent extends ManagedEvent = ManagedEvent, TConstructorArgs extends any[] = any[]>(e: string | TEvent | (new (...args: TConstructorArgs) => TEvent), ...constructorArgs: TConstructorArgs): this
Inherited from ManagedObject.emit
.
.emitChange()
(name?: string): void
Inherited from ManagedObject.emitChange
.
.propagateChildEvents() protected deprecated
(...types: ((new (...args: any[]) =>
ManagedEvent
) | ((e:
ManagedEvent
) => any))[]): this
Inherited from ManagedObject.propagateChildEvents
.
.activateManagedAsync() protected
(): Promise<any>
Inherited from ManagedObject.activateManagedAsync
.
.deactivateManagedAsync() protected
(): Promise<void>
Inherited from ManagedObject.deactivateManagedAsync
.
.destroyManagedAsync() protected
(): Promise<void>
Inherited from ManagedObject.destroyManagedAsync
.
.onManagedStateActivatingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateActivatingAsync
.
.onManagedStateActiveAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateActiveAsync
.
.onManagedStateDeactivatingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateDeactivatingAsync
.
.onManagedStateInactiveAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateInactiveAsync
.
.onManagedStateDestroyingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateDestroyingAsync
.