This document describes how to get up and running quickly with the Standard Taglib, an implementation of the Java Server Pages Standard Tag Library (JSTL). This document may be useful to page authors and tag developers who are interested in JSTL's functionality. Using the "standard-examples" application is also a great way to familiarize yourself with JSTL's functionality and use.
JSTL is the Java Server Pages Standard Tag Library. It is an effort of the Java Community Process (JCP) and comes out of the JSR-052 expert group.
JSTL encapsulates, as simple tags, core functionality common to many JSP applications. For example, instead of suggesting that you iterate over lists using a scriptlet or different iteration tags from numerous vendors, JSTL defines a standard <forEach> tag that works the same everywhere.
This standardization lets you learn a single tag and use it on multiple JSP containers. Also, when tags are standard, containers can recognize them and optimize their implementations.
JSTL provides support for core iteration and control-flow features, text inclusion, internationalizaton-capable formatting tags, and XML-manipulation tags. The expression language that JSTL defined in the 1.0 version of the specification is now an integral part of the JSP 2.0 specification. Developers may also be interested in JSTL's current extensibility mechanisms; JSTL currently provides a framework for integrating custom tags with JSTL tags.
Please see the Release Notes document for information on any release changes.
Sun's official JSTL page at http://java.sun.com/products/jstl lists books and other resources that will help you learn JSTL.
JSTL 1.1 requires a JSP 2.0 container. We recommend you test the Standard Taglib with Tomcat 5.x. JSTL 1.0 only required a JSP 1.2 container and is also available for download from Jakarta Taglibs.
To install Tomcat, follow the instructions at http://jakarta.apache.org/tomcat.
To use the Standard Taglib from its Jakarta Taglibs distribution, simply copy the JAR files in the distribution's 'lib' directory to your application's WEB-INF/lib directory. The following JAR files are included in the Standard Taglib distribution and need to be copied to your application's WEB-INF/lib directory:
| Name | Description | Jar File Name |
|---|---|---|
|
JSTL API classes
|
jstl.jar
|
|
|
Standard Taglib JSTL implementation classes
|
standard.jar
|
The standard tag library also has the following dependencies:
However, since all of these dependencies are included in J2SE 1.4.2 and higher, it is therefore recommended to use J2SE 1.4.2 or higher to avoid having to worry about these other dependencies.
If the java platform under which you run your JSP container does not provide these dependencies, they must be made available either globally to all web-applications by your container, or individually within the WEB-INF/lib directory of your web-application.
For convenience, these jar files have been included in directory lib/old-dependencies of this distribution.
| Name | Description | Jar File Name | ||
|---|---|---|---|---|
|
JDBC implementation classes. Already present in J2SE 1.4. |
jdbc2_0-stdext.jar
|
|||
|
Standard Taglib requires a JAXP 1.2 compliant parser
|
|
|||
|
Apache XML Xalan XSLT |
xalan.jar
|
The constituent tag libraries of Standard Taglib are as follows:
| Funtional Area | URI | Prefix | Example |
|---|---|---|---|
| Core | http://java.sun.com/jsp/jstl/core |
c
|
<c:tagname ...> |
| XML processing | http://java.sun.com/jsp/jstl/xml |
x
|
<x:tagname ...> |
| I18N capable formatting | http://java.sun.com/jsp/jstl/fmt |
fmt
|
<fmt:tagname ...> |
| Database access (SQL) | http://java.sun.com/jsp/jstl/sql |
sql
|
<sql:tagname ...> |
| Functions | http://java.sun.com/jsp/jstl/functions |
fn
|
fn:functionName(...) |
Using the Standard Taglib libraries is simple; you simply need to import them into your JSP pages using the taglib directive. For instance, to import the 'core' JSTL library into your page, you would include the following line at the top of your JSP page, as follows:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
The EL makes it easy for page authors to access and manipulate application data. For an overview of the EL, see Chapter 3 of the JSTL Specification.
As we mentioned above, JSTL includes core tags to support iteration, conditionals, and expression-language support. It also supports EL functions for string manipulation. For more information on precisely how these tags work, you should read the JSTL specification. Here, we just offer a quick roadmap of each feature in order to help orient you.
Developers of custom tags should also read the JSTL specification. JSTL defines some abstract classes that assist with rapid development of tags and promote integration of custom tags with JSTL's tag set.
For instance, extending javax.servlet.jsp.jstl.core.ConditionalTagSupport lets you write a conditional tag by merely implementing a single method that returns a boolean value correspondent with your tag's desired conditional behavior; also, this base class promotes JSTL's recommended model of conditional-tag design.
Similarly, javax.servlet.jsp.jstl.core.IteratorTagSupport lets you easily implement iteration tags. The handlers for the <forEach> and <forTokens> tags extend this class and thus implement the javax.servlet.jsp.jstl.core.IteratorTag interface, which provides a well-defined mechanism for iteration tags to communicate with custom subtags you can write. See the "standard-examples" application for one example of how you might use such custom subtags.


