Google Sitemap Generator (Beta) is software that improves the ability of search engines to find the content of your websites. Once you install and configure Google Sitemap Generator on your web server, it analyzes the way that users access content, then builds Sitemap files that contain the URLs that you want search engines to find.
Google Sitemap Generator creates industry-standard Web Sitemaps and automatically submits them to the search engines of your choice. It can also create Sitemaps for Google's Mobile and Code Search services. In the case of Blog Search, Google Sitemap Generator provides analogous services, but rather than creating Sitemap files, Google Sitemaps Generator collects the URLs and periodically pings them to Google.
This document is an overview of Google Sitemap Generator. For more information about the Sitemap protocol, see http://www.sitemaps.org/. For information about Google-specific functions and Webmaster Tools, see http://google.com/support/webmasters/.
In this document:
Google Sitemap Generator takes a fresh approach to Sitemap generation. The previous generation of Sitemap generators created Sitemaps by crawling websites, so they did not necessarily improve on the coverage provided by search engine crawlers. In contrast, Google Sitemap Generator monitors your web server traffic and detects updates to your site whenever a user accesses a new page. The main features of Google Sitemap Generator are:
Google previously released sitemapgen, a Python-based tool, to Sourceforge. In comparison to sitemapgen, Google Sitemap Generator is a next-generation tool that relies on web server filtering rather than crawling, provides enhanced features, and supports more formats.
This document was written for web server administrators. The document assumes that you know about the contents of your site and about your web server environment, but it does not require advanced technical knowledge.
This document uses the following typographic conventions:
Monospace font
indicates a command, or another type of literal value that you enter as-is.At the time of this Beta release, we know that this document lacks some real-world information, and we hope to gain that while the product is in Beta. We hope that the community provides comments, feedback, and content, to increase documentation coverage over time.
Check our system requirements and determine how best to deploy Google Sitemap Generator in your environment. For full installation information, refer to the Installation document.
Google Sitemap Generator runs on a variety of operating systems and web servers. See the Installation document for the Windows and Linux prerequisites.
Based on our performance tests, Google Sitemap Generator has minimal performance impact on a web server.
For a site that is served by multiple, load-balanced web servers, you can choose from the following deployment options:
Once you install Google Sitemap Generator on the web server, it can serve all sites on the server.
In the administration console, you can enable or disable the use of Google Sitemap Generator for each site, and you can configure each site separately.
Google Sitemap Generator includes the following configuration options:
For more information about configuration, see the configuration document.
How are search engines informed about the Sitemaps that Google Sitemap Generator creates?
To submit Web Sitemaps, you have the following options:
To submit the Google-specific Mobile and Code Search Sitemaps, you use Google Webmaster Central.
To submit Blog Search content, you specify the frequency with which Google Sitemap Generator pings the Google Blog Service. Google Sitemap Generator does not create Sitemap files for Blog Search. Instead, it collects the URLs in its internal database and then sends them to Google.
Note: This document generally does not distinguish between Blog Search and other types of content, although there are no physical Sitemap files associated with Blog Search, as there are for other types of content.
Google Sitemap Generator is being released through the open source community, so that you can download and examine it. We already already know that you don’t want Google Sitemap Generator to send any private data to Google, and the only information that you'll be sharing with Google is the Sitemap file!
A Sitemap file optionally contains a change frequency and priority for each URL. Google Sitemap Generator sets the priority based on page views, but the resulting Sitemap file does not contain any information about page view statistics or other information you wouldn't want to expose. There's no difference between a generated Sitemap file and a manually created Sitemap file.
To prevent user data from being exposed, Google Sitemap Generator removes all URL query fields before adding the URL to a Sitemap. URL query fields are the name/value parameters that follow the question mark in a URL, and they often contain user information, such as name, password, or other private details. If you want to include specified query fields, you can list them in the administration console.
You are responsible for ensuring that Web Sitemap files do not contain user data when you submit them to Google. To accomplish this, you can perform test generations of Web Sitemap files and examine them for any URLs that should not be included. For more information, refer to the testing section of the configuration document.
If you have questions or want to know what others are asking, check out our discussion group.
Updated on


We are volunteers committed to working with the City of Newark. We’re here to help and eager to learn from professional public servants. And while we’re advocates for open government (we can’t build apps without open data!), we’re non-partisan and public-minded.
We're a group of civic-minded programmers, coders, designers, and extraordinary citizens. We work in partnership with government, non-profit, and technical partners to deploy technology to improve quality of life for all residents and increase citizen engagement with civic issues.
Code for Newark is led by a volunteer Core Team that organizes events, manages strategic partnerships, and ensures fluid communication among cross-functional project teams.


GM will ship your orders worldwide
Syncing orders automatically can relax yourself from repetitive labor and yet minimize errors.
By integrating with e-commerce marketplaces via API, all orders can be seamlessly synced to our order fulfillment system for automated processing. Of course, you can also batch upload your received orders manually.
In GM, the efficiency and accuracy of picking & packing orders on the same day are ensured by using PDA and barcode technologies. In order to reduce the damage rate and shipping cost, our packing solution is always based on your product’s properties and we use the most appropriate type of packing materials to keep it light and small.
Basic packing materials include unbranded boxes, bubble wraps, corner protectors, packing tapes, etc. If you have any demand for customized packing or value-added service, we can do it too.
After pick & pack, most orders will be ready to ship out on the same day through fully automatic sorting machines. Automation and large handling capacity mean that you do not need to worry about order fulfillment even during peak season. With multiple global shipping options from China to international destinations, you can select shipping carriers based on your preferences. The last mile delivery, Quick clearance, DDP Service, Export tax rebate GM D-lines, International express, Postal service, FBA Service
Tracking information will be update in 24Hours to your e-commerce marketplace and a tracking email under you brand name will be sent to your buyer also. And for your convenience, you can track your orders' status on any track website GM will proactive in monitoring all aspects of order fulfillment and you will be well-informed of any changes or abnormalities. If you have any questions about orders, our customer service will reply and solve within 24 hours.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/proving.20trivial.20facts.20about.20types.html ---
I can #check ff
but can I prove ff : bool or similar facts?
Let's see:
-- works example (ff : bool) := tt example (ff : bool) := ff -- breaks example (1 : ℕ) := (1 : ℕ) -- breaks theorem ff_is_a_bool : (ff : bool) := (↥ff : Prop)
Oh dear, I am confused again.
The typing relation is not something you can prove or really talk about at all internal to the system.
In logic terminology it's a judgment, not a proposition.
I guess I can say tautological things like "every bool is a bool"...
theorem t (x : bool) : bool := x
but it's interesting, these type judgments don't live in the hierarchy of types?
In general, a judgment may be any inductively definable assertion in the metatheory.
So is Lean's metatheory accessible somewhere?
Metatheory here means whatever logical framework you are using to define and reason about the formal system (Lean in this case).
For example, it can just be ordinary informal mathematics.
For example, you could prove a "unique typing" theorem like "if e : t1
and e : t2
[are derivable judgments], then t1 = t2
[is a derivable judgment]".
that's a theorem you would prove in an ordinary math paper, probably using induction on the ordinary natural numbers and so on
I should add that encoding "ff
is a bool
" as a judgment ff : bool
is part of what it means to use type theory as a foundation. In a system based on set theory, for example, ff
would be represented by some set and bool
would be represented by some other set and ff ∈ bool
would be a proposition that you could prove.
https://github.com/digama0/lean-type-theory/releases is Mario's paper on the theory of Lean in particular, though it doesn't have much in the way of background material
I guess I can say tautological things like "every bool is a bool"...
theorem t (x : bool) : bool := x
That's not a theorem. That's a definition of a function t from bool
to bool
; you can check the type of t
to see this. Theorems are terms whose type is Prop
.
PS if you write ```lean
rather than just ```
then you get cool syntax highlighting :-)
Last updated: Apr 24 2020 at 19:02 UTC


Lectures: Hisashi Kashima and Makoto Yamada
This course will cover in a broad sense the fundamental theoretical aspects and applicative possibilities of statistical machine learning, which is now a fundamental block of statistical data analysis and data mining. This course will focus first on the supervised and unsupervised learning problems, including a survey of probably approximately correct learning, Bayesian learning as well as other learning theory frameworks. Following this introduction, several probabilistic models and prediction algorithms, such as the logistic regression, perceptron, and support vector machine will be introduced. Advanced topic such as online learning, structured prediction, and sparse modeling will be also introduced.
Supervised learning and unsupervised learning
Linear and non-linear regression
Support vector machine and logistic regression
Learning theory
On-line learning
Model evaluation
Sparse modeling
Advanced topics (Semi-supervised learning, active learning, and structured output prediction)


The .
The menu bar is at the top of each page. Click an item in the menu bar to display the page or dialog box associated with the item, or to log out of the Control Center interface.


Team Lead for Design Systems & DesignOps at Fiserv
Client Project
Role Strategy & UI Design
Client Bank of America
Rio SEO Team
Penny Phaneuf - Project Manager
Jim Gassmann - Front-End Developer
Heather Larsen - UX Designer
Scope Redesign the bank's locator to align with the modern design of their homepage
Considerations
Bank of America's current design system and business requirements
WCAG 2.0 Level AA compliance


Hobbies
- Playing Tennis
- Taking pictures
- Spending time with my loves ones, it means my family and friends
HTML TUTORIAL My Second Test inOrder
- Family Time
- Tennis
- Encode
- Learning new things
- Potgraphy
HTML TUTORIAL My Third Test Personal Information
I was born to learn, and I'm really sure
is most important procces than result
My lovely cat is called Tut
Federer is the best tennis player ever
My Personal Facebook


