WITNESS LIST State Affairs Committee April 1, 1997-1:00P HB 10 On: David Skarke (Texas Leg. Council) Registering, but not testifying: On: John McClung (Texas Leg. Council) Steven Collins (Texas Leg. Council) HB 771 For: Gene Valentini (S Plains Assn. of Govts) HB 1069 For: Peggy Romberg (Tex. Family Planning As) Rep. Van de Putte (Self) On: Walter Wilkerson (Tex. Dept. of Health) Registering, but not testifying: On: Jann Melton-Kissel (Tex. Dept. of Health) Julia Deechinor (Tex. Dept. of Health) HB 1072 For: Rep. Maxey (Self) Against: James Grimm (Tex. Egg Council) On: Andrea Cowan (Tx Comptroller's Office) Larry Soward (Tex. Dept. Agriculture) Registering, but not testifying: For: Chuck Courtney (Tex. Retailers Assn.) On: Dan Sowards (Tex. Dept. of Health) Dennis Johnston (Tex. Parks & Wildlife D) Donna Osborne (Tex. Dept. of Commerce) Paul Israel (Tex. Parks & Wildlife D) Steve McAndrew (Tex. Dept. of Health) HB 1428 For: Ryan Smith (Tex. Energy Museum) HB 1556 For: Rep. Greenberg (Self) On: Andrea Cowan (Tx Comptroller's Office) Clyde Poole (Tex Dept Info Resources) HB 1622 For: Curtis Culwell (Tx. Assn. School Admin.) Gwen Selby (North East I.S.D.) Leonard Merrell (Katy I.S.D.) Rep. Ron Lewis (Self) Robby Collins (Dallas I.S.D.) On: Larry Alwin (Texas Auditor) Terry Hazel (Texas Auditor's Office) Registering, but not testifying: On: Andrea Cowan (Tex. Comptroller's Off.) HB 1691 For: Rep. Junell (Self) On: Thomas Perkins (Tex. Attorney General) William Hale (Tx. Com. Human Rights) HB 1845 On: Rita Arneil (Texas Leg. Council) Registering, but not testifying: On: Steven Collins (Texas Leg. Council) HB 1846 On: Steven Collins (Texas Leg. Council) HB 1847 On: Carolyn Hall (Texas Leg. Council) Registering, but not testifying: On: Steven Collins (Texas Leg. Council) HB 1930 For: Rep. Bosse (Self) On: Carolyn Purcell (Tx Dept. Info. Resource) HB 2209 For: Rep. Delisi (Self) On: Mike McKinney (Tx Health & Hum. Serv.) Phyllis Coombes (Tex. Comptroller's Off.) HB 2518 For: Rep. Dunnam (Self) On: Bob DuLaney (Tx Aircraft Pooling Bd.) Fred Williams (Tx St Tech College-Waco) Registering, but not testifying: For: Bill McLemore (Tx Assn Co Vet Serv Off) On: Bill Clayton (Tx Aircraft Pooling Bd.) HB 2600 For: Rep. King (Self) On: Andrea Cowan (Tx Comptroller's Office) HB 2841 On: Jack Drews (Texas Leg. Council) Steven Collins (Texas Leg. Council) HB 2876 For: Rep. Greenberg (Self) On: Andrea Cowan (Tx Comptroller's Office) Registering, but not testifying: For: Suzy Woodford (Common Cause) Tom "Smitty" Smith (Public Citizen) On: Bill Magness (Tex. Pub. Utility Comm.) HB 2906 On: Doug Brown (Tex. Auditor's Office) Larry Alwin (Tex. Auditor's Office) Registering, but not testifying: On: Larry Soward (Tex. Dept. Agriculture) Mike Lesko (Tex Dept. Public Safety) HB 3206 On: Dan Bremer (Tex. Gen. Services Com.) Registering, but not testifying: On: Marilyn Grimm (Tex. Gen. Services Com.) HB 3475 On: Andrea Cowan (Tx Comptroller's Office) Francis Fisher (LBJ School Pub. Affairs) HJR 66 For: Rep. Solomons (Self) Against: Jay Thompson (Tx Assn. Life/Hlth. Ins) On: Gordon Mills (UT MD Anderson Cancer C) Registering, but not testifying: For: Cindy Antolik (American Cancer Society) SB 407 For: Albert Cheng (Free Market Committee) Carol Everett (Self) Hannah Riddering (Tex Nat'l Org for Women) Josep Kral (Texas Right to Life) Rep. Chisum (Self) Rep. Van de Putte (Self) On: Walter Wilkerson (Tex. Dept. of Health) Registering, but not testifying: For: Lori DeVillez (Life Network) Pat Carlson (Texas Eagle Forum) Richard Ford (Free Market Committee) On: Jann Meltor-Kissel (Tex. Dept. of Health) Julia Deechinor (Tex. Dept. of Health) SB 694 For: Rep. Greenberg (Self) Registering, but not testifying: For: Tom "Smitty" Smith (Public Citizen) On: Andrew Bowman (Center Pub. Policy Disp) Jan Summer (Center Pub. Policy Disp) Phillip Holder (St. Office Admin. Hrgs.) Suzanne Marshall (Tex. Attorney General)


TR-069 client - Configuration WAN Management Protocol (TR-069) allows an Auto-Configuration Server (ACS) to perform auto-configuration, provision, collection, and diagnostics to this device. Select the desired values and click "Apply/Save" to configure the TR-069 client options. Inform Disable Enable Inform Interval: ACS URL: ACS User Name: ACS Password: WAN Interface used by TR-069 client: Display SOAP messages on serial console Disable Enable Connection Request Authentication Connection Request User Name: Connection Request Password: Connection Request URL: <%ejGet(tr69cConnReqURL)%>


Correspondence
Child protection: the police approach
Sir Michael Wilshaw has written to Her Majesty's Chief Inspector of Constabulary raising concerns about the contribution of police to safeguarding children.
Details
Ofsted’s Chief Inspector, Sir Michael Wilshaw, has set out his concerns in a letter to Her Majesty’s Chief Inspector of Constabulary, Sir Tom Winsor. He highlights evidence where police forces are not sharing information about domestic abuse cases in a timely way. He also draws attention to instances when the police did not respond quickly enough to the issue of children going missing from care. He looks forward to working closely with Sir Tom to continue to shine a spotlight on this vital issue.


Dependency Override
Dependency override is a special kind of override. It does not target any members or parameters. Instead, it overrides a contract that the container would have resolved when requested. In other words, when the dependency is being resolved from the container, if the contract matches, it will provide that value instead.
Injected Members and Dependency overrides
There are two types of dependency injection the Unity container supports:
- Value injection
- Value resolution
To understand how Dependency Override works you need to remember, it only overrides resolved values.
Injected Values
Values are injected during Type registration. At that time you provide instructions on how to initialize the Type and its members. The members injected with values via Injection Members will not be affected by the Dependency Override.
Resolved Values
All the dependencies that are not injected with values, or injected with resolve redirection are potential targets for the override. Anything that asks the container to resolve a value can be Dependency Overridden.
Overriding dependencies
Dependency Override enables you to specify an override for the specified dependency type contract. It, enables you to pass in an object that will be returned as a dependency, instead of the one resolved from the container.


My name is Maurizio and I am an developer. I work hard to improve myself and achieve my goals. Now I learn on FreeCodeCamp course. My passions are my family, music and new technologies. I like doing sports and meet with my friends whenever I can.
Below you can see some of my work.


NLP
Posted: 2016-05-04 , Modified: 2016-05-04
Tags: nlp
Posted: 2016-05-04 , Modified: 2016-05-04
Tags: nlp
A language model is a probability distribution over sentences consisting of words from a finite set \(\mathcal V\).
in speech recognition the language model is combined with an acoustic model that models the pronunciation of different words: one way to think about it is that the acoustic model generates a large number of candidate sentences, together with probabilities; the language model is then used to reorder these possibilities based on how likely they are to be a sentence in the language.
A \(t\)th order Markov model (\(n+1\)-grams) assumes the probability distribution of the next word depends only on the previous \(t\). To model variable-length sentences, include STOP as a word. Treat the \(0,\ldots,-(t-1)\) words as \(*\).
The most naive estimate is to let \[\wh p_{x_{t+1}|x_1\ldots x_t} = \fc{\#(x_1,\ldots, x_{t+1})}{\#(x_1,\ldots, x_t)}\] but this requires lots of computations and makes many counts 0.
Let \(x^{(i)}\) be the test sentences. Letting \(l=\rc{M} \sumo im \lg p(x^{(i)})\) (average log probability), the perplexity is \(2^{-l}\) (geometric mean of probabilities).
Note that bucketing and discounting only have 1 parameter.
A CFG is \(G=(N,\Si,R,S)\) where
A leftmost derivation is one where we choose to replace the leftmost nonterminal each time.
Strings can be ambiguous under a CFG.
Notation:
We want to
A PCFG has probabilities with \(\sum_{X\to \be\in R} a(X\to \be)=1\). The probability is the product of the probabilities of the derivations.
To learn parameters given parse trees, let \(\wh p (\al \to \be) = \fc{\#(\al\to \be)}{\#\al}\).
Chomsky normal form has rules in the form \(X\to Y_1Y_2\) and \(X\to Y\) where \(Y_1,Y_2\) are nonterminal and \(Y\) is terminal.
These have much higher parsing accuracy.
Weaknesses of PCFG’s are
Lack of sensitivity to lexical information: PCFGs make a strong independence assumption. The identity of each lexical item depends only on the part-of-speech (POS) above that lexical item, but does not depend directly on other information in the tree.
Example: Workers dumped sacks into a bin. What parsing is picked depends only on comparing \(q(VP\to VP,PP), q(NP\to NP, PP)\).
Into
is 9 times more likely to attach to a VP rather than NP.
Lack of sensitivity to structural preferences.
Ex. President of a company in Africa.
President of a (company in Africa) is close attachment. Close attachment is twice as frequent.
When a PP can attach to 2 potential verbs, it is 20 times more likely to attach to the most recent verb.
To lexicalize a treebank,
Thus, each node in the parse tree is now POS(word). Note the number of non-terminals is now much larger.
For a rule \(X(H) \to_2 Y_1(M) Y_2(H)\) corresponding to \(R:X\to_2 Y_1Y_2\), factor the probability \[\Pj(X\to_2 Y_1Y_2, M|X, H) = \Pj(X \to_2 Y_1Y_2 |X, H) \Pj(M|S\to_2 Y_1Y_2, X, H)\] and estimate each of the factors with counts.
For DP, include also the head position \(h\in [i,j]\). Complexity goes up to \(O(n^4)\)!
Log-linear models are more flexible; they allow a rich set of features. We can combine a much larger set of estimates with \(\la\) parameters. Linear interpolation becomes unwieldy.
We want to model the conditional probability \(p(y|x)\), \(x\in \mathcal X\), \(y\in \mathcal Y\). For example, \(\mathcal Y=\mathcal V\), \(\mathcal X = \mathcal Y^{i-1}\). Or \(\mathcal Y=\mathcal T\), the set of tags.
A loglinear model has \[\Pj_v(y|x) =\Pj(y|x;v) \propto e^{v\cdot f(x,y)}\] with \(f:\mathcal X\times \mathcal Y\to \R^d\).
Often features are indicator functions. Features can include all bigrams, trigrams… Other features include
A key idea is feature templates.
For any trigram seen in training data, create an indicator feature. Hash each \((u,v,w)\) to a unique integer (for trigrams). We can do the same for suffixes, etc.
Models can have millions of features.
Key observation: for any pair \((x,y)\), the number of values for \(k\) in \([d]\) such that \(f_k(x,y)=1\) is often very small.
Implementation: for any pair \((x,y)\), compute indices of nonzero features (ex. use hash functions).
ML estimates are bad because they overfit—ex. give 0 probability to \(n\)-grams that haven’t appeared. Include a regularization term like \(\ve{v}^2\), \[L(v) = \sumo in \ln p(y^{(i)}|x^{(i)};v) - \fc\la2\ve{v}^2.\] This is convex. Use gradient ascent. LBFGs is a gradient method that makes a more intelligent choice of search direction.
The gradient is \[\nb L(v) = \sumo in \pa{f(x^{(i)},y^{(i)}) - (p(y|x^{(i)};v))_{y} \cdot (f_k(x^{(i)},y))_{yk}}.\] (Think of the second part as the expected number of times \(f_k\) is equal to 1.)
A generative tagging model defines a joint distribution \(p(x_1,\ldots, x_n,y_1,\ldots, y_n)\) where \(x_i\) is a sentence tagged with \(y_i\). A conditional tagging model defines \(p(y_1\ldots, y_n|x_1,\ldots, x_n)\).
Tag by taking the argmax.
Consider trigrams for example. The independence assumption is that conditioned on \(X_{[1,n]}\), the distribution of \(Y_i\) depends only on \(Y_{i-1},Y_{i-2}\).
Let the \(i\)th history \(h_i=(y_{i-2},y_{i-1},x_{[1,n]}, i)\). Let \(f:H\times \mathcal K\to \R^d\) be the feature-vector representation (\(H\) is the space of histories and \(\mathcal K\) is the space of tags). Define the probability as a loglinear model on \(f\).
Features may includeUse the Viterbi algorithm.
There are close connections to support vector machines, where linear models are learned in very high dimensional spaces, with good generalization guarantees hold as long as the margins on training examples are large. Margins are closely related to norms of parameter vectors.
Consider CFG in Chomsky normal form with potential function \(\psi(r)\).
(Q: complexity of turning into CNF?)
Nonnegative potential function \(\psi\), \[ \psi(t) = \pa{\prod_{\an{A\to BC, i, k, j}\in t} \psi(A\to BC, i, k, j)} \pa{\prod_{\an{A,i}\in t} \psi(A,i)}. \]
Ex.
Letting \(T\) be the set of all possible parse trees. Calculate
Algorithm (DP)
(How to do in online fashion? Instead take “gradient steps”, actually multiplicative updates.)
\[\begin{align} q^t(A\to \ga) &= \fc{f(A\to \ga)}{\sum_{A\to \ga\in R} f(A\to \ga)}\\ \text{count}(A\to BC) &= \sum_{i,k,j} \fc{\mu(A\to BC,i,k,j)}{Z}\\ \text{count}(A\to x) &= \sum_{i:x_i=x} \fc{\mu(A,i)}{Z}. \end{align}\] Once count calculated, \[\begin{align} f^{t-1}(r) &=\sumo in \text{count}_{i}(r)\\ q^t(A\to \ga) &= \fc{f^{t-1}(A\to \ga)}{\sum_{A\to \ga\in R} f^{t-1}(A\to \ga)}. \end{align}\]Output \(q^T(r)\).
Can we extract simple features/algorithms out of neural nets?
Extracting code from a neural net may be NP-hard?
Can a neural net do at least as well as \(n\)-gram, and can you crystallize a \(n\)-gram from it?
What information is present in memory?
Allow a neural net to revise, or wait before it outputs…
Matrix indexed by Indexable.


| インタフェース | 説明 |
|---|---|
| NamedValue<V> |
String couple between a name and a value.
|
| SelectionListener |
Callback interface when a NIO selection occurs on the selectable object.
|
| クラス | 説明 |
|---|---|
| ByteReadingListener |
Selection listener notifying new content as an
InputStream . |
| CharacterReadingListener |
Selection listener notifying new content as a
Reader . |
| ClientList |
Modifiable list of client connectors.
|
| ReadingListener |
Selection listener notifying new content is read into a
ByteBuffer . |
| SelectionRegistration |
Represents a unique registration between a NIO selector and a selectable
channel.
|
| Series<T extends NamedValue<java.lang.String>> |
Modifiable list of entries with many helper methods.
|
| WrapperList<E> |
List wrapper.
|


What I do @AdriMichelson 22 years
In my 5 years spent as a campaign organizer and manger, I learned the art of taking complicated policies, bashing them into bits to build a seamless story. Now in the startup world, I am bashing data into bits to build more intuitive, compelling stories for companies and nonprofits alike.


VKCrypto by MK - new Client for VK social network, which allows you keep your correspondence secret. It using RSA-4096+Camellia-256 Cyphers, so you can be absolutely quiet about your messages. The application supports two-factor authentication. In addition to sending messages, you can also share images with your friends. The images are also securely encrypted. The app is under active development.


Pay an NHS Penalty Charge Notice
Paying by Direct Debit
Direct Debit lets you pay your penalty charge over a number of months, on a date that suits you.
If we are unable to take payments on more than one occasion, your Direct Debit plan may be cancelled and you will need to pay the amount you owe in full.
To set up a Direct Debit online, you must confirm the following before you continue
You are using your own bank account.
You are the only person required to authorise debits on this account.
You understand that repeated failure to make a payment may result in additional charges and the removal of being able to pay by Direct Debit
Before starting you can read the Direct Debit Guarantee


The Professional Lifeguard Foundation is a non-profit organization, founded in 1996, which provides scholarship awards to Los Angeles County Lifeguards who are enrolled in full-time college or graduate course work.
Name
Date of hire (Ocean Lifeguard Rookie Year)
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
Section
Northern
Central
Southern
Permanent Address
Street
City
Zip Code
Phone
Email
Current school attending
Year:
Freshman
Sophomore
Junior
Senior
Graduate Student
Major/Program
Current GPA
Honors and
Extracurricular Activities
List three references (one reference should be a current Los Angeles County Lifeguard)
[1]
Name
Title/Relationship
Phone
[2]
Name
Title/Relationship
Phone
[3]
Name
Title/Relationship
Phone
Summarize your future educational goals
Summarize your career goals
Now accepting 2015 applications.


{% extends '_layouts/layout_2-3.html' %} {% block page_title %}Set up a password{{serviceName}}{% endblock %} {% block pageTitle %}Set up a password{% endblock %} {% block content %}
Your password must have:
We shall collect and store your account information in a secure way. We use any personal information you give to us in accordance with the site's privacy policy and terms and conditions. We shall not disclose your personal information to any third parties without obtaining your consent.
If you want your account deleted at any time please email us at<EMAIL_ADDRESS>with your email address and contact telephone number.
Read the privacy policy.


My name is Tina Biniari, I am 22 years old and I am from Athens,Greece. I am currently an undergraduate student in department of Informatics at University of Piraeus. During my studies, I have developed my skills on object-oriented programming, software and web development.
These are some of my projects


For each tasklist in the imported data, create a new tasklist (with the suffix)
containing only the imported tasks for that tasklist.
For example, if the imported task is in a tasklist name "Shopping" and you choose a suffix "New",
the task will be imported into a new tasklist named "ShoppingNew".
Note that no space is added, to allow direct concatenation. If you wish to have a space between the existing
tasklist name and the suffix, then include that space in the start of the suffix field.
NOTE: Google allows duplicate tasklists names. If a tasklist already exists with the new name (e.g., "ShoppingNew"),
the import process will simply create another tasklist called "ShoppingNew", which will contain all the imported tasks
that were in the "Shopping" tasklist. Existing tasklists will not be altered.


Image gallery
Main window
9 Kb
Creating a new table
9 Kb
Table access control
10 Kb
Adding a new index
12 Kb
The visual query designer
16 Kb
Working with functions
10 Kb
Form designer
19 Kb
User management
4 Kb
Help
7 Kb


- [b]bold[/b] - bold
- [i]italic[/i] - italic
- [u]underlined[/u] - underlined
- [s]strike[/s] -
strike
- [color=red]red[/color] - red
- [url=https://redmatrix.me]Red Matrix[/url] Red Matrix
- [img]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img]
- [img float=left]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img]
- [img float=right]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img]
- [code]code[/code]
code
- [quote]quote[/quote]
quote
- [quote=Author]Author? Me? No, no, no...[/quote]
Author wrote:Author? Me? No, no, no...
- [nobb] may be used to escape bbcode.
You can make lists with:
- [list]
- [list=1]
- [list=i]
- [list=I]
- [list=a]
- [list=A]
- [ul]
- [ol]
For example:
[ul]
[*] First list element
[*] Second list element
[/ul]
Will render something like:
- First list element
- Second list element
There's also:
- [hr]
- [video]video URL[/video]
- [audio]audio URL[/audio]
- [table]
- [th]
- [td]
- [tr]
- [center]
- [font=courier]some text[/font] some text
Tables? Yes!
[table border=1]
[tr]
[th]Tables now[/th]
[/tr]
[tr]
[td]Have headers[/td]
[/tr]
[/table]
All sizes,
From the [size=xx-small] -
xx-small.
To the [size=xx-large] -
xx-large.
To fit exactly
20px use [size=20].
Red Matrix specific codes
- [©] © This works for many HTML entities
- [zrl]https://redmatrix.me[/zrl] Magic-auth version of [url] tag
- [zmg]https://redmatrix.me/some/photo.jpg[/zmg] Magic-auth version of [img] tag
- [observer=1]Text to display if observer is authenticated in the matrix[/observer]
- [observer=0]Text to display if observer is not authenticated in the matrix[/observer]
- [observer.baseurl] website of observer
- [observer.url] channel URL of observer
- [observer.name] name of observer
- [observer.address] address (zot-id) of observer
- [observer.photo] profile photo of observer
- [spoiler] for hiding spoilers
- [rpost=title]Text to post[/rpost] The observer will be returned to their home hub to enter a post with the specified title and body. Both are optional
- [qr]text to post[/qr] - create a QR code.
- [toc] - create a table of content in a webpage. Please refer to the original jquery toc to get more explanations.
- Optional param: 'data-toc'. If ommited the default is 'body'
- Optional param: 'data-toc-headings'. If ommited the default is 'h1,h2,h3'
- Full example: [toc data-toc='div.page-body' data-toc-headings='h1,h2']
These require a suitable map plugin/addon such as openstreetmap or else the result will be blank
- [map] Generate an inline map using the current browser coordinates of the poster, if browser location is enabled
- [map=latitude,longitude] Generate a map using global coordinates.
- [map]Place Name[/map] Generate a map for a given named location. The first matching location is returned. For instance "Sydney" will usually return Sydney, Australia and not Sydney, Nova Scotia, Canada unless the more precise location is specified. It is highly recommended to use the post preview utility to ensure you have the correct location before submitting the post.
#include doc/macros/main_footer.bb;


{% extends "base.html" %} {% block content %} {{ page_title }} access denied Sorry, you do not have permission to access this page. Back to Home {% endblock %}
Sorry, you do not have permission to access this page.


The leveldb
library provides a persistent key value store. Keys and
values are arbitrary byte arrays. The keys are ordered within the key
value store according to a user-specified comparator function.
A leveldb
database has a name which corresponds to a file system
directory. All of the contents of database are stored in this
directory. The following example shows how to open a database,
creating it if necessary:
#include <assert> #include "leveldb/db.h" leveldb::DB* db; leveldb::Options options; options.create_if_missing = true; leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db); assert(status.ok()); ...If you want to raise an error if the database already exists, add the following line before the
leveldb::DB::Open
call:
options.error_if_exists = true;
You may have noticed the leveldb::Status
type above. Values of this
type are returned by most functions in leveldb
that may encounter an
error. You can check if such a result is ok, and also print an
associated error message:
leveldb::Status s = ...; if (!s.ok()) cerr << s.ToString() << endl;
When you are done with a database, just delete the database object. Example:
... open the db as described above ... ... do something with db ... delete db;
The database provides Put
, Delete
, and Get
methods to
modify/query the database. For example, the following code
moves the value stored under key1 to key2.
std::string value; leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value); if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value); if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);
Note that if the process dies after the Put of key2 but before the
delete of key1, the same value may be left stored under multiple keys.
Such problems can be avoided by using the WriteBatch
class to
atomically apply a set of updates:
#include "leveldb/write_batch.h" ... std::string value; leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value); if (s.ok()) { leveldb::WriteBatch batch; batch.Delete(key1); batch.Put(key2, value); s = db->Write(leveldb::WriteOptions(), &batch); }The
WriteBatch
holds a sequence of edits to be made to the database,
and these edits within the batch are applied in order. Note that we
called Delete
before Put
so that if key1
is identical to key2
,
we do not end up erroneously dropping the value entirely.
Apart from its atomicity benefits, WriteBatch
may also be used to
speed up bulk updates by placing lots of individual mutations into the
same batch.
leveldb
is asynchronous: it
returns after pushing the write from the process into the operating
system. The transfer from operating system memory to the underlying
persistent storage happens asynchronously. The sync
flag
can be turned on for a particular write to make the write operation
not return until the data being written has been pushed all the way to
persistent storage. (On Posix systems, this is implemented by calling
either fsync(...)
or fdatasync(...)
or
msync(..., MS_SYNC)
before the write operation returns.)
leveldb::WriteOptions write_options; write_options.sync = true; db->Put(write_options, ...);Asynchronous writes are often more than a thousand times as fast as synchronous writes. The downside of asynchronous writes is that a crash of the machine may cause the last few updates to be lost. Note that a crash of just the writing process (i.e., not a reboot) will not cause any loss since even when
sync
is false, an update
is pushed from the process memory into the operating system before it
is considered done.
Asynchronous writes can often be used safely. For example, when loading a large amount of data into the database you can handle lost updates by restarting the bulk load after a crash. A hybrid scheme is also possible where every Nth write is synchronous, and in the event of a crash, the bulk load is restarted just after the last synchronous write finished by the previous run. (The synchronous write can update a marker that describes where to restart on a crash.)
WriteBatch
provides an alternative to asynchronous writes.
Multiple updates may be placed in the same WriteBatch
and
applied together using a synchronous write (i.e.,
write_options.sync
is set to true). The extra cost of
the synchronous write will be amortized across all of the writes in
the batch.
A database may only be opened by one process at a time.
The leveldb
implementation acquires a lock from the
operating system to prevent misuse. Within a single process, the
same leveldb::DB
object may be safely shared by multiple
concurrent threads. I.e., different threads may write into or fetch
iterators or call Get
on the same database without any
external synchronization (the leveldb implementation will
automatically do the required synchronization). However other objects
(like Iterator and WriteBatch) may require external synchronization.
If two threads share such an object, they must protect access to it
using their own locking protocol. More details are available in
the public header files.
The following example demonstrates how to print all key,value pairs in a database.
leveldb::Iterator* it = db->NewIterator(leveldb::ReadOptions()); for (it->SeekToFirst(); it->Valid(); it->Next()) { cout << it->key().ToString() << ": " << it->value().ToString() << endl; } assert(it->status().ok()); // Check for any errors found during the scan delete it;The following variation shows how to process just the keys in the range
[start,limit)
:
for (it->Seek(start); it->Valid() && it->key().ToString() < limit; it->Next()) { ... }You can also process entries in reverse order. (Caveat: reverse iteration may be somewhat slower than forward iteration.)
for (it->SeekToLast(); it->Valid(); it->Prev()) { ... }
Snapshots provide consistent read-only views over the entire state of
the key-value store. ReadOptions::snapshot
may be non-NULL to indicate
that a read should operate on a particular version of the DB state.
If ReadOptions::snapshot
is NULL, the read will operate on an
implicit snapshot of the current state.
Snapshots are created by the DB::GetSnapshot() method:
leveldb::ReadOptions options; options.snapshot = db->GetSnapshot(); ... apply some updates to db ... leveldb::Iterator* iter = db->NewIterator(options); ... read using iter to view the state when the snapshot was created ... delete iter; db->ReleaseSnapshot(options.snapshot);Note that when a snapshot is no longer needed, it should be released using the DB::ReleaseSnapshot interface. This allows the implementation to get rid of state that was being maintained just to support reading as of that snapshot.
The return value of the it->key()
and it->value()
calls above
are instances of the leveldb::Slice
type. Slice
is a simple
structure that contains a length and a pointer to an external byte
array. Returning a Slice
is a cheaper alternative to returning a
std::string
since we do not need to copy potentially large keys and
values. In addition, leveldb
methods do not return null-terminated
C-style strings since leveldb
keys and values are allowed to
contain '\0' bytes.
C++ strings and null-terminated C-style strings can be easily converted to a Slice:
leveldb::Slice s1 = "hello"; std::string str("world"); leveldb::Slice s2 = str;A Slice can be easily converted back to a C++ string:
std::string str = s1.ToString(); assert(str == std::string("hello"));Be careful when using Slices since it is up to the caller to ensure that the external byte array into which the Slice points remains live while the Slice is in use. For example, the following is buggy:
leveldb::Slice slice; if (...) { std::string str = ...; slice = str; } Use(slice);When the
if
statement goes out of scope, str
will be destroyed and the
backing storage for slice
will disappear.
The preceding examples used the default ordering function for key,
which orders bytes lexicographically. You can however supply a custom
comparator when opening a database. For example, suppose each
database key consists of two numbers and we should sort by the first
number, breaking ties by the second number. First, define a proper
subclass of leveldb::Comparator
that expresses these rules:
class TwoPartComparator : public leveldb::Comparator { public: // Three-way comparison function: // if a < b: negative result // if a > b: positive result // else: zero result int Compare(const leveldb::Slice& a, const leveldb::Slice& b) const { int a1, a2, b1, b2; ParseKey(a, &a1, &a2); ParseKey(b, &b1, &b2); if (a1 < b1) return -1; if (a1 > b1) return +1; if (a2 < b2) return -1; if (a2 > b2) return +1; return 0; } // Ignore the following methods for now: const char* Name() const { return "TwoPartComparator"; } void FindShortestSeparator(std::string*, const leveldb::Slice&) const { } void FindShortSuccessor(std::string*) const { } };Now create a database using this custom comparator:
TwoPartComparator cmp; leveldb::DB* db; leveldb::Options options; options.create_if_missing = true; options.comparator = &cmp; leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db); ...
The result of the comparator's Name
method is attached to the
database when it is created, and is checked on every subsequent
database open. If the name changes, the leveldb::DB::Open
call will
fail. Therefore, change the name if and only if the new key format
and comparison function are incompatible with existing databases, and
it is ok to discard the contents of all existing databases.
You can however still gradually evolve your key format over time with
a little bit of pre-planning. For example, you could store a version
number at the end of each key (one byte should suffice for most uses).
When you wish to switch to a new key format (e.g., adding an optional
third part to the keys processed by TwoPartComparator
),
(a) keep the same comparator name (b) increment the version number
for new keys (c) change the comparator function so it uses the
version numbers found in the keys to decide how to interpret them.
Performance can be tuned by changing the default values of the
types defined in include/leveldb/options.h
.
leveldb
groups adjacent keys together into the same block and such a
block is the unit of transfer to and from persistent storage. The
default block size is approximately 4096 uncompressed bytes.
Applications that mostly do bulk scans over the contents of the
database may wish to increase this size. Applications that do a lot
of point reads of small values may wish to switch to a smaller block
size if performance measurements indicate an improvement. There isn't
much benefit in using blocks smaller than one kilobyte, or larger than
a few megabytes. Also note that compression will be more effective
with larger block sizes.
Each block is individually compressed before being written to persistent storage. Compression is on by default since the default compression method is very fast, and is automatically disabled for uncompressible data. In rare cases, applications may want to disable compression entirely, but should only do so if benchmarks show a performance improvement:
leveldb::Options options; options.compression = leveldb::kNoCompression; ... leveldb::DB::Open(options, name, ...) ....
The contents of the database are stored in a set of files in the
filesystem and each file stores a sequence of compressed blocks. If
options.cache
is non-NULL, it is used to cache frequently used
uncompressed block contents.
#include "leveldb/cache.h" leveldb::Options options; options.cache = leveldb::NewLRUCache(100 * 1048576); // 100MB cache leveldb::DB* db; leveldb::DB::Open(options, name, &db); ... use the db ... delete db delete options.cache;Note that the cache holds uncompressed data, and therefore it should be sized according to application level data sizes, without any reduction from compression. (Caching of compressed blocks is left to the operating system buffer cache, or any custom
Env
implementation provided by the client.)
When performing a bulk read, the application may wish to disable caching so that the data processed by the bulk read does not end up displacing most of the cached contents. A per-iterator option can be used to achieve this:
leveldb::ReadOptions options; options.fill_cache = false; leveldb::Iterator* it = db->NewIterator(options); for (it->SeekToFirst(); it->Valid(); it->Next()) { ... }
Note that the unit of disk transfer and caching is a block. Adjacent keys (according to the database sort order) will usually be placed in the same block. Therefore the application can improve its performance by placing keys that are accessed together near each other and placing infrequently used keys in a separate region of the key space.
For example, suppose we are implementing a simple file system on top
of leveldb
. The types of entries we might wish to store are:
filename -> permission-bits, length, list of file_block_ids file_block_id -> dataWe might want to prefix
filename
keys with one letter (say '/') and the
file_block_id
keys with a different letter (say '0') so that scans
over just the metadata do not force us to fetch and cache bulky file
contents.
Because of the way leveldb
data is organized on disk,
a single Get()
call may involve multiple reads from disk.
The optional FilterPolicy
mechanism can be used to reduce
the number of disk reads substantially.
leveldb::Options options; options.filter_policy = NewBloomFilterPolicy(10); leveldb::DB* db; leveldb::DB::Open(options, "/tmp/testdb", &db); ... use the database ... delete db; delete options.filter_policy;The preceding code associates a Bloom filter based filtering policy with the database. Bloom filter based filtering relies on keeping some number of bits of data in memory per key (in this case 10 bits per key since that is the argument we passed to NewBloomFilterPolicy). This filter will reduce the number of unnecessary disk reads needed for
Get()
calls by a factor of
approximately a 100. Increasing the bits per key will lead to a
larger reduction at the cost of more memory usage. We recommend that
applications whose working set does not fit in memory and that do a
lot of random reads set a filter policy.
If you are using a custom comparator, you should ensure that the filter
policy you are using is compatible with your comparator. For example,
consider a comparator that ignores trailing spaces when comparing keys.
NewBloomFilterPolicy
must not be used with such a comparator.
Instead, the application should provide a custom filter policy that
also ignores trailing spaces. For example:
class CustomFilterPolicy : public leveldb::FilterPolicy { private: FilterPolicy* builtin_policy_; public: CustomFilterPolicy() : builtin_policy_(NewBloomFilterPolicy(10)) { } ~CustomFilterPolicy() { delete builtin_policy_; } const char* Name() const { return "IgnoreTrailingSpacesFilter"; } void CreateFilter(const Slice* keys, int n, std::string* dst) const { // Use builtin bloom filter code after removing trailing spaces std::vector<Slice> trimmed(n); for (int i = 0; i < n; i++) { trimmed[i] = RemoveTrailingSpaces(keys[i]); } return builtin_policy_->CreateFilter(&trimmed[i], n, dst); } bool KeyMayMatch(const Slice& key, const Slice& filter) const { // Use builtin bloom filter code after removing trailing spaces return builtin_policy_->KeyMayMatch(RemoveTrailingSpaces(key), filter); } };
Advanced applications may provide a filter policy that does not use
a bloom filter but uses some other mechanism for summarizing a set
of keys. See leveldb/filter_policy.h
for detail.
leveldb
associates checksums with all data it stores in the file system.
There are two separate controls provided over how aggressively these
checksums are verified:
ReadOptions::verify_checksums
may be set to true to force
checksum verification of all data that is read from the file system on
behalf of a particular read. By default, no such verification is
done.
Options::paranoid_checks
may be set to true before opening a
database to make the database implementation raise an error as soon as
it detects an internal corruption. Depending on which portion of the
database has been corrupted, the error may be raised when the database
is opened, or later by another database operation. By default,
paranoid checking is off so that the database can be used even if
parts of its persistent storage have been corrupted.
If a database is corrupted (perhaps it cannot be opened when
paranoid checking is turned on), the leveldb::RepairDB
function
may be used to recover as much of the data as possible
The GetApproximateSizes
method can used to get the approximate
number of bytes of file system space used by one or more key ranges.
leveldb::Range ranges[2]; ranges[0] = leveldb::Range("a", "c"); ranges[1] = leveldb::Range("x", "z"); uint64_t sizes[2]; leveldb::Status s = db->GetApproximateSizes(ranges, 2, sizes);The preceding call will set
sizes[0]
to the approximate number of
bytes of file system space used by the key range [a..c)
and
sizes[1]
to the approximate number of bytes used by the key range
[x..z)
.
All file operations (and other operating system calls) issued by the
leveldb
implementation are routed through a leveldb::Env
object.
Sophisticated clients may wish to provide their own Env
implementation to get better control. For example, an application may
introduce artificial delays in the file IO paths to limit the impact
of leveldb
on other activities in the system.
class SlowEnv : public leveldb::Env { .. implementation of the Env interface ... }; SlowEnv env; leveldb::Options options; options.env = &env; Status s = leveldb::DB::Open(options, ...);
leveldb
may be ported to a new platform by providing platform
specific implementations of the types/methods/functions exported by
leveldb/port/port.h
. See leveldb/port/port_example.h
for more
details.
In addition, the new platform may need a new default leveldb::Env
implementation. See leveldb/util/env_posix.h
for an example.
Details about the leveldb
implementation may be found in
the following documents:


|
Assimp
5.0.1, master @ cd42b955
|
Stores all objects of an obj-file object definition. More...
Public Types | |
| enum | ObjectType { ObjType , GroupType } |
Public Member Functions | |
| Object ()=default | |
| Default constructor. More... | |
| ~Object () | |
| Destructor. More... | |
Public Attributes | |
| std::vector< unsigned int > | m_Meshes |
| Assigned meshes. More... | |
| std::string | m_strObjName |
| Object name. More... | |
| std::vector< Object * > | m_SubObjects |
| All sub-objects referenced by this object. More... | |
| aiMatrix4x4 | m_Transformation |
| Transformation matrix, stored in OpenGL format. More... | |
Stores all objects of an obj-file object definition.
|
default |
Default constructor.
|
inline |
Destructor.
| std::vector<unsigned int> Assimp::ObjFile::Object::m_Meshes |
Assigned meshes.
| std::string Assimp::ObjFile::Object::m_strObjName |
Object name.
| std::vector<Object *> Assimp::ObjFile::Object::m_SubObjects |
All sub-objects referenced by this object.
| aiMatrix4x4 Assimp::ObjFile::Object::m_Transformation |
Transformation matrix, stored in OpenGL format.


Iain Lee's blistering attack on I'm A Celebrity over show's aftercare
The DJ appeared on the 2017 series of the show, which begins again on Sunday night, and has spoken about his depression
by James Rodger, https://www.facebook.com/jamesrodgerjournalistFormer I'm A Celebrity... star Iain Lee says the aftercare for celebrities who have been on the TV show is "inadequate".
The DJ appeared on the 2017 series of the show, which begins again on Sunday night, and has spoken about his depression.
His comments come after shows like Love Island beefed up the mental health care they offer contestants.

The broadcaster, 46, said not getting enough sleep, along with I'm A Celebrity...Get Me Out Of Here's gruelling challenges and lack of food, was "torture".
Lee, who has spoken of his own depression, wants the Government to recognise sleep as a fundamental human right.
He said of the jungle: "Sleep there was a nightmare. I'm a 6ft 4in man and for the most of it they put me in a hammock....
"You'd get to bed late at night if you were doing a midnight challenge... and then they'd wake you up ridiculously early to do the live show with Ant and Dec. You'd always have to look busy."
He said a lack of sleep made the celebrities "ratty, miserable and upset".
Lee, who is working with Eve Sleep on a campaign to highlight social and environmental factors which impact on sleep, said: "I get that that's part of the show... but not having sleep is dangerous. It's a form of torture...
"I'm not complaining about the jungle. I had a great time. It turned my career around, I loved it but let (this year's contestants) Kate Garraway and Ian Wright have a decent night's sleep."
The DJ said of the show's aftercare: "There certainly could have been more help."
"I think they paid for a couple of sessions to see my psychiatrist which I would have seen anyway and I had a phone call asking if I'd like to come in and I said I didn't want to go in and that was that...
"Meanwhile I'm going off the rails and going nuts. Not as a direct result of the jungle but immediately after the jungle I went a little bit nuts."
Lee fell out with Rebekah Vardy during his time on the ITV show and she was accused of bullying him, something which Lee denied.
Vardy has since made headlines around the world after Coleen Rooney claimed her Instagram account was the source of leaked stories about her private life.
Lee said of their feud: "I know I didn't like her (Vardy) and I didn't get on with her (in the jungle) but I also don't like Twitter pile-ons....
"Seeing a whole country pile on to a pregnant woman in that way that people do, made me very, very uncomfortable.
"Whatever I thought about her. I didn't get on with her and I didn't like her, I still wouldn't wish anybody attacking a pregnant woman like that."
A spokeswoman for I'm A Celebrity... said: "The safety and wellbeing of all of our campmates is our number one priority.
"All campmates have 24-hour access to both medical and psychological support during their stay in camp."
Iain Lee is working with wellness brand Eve Sleep, as part of its Right To Sleep campaign, to lobby the Government to recognise sleep as a fundamental human right.


Introduction to
Embedded
Systems
Programming
Scott Overholser
https://github.com/eigenholser/embedded_programming_intro
Java/Scala dev at t0, blockchain securities.
The slides are linked at joind.in.
Interrupt any time with questions. Because of time constraints, may need to defer until after the talk.
Audience survey. Experience with embedded systems, C programming.
Juggling six workspaces. Any choppiness is unavoidable.
An embedded system is a computer system with a dedicated function
within a larger mechanical or electrical system. It is embedded as
part of a complete device often including hardware and mechanical
parts.

TM4C
Introduce TM4C.
Demo with USB cable connected to power adapter only.
Demo with USB cable connnected to laptop with terminal and cu connected.
Start cu to capture UART! After USB attached.
Explain printf statements and optimizataion issues.
Introduce TM4C data sheet, user's manual, AAPCS document.
TI Code Composer Studio, GCC ARM. No limit.
Vector Table
Stack
Interrupts
GPIO
Vector Table
Vector table is just a constant 154 element integer array flashed to ROM. Size is 0x268 bytes.
Every entry in the vector table is a pointer to a function--except the first value, SP
Exceptions and Interrupts - TM4C123GH6PM Microcontroller Data Sheet, Page 102
Vector Table - TM4C123GH6PM Microcontroller Data Sheet, Page 107
Highlight Stack Pointer, Reset Vector, SysTick Vector, and GPIOA Vector - TM4C123GH6PM Microcontroller Data Sheet, Page 103
Review code startup.c/startup.h, and isr.c
See linker script
Show and tell vector table. Debug project. Memory view 0x0000 0000. See SP at 0x0. Disassembly view at 0x0000 0000. Note vectors to handlers.
Verify that fixture non-functional when debugger stopped.
Stack
Stack Pointer - TM4C123GH6PM Microcontroller Data Sheet, Page 107
Note two approaches to stack location in RAM. Traditional is left. Safer is right.
Linker and stack location - linker.lds
Toyota Camry unintended acceleration problem - stack overflow. Overwrote heap memory.
With this arrangement, the CPU throws HardFault exception on stack overflow with ROM write attempt.
GCC attribute "naked" to not use stack operations. Avoids endless exception loop and changing state needed for debugging.
Review startup.c HardFault()
Configuration
Run Mode Clock Gating Control
Nested Vector Interrupt Controller
SysTick
Describe RCGC - TM4C123GH6PM Microcontroller Data Sheet, page 340
Control registers and GPIO are all memory mapped.
Debug UART GPIOA RCGC enable. See register view UART0 and memory 0x4000 4000. Breakpoint on RCGC enable.
Describe NVIC EN/PRI - TM4C123GH6PM Microcontroller Data Sheet, page 142, 152.
GPIO A corresponds to interrupt 0.
Debug set breakpoint, interrupt.c NVIC_Init(). See register view NVIC and memory view 0xE000 E400 32-bit binary. Step to set priority and enable.
SysTick - TM4C123GH6PM Microcontroller Data Sheet, page 138
Debug, set breakpoint, interrupt.c SysTick_Init(). See register view NVIC and memory view 0xE000 E010 32-bit binary. Step 3 times to configure SysTick.
GPIO Digital Input with Interrupt
GPIO control register map, TM4C123GH6PM Microcontroller Data Sheet, p660
GPIODEN/GPIODIR control registers.
GPIOIM interrupt mask
GPIOIBE interrupt both edges.
Register view GPIO_PORTA_AHB. Memory view 0x4005 8000. Binary number format.
Set breakpoint in GPIOA_Pin_Init(). Step through register configuration. Note input/output configuration.
Pull Down Resistor
GPIOPDR control register. Keep switch input in known state.
Wall Switch
When the switch is closed (i.e. ON), logic HIGH is asserted on GPIOA pin 3. When the switch is open (i.e.OFF) logic LOW is asserted via PDR on GPIOA pin 3.
Problem is...the switch bounces.
Dramatization of switch bouncing versus CPU clock.
The switch bounce is random and on the order of single-digit milliseconds. I can only guess.
The CPU clock is very much faster than represented.
Originally I tried doing a bit toggle thinking that ultimately the number of bounces would be an odd number and thus leave GPIO PA2 HIGH.
That proved to be unreliable. It also seemed sloppy.
CPU clock cycle period
CPU clock cycles per millisecond
Explain debouncing algorithm: GPIOA interrupt handler. Disable GPIOA interrupts. Set pa3flag. After two SysTick cycles check for logic HIGH.
Then we conclude that the switch is on. Re-enable GPIOA interrupts, set pa3flag=0.
Set breakpoint isr.c, SysTick_Handler() inside lamp on section. Flip the switch on.
AAPCS - Arm Architecture Procedure Call Standard, See AAPCS document
Review main.c. Memory view for Stack at 0x2000 0380 32-bit hex C style. Confirm Registers pushed on stack.
Single-step through code turning lamp/LED on/off.
Each GPIO pin is bitwise addressable. Or, all bits may be written at once.
Explain read-modify-write problem with race condition
GPIO Digital Output
GPIODEN/GPIODIR must be configured.
Configured as outputs, GPIO pins do not require interrupt configuration.
Solid State Relay
Solid state relay from JameCo - 40 Amps, 240 Volts. Control signal 3-32 Volts, 15mA.
Larson Scanner
Bitwise shift a 10-bit number on a schedule. After each shift, display bits 2:9.
See isr.c line 35 in SysTick_Handler().
Note we are not using bitwise addressing here for GPIO writes.
Questions
https://github.com/eigenholser/embedded_programming_intro


KISSED A film review by Alex Fung Copyright 1996 Alex Fung
Starring Molly Parker, Peter Outerbridge, Jay Brazeau, Natasha Morley Screenplay by Angus Fraser and Lynne Stopkewich, based on the short story by Barbara Gowdy Produced by Dean English and Lynne Stopkewich Directed by Lynne Stopkewich Running time: 78 minutes
Me: **** (out of four stars)
Note: Some may consider portions of the following text to be spoilers. Be forewarned.
It's tough to make a thoughtful and tasteful film about a taboo subject like necrophilia, rather than simply taking the easy way out via an exploitation film or going for shock value. Eschewing a brazenly outrageous or exploitive tact on the film's decidedly taboo subject matter, Lynne Stopkewich's first feature film KISSED is a magnificent, beautiful piece of work, wonderfully written, acted, and shot.
Even as a child, Sandra Larson (played by Natasha Morley as a child; Molly Parker portrays the adult Sandra) is fascinated by the beauty and stillness of death, collecting dead rodents and other small animals from the woods in order to perform intricate rituals. Sandra strips, dances, and lovingly caresses the dead animals against herself in order to claim their essence before carefully burying them.
Years pass, but Sandra's interest remains. Quitting her job at a flower shop, she gets a job at a funeral parlour and studies embalming. She gets a boyfriend too, Matt (played by Peter Outerbridge), a young medical student taking some time off. When Sandra reveals her secret to him, Matt's reaction is not that of disgust or horror, but curiousity. His passion for Sandra eventually spins out of control, leading to an inevitable conclusion which is poetic and poignant.
Molly Parker gives a sensational performance as Sandra. With her photogenic freckled features and natural screen presence, she makes a compelling, engaging lead, and her take on her character is intriguing. Sandra is, for all intents and purposes, the girl next door (albeit a little quiet and withdrawn) with a striking little character quirk. Parker's dreamy narration throughout KISSED perfectly suits the tone of the film, and her timid mannerisms are wonderfully executed. She's a real revelation.
The screenplay for KISSED is wonderfully written - sparse, well-paced, classy, and very clever.  It's particularly impressive that the screenwriters didn't succumb to the temptation to get overly clever with the plot, and allowed the film to flow to its natural conclusion.
Stopkewich's poised direction of the film is first-rate and demonstrates remarkable proficiency for a debut feature. The film was clearly lovingly crafted, with virtually every shot well laid out; it's a stunningly beautiful film to watch. There's an incredibly surreal feel to the film, aided in part by the cool lighting as shot by cinematographer Gregory Middleton, and the music for KISSED, as handled by Don MacDonald, is orchestrated perfectly.
KISSED simply will not be to everyone's taste. Despite being a completely tasteful film, there will be those who simply will not accept a film whose lead character is a necrophiliac, and will have the preconceived notion of a groteseque, disturbing film. My condolesences go to them, as they're missing a great movie. I'm keeping my eyes out for Lynne Stopkewich's next project.
-- Alex Fung<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| index | trial_id | registry | registration_date | start_date | retrospective_registration | sponsor | recruitment_status | phase | study_type | countries | title | acronym | study_category | intervention | intervention_list | enrollment | primary_completion_date | full_completion_date | registy_url | results_type | results_published_date | results_url | last_updated | cross_registration |
|---|
Data as of 11 November 2020
This is a live work in progress! If you think you can help improve the tracker or have questions/suggestions, please get in touch<EMAIL_ADDRESS>If you come across trial results, you can submit them here
Abbreviations:
- ATMP: Advanced Therapy Medicinal Product
- See here for registry abbreviations
Recent updates (Updated: 22 Nov 2020):
- Updated data from 11 November 2020 Download
More information on the About page


AntiqueWhite
Black
Blue
Green
Back to initial color
Creating CSS3 Transitions and Animations in CSS and triggering them with JavaScript


- President Kalam earned his first wages at the age of 8 when he started selling newspapers in his neighbourhood.
- He was an avid reader of books on cosmology and celestial bodies.
- He dreamt of becoming a fighter pilot, but could not realise it since he secured the ninth position in the Indian Air Force selection, when only eight slots were available.
- President Kalam started his professional career at the Defence Research and Development Organisation (DRDO) where he designed a small helicopter for the Indian army.
- Dr. Kalam received doctorates from 48 universities which included the University of Edinburgh and the Carnegie Mellon University.
- When he resigned from the office of Principal Scientific Advisor to the Government of India in 2001, Dr Kalam announced setting himself a goal of interacting with 100,000 students throughout the country in an attempt to help them realise their dreams.
- When in his 70s, Dr Kalam was nominated twice for the MTV youth icon, once in the year 2003 and then again in 2006.
- He was a passionate writer and authored close to 18 books, 22 poems and 4 songs during his lifetime.
- Dr. Kalam received the Bharat Ratna in 1997. Along with Dr. Zakir Husain and Dr. Sarvapalli Radhakrishnan, he is the third president of India to have received the award before claiming the presidential post.
- After Dr Kalam died in 2015, he had no other property in his name other than his collection of books.
Read More at wikipedia for A.P.J Abul Kalam
Above facts taken from Indian Express


Descriptive Statistics
-
Weekly Average Session Count per Customer
Each customer's total unique session count per week is calculated. By using this aggregated date average session count per customer per week is calculated. This might give us the clue of which weeks the customers of engagement to the business are increased/decreased. In addition to that, It gives us information about the customers` session frequency per week. -
Weekly Average Purchase Count per Customer
Each customer's total order count per week is calculated. By using this aggregated date average order count per customer per week is calculated. This might give us the clue of which weeks the customers of order possibilities are increased/decreased. In addition to that, It gives us information about the customers` purchase frequency per week. -
Payment Amount Distribution
This chart is a histogram which shows the bins of total customers. Each bin represents a range of payment amounts related to purchased orders. -
Weekly Average Payment Amount
Average payment amount of orders user who has orders


Program started at Wed-01-Nov-2006 15:32.
Analysed requests from Tue-01-Nov-2005 00:00 to Tue-31-Oct-2006 23:59 (365.00 days).
(Go To: Top | General Summary | Monthly Report | Daily Summary | Hourly Summary)
This report contains overall statistics.
Successful requests: 130,982,529
Average successful requests per day: 358,856
Successful requests for pages: 46,978,453
Average successful requests for pages per day: 128,708
Failed requests: 91,310
Redirected requests: 3,369,693
Distinct files requested: 1,688,842
Distinct hosts served: 1,244,233
Corrupt logfile lines: 30,228
Unwanted logfile entries: 50,362,583
Data transferred: 2.14 terabytes
Average data transferred per day: 6.01 gigabytes
(Go To: Top | General Summary | Monthly Report | Daily Summary | Hourly Summary)
This report lists the activity in each month.
Each unit () represents 200,000 requests for pages or part thereof.
| month | reqs | pages | |
|---|---|---|---|
| Nov 2005 | 12947003 | 4725404 | |
| Dec 2005 | 9363447 | 3469661 | |
| Jan 2006 | 12719108 | 4402617 | |
| Feb 2006 | 12327213 | 4371334 | |
| Mar 2006 | 13679708 | 4919726 | |
| Apr 2006 | 12395942 | 4315217 | |
| May 2006 | 5710809 | 2269474 | |
| Jun 2006 | 2312047 | 1025767 | |
| Jul 2006 | 3956857 | 1653122 | |
| Aug 2006 | 8390974 | 3039311 | |
| Sep 2006 | 16622730 | 5641570 | |
| Oct 2006 | 20556692 | 7145250 |
Busiest month: Oct 2006 (7,145,250 requests for pages).
(Go To: Top | General Summary | Monthly Report | Daily Summary | Hourly Summary)
This report lists the total activity for each day of the week, summed over all the weeks in the report.
Each unit () represents 250,000 requests for pages or part thereof.
| day | reqs | pages | |
|---|---|---|---|
| Sun | 21503993 | 7704488 | |
| Mon | 27641748 | 9703201 | |
| Tue | 20187425 | 7199577 | |
| Wed | 17439242 | 6286487 | |
| Thu | 15596797 | 5660399 | |
| Fri | 13832717 | 5100885 | |
| Sat | 14780608 | 5323416 |
(Go To: Top | General Summary | Monthly Report | Daily Summary | Hourly Summary)
This report lists the total activity for each hour of the day, summed over all the days in the report.
Each unit () represents 80,000 requests for pages or part thereof.
| hour | reqs | pages | |
|---|---|---|---|
| 0 | 1991662 | 824434 | |
| 1 | 1020273 | 500948 | |
| 2 | 626026 | 355077 | |
| 3 | 522560 | 333528 | |
| 4 | 452510 | 296238 | |
| 5 | 510721 | 310285 | |
| 6 | 1015275 | 505227 | |
| 7 | 2406654 | 944704 | |
| 8 | 5377596 | 1864820 | |
| 9 | 7627790 | 2606275 | |
| 10 | 7878522 | 2718918 | |
| 11 | 8055980 | 2802224 | |
| 12 | 9105382 | 3161034 | |
| 13 | 9147709 | 3150312 | |
| 14 | 7366281 | 2601096 | |
| 15 | 7398074 | 2619821 | |
| 16 | 8289957 | 2907290 | |
| 17 | 8949266 | 3105606 | |
| 18 | 9009608 | 3156640 | |
| 19 | 8724311 | 3090533 | |
| 20 | 8100260 | 2880690 | |
| 21 | 7370152 | 2627787 | |
| 22 | 6282762 | 2223636 | |
| 23 | 3753199 | 1391330 |


Storyboard TaskFlowObjectScenarioForCoverage
Create some objects just for coverage. This does not serve as an usage example.


Finance Manager
View Tickets
Filter By
None
Pending
Approved
Denied
TicketId
Amount
Submitted
Resolved
Description
AuthorId
ResolverId
StatusId
TypeId


Our PLUS Plan
Recommended
The most popular choice of our customers.
The most popular choice of our customers.
Benefit from increased storage and faster support to ensure that your mission-critical data and applications are always available!
Our FREE Plan
An extremely solid start into our hosting world.
Get started immediately at zero cost!
Our PREMIUM Plan
All your enterprise needs. Instant support, guaranteed uptime.
The best solution for small to large enterprises. Because hosting shouldn't be in the way!


{% extends 'base.html' %}
{% block title %}
Journou Home
{% endblock %}
{%block body%}
Welcome to Journou!
Journou is a webapp made by international students for international students. This website will help provide information regarding everything an international student would need from university applications to money management tips after getting your first job.
Applicants will be able to discuss with fellow students from the universities and majors they applied to.
The areas being discussed are:
Education and University information
Helpful websites
Housing information
Vocabulary Changes you might experience
Finding jobs during and after your studies
Money Management tips (website owner's opinion. this is not financial advice)


---
title: "Made by Groot"
layout: page
image: meta-preview.png
---
{% include icons/welcome.svg size="64" %} Hey hi, I’m Brooke!!
I’m an interactive poet, writer and storyteller.
Here's a taste of what I do →
{% assign sorted_posts = site.posts | sort: "tile.order" %}
{% for post in sorted_posts %}{% unless post.hidden %}{% unless post.tile.order < 0 %}
{% if post.draft %}COMING SOON!{% endif %}
{{ post.title }}
{% endunless %}{% endunless %}{% endfor %}
{% include icons/emoji.svg size="38" %}
Here's a lil' about me:
Nice to meet you!! I'm Brooke: 🍵 sparkly tea witch, 🚆 transit nerd, 🌮 taco advocate, and 🦄 poem unicorn.
You can find me on
Instagram,
{% include icons/briefcase.svg size="38" %}
Let's write something cool together!
You can keep track of my availability, what I'm working on, and events I'll attending on Instagram
Built by
Groot


|
Cosan
1.0
Data Analytics Library
|
#include <selection.h>
Public Member Functions | |
| Search () | |
| Public Member Functions inherited from Cosan::Selection | |
| Selection () | |
| Public Member Functions inherited from Cosan::CosanBO | |
| CosanBO () | |
| Default constructor. More... | |
| virtual const std::string | GetName () const |
| Get the name of the objects. More... | |
Definition at line 27 of file selection.h.
|
inline |
Definition at line 29 of file selection.h.


the Gracewood Building
[90, 70]
|
wasteland
[91, 70]
|
Derham Alley
[92, 70]
|
a junkyard
[93, 70]
|
Isherwood Avenue
[94, 70]
|
Eeles Way
[95, 70]
|
Keeling Walk Railway Station
[96, 70]
|
the Sevier Building
[97, 70]
|
Peterson Auto Repair
[98, 70]
|
Vaughan Drive
[99, 70]
|
Stuart Boulevard
[90, 71]
|
Coome Lane
[91, 71]
|
Saltrow Park
[92, 71]
|
St Danilo's Church
[93, 71]
|
a carpark
[94, 71]
|
a warehouse
[95, 71]
|
the Voules Museum
[96, 71]
|
Buglar Boulevard School
[97, 71]
|
Stacey Plaza
[98, 71]
|
Club Croxford
[99, 71]
|
the Murtaugh Motel
[90, 72]
|
Digby Walk
[91, 72]
|
Tuxill Alley Fire Station
[92, 72]
|
Pike Plaza
[93, 72]
|
Akehurst Walk
[94, 72]
|
Rossiter Crescent
[95, 72]
|
Kettner Drive
[96, 72]
|
Manuel Park
[97, 72]
|
Fowke Lane Fire Station
[98, 72]
|
Leekey Bank
[99, 72]
|
Carye Drive
[90, 73]
|
Coombe Library
[91, 73]
|
Shillito Drive Railway Station
[92, 73]
|
Milard Auto Repair
[93, 73]
|
a factory
[94, 73]
|
the Rothwell Building
[95, 73]
|
Dunlap Bank
[96, 73]
|
Dredge Alley
[97, 73]
|
a factory
[98, 73]
|
Jordan Park
[99, 73]
|
Wyatt Way
[90, 74]
|
Naish Park
[91, 74]
|
Halfacree Square
[92, 74]
|
Buteby Avenue
[93, 74]
|
the Tomkyns Building
[94, 74]
|
a junkyard
[95, 74]
|
Maddaford Square
[96, 74]
|
Club Crosland
[97, 74]
|
the Pester Building
[98, 74]
|
the Baggaley Building
[99, 74]
|
Normandare Boulevard Police Dept
[90, 75]
|
Churchous Avenue
[91, 75]
|
Fairfield Library
[92, 75]
|
a junkyard
[93, 75]
|
St Martha's Church
[94, 75]
|
a junkyard
[95, 75]
|
Shelley Grove School
[96, 75]
|
Roberson Library
[97, 75]
|
Pyncombes Auto Repair
[98, 75]
|
Oakeley Park
[99, 75]
|
Sargent Row
[90, 76]
|
Hagger Square Fire Station
[91, 76]
|
the Craddy Building
[92, 76]
|
Rundle Auto Repair
[93, 76]
|
the Humphrys Building
[94, 76]
|
Gannett Auto Repair
[95, 76]
|
the Coker Monument
[96, 76]
|
Sargent Crescent
[97, 76]
|
a junkyard
[98, 76]
|
the Shalle Building
[99, 76]
|
the Cholmondeley Building
[90, 77]
|
Deacon Alley Police Dept
[91, 77]
|
Adler Crescent Fire Station
[92, 77]
|
the Roger Arms
[93, 77]
|
Brimblecombe Auto Repair
[94, 77]
|
the Willmington Monument
[95, 77]
|
Langsford Drive Fire Station
[96, 77]
|
Josephine General Hospital
[97, 77]
|
Cracknell Towers
[98, 77]
|
Lumber Mall
[99, 77]
|
Neave Auto Repair
[90, 78]
|
wasteland
[91, 78]
|
the Orome Arms
[92, 78]
|
Windey Towers
[93, 78]
|
the Browton Building
[94, 78]
|
a junkyard
[95, 78]
|
Murless Way
[96, 78]
|
Odo General Hospital
[97, 78]
|
Sulley Bank
[98, 78]
|
Lumber Mall
[99, 78]
|
Joachim Mall
[90, 79]
|
Joachim Mall
[91, 79]
|
Earlham Walk
[92, 79]
|
Grist Grove
[93, 79]
|
the Hazeldine Museum
[94, 79]
|
Shickell Drive Railway Station
[95, 79]
|
War Crescent
[96, 79]
|
Oakley Drive
[97, 79]
|
Chedgey Drive
[98, 79]
|
Club Frossard
[99, 79]
|
|
Menu
City Map
Find Location
Route Finder
World View
Map Mirror
|


Using the Skupper Operator on Kubernetes
The Skupper Operator creates and manages Skupper sites in Kubernetes.
You can install the Operator as described in Installing the Operator using the CLI.
|
Installing an Operator requires administrator-level privileges for your Kubernetes cluster. |
After installing the Operator, you can create a site by deploying a ConfigMap as described in Creating a site using the Skupper Operator
Installing the Operator using the CLI
The steps in this section show how to use the kubectl
command-line interface (CLI) to install and deploy the latest version of the Skupper Operator in a given Kubernetes cluster.
-
The Operator Lifecycle Manager is installed in the cluster. For more information, see the QuickStart.
-
Download the Skupper Operator example files, for example:
$ wget https://github.com/skupperproject/skupper-operator/archive/refs/heads/main.zip
-
Create a
my-namespace
namespace. NOTE: If you want to use a different namespace, you need to edit the referenced YAML files.-
Create a new namespace:
$ kubectl create namespace my-namespace
-
Switch context to the namespace:
$ kubectl config set-context --current --namespace=my-namespace
-
-
Create a CatalogSource in the
openshift-marketplace
namespace:$ kubectl apply -f examples/k8s/00-cs.yaml
-
Verify the skupper-operator catalog pod is running before continuing:
$ kubectl -n olm get pods | grep skupper-operator
-
Create an OperatorGroup in the
my-namespace
namespace:$ kubectl apply -f examples/k8s/10-og.yaml
-
Create a Subscription in the
my-namespace
namespace:$ kubectl apply -f examples/k8s/20-sub.yaml
-
Verify that the Operator is running:
$ kubectl get pods -n my-namespace NAME READY STATUS RESTARTS AGE skupper-site-controller-d7b57964-gxms6 1/1 Running 0 1m
If the output does not report the pod is running, use the following command to determine the issue that prevented it from running:
$ kubectl describe pod -l name=skupper-operator
Creating a site using the Skupper Operator
-
Create a YAML file defining the ConfigMap of the site you want to create.
For example, create
skupper-site.yaml
that provisions a site with a console:apiVersion: v1 kind: ConfigMap metadata: name: skupper-site namespace: my-namespace data: console: "true" flow-collector: "true" console-user: "admin" console-password: "changeme"
The console is a preview feature and may change before becoming fully supported by skupper.io. Currently, you must enable the console on the same site as you enable the flow collector. This requirement may change before the console is fully supported by skupper.io. You can also create a site without a console:
apiVersion: v1 kind: ConfigMap metadata: name: skupper-site namespace: my-namespace
-
Apply the YAML to create a ConfigMap named
skupper-site
in the namespace you want to use:$ kubectl apply -f skupper-site.yaml
-
Verify that the site is created by checking that the Skupper router and service controller pods are running:
$ kubectl get pods NAME READY STATUS RESTARTS AGE skupper-router-8c6cc6d76-27562 1/1 Running 0 40s skupper-service-controller-57cdbb56c5-vc7s2 1/1 Running 0 34s
If you deployed the Operator to a single namespace, an additional site controller pod is also running.


|
AutoYams
Automatic Yams with OpenCV dice detection
|
Dice detection algorithm with OpenCV. More...
#include <DiceDetector.h>
Public Member Functions | |
| DiceDetector () | |
| Default constructor. More... | |
| QList< int > | get (cv::Mat img, cv::Mat &output=cv::Mat()) |
| Run through a specific algorithm to detect dices in a specific image. More... | |
Private Attributes | |
| QList< int > | dices |
Dice detection algorithm with OpenCV.
Apply dice detection algorithm to the current video captured image in application.
| DiceDetector::DiceDetector | ( | ) |
Default constructor.
Initialise dice list.
| QList< int > DiceDetector::get | ( | cv::Mat | img, |
| cv::Mat & | output = cv::Mat() |
||
| ) |
Run through a specific algorithm to detect dices in a specific image.
| img | Specified image to run algorithm in |
| output | Output image, can be specified to display found dices/contours |
The algorithm does light adaptation of the current image background to limit noise with Gaussian Blur and Thresholding then, after a few erosion, run the findContours function outputing a Hierarchy Containing Tree allowing us to take children contours as dices dots and parents as the dices themselves. In output image, the parent contours are green while the children are red.
|
private |
List of all detected dice data.


We store any interests you tell us by using the built-in user storage of the Microsoft Bot Framework.


Remember that resetting your password will change it for everyone who uses the same account. Only change your password if you're absolutely sure.


{::nomarkdown}
This is the openFDA API endpoint for adverse drug events. An adverse event is submitted to the FDA to report any undesirable experience associated with the use of a drug, including serious drug side effects, product use errors, product quality problems, and therapeutic failures.
Reporting of adverse events by healthcare professionals and consumers is voluntary in the United States. Increases in the total number of adverse events are likely caused by improved reporting. News, enforcement actions, and other phenomena can also spur reporting.
https://api.fda.gov/drug/event.json?
The vast majority of adverse event reports are ultimately reported to FDA through drug product manufacturers. But those reports may first be initiated by consumers, health professionals, or others.
https://api.fda.gov/drug/event.json?
The seriousness of reported adverse events varies with the associated drugs. This chart shows the drug classes most often associated with adverse event reports. Use the buttons next to the chart to see the difference between reports involving serious reactions and less serious reactions.
https://api.fda.gov/drug/event.json?
Drugs listed in adverse event reports often have an indication for use specified—a disease being treated, or a certain therapeutic goal. Use the buttons next to the chart to see how indications for use change with different search criteria.
https://api.fda.gov/drug/event.json?
Adverse reactions range from product quality issues to very serious outcomes, including death. Use the buttons next to the chart to see how reported reactions vary with different search criteria.
There is no certainty that a reported event (adverse reaction or medication error) was actually due to a product. FDA does not require that a causal relationship between a product and event be proven, and reports do not always contain enough detail to properly evaluate an event.
https://api.fda.gov/drug/event.json?


Im Astley Jude Murao, Third year College with a course of Bachelor of Computer Science
I usually play piano than playing games, i like game's soundtrack because its unique that you play that music instead today's modern music and you play it in your piano and i make midi piano tuitorials
Please Visit my accounts
Evil Within 2 is the sequel of Evil Within which is action horror game that the protagonist goes to save his daughter that is being used as the core of the STEM to simulate an idyllic town called Union. Its my favorite horror game in this year.
Close ProjectThis is the first midi piano tuitorial that i made. It takes me a week to memorize that whole music then i put it into the midi to makes me easy to memorize the whole music.
Close ProjectThis is our movie project for humanities. We made a horror movie which a low buget cost and we set a camp to the woods and set up a fire place to make our movie more cool
Close ProjectThis is my first launchpad light show i ever made i take me a weeks to make a light show that is only for 1 minute
Close ProjectThis is my first electronic music i made and send it to the music channels to feature my track and be a feature EDM artist
Close Project


AWS Lambda function logging in Java
AWS Lambda automatically monitors Lambda functions on your behalf and sends function metrics to Amazon CloudWatch. Your Lambda function comes with a CloudWatch Logs log group and a log stream for each instance of your function. The Lambda runtime environment sends details about each invocation to the log stream, and relays logs and other output from your function's code.
This page describes how to produce log output from your Lambda function's code, or access logs using the AWS Command Line Interface, the Lambda console, or the CloudWatch console.
Sections
Creating a function that returns logs
To output logs from your function code, you can use methods on java.lang.Systemstdout
or stderr
. The aws-lambda-java-core library provides a logger class named LambdaLogger
that you can access
from the context object. The logger class supports multiline logs.
The following example uses the LambdaLogger
logger provided by the context object.
Example Handler.java
// Handler value: example.Handler public class Handler implements RequestHandler<Object, String>{ Gson gson = new GsonBuilder().setPrettyPrinting().create(); @Override public String handleRequest(Object event, Context context) {
LambdaLogger logger = context.getLogger();
String response = new String("SUCCESS"); // log execution detailslogger.log("ENVIRONMENT VARIABLES: " + gson.toJson(System.getenv())); logger.log("CONTEXT: " + gson.toJson(context));
// process eventlogger.log("EVENT: " + gson.toJson(event));
return response; } }
Example log format
START RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 Version: $LATEST ENVIRONMENT VARIABLES: { "_HANDLER": "example.Handler", "AWS_EXECUTION_ENV": "AWS_Lambda_java8", "AWS_LAMBDA_FUNCTION_MEMORY_SIZE": "512", ... } CONTEXT: { "memoryLimit": 512, "awsRequestId": "6bc28136-xmpl-4365-b021-0ce6b2e64ab0", "functionName": "java-console", ... } EVENT: { "records": [ { "messageId": "19dd0b57-xmpl-4ac1-bd88-01bbb068cb78", "receiptHandle": "MessageReceiptHandle", "body": "Hello from SQS!", ... } ] } END RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 REPORT RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 Duration: 198.50 ms Billed Duration: 200 ms Memory Size: 512 MB Max Memory Used: 90 MB Init Duration: 524.75 ms
The Java runtime logs the START
, END
, and REPORT
lines for each
invocation. The report line provides the following details:
Report Log
-
RequestId – The unique request ID for the invocation.
-
Duration – The amount of time that your function's handler method spent processing the event.
-
Billed Duration – The amount of time billed for the invocation.
-
Memory Size – The amount of memory allocated to the function.
-
Max Memory Used – The amount of memory used by the function.
-
Init Duration – For the first request served, the amount of time it took the runtime to load the function and run code outside of the handler method.
-
XRAY TraceId – For traced requests, the AWS X-Ray trace ID.
-
SegmentId – For traced requests, the X-Ray segment ID.
-
Sampled – For traced requests, the sampling result.
Using the Lambda console
You can use the Lambda console to view log output after you invoke a Lambda function. For more information, see Accessing Amazon CloudWatch logs for AWS Lambda.
Using the CloudWatch console
You can use the Amazon CloudWatch console to view logs for all Lambda function invocations.
To view logs on the CloudWatch console
-
Open the Log groups page
on the CloudWatch console. -
Choose the log group for your function (/aws/lambda/
your-function-name
). -
Choose a log stream.
Each log stream corresponds to an instance of your function. A log stream appears when you update your Lambda function, and when additional instances are created to handle multiple concurrent invocations. To find logs for a specific invocation, we recommend intrumenting your function with AWS X-Ray. X-Ray records details about the request and the log stream in the trace.
To use a sample application that correlates logs and traces with X-Ray, see Error processor sample application for AWS Lambda.
Using the AWS Command Line Interface (AWS CLI)
The AWS Command Line Interface (AWS CLI) is an open source tool that enables you to interact with AWS services using commands in your command-line shell. To complete the steps in this section, you need the following:
You can use the AWS CLI to retrieve logs for an invocation using the --log-type
command option. The response contains a LogResult
field that contains up to 4 KB of base64-encoded logs from the invocation.
Example retrieve a log ID
The following example shows how to retrieve a log ID from the LogResult
field for a function named my-function
.
aws lambda invoke --function-name my-function out --log-type Tail
You should see the following output:
{ "StatusCode": 200, "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...", "ExecutedVersion": "$LATEST" }
Example decode the logs
In the same command prompt, use the base64
utility to decode the logs. The following example shows how to retrieve base64-encoded
logs for my-function
.
aws lambda invoke --function-name my-function out --log-type Tail \ --query 'LogResult' --output text | base64 -d
You should see the following output:
START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST "AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib", END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Duration: 79.67 ms Billed Duration: 80 ms Memory Size: 128 MB Max Memory Used: 73 MB
The base64
utility is available on Linux, macOS, and Ubuntu on Windowsbase64 -D
.
Example get-logs.sh script
In the same command prompt, use the following script to download the last five log
events. The script uses sed
to remove quotes from the output file, and sleeps for 15 seconds to allow time for
the logs to become available. The output includes the response from Lambda and the
output from the get-log-events
command.
Copy the contents of the following code sample and save in your Lambda project directory
as get-logs.sh
.
#!/bin/bash aws lambda invoke --function-name my-function --payload '{"key": "value"}' out sed -i'' -e 's/"//g' out sleep 15 aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name $(cat out) --limit 5
Example macOS and Linux (only)
In the same command prompt, macOS and Linux users may need to run the following command to ensure the script is executable.
chmod -R 755 get-logs.sh
Example retrieve the last five log events
In the same command prompt, run the following script to get the last five log events.
./get-logs.sh
You should see the following output:
{ "StatusCode": 200, "ExecutedVersion": "$LATEST" } { "events": [ { "timestamp":<PHONE_NUMBER>171, "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n", "ingestionTime":<PHONE_NUMBER>309 }, { "timestamp":<PHONE_NUMBER>173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...", "ingestionTime":<PHONE_NUMBER>353 }, { "timestamp":<PHONE_NUMBER>173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r \"key\": \"value\"\r}\n", "ingestionTime":<PHONE_NUMBER>353 }, { "timestamp":<PHONE_NUMBER>218, "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n", "ingestionTime":<PHONE_NUMBER>353 }, { "timestamp":<PHONE_NUMBER>218, "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n", "ingestionTime":<PHONE_NUMBER>353 } ], "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795", "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080" }
Deleting logs
Log groups aren't deleted automatically when you delete a function. To avoid storing logs indefinitely, delete the log group, or configure a retention period after which logs are deleted automatically.
Advanced logging with Log4j 2 and SLF4J
To customize log output, support logging during unit tests, and log AWS SDK calls, use Apache Log4j 2 with SLF4J. Log4j is a logging library for Java programs that enables you to configure log levels and use appender libraries. SLF4J is a facade library that lets you change which library you use without changing your function code.
To add the request ID to your function's logs, use the appender in the aws-lambda-java-log4j2 library. The following example shows a Log4j 2 configuration file that adds a timestamp and request ID to all logs.
Example src/main/resources/log4j2.xml
<Configuration status="WARN">
<Appenders> <Lambda name="Lambda"> <PatternLayout> <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1} - %m%n</pattern> </PatternLayout> </Lambda> </Appenders>
<Loggers><Root level="INFO"> <AppenderRef ref="Lambda"/> </Root>
<Logger name="software.amazon.awssdk" level="WARN" /> <Logger name="software.amazon.awssdk.request" level="DEBUG" /> </Loggers> </Configuration>
With this configuration, each line is prepended with the date, time, request ID, log level, and class name.
Example log format with appender
START RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 Version: $LATEST
2020-03-18 08:52:43 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 INFO Handler -
ENVIRONMENT VARIABLES: { "_HANDLER": "example.Handler", "AWS_EXECUTION_ENV": "AWS_Lambda_java8", "AWS_LAMBDA_FUNCTION_MEMORY_SIZE": "512", ... }2020-03-18 08:52:43 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 INFO Handler -
CONTEXT: { "memoryLimit": 512, "awsRequestId": "6bc28136-xmpl-4365-b021-0ce6b2e64ab0", "functionName": "java-console", ... }
SLF4J is a facade library for logging in Java code. In your function code, you use
the SLF4J logger factory to
retrieve a logger with methods for log levels like info()
and warn()
. In your build
configuration, you include the logging library and SLF4J adapter in the classpath.
By changing the libraries in
the build configuration, you can change the logger type without changing your function
code. SLF4J is required to
capture logs from the SDK for Java.
In the following example, the handler class uses SLF4J to retrieve a logger.
Example src/main/java/example/Handler.java
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
// Handler value: example.Handler public class Handler implements RequestHandler<SQSEvent, String>{private static final Logger logger = LoggerFactory.getLogger(Handler.class);
Gson gson = new GsonBuilder().setPrettyPrinting().create(); LambdaAsyncClient lambdaClient = LambdaAsyncClient.create(); @Override public String handleRequest(SQSEvent event, Context context) { String response = new String(); // call Lambda APIlogger.info("Getting account settings");
CompletableFuture<GetAccountSettingsResponse> accountSettings = lambdaClient.getAccountSettings(GetAccountSettingsRequest.builder().build()); // log execution detailslogger.info("ENVIRONMENT VARIABLES: {}", gson.toJson(System.getenv()));
...
The build configuration takes runtime dependencies on the Lambda appender and SLF4J adapter, and implementation dependencies on Log4J 2.
Example build.gradle
dependencies { implementation platform('software.amazon.awssdk:bom:2.10.73') implementation platform('com.amazonaws:aws-xray-recorder-sdk-bom:2.4.0') implementation 'software.amazon.awssdk:lambda' implementation 'com.amazonaws:aws-xray-recorder-sdk-core' implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk-core' implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk-v2' implementation 'com.amazonaws:aws-xray-recorder-sdk-aws-sdk-v2-instrumentor' implementation 'com.amazonaws:aws-lambda-java-core:1.2.1' implementation 'com.amazonaws:aws-lambda-java-events:3.1.0' implementation 'com.google.code.gson:gson:2.8.6'
implementation 'org.apache.logging.log4j:log4j-api:2.13.0' implementation 'org.apache.logging.log4j:log4j-core:2.13.0' runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:2.13.0' runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.2.0'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.0' }
When you run your code locally for tests, the context object with the Lambda logger is not available, and there's no request ID for the Lambda appender to use. For example test configurations, see the sample applications in the next section.
Sample logging code
The GitHub repository for this guide includes sample applications that demonstrate the use of various logging configurations. Each sample application includes scripts for easy deployment and cleanup, an AWS SAM template, and supporting resources.
Sample Lambda applications in Java
-
blank-java
– A Java function that shows the use of Lambda's Java libraries, logging, environment variables, layers, AWS X-Ray tracing, unit tests, and the AWS SDK. -
java-basic
– A minimal Java function with unit tests and variable logging configuration. -
java-events
– A minimal Java function that uses the aws-lambda-java-events library with event types that don't require the AWS SDK as a dependency, such as Amazon API Gateway. -
java-events-v1sdk
– A Java function that uses the aws-lambda-java-events library with event types that require the AWS SDK as a dependency (Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB, and Amazon Kinesis). -
s3-java
– A Java function that processes notification events from Amazon S3 and uses the Java Class Library (JCL) to create thumbnails from uploaded image files.
The java-basic
sample application shows a minimal logging configuration that supports logging
tests. The handler code uses the LambdaLogger
logger provided by the context object. For tests, the
application uses a custom TestLogger
class that implements the LambdaLogger
interface
with a Log4j 2 logger. It uses SLF4J as a facade for compatibility with the AWS SDK.
Logging libraries are
excluded from build output to keep the deployment package small.
The blank-java
sample application builds on the basic configuration with AWS SDK logging and the
Lambda Log4j 2 appender. It uses Log4j 2 in Lambda with custom appender that adds
the invocation request ID to
each line.


| 60 | (A) | that ałłe hurlede on hepis that the helme solde ȝeme |
| 60 | (C) | That ałł hit hurled on hep . þat þe helme ȝemed |
| 60 | (D) | þat al hit hurlid on hepe þat þe helme yemyd |
| 58 | (E) | that al it hurtlyd on hepe . þat the helm kepte . |
| (Ex) | ---- no text ---- | |
| 60 | (L) | þat alle hurtled on an hepe þat þe helm ȝemyd |
| 55 | (P) | þat ałł horled on a hepe þat þe helme ȝemed |
| 60 | (U) | That alle hurtled on hepe / that the helme yemed |
| (V) | ---- no text ---- |


Hi! I’m an undergraduate student (Class of ‘21) at the University of California, Irvine pursuing a major in Computer Science with a minor in Business Management. 👨🏽🎓
In my past experiences, I’ve worked with a broad range of technologies related to software engineering (machine learning, building a search engine, web frameworks) and even extending beyond (using Figma for product design, learning FFmpeg to edit videos, and applying market research to understand if a product is viable). 💻
When I have some spare time, I enjoy watching documentaries, hiking, and reading. 📚
Activities and Societies: Anteater Linkedin Group, Healing Through Humanities, Liberty in North Korea
During my time at UC Irvine, I took a number of courses which inspired and guided me through the fundamentals of Computer Science and it’s myriad applications in our current society. Some courses I believe were the most important are:
Activities and Societies: Speech and Debate, Cross Country, Geography for Tomorrow
Feel free to reach out and contact me! You can reach me via email<EMAIL_ADDRESS>or Linkedin


If you are on macOS, make sure you are running the windows version of the game through wine.
You will need to patch to play updates.


Full Stack Developer
I like to code things from scratch, and enjoy bringing ideas to life in the browser.
Languages I speak:
HTML, CSS, JavaScript, Sass, Pug
Dev Tools:
- Visual Studio Code
- Firebase
- Bootstrap
- Bulma
- Codepen
- Github
- Gitlab
- Codebeat
- Terminal


My name is Carlo Angel Lujan Garcia, and I'm a freshman studying computer science at Tecnologico de Monterrey university. I love coding, math, learning, and working in teams.I love cycling and running and one of my dreams is to be on the podium in the CONADEIP national running competition for universities at the 5000m run. I'm a very creative and open individual, and I'm always searching for opportunities to expand my knowledge and learn as much as I can. I'm a determined person, and I'll work hard until I see the results I want to accomplish.
Interests:
-Coding, Team work, Math, Learning, Social impact, Videogames, Unity, Running, Sports, Triathlon
Skills:
-C#, Android, Java, Unity, C++, React, C, Digital Systems, PIC, GitHub, Python, Matlab, HTML, CSS, JS, PHP, Databases
School:
-Current college average 97.67/100
Awards:
-One of the best 12 projects at Talent Network's hackathon - AVO track at Talent Network/Talent Land
-Transportation System Honorific mention at the Public Education Science Fair in Guadalajara Jalisco (REDIJ de Occidente).
-Semi-finalist at the entrepreneurial talent scolarship bootcamp at Tecnologico de Monterrey.
-Incoming FBU Facebook Intern (Summer 2021).
Lenguages:
-Spanish (Native)
-English (Advanced)


Fair Tasks
Home
Group
Tasks
Create group
Create
Add a new member
Insert
Members in groups
Group name
Member


| Archiver |
A small utility that creates a zip file off of the entire project directory,
erasing the .git and doc directories which might make the submission too heavy for submit.cs.
erasing the .git directory which might make the submission too heavy for submit.cs.
Execute as Java application.
|
| ArrayMinHeap<T extends java.lang.Comparable<T>> |
|
| AVLGTree<T extends java.lang.Comparable<T>> |
|
| Bag<Item> |
A Bag is an Iterable which represents a rather simple
data structure known as a "bag".
|
| BagTests |
Test suite for the various implementations of Bag .
|
| BinaryPatriciaTrie |
BinaryPatriciaTrie is a Patricia Trie over the binary alphabet { 0, 1 }.
|
| BinarySearchTree<T extends java.lang.Comparable<T>> |
A BinarySearchTree is a Tree with a maximum of 2 children per node
which allows for adding and removing nodes in a sorted manner.
|
| CircularArrayFIFOQueue<T> |
A CircularArrayFIFOQueue is a FIFOQueue based on a one-dimensional
array which can wrap around.
|
| CollisionResolver |
CollisionResolver is an enum which provides named constants for
four of the most widely used collision resolution techniques in hash tables:
|
| CustomHashes |
Small demo for the CMSC420 students on appropriately using Object.hashCode()
to build an object's hash code.
|
| DefaultHashCode |
Prints the default hashCode() of an Object .
|
| Dimension |
Dimension is a simple abstraction of the dimension to sum along a 2D matrix: sums or columns.
|
| DoublyLinkedList<T> |
A DoublyLinkedList is a LinkedList whose nodes have two references,
one pointing to the previous and one to the next nodes.
|
| DoublyLinkedListTest |
|
| DynamicallyShuffledBag<Item> |
|
| EmptyFIFOQueueException |
A Exception thrown by FIFOQueue -based data structures when the queue is empty.
|
| EmptyHeapException |
A simple Exception that notifies the caller about emptiness of a MinHeap .
|
| EmptyListException |
A Exception thrown by tree-based data structures when the tree is empty.
|
| EmptyPriorityQueueException |
A Exception thrown by PriorityQueue -based data structures when the queue is empty.
|
| EmptyTreeException |
EmptyTreeException is a Exception thrown by tree-based data structures when the tree is empty.
|
| EmptyTreeException |
A Exception thrown by tree-based data structures when the tree is empty.
|
| FIFOQueue<T> |
FIFOQueue is an Iterable interface for FIFO queues.
|
| GenericArrays |
In Java, one cannot create raw arrays of generics.
|
| HashTable |
HashTable is an abstraction over hash tables which store String keys and map to
String values.
|
| IllegalListAccessException |
A Exception thrown by methods that take an index into an element of a List , when
the index is invalid with respect to the current state of the List .
|
| IntegerTimingClient |
|
| InvalidBalanceException |
|
| InvalidCapacityException |
|
| InvalidCapacityException |
InvalidCapacityException is an Exception that is used by non-default constructors of
containers that receive a desired starting capacity in our code base.
|
| InvalidPriorityException |
InvalidPriorityException is an Exception that is thrown by PriorityQueue
when the user supplies a priority that is 0 or below.
|
| KVPair |
KVPair is a simple abstraction of a < String , String < pair.
|
| KVPairList |
KVPairList is a simple linked list storing pairs of String s.
|
| KVPairListTests |
|
| LinearArrayFIFOQueue<T> |
LinearArrayFIFOQueue is a FIFOQueue based on a simple linear array.
|
| LinearArrayFIFOQueueTest |
|
| LinearPriorityQueue<T> |
|
| LinearProbingHashTable |
LinearProbingHashTable is an Openly Addressed HashTable implemented with Linear Probing as its
collision resolution strategy: every key collision is resolved by moving one address over.
|
| LinkedBinarySearchTree<T extends java.lang.Comparable<T>> |
|
| LinkedBinarySearchTreeTest |
|
| LinkedFIFOQueue<T> |
|
| LinkedFIFOQueueTest |
|
| LinkedList<T> |
LinkedList is a simple (forwardly-linked) List .
|
| LinkedListTest |
|
| LinkedMinHeap<T extends java.lang.Comparable<T>> |
A LinkedMinHeap is a tree (specifically, a complete binary tree) where every node is
smaller than or equal to its descendants (as defined by the Comparable.compareTo(Object) overridings of the type T).
|
| List<T> |
List is a linear ADT which offers insertion, search and deletion in at most linear time.
|
| MajorOrderTest |
MajorOrderTest is a simple app that tests the efficiency
of performing operations across rows and columns in Java.
|
| MinHeap<T extends java.lang.Comparable<T>> |
MinHeaps are complete binary search projects.pqueue.trees whose nodes contents are always smaller than
the contents of their children nodes.
|
| MinHeapPriorityQueue<T> |
|
| MyStack<T> |
MyStack is a simple class that implements a stack abstraction.
|
| MyStackClient |
|
| NoMorePrimesException |
|
| OpenAddressingHashTable |
OpenAddressingHashTable is an abstract class that models openly addressed hash tables, i.e
hash tables which store the key-value pairs within the table itself instead of using
the table to store pointers to separate buckets.
|
| OrderedLinearProbingHashTable |
OrderedLinearProbingHashTable is an Openly Addressed HashTable implemented with
Ordered Linear Probing as its collision resolution strategy: every key collision is resolved by moving
one address over, and the keys in the chain is in order.
|
| Phonebook |
Phonebook is an abstraction over phonebooks: databases of < Full Name,
Phone Number> pairs.
|
| PrimeGenerator |
PrimeGenerator is a simple immutable class which stores and retrieves prime numbers.
|
| PrimeGeneratorTests |
|
| PriorityQueue<T> |
A PriorityQueue is an extension of a classic FIFO queue.
|
| Probes |
Probes is a class that contains information about the efficiency of an operation, in
terms of probes that the code had to "pay" to finish the operation (successfully or not).
|
| QuadraticProbingHashTable |
|
| RandomAccessBag<Item> |
|
| SeparateChainingHashTable |
SeparateChainingHashTable is a HashTable that implements Separate Chaining
as its collision resolution strategy, i.e the collision chains are implemented as actual
Linked Lists.
|
| StackSize |
|
| StaticallyPerturbedBag<Item> |
|
| StaticArrayList<T> |
StaticArrayList is an implementation of a List with an array.
|
| StaticArrayListTest |
|
| StudentTests |
StudentTests is an example class that contains some basic unit tests.
|
| StudentTests |
|
| StudentTests |
|
| StudentTests |
StudentTests is a jUnit testing library which you should extend with your own tests.
|
| Tree<T> |
A standard interface for a tree-like data structure.
|
| UnimplementedMethodException |
A simple RuntimeException subtype which is used by skeleton code to notify students that a certain method
needs to be implemented.
|