When Completing a Task, Which of These Photos Looks Like You?
Do you prefer the Destination or the Journey?
How Many Hours do you Spend on Social Media, Instead Of Working?
When is The EARLIEST you Will Complete a Project?
When is The LATEST you Will Complete a Project?
Results: __


Na Maka K-Prep School is dedicated to providing a high quality/enrichment educational opportunity for children ages 2 - 5 years old.
We instill a lifetime love of learning and development of value for themselves, their family, and our community.
We provide a well-rounded education through language (reading and writing), math exploration, inquiry, social and cognitive skills,
creative movement, music, and fine arts.


public class Board
extends java.lang.Object
| Constructor and Description |
|---|
Board()
Default constructor for empty board
|
Board(int width,
int height)
Constructor that fills board with default-constructed normal tiles
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
areConnected(Position from,
Position to)
Checks if
from and to are "connected", i.e. a player can freely move
from from to to |
boolean |
areInSameRoom(Position lhs,
Position rhs)
Checks if two positions are in the same room
|
boolean |
canSee(Position observerPos,
Position observedPos)
Checks if
observedPos can be seen from observerPos , taking doors into account |
boolean |
canSeeInsideRoom(Position observerPos,
Position observedPos)
Like
canSee but works only if observerPos and observedPos are in the same room |
Board |
deepCopy()
Returns clone of the board
|
boolean |
equals(java.lang.Object other) |
static Board |
fromJson(com.google.gson.JsonElement toParse) |
static Board |
fromJson(java.lang.String toParse)
Constructs a board parsing a json string
|
java.util.List<Position> |
getAdjacentPositions(Position centralPos)
Calculated the positions adjacent to
centralPos , filtering those that are out of bounds |
java.util.Set<Position> |
getAllSeenBy(Position observerPos) |
java.lang.String |
getGuiID() |
int |
getHeight() |
RangeInfo |
getRangeInfo(Position rangeOrigin)
Returns info about the board around the specified position
(see RangeInfo for more info)
|
java.util.Set<Position> |
getReachablePositions(Position observerPos,
int minDist,
int maxDist) |
java.util.stream.Stream<Position> |
getRoom(Position randomPosInsideRoom)
Get a room from a position contained in that room
|
java.util.stream.Stream<Position> |
getRoom(TileColor color)
Get a room corresponding with a particular color
|
java.util.stream.Stream<TileColor> |
getRoomColors()
Get a list of the colors of all the rooms
|
java.util.List<java.util.List<Tile>> |
getRows()
Get tiles as a rectangular matrix
|
int |
getSize() |
java.util.Map<TileColor,SpawnTile> |
getSpawnMap() |
Tile |
getTileAt(Position pos)
Get the tile at given position
|
int |
getTileDistance(Position pos1,
Position pos2)
Get distance between given tiles
|
java.util.List<Tile> |
getTiles() |
int |
getWidth() |
int |
hashCode() |
boolean |
isOutOfBounds(Position pos)
Checks if
pos is out of this 's bounds |
java.util.stream.Stream<Position> |
posStream()
Returns a stream generating all positions of the board
|
void |
setTileAt(Position pos,
Tile toSet) |
java.lang.String |
toJson()
Serializes board into a json string and returns it
|
com.google.gson.JsonElement |
toJsonTree() |
java.lang.String |
toString() |
public Board()
public Board(int width, int height)
width
- width of constructed boardheight
- height og constructed boardpublic java.util.List<Tile> getTiles()
public int getWidth()
public int getHeight()
public int getSize()
public java.lang.String getGuiID()
public static Board fromJson(java.lang.String toParse)
toParse
- the json string to parsepublic static Board fromJson(com.google.gson.JsonElement toParse)
public java.lang.String toJson()
public com.google.gson.JsonElement toJsonTree()
public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
this
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
other
- board to check equality againstother
is equal to this
public java.util.List<java.util.List<Tile>> getRows()
public Board deepCopy()
public Tile getTileAt(Position pos)
pos
- Tile positionpublic int getTileDistance(Position pos1, Position pos2)
pos1
- Position of the first tilepos2
- Position of the second tilepublic boolean isOutOfBounds(Position pos)
pos
is out of this
's boundspos
- the checked positionpos
is out of boundspublic boolean areInSameRoom(Position lhs, Position rhs)
lhs
- first position of the positions to checkrhs
- second position of the positions to checklhs
and rhs
are in the same roompublic boolean canSeeInsideRoom(Position observerPos, Position observedPos)
canSee
but works only if observerPos
and observedPos
are in the same roomobserverPos
- position from where observedPos
is observedobservedPos
- position observed by observerPos
observedPos
can be seen from observerPos
public boolean canSee(Position observerPos, Position observedPos)
observedPos
can be seen from observerPos
, taking doors into accountobserverPos
- position from where observedPos
is observedobservedPos
- position observed by observerPos
observedPos
can be seen from observerPos
public java.util.Set<Position> getReachablePositions(Position observerPos, int minDist, int maxDist)
public java.util.List<Position> getAdjacentPositions(Position centralPos)
centralPos
, filtering those that are out of boundscentralPos
- interested central positioncentralPos
and are not out of boundspublic boolean areConnected(Position from, Position to)
from
and to
are "connected", i.e. a player can freely move
from from
to to
from
- where to startto
- where to gofrom
to to
public RangeInfo getRangeInfo(Position rangeOrigin)
rangeOrigin
- position of origin of rangerangeOrigin
public java.util.stream.Stream<Position> posStream()
public java.util.stream.Stream<TileColor> getRoomColors()
public java.util.stream.Stream<Position> getRoom(Position randomPosInsideRoom)