SMS Documents
1.
Prepare CentOS 7 for SMS Server Installation
2.
SMS Server Installation Guide
3.
SMS User Guide


Hey there!
No matter how hilarious your answer might have been
--
I'm just a machine, I really really don't care --
It looks like your answer might not be grammatical.
This is what you wrote:
{{ answer }}
This is what we think might be wrong with it:
{% for tag in tags %}
{% if tag in eng_feedback.keys() %}
{% if 'callig' in eng_feedback[tag].keys() %}
{{ eng_feedback[tag]['callig'] }}
{% else %}
Something is wrong with this sentence.
{% endif %}
{% endif %}
{% endfor %}
{% if foci %} You might want to look if the error involves:
{% for focus in foci %}
"{{ focus }}"
{% endfor %}
{% endif %}
Your answer was not saved.


iPhone History
Apple Computer History
Mac History
Apple Watch History
iPad History
Apple
APPLE WATCH HISTORY


| DOMAIN | SKILLS | TACTICS | TECHNIQUES |
|---|---|---|---|
| Detection & Response | Log Analysis | Initial Access | Drive-by Compromise |
| Detection & Response | Flow Analysis | Initial Access | Drive-by Compromise |
| Detection & Response | Log Analysis | Initial Access | Drive-by Compromise |
| Detection & Response | Log Analysis | Initial Access | Exploit Public-Facing Application |
| Detection & Response | Flow Analysis | Initial Access | Exploit Public-Facing Application |
Beginner Details
Intermediate Details
Expert Details
Expert Details
Expert Details


Contrary to popular belief, Lorem Ipsum is not simply random text.


PostGIS Preview
Map View
Data View
/* Type your SQL here */
Submit
×
Limit to
features
Limit to current view
Download
Geojson
CSV
l


object-scrubber
walks through an object and changes property names and values
overview
A simple recursive utility to scrub deep into objects and change their property name and values.
usage
copyright and license
Code and documentation copyright 2016 akon. Code released under the MIT license.


한국vs런던
Monthly usage
Daily usage
Precipitation
fine dust
Wind speed
Temperatures
SB Admin Pro
is packed with premium features, components, and more!
Upgrade to Pro!
풍속에 의한 이용량 분석


Sarah Palin blindsided by divorce email from husband’s attorney
by Becky BohrerJUNEAU, Alaska — Former Alaska Gov. Sarah Palin told a Christian broadcaster she learned her husband was seeking a divorce in an email from his attorney.
The revelation came in an interview released Tuesday with James Dobson, founder of the Family Talk Christian ministry. He said the interview had been conducted previously.
Palin said she received an email June 19 from the attorney, almost three months before Todd Palin filed for divorce on his birthday in September.
TOP STORIES
New ethics complaint filed against impeachment whistleblower
Dems last gasp to smear Trump
Camera, tripwire device found near Confederate monument in Charlottesville
She described the filing that came shortly after their 31st wedding anniversary as devastating. “I thought I got shot,” she said.
Palin said they’re going through counseling and their marriage isn’t “over, over.” She said attorneys are “getting rich” off them.
Dobson had asked how people could pray for her. Palin said the prayer would be for “God’s will to be done, but that God would make sure that we know that the grass isn’t always greener on the other side ….”
And “it still has to be mowed,” Dobson said, interrupting her. “And it still has to be mowed,” she said.
Palin later said God doesn’t want families to split up. “And to me, in a general sense, marriage is so extremely important as foundation of our nation. It helps make America that much greater, is that security of family, and I’m not to the point of wanting mine to be split,” she said.
A message seeking comment was left for an attorney believed to be representing Todd Palin.
The Palins have five children, one of whom is a minor.
Palin was the 2008 Republican vice-presidential nominee. She resigned as governor in 2009.
She is a former Fox News contributor who has written books and for years had a political action committee. She described to Dobson the last year as being in a “lull.”
She said it wouldn’t help going through this period of her life if the media were “hounding” her. She said maybe that is one of the reasons for the lull.
“Yeah, maybe that’s why God has had them not be so interested lately” because God knew what was coming, she said.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


--- # this is an empty front matter --- {% include header.html %}
It's quick to build your first application with ClearPress. Having installed from CPAN the next step is to identify your initial schema and run it through the application builder: {% highlight perl %} clearpress \ -new Grandkids \ -schema 'family(name) kid(name) kid->family' \ -driver SQLite {% endhighlight %}
This example creates instructions about a SQLite database and two tables within it and identifies a relationship between them. {% highlight sql %} family( id_family integer primary key autoincrement, name varchar ); kid( id_kid integer primary key autoincrement, name varchar, id_family integer ); {% endhighlight %}
So let's create the database and add the tables. {% highlight shell %} cd Grandkids cat data/schema/*.sqlite | sqlite3 GrandKids {% endhighlight %}
and let's start the application: {% highlight shell %}bin/Grandkids{% endhighlight %} by default the server will start on port 8080. If you don't want that add {% highlight shell %}-port=<port-number>{% endhighlight %}
{% include footer.html %}


Anthotypes By Gavin Lyons
* * *
Welcome
Introduction
Mainly landscape, black and white, film, alternative photography Cyanotypes and Van Dyke Brown, etc..
- Background: Born in Ireland, now live in Austria for the last 15 years
- Exhibitions:Graz, Vienna, Budapest - Supporting World Press Photo
- Print:Lenswork, The Hand, Silvershotz
- Social: @gavinlyons @glyons YouTube Channel
Important things to know!
-
01. Patience
Anthotypes need sometimes months for an exposure and not all substances will produce a print. It is a realm of experimentation.
-
02. Precautions
Researching the flower, plant or even mushroom you wish to use, to ensure it's safe! Many plants are poisonous or even deadly.
-
03. Results
The image can be somewhat faint. Images are monochrome, one color. They fade over time.
-
04. Benefits
- Environmentally Friendly
- Fun way to experiment
- Wonderful smells (most of the time!)
- Unique
What is an Anthotype ?
What you need?
Mortar or blender
This really depends on the material. Petals it's best to use a mortar but a more robust subtance a blender is better.
Water or Alcohol
Best to use a little of either again depends what works best. When using water use distilled.


Big Analytics
Sign out
Dashboard
(current)
Audience
Acquisition/Google Ads
Acquisition/Facebook ads
Acquisition/Organic search
Acquisition/Direct traffic
Saved reports
Current month
Report 1
Report 2
Report 3
Dashboard
Share
Export
This week
Browser Reports brief
This table will be upated by Django objects, hence leaving it as it is.
{{table_data|safe}}


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
Ipsum has been the industry's standard dummy text ever since the 1500s. strong
message.
Alert Message Success
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
Ipsum has been the industry's standard dummy text ever since the 1500s. strong
message.
Alert Message Success
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
Ipsum has been the industry's standard dummy text ever since the 1500s. strong
message.
Alert Message Success
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
Ipsum has been the industry's standard dummy text ever since the 1500s. strong
message.


{% extends './basic_layout.html' %} {% block styles %} {% endblock %} {% block contentHead %} {% endblock %} {% block content %}
Overview page of all members. This page should reflect the data that was last uploaded from the csv file downloaded from Altru. Thus, this table may contain old data. It should only be used as a quick reference.
| Membership ID | Member Level | Full Name | Expiration Date | Status | Associated members | Address Line 1 | Address Line 2 | city | state | zip | Add-ons | Quantity | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ member.id }} | {{ member.member_level }} | {{ member.full_name }} | {{ member.expiration_date }} | {{ member.status }} | {{ member.associated_members }} | {{ member.address_line_1 }} | {{ member.address_line_2 }} | {{ member.city }} | {{ member.state }} | {{ member.zip }} | {{ member.email }} | {{ member.add_on_name }} | {{ member.add_on_value }} |


This tutorial is planned so that you have the code and the website open side by side. This way you can always see the result quickly and make changes to the code yourself. Under the title you can also always see the filenames used for the specific page. The first thing you need is an editor. You can use any editor you want. I can recommend the following:


This document contains hints and guidelines for solving task 2 of the project.
This task involves implementing three array combinators (special
array-oriented functions): iota
, map
, and reduce
.
This is the big one. Compare it to task 1:
-
While you are indeed asked to make a lot of modifications in task 1, none of the individual modifications require large code insertions. Task 1 has many, small tasks.
Task 2 asks you to make fundamental additions to your Fasto compiler,
and write a lot of code. To get you properly started on this large
task, we essentially provide you with a solution for iota
. However,
we don’t hand it out directly. Instead we ask you to follow this
guide, which will tell you which code to insert where, how to test
that the new code works, and why it works.
Once you have implemented iota
by following our very detailed guide,
you’re much more on your own with map
and reduce
— however, those
two combinators share many features with iota
, so we hope that
you’ll have an idea of how to progress.
If you find any errors in this text, please tell us!
Overview of iota
, map
and reduce
Before you hack away on iota
, here is a quick overview of the three
array combinators. Remember to also read the project PDF file,
which provides more theoretical detail.
iota
Type: int -> [int]
Result for iota(n)
: [0, 1, ..., n - 2, n - 1]
Example: iota(5)
should return [0, 1, 2, 3, 4]
.
map
Type: (a -> b) -> [a] -> [b]
This has the same semantics as the map
function in SML.
reduce
Type: (a * a -> a) -> a * [a] -> a
Result for reduce(f, x, [])
: x
Result for reduce(f, x, [y0])
: f(x, y0)
Result for reduce(f, x, [y0, y1])
: f(f(x, y0), y1)
And so on.
You may have noticed that this seems very similar to the SML function
foldl
. foldl
is actually a more general function, meaning it can
do more than reduce
. It is perfectly fine to use foldl
to
implement reduce
in your interpreter, or to just get inspired.
Testing your solution
We provide several tests for iota
, map
and reduce
. Once your
solution passes all the relevant tests, great! But please write your
own test programs as well. One can always write more tests.
The grand guide to implementing iota
First, let’s consider which parts of the compiler will need to be modified.
iota
isn’t just a new operator, a group of new literals or an improved
optimization; it is an entirely new language construct. There is no way to
implement something similar to iota
in a Fasto program with existing
constructs only. Think about that.
These are the files that you will need to modify:
-
Lexer.lex
-
Parser.grm
-
TypeChecker.sml
-
Interpreter.sml
-
CodeGen.sml
It’s the same files as in task 1. The difference is that you’ll write much more code.
Here’s is a file that you specifically should not modify:
-
Fasto.sml
This is because we have already defined the relevant constructors
for you. From Fasto.sml
:
datatype Exp =
(* ... *)
(* The following are project tasks. *)
| Iota of Exp * pos (* iota(n) *)
| Map of FunArg * Exp * T.TypeAnnot * T.TypeAnnot * pos (* map(f, arr) *)
| Reduce of FunArg * Exp * Exp * T.TypeAnnot * pos (* reduce(f, 0, arr) *)
(* ... *)
and FunArg = Lambda of Type * Param list * Exp * pos
| FunName of string
This is already done. It might seem like map
and reduce
are much more
complex to implement than iota
, since they have all these extra arguments, but
it’s mostly in the parser stage that this is very true, but we’ll get to that.
Step 0: Running the compiler
Let’s compile the test program tests/iota.fo
:
$ ./bin/fasto -c tests/iota.fo
That should print out this:
Type error: Unknown function iota at line 4, column 11
This is because the handed out Fasto compiler has no notion of iota
and assumes that it’s just an ordinary function that you’ve forgotten
to define. But it’s not! It’s special!
Step 1: Extending the lexer
We must tell the compiler to handle iota
in our very own way. In
Lexer.lex
, add
| "iota" => Parser.IOTA pos
to the fun keyword (s, pos)
function. Then, in Parser.grm
, add
%token <(int*int)> IOTA
to the top section. This last part is necessary because lexeme names are stored in the parser.
Once you have changed these things and recompiled your compiler (using
make
), your lexer now makes sure that iota
is handled on its own.
But it doesn’t do anything useful yet, and you’ll get a parse error if
you try to compile tests/iota.fo
.
Step 2: Extending the parser
The compiler now reads iota
and turns it into Parser.IOTA
, but no
rule in the parser uses that, so the parser will give up on any
program containing iota
.
iota(n)
is an expression, so we find the Exp :
group of rules in
Parser.grm
and add this:
| IOTA LPAR Exp RPAR
{ Iota ($3, $1) }
When you have done this and run the rebuilt compiler, try running
./bin/fasto -c tests/iota.fo
once more. You should get this back:
Uncaught exception:
Fail: Unimplemented feature iota
This means that iota
is successfully parsed and put into a syntax
tree, but there’s no code capable of generating MIPS code for iota
.
You can also try interpreting (./bin/fasto -i tests/iota.fo
), which
will give you the same error message, since there’s no interpreter
code either.
Step 3: Checking the types
Actually, we lied a little in the previous section. While it might
make sense that it throws an Unimplemented feature iota
error
because it has no code generation support yet, the error actually
happens at an earlier state: the type checking.
Before Fasto generates code, it does type checking to make sure that
the input program makes sense. In TypeChecker.sml
, find this code:
and replace it with this code:
This piece of code checks that the argument n
in iota(n)
is an
integer. First it needs to find the type of n
and also check that
that type checks out — it is important that you understand that n
can be any expression of type int
, and not just a plain integer.
For example, n
could be 2 + 5
, which is fine, or it could be 2 +
true
, which isn’t okay, and which the checkExp
call in the above
code would throw an error for.
If everything checks out, (Array Int, Out.Iota (n_exp_dec, pos))
is
returned. Here, Array Int
is our internal representation of the
type [int]
, and Out.Iota (n_exp_dec, pos)
is an expression that
has the same inner expression as the original In.Iota (n_exp, pos)
,
but type checked and decorated with a type.
Once you have inserted this, you can try compiling iota.fo
again,
but you’ll still get an Unimplemented feature iota
error. This time
it’s because you’re missing code generation.
Step 4: Interpreting
Before we get started on the code generator, we’ll take a detour in interpreter land. Typically (and certainly in this case), filling in the interpreter code is much easier than filling in the code generator code.
In Interpreter.sml
, find this code:
| evalExp ( Iota (e, pos), vtab, ftab ) =
raise Fail "Unimplemented feature iota"
Then replace it with this code:
| evalExp ( Iota (e, pos), vtab, ftab ) =
let val sz = evalExp(e, vtab, ftab)
in case sz of
IntVal size =>
if size >= 0
then ArrayVal(List.tabulate(size, (fn x => IntVal x)),
Int)
else raise Error("Error: In iota call, size is negative: "
^ Int.toString(size), pos)
| _ => raise Error("Iota argument is not a number: "^ppVal 0 sz, pos)
end
This piece of code first evaluates the expression in iota
's single
argument. If that is negative, it raises an error, since we cannot
have an array with a negative length. Otherwise, if everything’s
good, we make good use of SML’s List.tabulate
(link) to generate a
list of the range values.
evalExp
outputs a value of type, well, Value
, which you can find
in Fasto.sml
(but it’s already there, so don’t try to define it
yourself). Our Iota
case returns a Value
value using the
ArrayVal
constructor, because iota
generates an array.
You can now run ./bin/fasto -i tests/iota.fo
, which should print 0
1 2 3 4 5 6
. If this happens, you have successfully interpreted a
Fasto program with iota
in it!
Step 5: Generating the MIPS code
Now for the fun part. In CodeGen.sml
, find this part:
| Iota (n_exp, pos as (line, _)) =>
raise Fail "Unimplemented feature iota"
We need to replace this with working code that generates a list of MIPS instructions which do the following:
-
Check that
n_exp
isn’t negative (like it’s also checked the interpreter). -
Allocate space for the return array, and put the new array in the designated output variable
place
, which is defined in the beginning of the function like this:fun compileExp e vtable place = ...
. -
Fill the allocated space with numbers
0, ..., n - 1
. -
Loop over each index in the loop, and set the value at that index.
You can do point 1 by creatively using MIPS instructions.
Point 2 can be done by calling dynalloc (size, place, Int)
dynalloc
is a function in the handed out code that can allocate (but
not free) space on a small heap that is built into every MIPS assembly
file; see the code for detailing comments.
Point 3 can be achieved by making an iterator register, initializing
it to 0, and adding a 1 to it until it reaches the the value of
n_exp
.
For point 4 you need to a label and a conditional branch instruction of some sort, so that you can build a loop.
Here is a full, heavy chunk of code (with comments) which does all
that. Replace the raise Fail ...
code with this:
| Iota (n_exp, pos as (line, _)) =>
let val size_reg = newName "size_reg"
val n_code = compileExp n_exp vtable size_reg
(* size_reg is now the integer n. *)
(* Check that array size N >= 0:
if N - 1 >= 0 then jumpto safe_lab
jumpto "_IllegalArrSizeError_"
safe_lab: ...
*)
val safe_lab = newName "safe_lab"
val checksize = [ Mips.ADDI (size_reg, size_reg, "-1")
, Mips.BGEZ (size_reg, safe_lab)
, Mips.LI ("5", makeConst line)
, Mips.J "_IllegalArrSizeError_"
, Mips.LABEL (safe_lab)
, Mips.ADDI (size_reg, size_reg, "1")
]
val addr_reg = newName "addr_reg"
val i_reg = newName "i_reg"
val init_regs = [ Mips.ADDI (addr_reg, place, "4")
, Mips.MOVE (i_reg, "0") ]
(* addr_reg is now the position of the first array element. *)
(* Run a loop. Keep jumping back to loop_beg until it is not the
case that i_reg < size_reg, and then jump to loop_end. *)
val loop_beg = newName "loop_beg"
val loop_end = newName "loop_end"
val tmp_reg = newName "tmp_reg"
val loop_header = [ Mips.LABEL (loop_beg)
, Mips.SUB (tmp_reg, i_reg, size_reg)
, Mips.BGEZ (tmp_reg, loop_end) ]
(* iota is just 'arr[i] = i'. arr[i] is addr_reg. *)
val loop_iota = [ Mips.SW (i_reg, addr_reg, "0") ]
val loop_footer = [ Mips.ADDI (addr_reg, addr_reg, "4")
, Mips.ADDI (i_reg, i_reg, "1")
, Mips.J loop_beg
, Mips.LABEL loop_end
]
in n_code
@ checksize
@ dynalloc (size_reg, place, Int)
@ init_regs
@ loop_header
@ loop_iota
@ loop_footer
end
Now try to compile iota.fo
once more. If that works, try running it
with Mars. This should print the same as the interpreter.
Do not fret if you don’t understand all of this immediately! If you’re lost, try to read it part by part and figure out which parts exactly it is that you don’t understand.
Implementing map
and reduce
To implement map
and reduce
in Fasto, you need a good
understanding of:
-
how to extend the lexer, parser, type checker, code generator, and interpreter in general;
-
how to generate MIPS code containing loops in particular;
-
how to parse both function names, anonymous functions and operators for use as the first arguments in
map
andreduce
; -
how to call a function with arguments in the code generator; and
-
how to handle different types in arrays.
Task 1 should’ve prepared you for point 1, and the previous section
have hopefully helped you with point 2. The places where you’re going
to modify code are the same as with iota
.
To get help with point 3, 4 and 5, read on.
Parsing functions and operators
Both map
and reduce
take a function as the first argument: map
takes a function of one argument, while reduce
takes a function of
two arguments. Your lexer and parser must be able to handle all three
kinds of functions:
-
A function name. This should be simple to parse.
-
An anonymous function. Recall that Fasto’s anonymous functions are of the form
fn Type ( Parameters ) => Expression
. For this your lexer needs to handle both thefn
and=>
lexemes similarly to how e.g.==
is handled. -
An operator prefixed with "op". Apart from updating the lexer to handle
op
, how would you parse this? (This part is less important, so feel free to postpone it until later.)
The Fasto AST already has a type for this variation of functions:
FunArg
. Please use that. Here it is for your quick reference:
and FunArg = Lambda of Type * Param list * Exp * pos
| FunName of string
Note that this has only two constructors — but there are three kinds
of functions. This works because an operator is essentially an
anonymous function, i.e. it can be expressed as a Lambda
. How would
you transform an operator into a Lambda
?
Here’s a tip to get you started. Insert this line in the top section
of your Parser.grm
:
%type <Fasto.UnknownTypes.FunArg> FunArg
Calling functions in the code generator
For both map
and reduce
, you must be able to call the same
function for each element in an array. But in the code generator,
what is a function?
Once we have ventured over to MIPS assembly land, we don’t have
proper functions anymore, but instead we have a lot of labels. How do
you then call a function? If you look at the handling of Apply
, you
can see that it uses the supplied function applyRegs
to call a
function on a list of arguments (or rather, a list of registers
containing the argument values).
You too can use applyRegs
, though this only works for a FunArg
which is a named function, i.e. something of the FunName
constructor. You’ll have to figure something else out for anonymous
functions, i.e. something of the Lambda
constructor.
We recommend that you focus on getting function calling with named functions working, and wait with anonymous function support until you’re done with that.
Handling different array types
Different types have different value sizes:
-
A
char
takes up a single byte. -
A
byte
also takes up a single byte. -
An
int
takes up 4 bytes, i.e. a MIPS32 word. -
An array type takes up a number of bytes equal to the length of the array times the length of a single element in the array.
In map
and reduce
, you need to use different store and load
instructions for char/bool
and int
, since they take up different
amounts of space. For char/bool
, you can use SB
and LB
(store
byte and load byte). For int
, you can use SW
and LW
(store word
and load word).
You need storing and loading since both map
and reduce
writes to
and reads from arrays.
It is a good idea to start with a simplified approach, where e.g. you
only support int
arrays in your map
and reduce
. Once you get
that working, it shouldn’t be too hard to support also bool
and
char
arrays.
The code generator code for iota
uses SW
(but not LW
, since it
doesn’t read from anywhere, but generates all its output by itself),
so use that for inspiration.
Problems?
This hints file is an attempt to guide you through the implementation of the three combinators, but it’s still likely that you’ll run into problems. Feel very free to ask in the lab sessions or on the forum.