Zero to Vagrant
Brought you by chadoh, from PipelineDeals
Approachable & up-to-date!
Ansible is written by Python folk, so you've gotta do a wee bit of that:
easy_install pip
pip install paramiko PyYAML jinja2
git clone git@github.com:ansible/ansible.git ~/?/
echo "source ~/?/ansible/hacking/env-setup -q" \
>> ~/.bashrc
By default, Ansible looks for your inventory file at /etc/ansible/hosts
localhost ansible_connection=local
[work]
shared-dev ansible_ssh_host=fqdn ansible_ssh_user=user
prod ansible_ssh_host=fqdn ansible_ssh_user=user
[personal]
bitcoins ansible_ssh_host=fqdn ansible_ssh_user=user
Use individual ansible modules to do stuff to all (or some (or one)) your machines at once.
ansible all -m copy -a "src=~/.bashrc dest=/var/tmp/bashrc"
ansible work -m apt -a "name=cowsay"
ansible work -m shell -a "cowsay Hooray Ansible"
ansible localhost -m homebrew -a "name=cowsay"
Playbooks are a bundled set of one-offs, saved in a yaml file.
These get too lengthy for a slide; check out this simple starter playbook.
Vagrant allows you to set up a development VM with Ansible.
config.vm.network :private_network, ip: "<IP_ADDRESS>"
config.vm.provision :ansible do |ansible|
ansible.playbook = "../ansible-starter/playbook.yml"
ansible.inventory_file = "../ansible-starter/hosts"
end
Sometimes, when you run vagrant up
, you'll get unexpected
failures. Before getting distraught, try running vagrant reload
and perhaps (if that fails, too) vagrant up
(or
vagrant provision
) again.