April 25, 9:45am 457 Memorial Union Davis, CA, 95616
April 25, 10:30am 2117 Oxford Street Berkeley, CA, 94704
Foyer
Town Square
Fireside A&B
Fireside C&D
Round Table (upstairs)
Parley Room
Fireside A&B
Fireside C&D
Round Table (upstairs)
Parley Room
Fireside A&B
Fireside C&D
Round Table (upstairs)
Parley Room
Town Square
Town Square
*Schedule is subject to change


voltage constant = 230 * 11 / (9+20%) = 234.26
current constant = (100 / 0.050) / 18 = 111.11
this are the equations used to find I cal and V cal theoretically and I cal and V cal and PF cal why they are actually used
also the shifted v is there in order to eliminate any distortion that may have rose due to the transformer and other components in the circuit??
thanks
Re: calibration
Correct.
ICAL and VCAL are there because (1) you want to read normal units, Amps and Volts (not counts) on your display and (2) because the relationship between counts and those real units changes according to the actual value of the components you have. (Example, your burden resistor is 18 Ohms +/- 1%, so it could be 17.82 Ohms, 18.18 Ohms or anywhere between these values).
PFcal (PHASECAL) is there because voltage and current are measured one after the other, so there is a short time delay between the readings, which is the same as a phase shift. The a.c. adapter also contributes a phase shift (see http://openenergymonitor.org/emon/buildingblocks/report-mascot-9v-acac-a...). PHASECAL corrects both those errors.
"phaseShiftedV" is the result of that correction.
Re: calibration
for shifted v only i still cant understand the reason behind the equation please
Re: calibration
Do you mean you understand why it is necessary to correct for phase shift, but you do not understand how the equation does that?
A agree it is difficult to understand the equation. You must draw on paper a sine wave, mark on it where it is sampled each time (about every 7 degrees in practice, but you need not choose that value to understand what happens; try every 15 degrees). Then you need to pick a number for PHASECAL (say 1.5), choose the first two samples - call the first "lastfiltered" and the second "filtered". Calculate using the equation and draw on the paper where the point "phaseShifted" comes. Then repeat this, the old "filtered" (sample 2) becomes "lastfiltered" and the next sample (sample 3) becomes "filtered". Repeat this for a number of samples, and join up the new points you have marked with a smooth curve. Then choose a different number for PHASECAL and repeat the procedure.
Re: calibration
thanks a lot.. i didnt understand actually the reason behind it this :
Re: calibration
Do you understand now?
Re: calibration
ok I understood what you mean.. so with that equation your doing a smoother sine wave. However the phase cal only needs to be set once. your just trying different in order to get the smoothest possible
Re: calibration
I told you to join up the new points, to give a new wave. The new wave that you have drawn should be shifted in angle = shifted in time = shifted in phase, in relation to the original!
So, if your original wave was phase shifted before you measured it, or you measured it late (in time), you can make a new wave that is shifted to where the original SHOULD have been. Then you use that to calculate power.
[Edit]
Your diagram should look like this.
Re: calibration
ahh ok I understood. because now I did it personally :) thanks a lot
I wrote this part like this:
Re: calibration
It is your installation, you can do whatever you like. But there are many advantages in following what other people have used before and proven to work. So take a look at the program that receives the data and see what it expects.
If you choose not to use something that is known to work, you can change it and write whatever you like and send whatever you like. At the receiving end, you then have write the program to interpret what comes in over the link, convert the strings if necessary and assign the results to right variables.
It is generally easier to write a string than to interpret a string. So it makes sense to keep it simple and easy to interpret.
I say "1234.2 1563.2 0.79 234.5 6.65" is much easier to interpret (by a program) than "1234.2A1563.2B0.79C234.5D6.65" because you know that a space ' ' always separates the two numbers, and it is easier to always look for a space rather than a different symbol each time.
Re: calibration
Im saying so becuase in the main sketch it is written like this:
Re: calibration
A yes, this is old code, the reason I used characters as identifiers was that it made it easy to identify a particular variable by the character, so for example A is always real power or whatever. This way you can add and remove variables relatively easily, anyway this is another topic.


Intellectual Functioning
Also known as IQ, this refers to a person’s ability to learn, reason, make decisions, and solve problems.
Also known as IQ, this refers to a person’s ability to learn, reason, make decisions, and solve problems.
These are skills necessary for day-to-day life, such as being able to communicate effectively, interact with others, and take care of oneself.
IQ (intelligence quotient) is measured by an IQ test. The average IQ is 100, with the majority of people scoring between 85 and 115. A person is considered intellectually disabled if they have an IQ of less than 70 to 75.
To measure a child’s adaptive behaviors, a specialist will observe the child’s skills and compare them to other children of the same age. Things that may be observed include how well the child can feed or dress themselves; how well the child is able to communicate with and understand others; and how the child interacts with family, friends, and other children of the same age.
Intellectual disability is thought to affect about 1% of the population. Of those affected, 85% have mild intellectual disability. This means they are just a little slower than average to learn new information or skills. With the right support, most will be able to live independently as adults.


Social media users are heaping praise on Bonds for its new Christmas ads which feature a gay couple in underwear
by Rosie Perper- Social media is brimming with praise for Bonds over its new Christmas ad series which features same-sex couples.
- Instagram users hailed the brand for “representing love in all forms” while one Twitter user said they were inspired to stock up on Bonds products in response.
- Still, the ads did invite some backlash from users who vowed to boycott the brand.
Social media users have heaped praise on Bonds for its new Christmas ads which feature two men holding hands and kissing while wearing Bonds-branded briefs.
Bonds dropped a series of Christmas ads on its Instagram page featuring the same-sex couples. The first ad was posted last week and included a gay couple laying on the ground holding hands.
Another was posted several days later, featuring two men kissing in the middle of what appears to be breakfast.
“It’s the little moments that make the Christmas season so special,” the caption on the photo reads.
Social media users were quick to praise the brand for honoring the LGBTQ+ community.
“Normalise it,” one user commented beneath the photo. “Well done Bonds.”
“YAY for representing LOVE in all of its forms,” said another.
One Twitter user said that the ad inspired them to buy “Bonds underwear for everybody on my list this Christmas.”
Still, the post did draw some backlash.
One Twitter user called to boycott the brand, calling the ads “offensive.”
Another Instagram user lamented that the ad had “nothing to do with Christmas.”
The brand has taken positive steps to become more inclusive in its marketing. In March, the company debuted ads featuring transgender model and activist Andreja Pejic in lingerie.
Judging from the largely-positive response, the strategy seems to be working.


How to register new server instance and view it's pipelines and history of executions.
In order to execute a pipeline, long click on it.
In order to edit an already registered server instance, just click on it.
The creation and deletion of pipeline.
In order to re-execute pipeline from history, long click on it.
In order to delete execution, swipe it to the side.
How to filter executions by a server instance.
How to filter pipelines by a server instance.
How to turn notifications on and off.


--- title: 'Friday Fun' author: Colene format: html tags: - Video - Event ---
Last November, Brian LeRoux spoke at dotJS in Paris. Watch his fun talk "WTFJS" below and enjoy!


FASTER!!! Can NOT wait until Migration to #Komodo is Complete sometime in June! #Speed, Privacy & #Protection coming; giving #HempCoin (#THC) an Edge on their Competitors! #Best of 2 Worlds; #HempIndustry & #Cryptocurrency. #Blockchain #Cryptocoin #Potcoin #Bitcoin #Cannab...


{% extends "base_settings.html" %} {% block connectedappstab %}class="active"{% endblock%} {% block setting_content %}
| Name | Owner | |
|---|---|---|
| {{ rt.application.name }} | {{ rt.application.user.username }} | Revoke access |
You have no applications authorized to access your account on your behalf via NeuroVault API.


CODE OF CONDUCT
Hackman is a 24 hour inter college open theme hackathon conducted by Department of Information Science and Engineering, Dayananda Sagar College of Engineering, Bangalore. It is also a platform where young talented minds from various colleges in Bangalore come up with amazing ideas, code them and make a prototype. Hackman v4 is the fourth version of its type and we have conducted two very successful versions in the past two years. We expect to have 250 participants who will compete in teams where the minimum participants in a team would be 3 and maximum would be 4.
We value the participation of every member of Hackman and want all participants to have an enjoyable and rewarding experience. Accordingly, every participant of the event is expected to show respect and courtesy to every other participant throughout the course of event i.e Hackman v4.
To make clear what is expected, all participants, mentors, coordinators, organizers and volunteers at Hackman are required to conform to the following Code of Conduct. Organizers will enforce this code throughout the event.
SHORT VERSION
Hackman is dedicated to providing a harassment-free hackathon experience for everyone, regardless of age, gender, sexual orientation, physical appearance, disability, race, religion or education. We don't tolerate harassment of participants in any form.
All communication should be appropriate for a professional audience, including people from many different backgrounds.
Code for Organizers:
Organizers/Coordinators/Volunteers should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment. Should make sure the code of conduct is properly followed.
Code for Mentors:
Sexual language or imagery is inappropriate for your talks and advices. Refrain from using sexist, racist or exclusionary language anywhere in your content.
Code for Sponsors:
Sponsors are subject to the anti-harassment policy.
Hackman retains full and sole discretion in selecting the main theme, the mentors, the prize money, the structure, the participants and communication initiatives in relation to any aspect that may influence the attendee’s experience and overall quality and level of the event.
All rights to Hackman reside with Dayananda Sagar Institutions, Bangalore.
We conclude and provide the detail in good faith agreement between the parties to cooperate in making Hackman v4 and the partnership a success. All Hackman v4 partnerships are based on an element of trust and reasonable behavior by all parties involved.
The Organisers, Sponsors, or any related and/or situated with the event will not be responsible for any loss and/or damage to life, property or brand image incurring to any one related to the company in the course of the event.
All information is subjected to privacy and confidentiality. Any breach of this detail will be taken seriously.
Code for Participants:
Be kind and sensitive to the people around you and avoid any kind of offensive behavior. Sexist, racist or any other form of exclusionary or offensive jokes or excessive public swearing are not appropriate at Hackman v4.
Participants violating these rules may be asked to leave the event without a refund at the sole discretion of the event organizers.
LONG VERSION
Hackman v4 is dedicated to providing a harassment-free event experience for everyone, regardless of age, gender, sexual orientation, physical appearance, disability, race, religion or employment.
 We have zero tolerance on harassment of participants in any form, including, but not limited to the activities mentioned here.