Click
you must “Enable JavaScript” to operate this program
Height in
Meters
Weight in
Kg
your calculated BMI is


This week I woke up with a awesome idea: Almost an entire first chapter of a sci-fi book, so I decided that I should wrote this book. Also I always had this desire of writing an entire book that would include all my theories about the society.
A week passed and all my progress at the time is 2 pages (A4). What happened? It’s difficult to have more ideas. On the era that we are connected 24/7 and work, studies and all our “offline” activities consume our time, minds and ideas, it’s difficult to think since our minds and thoughts are occupied with other “more important” activities. That’s why most of my great ideas and thoughts come to my mind while I’m not connected or doing any other activity (not that I haven’t mentioned “worried” about the activities), they usually come when I’m going to sleep, taking a bath or on the car. A great example is this article itself, I thought and wrote it on the car.
So here is a tip to end this story: If you want to have more/better ideas all you have to do is go “offline” and try to distract yourself from any other activity that might keep you away of thinking. Listening to a so g you love is also a good idea to have ideas.
Do you have the same problem of having ideas because of all the activities and distractions of the connected era? I would love to hear your opinion.


Our calculations for home energy were based on finding the price per given unit. The price indicates how much of that energy was consumed in a home, and we then calculate the carbon pollution for that amount of usage. We have worked to find prices accurate for the greater Portland area. Calculations for the amount of energy per dollar were based on pricing from PG&E. Natural gas per dollar was based on pricing from NWNatural. Fuel oil was harder to find consistent numbers for. Prices varied greatly depending on supplier or on how much fuel was purchased. Our pricing was based on $2.95 per gallon, which is a middle-of-the-road figure taken from Best Heating Oil's pricing for a purchase of 100 gallons or more.
More accurate results could be drawn from users who know the exact amount of elecrticity or heating method that they use. We decided to calculate based on pricing in order to emphasize accessibility as we found that more people were aware of their monthly bill than of the units of fuel that they used over the same period.
The pollution from electricity use can vary greatly depending upon the state. This is because some states have more renewable production in their supplies than others. The electricity grid for the Northwest (922.3 lb/MWh) produces slightly less CO2 equivalent than the US average (1,150.3 lb/MWh). Oregon has the 4th lowest per capita CO2 pollution of all US states, but it's relatively low energy production may be a factor in this figure..
Our vehicle emission coefficients were based on average mpg values found at fueleconomy.gov. Truck fuel efficiencies in particular have steadily increased over the years, so we added an additional option to select and utilize older trucks’ mpg, setting 2012 models to 15mpg.
For other classes of vehicles we used data from 2016 models. This data was also based on fueleconomy.gov, but for time constraints, we relied on a cars.com review of this data. We found that avg. hybrid mpg is 50mpg, avg sedan/wagons have 23.7 mpg, avg small pickups have 21 mpg, and standard pickups have 18 mpg. Using this data with known CO2 standards found at epa.gov allowed us to convert mpg to pounds of CO2 emitted per mile. These standard multipliers came out to be:
For MAX lightrail and bus lbs CO2 output, we reviewed and used data from a transit.dot.gov study in 2010. The study found and explicitly stated a nationwide average for lightrail being 0.36 lbs CO2/mi (0.14 if full occupancy), and a Portland Metro area average for busses being 0.56 lbs CO2/mi (0.18 if full occupancy).
We found a site that shows CO2 output per kilo consumed for a variety of foods. We adjusted for time and units to achieve an accurate calculation.


The brand new dog trivia game with limited replay value and absolutely no prizes!
Press any key to get started!


Wilkie Collins
William Wilkie Collins was an English novelist, playwright, and writer of short stories. He was hugely popular in his time, and wrote 27 novels, more than 50 short stories, at least 15 plays, and over 100 pieces of non-fiction work.
His works were classified at the time as “sensation novels”, a genre seen nowadays as the precursor to detective fiction and suspense fiction. He also wrote penetratingly on the plight of women and on the social and domestic issues of his time. Like many writers of his time, he published most of his novels as serials in magazines such as Dickens’s All the Year Round, and was known as a master of the form, creating just the right degree of suspense to keep his audience reading from week to week. (Sales of All The Year Round actually increased when The Woman in White succeeded A Tale of Two Cities.)
Collins suffered from a form of arthritis known as “rheumatic gout”, and became severely addicted to the opium that he took (in the form of laudanum) to relieve the pain. As a result he experienced paranoid delusions, the most notable being his conviction that he was constantly accompanied by a doppelganger he dubbed “Ghost Wilkie”. His novel The Moonstone prominently features the effects of opium, and opium addiction. While he was writing it, Collins’ consumption of Laudanum was such that he later claimed to have no memory of writing large parts of the novel.
Collins never married, but lived, on and off from 1858, with a widow, Mrs. Caroline Graves and her daughter. He also fathered three children by another woman, Martha Rudd, whom he had met after Mrs. Graves left him in 1868. Mrs. Graves returned to Collins after two years and he continued both relationships until his death in 1889.
He is buried in Kensal Green Cemetery, West London. His grave notes him as the author of The Woman in White.
- Nationality: English
- Birth Date: 8 Jan 1824
- Death Date: 23 Sept 1889
Available Works
- The Woman in White (1860)
- The Woman in White is an epistolary novel written by Wilkie Collins in 1859, serialized in 1859-1860, and first published in book form in 1860. It is considered to be to the first mystery novel, and is widely regarded as one of the first (and finest) in the genre of “sensation novels”.


Electricity monitoring application note
This page accompanies the main openenergymonitor guide. This page details application specific notes for electricity monitoring.
Both the EmonPi or the EmonTx+Emonbase configuration can provide a good home energy monitoring solution depending on your requirements, see main setup guide for differences.
There are two main configurations for electricity monitoring:
Current only
Measuring current (IRMS) only, is comparable to many, if not most, of the home electricity monitors available. The only sensor needed is a CT that clips around the mains wire coming into the house. The sensor is called a current transformer. For an explanation for how they work see CT sensors - Introduction.
Power is calculated by multiplying the current measurement (RMS current) with a fixed voltage value (i.e 230V). This particular type of power measurement is called Apparent Power, and is different from the power measurement utility companies bill you for, which is called Real Power. AC Power is a complex subject. To learn more, read An introduction to AC Power.
Voltage and current (Highly Recommended)
By measuring mains voltage (VRMS) as well as current, it's possible to calculate Real Power in addition to other quantities. (Apparent Power, RMS Voltage, RMS Current). Measuring voltage as well as current is better both in terms of the measurement representing what the power company bills you for, accuracy at low power levels.
To measure mains voltage safely, we use a standard AC to AC power adapter that steps down and isolates the mains Voltage. See Building Blocks section: Measuring AC Voltage with an AC to AC power adapter
The decision whether to monitor mains voltage or not, often comes down to: Is there is a AC socket near the electricity meter cabinet?
At this point, it may be useful to review the CT and AC power adapter installation and calibration theory page.
The emonTx V3 can be powered from the same 9V AC-AC Adapter used for AC Voltage measurement.
Due to the increased power requirement, the emonPi requires an additional 5V DC USB power supply
Get started: Set up a system