Participants asked to stop any harassing behavior are expected to comply immediately.
In particular, mentors should not use sexualized images, activities, or other material. The organizers (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.
All communication should be appropriate for a professional audience, including people from many different backgrounds. Sexual language or imagery is inappropriate for all aspects of the conference, including talks. Remember that sexist, racist or any other form of exclusionary or offensive jokes or excessive public swearing are not appropriate and will not be appreciated.
Do not insult or put down participants or engage in any action that violates the open, welcoming and sharing spirit of the event. Be kind and sensitive to the people around you when you are attending the event, and avoid any kind of offensive or degrading behavior.
If a participant engages in behavior that violates this code of conduct, the event organizers may take any action they deem appropriate, including warning the offender or expulsion from the event with no refund.
The core team of Hackmanv4 holds all rights to reschedule the event for valid reasons and no refund shall be made in such circumstances.
Thank you for helping to make Hackman v4 a welcoming, friendly event for all.
CONTACT INFORMATION
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of the event organizers. Event organizers will be wearing "Hackman crew" or "Hackman core" T shirts and will be carrying ID Cards.
Organizers will be happy to help participants contact venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the event. We value your attendance.
If the matter is especially urgent, you may also ask to be put in touch with our
Faculty Co-ordinator – Mr Dheemanth URS R
or Faculty Co-ordinator - Mr SureshKumar M
or Head of Department – Dr K N Rama Mohan Babu


func WithPeerFilter(value PeerFilter) copts.Opt
WithPeerFilter sets a peer filter which provides per-request filtering of peers
func WithPeerSorter(value PeerSorter) copts.Opt
WithPeerSorter sets a peer sorter function which provides per-request sorting of peers
func WithPrioritySelector(value PrioritySelector) copts.Opt
WithPrioritySelector sets a priority selector function which provides per-request prioritization of peers
func WithRetryOpts(value retry.Opts) copts.Opt
WithRetryOpts sets the retry options
Params defines the parameters of a selection service request
type Params struct { PeerFilter PeerFilter PeerSorter PeerSorter RetryOpts retry.Opts }
func NewParams(opts []copts.Opt) *Params
NewParams creates new parameters based on the provided options
func (p *Params) SetPeerFilter(value PeerFilter)
SetPeerFilter sets the peer filter
func (p *Params) SetPeerSorter(value PeerSorter)
SetPeerSorter sets the priority selector
func (p *Params) SetRetryOpts(value retry.Opts)
SetRetryOpts sets the priority selector
PeerFilter filters out unwanted peers
type PeerFilter func(peer fab.Peer) bool
PeerSorter sorts the peers
type PeerSorter func(peers []fab.Peer) []fab.Peer
PrioritySelector determines how likely a peer is to be selected over another peer. A positive return value means peer1 is selected; negative return value means the peer2 is selected; zero return value means their priorities are the same
type PrioritySelector func(peer1, peer2 fab.Peer) int


Labels
Conversations
Groups
Notices
Starred
Sent
Drafts
All Mail
Spam
Trash
Travel
Work
Family
Inbox
archive
delete
spam
move
more


"s"
for speaker notes
Leave a comment in this week's roll-call
issue
sunday-review
issues?
Using Arrays
(small groups)
for ... of
loops
mapping
: changing each item in an array
filtering
: removing some items from an array
reducing
: combining all items in an array
every
: is something true about every array item?
for (let _ of _) { _ }
~30 sec per group
(~20 min)
Using user input with arrays
(small groups)
Generate from this template and get studying
Be sure to study the example!
/example
~30 sec per group
"s"
for speaker notes


Simply drag and drop a CBZ or CBR file onto the page to start reading.
Started as a weekend project by Raymond Camden. eComic Reader is built upon both Robert Kuykendall's Web Slinger and Jeff Schiller's Kthoom. Feel free to check out the code on GitHub, and comment or build upon it yourself!


{% extends "tutorial.html" %} {% load mixin from templatefilters %} {% block head %} {% endblock %} {% block html5badge %} {% endblock %} {% block iscompatible %} return Modernizr.prefixed('filter') !== undefined; {% endblock %} {% block content %} {% include "warning.html" %}
Filters are a powerful tool that web authors can use to achieve interesting visual effects. In this article we’ll cover the history of filter effects, what they do and how to use them. We’ll cover examples of all the predefined filters defined for CSS with some examples. We’ll also cover performance considerations for using them on desktop and mobile devices since knowing the speed impact of filters is important for a good user experience. Finally we’ll review the current state of implementation in modern browsers.
Filter effects originated as part of the Scalable Vector Graphics (SVG) specification. They were created to apply a number of different pixel based image effects to a vector drawing. Over time as browser vendors added SVG capabilities into their browsers, the usefulness of filters became evident. Robert O’Callahan from Mozilla came up with the brilliant idea of using SVG filters through the application of CSS to ‘normal’ HTML content. Robert prototyped an early version that showed how powerful the combination of filters and CSS styling could be. The CSS and SVG working groups in the W3C decided to harmonize the use of filters for both HTML and SVG via CSS styling, and thus the ‘filter’ property for CSS was born. Right now a joint task force of people working on CSS and SVG is doing a ton of work to make filters universally useful. You can find the current specification for all this stuff here.
Deja Vu sometimes strikes a web developer when seeing ‘filter’ in CSS styles. This is due to the fact that old versions of Internet Explorer had a ‘filter’ property exposed via CSS to perform some platform specific functionality. This has been deprecated in favor of the standard ‘filter’ property which is now part of CSS3. So when you see ‘filter’ out in the wild on some old web pages, there’s no need to be confused. The new ‘filter’ property is where all the action is, and new versions of IE are implementing it just the same as all modern browsers.
So what does a filter do exactly? The easiest way to think of a filter is as a post processing step that does something magical after all your page content has been laid out and drawn.
When a browser loads a web page it needs to apply styles, perform layout and then render the page so there's something to look at. Filters kick in after all those steps and just before the page is copied to the screen. What they do is take a snapshot of the rendered page as a bitmap image, then perform some graphics magic on the pixels in the snapshot and then draw the result over the top of the original page image. One way to think of them is like a filter placed on the front of a camera lens. What you’re seeing through the lens is the outside world modified by the effect of the filter.
This of course means that there's time consumed when drawing a page with filters on it, but using them properly will have minimal impact on the speed of your site.
Also, just as you can stack a number of filters in front of each other on your camera lens, you can apply an arbitrary number of filters one after the other to achieve all sorts of effects.
Since filters originally came from SVG there are different ways to define and use them. SVG itself has a
Most of the CSS filters can be expressed in terms of SVG filters, and CSS also allows you to reference a filter specified in SVG if you want. The CSS filter designers have taken great pains to make the application of a filter easier for web authors, and so this article will just cover the filters available directly from CSS, ignoring the SVG definitions for the time being.
Note: The description and examples below use the official W3C syntax that will be available in all modern browsers eventually. To use filters now, you need to use the vendor prefixed version of the ‘filter’ property. But don’t worry there’s an easy way to handle that at the end of this article.
Using filters from CSS is done by using the ‘filter’ property applied to any visible element on your web page. For a very simple example you could write something like
div { {% mixin filter: grayscale(100%); %} }
and that would make the content inside all <div> elements on the page turn gray. Great for making your page look like a TV image from the 1940s.
Most filters take some form of parameter to control how much filtering is done. So for example if you wanted to style your content to be half way between the original color and a grayscale version you’d do it like this:
div { {% mixin filter: grayscale(50%); %} }
If you want to apply a number of different filters one after another, it’s easy - just place them in order in your CSS like so:
div { {% mixin filter: grayscale(100%) sepia(100%); %} }
That example will first make all the original color grayscale and then apply a sepia effect, and would end up looking like:
With the flexibility available for applying filters one after the other, all sorts of effects can be achieved - it’s totally up to your imagination to experiment with creating amazing results.
So the original SVG filter mechanism is both powerful but at the same time can be daunting to use. Because of that, CSS introduces a bunch of standard filter effects that make using them really easy.
Let’s take a look at each of them and see what they do.
This converts color in our input image to a shade of gray. The ‘amount’ applied controls how much gray conversion is applied. If it’s 100% then everything will be a shade of gray, if it’s 0% the colors are unchanged. You can use a floating point number here if you prefer it over percentages, i.e. 0 works the same as 0% whilst 1.0 works the same as 100%.
This gives the colors passed in a sepia tinge like in old photographs. The ‘amount’ applied works in the same way as for the ‘grayscale’ filter - namely 100% makes all the colors completely sepia toned and smaller values allow the effect to be applied in smaller proportions.
This applies a color saturation effect to the colors which makes them look more vivid. It’s a cool effect that can make photos look like posters or cartoons.This effect also allows you to use a value greater than 100% to really emphasize the saturation. Definitely an effect that can make things look pretty funky!
Note: In Chrome version 19, the saturate() function takes an integer (without the percentage sign) instead of the decimal or percentage, as per the W3C spec. Not to worry, this known bug will be fixed.
This one is a bit of a color geek effect that can be used for interesting results. What it does is shift the colors around to make an input image look completely different. If you can imagine a color spectrum going from red to violet around a color wheel, then this effect takes the original color on the wheel as input and rotates it by the ‘angle’ parameter to produce the color on the wheel to which it rotated as the output color value. So all the colors in the image are shifted by the same 'angle' on the wheel. This is of course a simplification of what it does, but hopefully close enough that it makes sense.
This effect flips the colors - so that if the ‘amount’ applied is 100% the output looks like a photo negative back from the old film days of cameras! Just like before, using values smaller than 100% will progressively apply the invert effect.
If you want the content being filtered to look semi-transparent, this is the one for you. The ‘amount’ value defines how opaque the output will be. So a value of 100% is completely opaque so the output will be exactly the same as the input. As the value drops below 100% the output image will become less opaque (more transparent) and you’ll see less and less of it. This of course means if it overlaps something else on the page, the stuff underneath will start to become visible. An ‘amount’ of 0% means it will completely disappear - but note, you can still get events like mouse clicks etc. to happen on completely transparent objects so this is handy if you want to create clickable areas without displaying anything.
This works the same as the ‘opacity’ property you already know. In general the CSS ‘opacity’ property isn’t hardware accelerated, but some browsers that implement filters using hardware acceleration will accelerate the filter version of opacity for much better performance.
This is just like the brightness control on your TV. It adjusts the colors between completely black and the original color in proportion to the ‘amount’ parameter. If you set this one to 0% you’ll see nothing but black, but as the value goes up towards 100% you see more and more of the original image brightening up, until you hit 100% where it’s the same as the input image. Of course you can just keep going - so setting something like 200% will make the image twice as bright as the original - great for adjusting those low light shots!
More controls from your TV set! This will adjust the difference between the darkest and lightest parts of the input image. If you use 0% you end up with black just like with ‘brightness’, so not too interesting. However as you increase the value towards 100% the difference in darkness changes until you hit 100% and it’s the original image again. You can also go beyond 100% for this effect too, which increases the difference between light and dark colors even more.
If you want a soft edge for your content, you can add a blur. This one looks like the classic Vaseline on a sheet of glass look that used to be a popular movie making technique. It smudges all the colors together and spreads their effect out - kind of like when your eyes are out of focus. The ‘radius’ parameter affects how many pixels on the screen blend into each other, so a larger value will create more blur. Zero of course leaves the image unchanged.
It’s so nice to be able to make your content look like it’s outside in the sun with a shadow on the ground behind it, and that of course is what ‘drop-shadow’ does. It takes a snapshot of the image, makes it a single color, blurs it, then offsets the result a bit so it looks like a shadow of the original content. The ‘shadow’ parameter passed in is a bit more complicated than just a single value. It is a series of values separated by a space - and some values are optional too! The ‘shadow’ values control where the shadow is placed, how much blur is applied, the color of the shadow, etc. For full details of what the ‘shadow’ values do, the CSS3 Backgrounds specification defines ‘box-shadow’ in great detail. A few examples below should give you a decent idea of what the various possibilities are.
This is another filter operation that is similar to existing CSS functionality available via the ‘box-shadow’ property. Using the filter approach means that it may get hardware accelerated by some browsers as we described for the ‘opacity’ operation above.
Since filters originated as part of SVG, it’s only logical that you should be able to style your content using an SVG filter. This is easy with the current ‘filter’ property proposal. All filters in SVG are defined with an ‘id’ attribute that can be used to reference the filter effect. So, to use any SVG filter from CSS all you need to do is reference it using the ‘url’ syntax.
For example, the SVG markup for a filter could be something like:
<filter id=”foo”>...</filter>
then from CSS you could do something as simple as:
div { {% mixin filter: url(#foo); %} }
and voila! All the <div>s in your document will be styled with the SVG filter definitions.
Coming soon on the horizon are custom filters. These tap into the power of your graphics GPU to use a special shading language to perform amazing effects bounded only by your own imagination. This part of the ‘filter’ specification is still under discussion and in flux, but as soon as this starts to come to a browser near you, we’ll be sure to write more about what is possible.
One thing that every web developer cares about is performance of their web page or application. CSS filters are a powerful tool for visual effects, but at the same time might have an impact on the performance of your site.
Understanding what they do and how this affects performance matters, especially if you want your site to work well on mobile devices if they support CSS filters.
Firstly, not all filters are created equal! In fact, most filters will run really quickly on any platform and have very minor performance impact. However, filters that do any kind of blurring tend to be slower than the others. This of course means ‘blur’ and ‘drop-shadow’. This doesn’t mean you shouldn’t use them but understanding how they work might help.
When you do a ‘blur’, it mixes the colors from pixels all around the output pixel to generate a blurred result. So, say if your ‘radius’ parameter is 2, then the filter needs to look at 2 pixels in every direction around each output pixel to generate the mixed color. This happens for each output pixel, so that means a lot of calculations that just get bigger when you increase the ‘radius’. Since ‘blur’ looks in every direction, doubling the ‘radius’ means you need to look at 4 times as many pixels so in fact it’s 4 times slower for each doubling of the ‘radius’. The ‘drop-shadow’ filter contains a ‘blur’ as part of its effect, so it too behaves just like ‘blur’ when you change the ‘radius’ and ‘spread’ parts of the ‘shadow’ parameter.
All is not lost with ‘blur’ since on some platforms it’s possible to use the GPU to accelerate it, but that’s not necessarily going to be available in every browser. When in doubt the best thing is to experiment with the ‘radius’ that gives you the effect you want, then try to reduce it as much as possible while still maintaining an acceptable visual effect. Tuning this way will make your users happier especially if they use your site from a phone.
If you’re using ‘url’ based filters that reference SVG filters, they can contain any arbitrary filter effect so be aware that they too could be slow, so try to make sure you know what the filter effect does and experiment on a mobile device to make sure the performance is OK.
Right now a number of the CSS ‘filter’ effects are being made available in WebKit based browsers and Mozilla. We expect to see them soon in Opera as well as IE10. As the specification is still under development, some browser vendors have implemented this stuff using vendor prefixes. So in WebKit you need to use ‘-webkit-filter’, in Mozilla you will need to use ‘-moz-filter’ and keep your eye out for other browser implementations as they appear.
Not all browsers will support all filter effects right away, so your mileage will vary. Presently, the Mozilla browser supports only the 'filter: url()' function - without the vendor prefix, as that implementation pre-dates the other effects functions.
We’ve summarized the CSS filter effects available in the various browsers below with rough performance indicators for when they’re implemented in software. Note, that a number of modern browsers are beginning to implement these in hardware (GPU accelerated). When these are built with GPU support, performance will be greatly improved for the slower effects. As usual, testing on different browsers is the best way to evaluate the performance.
| Filter effect | Browser support | Performance |
|---|---|---|
grayscale | Chrome | very fast |
sepia | Chrome | very fast |
saturate | Chrome | very fast |
hue-rotate | Chrome | fast |
invert | Chrome | very fast |
opacity | Chrome | can be slow |
brightness | Chrome | fast |
contrast | Chrome | fast |
blur | Chrome | slow unless accelerated |
drop-shadow | Chrome | can be slow |
url() | Chrome, Mozilla | Varies, fast to slow |
An awesome interactive abstract painting with filters application which lets you experiment and share your artwork
Be sure to check out Eric Bidelman’s excellent interactive filter page
A great tutorial about filters with examples
The official W3C Filter Effects 1.0 draft specification http://dev.w3.org/fxtf/filters/
Example UI created using filters
{% endblock %}


|
PathingLib
|
Represent a directed graph object. More...
#include <Graph.h>
Public Member Functions | |
| PATHINGLIB_API | Graph (int nodesMaxAmount, int edgesMaxAmount) |
| void PATHINGLIB_API | saveToFile (string nodesPath, string edgesPath) |
| void PATHINGLIB_API | saveToFileCSV (string filePath) |
| save all edges by using string line format in file | |
| bool PATHINGLIB_API | addNode (double latitude, double longtitude) |
| add node to graph if array is not full | |
| bool PATHINGLIB_API | addDirectedEdge (int source, int target, int distance) |
| add edge from source to target, if array is not full | |
| NODE PATHINGLIB_API | getNode (int index) |
| return node with index | |
| EDGE PATHINGLIB_API | getEdge (int index) |
| return edge with index | |
| int PATHINGLIB_API | getNodesAmount () |
| return nodes amount | |
| int PATHINGLIB_API | getEdgesAmount () |
| return edges amount | |
| int * | getInEdges (int nodeIndex) |
| return array of edges from any node to node with nodeIndex | |
| int * | getOutEdges (int nodeIndex) |
| return array of edges from node with nodeIndex to any node | |
| int PATHINGLIB_API | getInEdgesAmount (int nodeIndex) |
| return amount of edges from any node to node with nodeIndex | |
| int PATHINGLIB_API | getOutEdgesAmount (int nodeIndex) |
| return amount of edges from node with nodeIndex to any node | |
Static Public Member Functions | |
| static Graph PATHINGLIB_API | loadGraphFromFile (std::string nodesPath, std::string edgesPath) |
Represent a directed graph object.
| PathingLib::Graph::Graph | ( | int | nodesMaxAmount, |
| int | edgesMaxAmount | ||
| ) |
int nodesMaxAmount - size of nodes array int edgesMaxAmount - size of edges array
|
static |
string nodesPath - path to file with nodes, which is represented in way index (0, infinity), latitude, longtitude Example: 0 1.2341 2.232 1 1.9923 2.333 string edgesPath - path to file with edges, which is represented in way source node index(0, amount od nodes), target node index(0, amount od nodes), distance in km Example: 0 1 2.11 1 0 2.11
| void PathingLib::Graph::saveToFile | ( | string | nodesPath, |
| string | edgesPath | ||
| ) |
save graph to file
create two files with nodes and edges


Raspberry Pi WiFi Network
rasp-wifi
Title: Diagnostics and Webserving on the Raspberry Pi
How to setup a Raspberry Pi as an access point for its own wireless network. The discussion below is a review on some of the ways to interact with this device.
Talk Outline
Raspberry Pi
- A credit card sized computer that’s significantly cheaper than most of its rivals (~$35)
- Applications: media center, cloud server, smart TV, game emulator, robotics brain, cheap educational tool, home automation, etc
- Great comumunity, including numerous blogs, tutorials and libraries
The Problem
- How to easily and wirelessly interact with the Pi. Even for non-interactive projects, you need to diagnose issues, check system health.
- Need a UI of some kind for an embedded, headless PC
Potential Solutions - Physical Link
- External monitor
- requires expensive screen, requires Pi enter display mode
- cost defeats the purpose of buying a low-cost Pi
- Ethernet
- HTTP allows us to use the web browser to display information, receive input. A great cross-device platform
- cumbersome cords, bad for outdoor applications
- WiFi
- looks better but has signal range issues. Difficult to configure
- Bluetooth
- Requires a dedicated client-side application in order to receive and display signals
Potential Solutions - Network
- SSH onto the Pi
- Requires specialized knowledge to operate, not user friendly
- Pi connects to remote server
- Hosting costs
- Security concerns
- Pi becomes a web server that user connects over home network
- User must somehow detect local ip address (too hard for enduser)
- Or open port on home network and use dynamic ip stuff (not secure)
My Solution
Create your own local network with the Raspberry Pi as the router, DNS, and web server.
Advantages
- Instant wireless connectivity wherever you go
- If internet access becomes available, you can choose to forward remote requests
- No security problems due to limited range
- Leverages web browser as a cross device platform
- Can create custom domain names, network name
- Fairly simple for enduser
- Same method used by Chromecast to configure its wifi connection
Technologies used in demo
- hostapd: wifi device mode (access point), network security (WPA2)
- dnsmasq: DHCP and DNS
- nginx: webserving
- socket.io: 2 way communication
- init scripts: automatically stop and start on reboot
Few projects I’ve built
- Interactive LED table: individually addressable, multicolor LEDs
- Smartphone enabled TV remote: chromecast and IR commands
- Weather station: collection of environmental sensors
Future Improvements
- Try a different WiFi mode. For example, ad hoc or mesh networks (multiple masters)
- Try using Multicast DNS to broadcast domain name over home network
- Try to access webpages over bluetooth
- Forward http requests over bluetooth PAN
- Bluetooth PAN


Loading...
0 spotted •
50 remaining
started
This app was built by, yours truely, Peter Bengtsson (www.peterbe.com) because having recently moved to the USA I found myself searching for new out of state license plates I've never seen before. But I had to log that somewhere. And what better way than to write a fun little mobile app to do that.
All code for this project is Open Source and available at github.com/peterbe/uslicenseplates.
To be honest, this app is more of an experiment than anything else. The intention is actually to re-implement this app idea in multiple different ways with different types of technology so as to learn how to use and and which of these tools is best.
Unlike many of games this one has no enforecable rules. Since you don't have to prove how or where you spotted a plate it's up to you to be truthful to yourself.
My rule is that you have to clearly be able to see the license plate with your own eyes.
Once you're logged in to Facebook your spotted states are automatically backed up.
The last time you made a backup was: not done yet


North Carolina lawmakers redraw state’s congressional map
RALEIGH, N.C. (AP) — North Carolina’s congressional map has been redrawn with district lines that endanger reelection prospects for two Republicans next year.
The GOP-controlled General Assembly finalized the replacement boundaries Friday with a party-line vote in the state Senate. The map already cleared the state House on Thursday.
The legislature redrew the map because state judges blocked the use of the most recent lines for the 2020 elections. The judges determined those boundaries were likely drawn with unlawful partisan bias favoring Republicans, who currently hold 10 of North Carolina’s 13 U.S. House seats.
Replacement districts where Republican Reps. Mark Walker and George Holding now live would clearly favor Democratic candidates.


The simple reason why this is possible is that there just are not as many books as there are interesting and important topics. There are 1 million plus ebooks in the Amazon Kindle store, but the Nimble Combinatorial Publishing content repository already includes more than 10 million documents, which can be selected, combined, and annotated in an almost inconceivably large number of combinations and permutations. Furthermore, our programmatic approach enables us to build huge volumes of books in a given category at the push of a key, and to create new ebooks immediately when random topics become hot trends.
Content from Wikipedia is released under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license which is available here. All content distributed by Nimble Combinatorial Publishing is also released under the CC BY-SA 3.0 with the explicit and complete exception of copyrighted content provided by other organizations.


wbia.algo.graph.tests package
Submodules
wbia.algo.graph.tests.dyn_cases module
wbia.algo.graph.tests.mst_debug module
wbia.algo.graph.tests.test_graph_iden module
wbia.algo.graph.tests.test_neg_metagraph module
TODO: These tests are good and important to run. Ensure they are run via run_tests even though they are not doctests.
Consider moving to pytest and using xdoctest (because regular doctest does not accept the syntax of IBEIS doctests)
- wbia.algo.graph.tests.test_neg_metagraph.test_neg_metagraph_simple_add_remove()[source]
Test that the negative metagraph tracks the number of negative edges between PCCs through non-label-changing operations


AUNTIE MAME
October 14-17, 1970 in the LLT Armory Building Playhouse
Director - Lowell Tew
Producer - Nancy Walters
Stage Managers - Joe Wright, WH Howard, Jr, Larry Dunne
THE CAST
Young Patrick Dennis / Michael Dennis - Johnny Davis
Ito - Brooke Ferris
Vera Charles - Gloria Udell
Ralph Devine - Jeff Troyka
M. Lindsay Woolsey - J. Larry Walters
Mr. Babcock - Alpheus McRae
Auntie Mame - Beth Dunne
Beauregard Jackson Pickett Burnside - Mark Malloy
Sally Cato - Brenda Quave
Mother Burnside - Patti Howard
Grown Up Patrick Dennis - Johnny Tomlinson
Agnes Gooch - Sheila Gwin
Gloria Upson - Linda Montgomery
Doris Upson - Farris Rowell
Claude Upson - Tucker Buchanan
Pegeen Ryan - Page Harris
Norah - Lola McCrory
Mame's Friends
Gayle Adams, Jack Amos, Linda Boone, Laura Cave, Pamela Cox,
W.O. Dillard, Patti Ellis, Greg Foster, David Godbold, Laura Howard,
Mary Kay Howard, Marsha Rambin, Paul Scaturro, Carey Smith,
Mark Whitt, R.L. Willett, Charles Windham, Joe Wright


We run campaigns, and we need to store the latest campaign's creative for each user. The default way to store this data would be to have documents like:
{ "userId": 123, "creative": {...} }
The problem is that there are millions of users, and thus, millions of these documents. Most of the time, "creative" value is same for all userIds, but sometimes it can be different on a per user basis. Since it is same most of the time, it seems atrocious to store it repeatedly in many many documents. So, to save on space, we can have a table with entries like this:
{ "userId": 123 "creativeId": 1 } { "userId": 234 "creativeId": 2 }
And then, a separate table, containing creative id to creative mapping:
{ "creativeId": 1, "creative": {...} } { "creativeId": 2, "creative": {...} }
Surely, this increases the number of lookups to find creative from 1 to 2, but since creatives are mostly repeated, massive storage reduction is worth it. But there is a new question: how to find out creative ids? How do you know whether a certain creative id is not yet mapped, so that you can use it?
That is where Dheeraj gave a neat trick: the way we find creativeId is by taking a hash of the dump of the creative! Once you do this, the administration of creative ids becomes trivial!


esm-seedrandom
Seeded random number generator for JavaScript, ported to ES Modules.
See the API docs.
Unit tested for number generator compatability with original seedrandom CommonJS NPM package.
Seeded random number generator for JavaScript, ported to ES Modules.
See the API docs.
Unit tested for number generator compatability with original seedrandom CommonJS NPM package.


|
OFDM subcarriers
have a sinc (sin(x)/x) frequency response resulting in overlap in the
frequency domain. This overlap does however not cause any interference due to
the orthogonality of the subcarriers. The above plot shows a 5 carrier OFDM
signal. The thick black line shows the combined response, while the circles
show the signal seen by the receiver. The OFDM receiver uses a time and
frequency synchronised FFT to convert the OFDM time waveform back into the
frequency domain. In this process the FFT picks up discrete frequency
samples, corresponding to just the peaks of the carriers. At these
frequencies, all other carriers pass through zero amplitude eliminating any
interference between the subcarriers.
|


click the start button..Read who start first...click on your position... red(player1) or green(player2)...The one who got 50 points first is the winner.


My Dairy Business
Enter Daily Milk Production Details
Shed A:
Shed B:
Shed C:
Shed D:
Select Category to Calculate
Yearly
Weekly
Leap Year
Monthly in a Leap Year
Calculate
Results


The app auto-populates with information uploaded to the dashboard and displays the information for users to read and digest. The app includes Grey Matters articles, podcasts, events, and videos, with a learning section and glossary aimed at supporting the viewers learning and understanding of the material. Overall, this app is designed to make scientific content less intimidating to read.
The dashboard allows Grey Matters to upload their content to the connected app in an easily understood and manageable way. They can upload and manage articles, podcasts, events, glossary terms, and users. Overall, the dashboard allows groups to easily update their apps content and make intelligent desicions based on the analytics from their content.
The analytics on the dashboard allows Grey Matters to see how users are using the app and make decisions on their content based on if they think users are liking and understanding the content
We've included articles and podcasts written and recorded by members of Grey Matters. They cover a variety neuroscience topics and lots of pictures (to make reading easier/more fun!)
The learning section allows users to learn about the basics of the brain before learning the more detailed ins and outs covered in the articles and podcasts
The glossary allows users to look up terms they may not be familiar with (directly from the articles too!) and add their own definitions to make the words more memorable for the future
The navigation across the app and the dahsboard is simple, letting admins, writers, and users focus on the most important thing: their experience.
Keep up to date on all events related to Grey Matters, including their weekly meetings so you can contribute as a writer or artist and quartely events involving a panel of nueroscientists
We are the team that created Grey Matters


Dear Sir:
It was not possible for me sooner to communicate the events which have lately happened in this Country—General Wayne with an Army of Near 4000 men (according to the report of deserters) made gradual approaches towards us until his arrival at Roche de Bout on the 17th Inst.—where he fixed his head Quarters, on the 18th—the Spy May was taken, who informed the Indians it was intended to attack them the Next day,—unless the General should determine to build a Fort, in which case he would not advance until the day following, on the 19th the Indians to the number of 1300 marched Early to the most advantageous Ground, but a strong detachment of Cavalry only made their appearance and retired as Soon as the Indians showed themselves.
On the 20th the American Army advanced and were first attacked by the left of the center of the Indian line which extended near three quarters of a mile obliquely upward,—the Americans Soon gave way & a rapid pursuit took place for about a mile where the Indian discovered the whole of the American Army Posted to whom they gave Battle retiring slowly before them, during this period, the Wyandot and Ottawas who were on the Right were Warmly Engaged by the American left consisting of both Cavalry and infantry who out flanked and infiladed the Indians until they retreated—the whole line of the Indians then retired below the Fort imagining their loss to be much greater then it since appears to have been having seen several of their Principal Chiefs fall;—The greatest cost they have sustained is in their leaders they halted that night at Swan Creek about six miles below and were not pursued, there were never more than 400 Indians engaged during the whole day and these stood the shock of a great part of their Army for upwards of two hours and lost in the whole but 19 men among whom are to be much lamented 8 Principal Chiefs of the Wyondots and two of the Ottawas, besides two more wounded—
By the reports of several deserters and from a survey of the field of Action (for they did not even bury but few of their dead) it appears the Americans lost between 3 and 400 Killed and Wounded and a great many horses.—The opperations of the Garrison I must leave to be detailed by those whose duty it is, but I must observe to you that all the store houses, my own House with many things that could not be removed were burnt by a Party of General Wayne's Army within sight of the Garrison. I hope soon to have the pleasure of seeing you.—At present I am waiting until the Indians whose Cornfields and Villages are totally destroyed Shall determine where they and their Families will set themselves down it being a matter of the highest importance to the Interest of Great Britain to prevent if possible their emigrating to the Southern and western parts of the Continent, they Seemingly now having lost all hopes of the Interference of Government.—
Some letters passed between Major Campbell Commanding Fort Miamis & General Wayne after the Action, and on the 22nd the American Army quited the position they had taken within a mile of the Fort, and retreated the very same way they came, but whether on account of the want of Provisions, or of an order from Philadelphia cannot be Certainly known.—The American Army have left Evident marks of their boasted Humanity behind them besides scalping and mutilating the Indians who were killed in Action, they have opened the Peaceful Graves in different parts of the Country, Exposed the Bones of the consumed & consuming bodies, and horrid to relate have with unparalleled barbarity driven stakes through them and left them objects calling for more than human Vengeance.
I am with great Regard & Esteem, Dear Sir Yours Very Sincerely A. McKee
Montreal 20th Sept 1794. A True Copy Joseph Chew, S.I.A.
McKee, Alexander. The Correspondence of Lieut. Governor John Graves Simcoe, with Allied Documents relating to his Administration of the Government of Upper Canada. Edited by Brigadier General E. A. Cruikshank . (Toronto, Ontario: Ontario Historical Society , ), 7-8.
US Army (movement): General Wayne with an Army of Near 4000 men (according to the report of deserters) made gradual approaches towards us until his arrival at Roche de Bout on the 17th Inst.—where he fixed his head Quarters, on the 18th
Native Confederacy (prisoner): the Spy May was taken, who informed the Indians it was intended to attack them the Next day,—unless the General should determine to build a Fort, in which case he would not advance until the day following
Native Confederacy (position): on the 19th the Indians to the number of 1300 marched Early to the most advantageous Ground
US Cavalry (movement): a strong detachment of Cavalry only made their appearance and retired as Soon as the Indians showed themselves
(battle): On the 20th the American Army advanced and were first attacked by the left of the center of the Indian line which extended near three quarters of a mile obliquely upward
(battle): the Americans Soon gave way & a rapid pursuit took place for about a mile where the Indian discovered the whole of the American Army Posted to whom they gave Battle retiring slowly before them
Native Confederacy (battle): the Wyandot and Ottawas who were on the Right were Warmly Engaged by the American left consisting of both Cavalry and infantry who out flanked and infiladed the Indians until they retreated
Native Confederacy (retreat): the whole line of the Indians then retired below the Fort imagining their loss to be much greater then it since appears to have been
Native Chiefs (casualty): several of their Principal Chiefs fall;—The greatest cost they have sustained is in their leaders
Native Confederacy (movement): they halted that night at Swan Creek about six miles below and were not pursued
Native Confederacy (casualty): lost in the whole but 19 men among whom are to be much lamented 8 Principal Chiefs of the Wyondots and two of the Ottawas, besides two more wounded
US Army (burial): they did not even bury but few of their dead
US Army (casualty): it appears the Americans lost between 3 and 400 Killed and Wounded and a great many horses
US Army (destruction): all the store houses, my own House with many things that could not be removed were burnt by a Party of General Wayne's Army
(plan): I am waiting until the Indians whose Cornfields and Villages are totally destroyed Shall determine where they and their Families will set themselves down it being a matter of the highest importance to the Interest of Great Britain to prevent if possible their emigrating to the Southern and western parts of the Continent, they Seemingly now having lost all hopes of the Interference of Government.
(diplomacy): Some letters passed between Major Campbell Commanding Fort Miamis & General Wayne after the Action
US Army (movement): on the 22nd the American Army quited the position they had taken within a mile of the Fort, and retreated the very same way they came
US Army (destruction): The American Army have left Evident marks of their boasted Humanity behind them besides scalping and mutilating the Indians who were killed in Action, they have opened the Peaceful Graves in different parts of the Country, Exposed the Bones of the consumed & consuming bodies, and horrid to relate have with unparalleled barbarity driven stakes through them and left them objects calling for more than human Vengeance.