E
- Object type that is to be inserted into the Bloom filter, e.g. String or Integer.public class BloomFilterMagnus<E>
extends java.lang.Object
implements java.io.Serializable
| Constructor and Description |
|---|
BloomFilterMagnus(double falsePositiveProbability,
int expectedNumberOfElements)
Constructs an empty Bloom filter with a given false positive probability.
|
BloomFilterMagnus(double c,
int n,
int k)
Constructs an empty Bloom filter.
|
BloomFilterMagnus(int bitSetSize,
int expectedNumberOElements)
Constructs an empty Bloom filter.
|
BloomFilterMagnus(int bitSetSize,
int expectedNumberOfFilterElements,
int actualNumberOfFilterElements,
java.util.BitSet filterData)
Construct a new Bloom filter based on existing Bloom filter data.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(byte[] bytes)
Adds an array of bytes to the Bloom filter.
|
void |
add(E element)
Adds an object to the Bloom filter.
|
void |
addAll(java.util.Collection<? extends E> c)
Adds all elements from a Collection to the Bloom filter.
|
void |
clear()
Sets all bits to false in the Bloom filter.
|
boolean |
contains(byte[] bytes)
Returns true if the array of bytes could have been inserted into the Bloom filter.
|
boolean |
contains(E element)
Returns true if the element could have been inserted into the Bloom filter.
|
boolean |
containsAll(java.util.Collection<? extends E> c)
Returns true if all the elements of a Collection could have been inserted
into the Bloom filter.
|
int |
count()
Returns the number of elements added to the Bloom filter after it
was constructed or after clear() was called.
|
static int |
createHash(byte[] data)
Generates a digest based on the contents of an array of bytes.
|
static int |
createHash(java.lang.String val)
Generates a digest based on the contents of a String.
|
static int |
createHash(java.lang.String val,
java.nio.charset.Charset charset)
Generates a digest based on the contents of a String.
|
static int[] |
createHashes(byte[] data,
int hashes)
Generates digests based on the contents of an array of bytes and splits the result into 4-byte int's and store them in an array.
|
boolean |
equals(java.lang.Object obj)
Compares the contents of two instances to see if they are equal.
|
double |
expectedFalsePositiveProbability()
Calculates the expected probability of false positives based on
the number of expected filter elements and the size of the Bloom filter.
|
boolean |
getBit(int bit)
Read a single bit from the Bloom filter.
|
java.util.BitSet |
getBitSet()
Return the bit set used to store the Bloom filter.
|
double |
getBitsPerElement()
Get actual number of bits per element based on the number of elements that have currently been inserted and the length
of the Bloom filter.
|
double |
getExpectedBitsPerElement()
Get expected number of bits per element when the Bloom filter is full.
|
int |
getExpectedNumberOfElements()
Returns the expected number of elements to be inserted into the filter.
|
double |
getFalsePositiveProbability()
Get the current probability of a false positive.
|
double |
getFalsePositiveProbability(double numberOfElements)
Calculate the probability of a false positive given the specified
number of inserted elements.
|
int |
getK()
Returns the value chosen for K.
|
int |
hashCode()
Calculates a hash code for this class.
|
void |
setBit(int bit,
boolean value)
Set a single bit in the Bloom filter.
|
int |
size()
Returns the number of bits in the Bloom filter.
|
public BloomFilterMagnus(double c, int n, int k)
c
- is the number of bits used per element.n
- is the expected number of elements the filter will contain.k
- is the number of hash functions used.public BloomFilterMagnus(int bitSetSize, int expectedNumberOElements)
bitSetSize
- defines how many bits should be used in total for the filter.expectedNumberOElements
- defines the maximum number of elements the filter is expected to contain.public BloomFilterMagnus(double falsePositiveProbability, int expectedNumberOfElements)
falsePositiveProbability
- is the desired false positive probability.expectedNumberOfElements
- is the expected number of elements in the Bloom filter.public BloomFilterMagnus(int bitSetSize, int expectedNumberOfFilterElements, int actualNumberOfFilterElements, java.util.BitSet filterData)
bitSetSize
- defines how many bits should be used for the filter.expectedNumberOfFilterElements
- defines the maximum number of elements the filter is expected to contain.actualNumberOfFilterElements
- specifies how many elements have been inserted into the filterData
BitSet.filterData
- a BitSet representing an existing Bloom filter.public static int createHash(java.lang.String val, java.nio.charset.Charset charset)
val
- specifies the input data.charset
- specifies the encoding of the input data.public static int createHash(java.lang.String val)
val
- specifies the input data. The encoding is expected to be UTF-8.public static int createHash(byte[] data)
data
- specifies input data.public static int[] createHashes(byte[] data, int hashes)
data
- specifies input data.hashes
- number of hashes/int's to produce.public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- is the object to compare to.public int hashCode()
hashCode
in class java.lang.Object
public double expectedFalsePositiveProbability()
public double getFalsePositiveProbability(double numberOfElements)
numberOfElements
- number of inserted elements.public double getFalsePositiveProbability()
public int getK()
public void clear()
public void add(E element)
element
- is an element to register in the Bloom filter.public void add(byte[] bytes)
bytes
- array of bytes to add to the Bloom filter.public void addAll(java.util.Collection<? extends E> c)
c
- Collection of elements.public boolean contains(E element)
element
- element to check.public boolean contains(byte[] bytes)
bytes
- array of bytes to check.public boolean containsAll(java.util.Collection<? extends E> c)
c
- elements to check.public boolean getBit(int bit)
bit
- the bit to read.public void setBit(int bit, boolean value)
bit
- is the bit to set.value
- If true, the bit is set. If false, the bit is cleared.public java.util.BitSet getBitSet()
public int size()
public int count()
public int getExpectedNumberOfElements()
public double getExpectedBitsPerElement()
public double getBitsPerElement()


{% extends "basic/base.html" %} {% block header %} {% endblock %} {% block content %}
The work you are required to review is shown below. {# You can start the review, come back later to continue editing and adding feedback. Your work is continually saved as you type and evaluate your peers.#} If you do not see any document here then you should please first download it. {% endif %}


Hi! My name is Paul Listi and I'm currently finishing my masters degree at the Royal Institute of Technology in Stockhom, Sweden. I have a bachelors degree in interactive media technology.
I am inventive, resposible and work well in teams. In my spare time I like to be with friends and to travel.
An AR application for andriod phones created in Unity. The purpose was to explore how multimodality could be used to enhance the online shopping experience.
Here is a link to the project: Multimodal application.
Final project in the DH2323 course. It's a puzzle made using the OpenGL library GLUT. Colorcoded squares are placed on the board and the user can rotate them using the keyboard until the puzzle is solved.
Here is a link to the project: GLUT puzzle.
A CPU rasterizer written in C++ done in the DH2323 Computer Graphics course.
Here is a link to the project: Rasterizer Lab.
For this project I worked with SEI, Stockholm Environment Institute, to visualise the UN's sustainable development goals. Here is a link to the project: SDG Visualization.
Close Project Project in, DM2518 , Mobile Development with Web Technologies. An event planner which connects you with your friends that lets you invite friend to hang out or look at a map to see nearby friends and join them. Built using Google maps API, AngularJS, Onsen UI and Firebase.
Here is a link to the project: Groopy.
Visual trail of data from World Values Survey. Made for course DH2321, Information Visualization. Visualisation of the correlation between different datasets regarding status, family situation and happiness. Demo here: Visual trail.
Close Project


About
I was born in Moscow, but my parents took me to Germany (Jülich) when I was 7. Today I speak both Russian and German, English, and some French (badly). I did my Abitur in Karlsruhe, where I also did an undergraduate in physics. I took an excursion to the University of Oslo, where, after learning about physics in space, I decided to let go of Earth entirely and went on to study astrophysics at the University of Potsdam. I did my master's project at the Leibniz Institute for Astrophysics in Potsdam on stellar flares in open clusters. During my PhD studies, I was wonderfully supervised by
Katja Poppenhäger. I research stellar flares, and how they affect exoplanets. Recently, I spent some time at the American Museum of Natural History in New York as a Fulbright scholar. Currently, I am working on X-ray observations of low mass stars, flaring star-planet interactions, and small scale stellar magnetic fields.
My research interests include: stellar magnetic activity, (magnetic) star-planet interactions, and extreme natural phenomena. Otherwise I care about better science and institutions, practical ethics, equity and inclusion, and how humanity may survive the next couple of millenia and beyond.
 My cat Tom is probably around.


Client Website Preview
Add User
Important:
You can only use one word for each field.
Use Complete Address, ie http://www.danhausen.com/client/IMRI/
All directories are in lowercase. Please make sure you type it in lowercase...
User Name
Password
Web Address


| Installment Number | Installment Date | Starting Balance | Installment Amount | Remaining Balance |
|---|---|---|---|---|
| {{$index + 1}} | {{payment.date}} | {{payment.startingBal | currency: "R$"}} | {{payment.installmentAmount | currency:"R$ "}} | {{payment.remainingBal | currency:"R$ "}} |


Read a molecule structure.
| file format |
list |
Select the format of the sequence to be read. The available formats are:
- Plain Coordinates
- The PlainCoord option is to process a simple file of X-Y-Z
coordinates with the atom type designated by the entry in the periodic
table. This format is nearly identical to the DmolXYZ file format.
- Plain Coordinates plus displacement
- Same as before plus a displacement vector for each atom: it is available as the offset_lst field in the molecule data
structure and is used by a special visualization technique (not available in STM3) to show atom vibration around its equilibrium position.
- Gaussian Cube
- Output format of Gaussian. Only the atomic structure is extracted, not the electron density data.
This format contains unit cell information.
- PDB
- Protein Data Bank format. This format contains unit cell and symmetry information.
- GAMESS xyz Cube
- GAMESS Plotting Option .F33 file output.
- GAMESS xyz (from Perl extractor)
- Read in GAMESS xyz format from the PERL extraction.
- DCAR
- Read a MSI DMOL DCAR file.
- DMOL XYZ
- Read a MSI DMOL COORD file.
- CONVEX Mopac ESP
- Mopac Electrostatic Potential.
- Mopac XYZ
- Mopac coordinates.
- TRIPOS MOL2
- Read a TRIPOS MOL2 file.
- MOL
- Read a MOL file.
- CHEM-3D
- CHEM-3D file.
- MM3
- Molecular Mechanics Code MM3.
- SHEL-X
- SHELX is a set of programs for crystal structure determination from single-crystal diffraction data.
It is also the format used by the Inorganic Crystal Structure Database.
This format contains unit cell and symmetry information.
|
| Units |
list |
Measurement units used in the files. Currently the only format that uses
Bohrs is the Gaussian Cube. |
| File name |
file browser |
The file name to be read. |
| Hydrogens |
toggle |
Enable Hydrogen atoms reading. |
| H bonds |
toggle |
Enable computation of H bonds. |
| Force Bonds Recomputation |
toggle |
Force bonds recomputation even if bonds definitions are already
present in the file |
| Freeze bonds |
toggle |
Don't recompute bonds. |
| Bonding Range Adjustment |
slider |
Percentage of variation of the maximum distance between atoms to form a
bond. |
| H Bonding Range Adjustment |
slider |
Percentage of variation of the maximum distance between H and an
atom to form a bond. |
| H Bond Max Distance |
slider |
Maximum lenght of an H bond. |
| H Bond Max Angle |
slider |
Maximum angle HXY (in X__H..Y where .. is the H bond) to form an H bond. |


Introduction to Actors in Go
August 25, 2015
Among the many challenges that multi-threaded programming can present is that of the dreaded race condition. Race conditions occur when a thread modifies state and another thread accesses that state without any synchronization events. Actors avoid race conditions by assigning a single thread to act on behalf of other threads to modify state.
Concurrency Problems
This go program is supposed to concurrently increment a counter. It spins up a thousand threads, each calling the increment function. The program correctly waits for each thread to finish, but without any synchronization event to control access to the counter variable, we get unpredictable behavior:
package main
import (
"fmt"
"runtime"
"sync"
)
var counter = 0
var wg = sync.WaitGroup{}
func increment() {
counter++
wg.Done()
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
for i := 0; i < 1000; i++ {
wg.Add(1)
go increment()
}
wg.Wait()
fmt.Println(counter)
}
Here is the output from multiple runs of the program, and the last run has the race dector flag enabled:
[/tmp]$ go run actor.go
939
[/tmp]$ go run actor.go
945
[/tmp]$ go run --race actor.go
==================
WARNING: DATA RACE
Read by goroutine 6:
main.increment()
/tmp/actor.go:13 +0x38
Previous write by goroutine 5:
main.increment()
/tmp/actor.go:13 +0x54
Goroutine 6 (running) created at:
main.main()
/tmp/actor.go:22 +0x7f
Goroutine 5 (finished) created at:
main.main()
/tmp/actor.go:22 +0x7f
==================
1000
Found 1 data race(s)
exit status 66
What is an actor?
An actor is a big name for a simple concept: Never allowing multiple threads to access state… Instead delegate a single thread to process requests for state access and modification. Let’s modify our code to use an actor thread to execute our increments:
...
var actions = make(chan func())
func actor() {
for action := range actions {
action()
}
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
defer close(actions)
go actor()
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() { actions <- increment }()
}
...
now we get the desired output
[/tmp]$ go run --race actor.go
1000
Matrix multiplication using actors
Using actors to multiply matrices is nothing new. Here’s how:
Just to review, to get the i, jth entry of the product, take the ith row of the first matrix and multiply entry by entry with the jth column of the second matrix.
The ith row of the result can be deduced by considering the ith row of the first matrix being multiplied with all of the second matrix.
By using an actor for each of the rows, the ith row can be computed and replaced concurrently and in a threadsafe way. Here’s a gist to demonstrate:


You can tell that I LOVE MONKEYS!
Did you know this?
Monkeys can understand written numbers and can even count. They can also understand basic parts of arithmetic and even, in rare cases, multiplication.
You can tell that I LOVE MONKEYS!
Monkeys can understand written numbers and can even count. They can also understand basic parts of arithmetic and even, in rare cases, multiplication.


This page allows you to list and upload files that only you can access.
We couldn't find any files related to your account. Please take a photo and we will upload it to your personal storage folder.


Warsaw is beautiful
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exercitation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
Things to do in Warsaw
Why not to use your stay in Warsaw to see the city?
Sightseeing
Warsaw is a magnificent city, where Eastern and Western influences meet. Chopin was brought up here.Warsaw is a magnificent city, where Eastern and Western influences meet. Chopin was brought up here
Old Town
The Old City has been meticulously restored and centres on a medieval market square with open-air cafes, surrounded by Renaissance and Baroque style houses. The Barbican, a relic of the medieval ramparts
After being leveled when the Nazis left, this whole neighborhood of cobblestone Gothic streets and alleyways, baroque palaces, numerous churches and tiered burghers' houses were masterfully reconstructed to reflect the atmosphere of bygone days.
Lazienki Park
Magnificent palatial and garden complex was built by King Stanislaw August Poniatowski during the second half of the eighteenth century and features the neoclassical Palace on the Water (Lazienki Palace) surrounded by magnificent gardens, canals and ponds.
Wilanow Palace
Magnificent palatial and garden complex was built by King Stanislaw August Poniatowski during the second half of the eighteenth century and features the neoclassical Palace on the Water (Lazienki Palace) surrounded by magnificent gardens, canals and ponds.
You may also like:
- Royal Castle
- Krakowskie Przedmiescie
- Copernicus Science Center
- Tomb of the Unknown Soldier
- Chopin Monument
- Barbikan
Culture
You can lose your legs visiting Warsaw's museums and enjoying show in theaters.
National Museum
The National Museum in Warsaw was originally founded in 1862 as the Museum of Fine Arts and is currently one of the oldest art museums in the country. After Poland regained its independence in 1918, the National Museum was ascribed a prominent role in the plans for the new state and its capital city of Warsaw, and the Modernist building in which it currently resides was erected in 1927–1938. Today, the National Museum in Warsaw boasts a collection numbering around 830,000 works of art from Poland and abroad, from ancient times to the present including paintings, sculptures, drawings, prints, photographs, coins, as well as utilitarian objects and design.
visit websiteWarsaw Uprising Museum
The Warsaw Rising Museum was opened on the 60th anniversary of the outbreak of fighting in Warsaw. The Museum is Warsaw residents’ tribute to those who fought and died for independent Poland and its free capital. It is located in a former tram power station, a 20th century landmark of industrial architecture located by Przyokopowa and Grzybowska streets.
visit websiteZacheta Art Gallery
Zacheta – National Gallery of Art is the biggest and the most-attended contemporary art gallery in Poland. The gallery exhibits works of recognized foreign artists, as well as actively promoting young Polish creators. Being Warsaw’s oldest showroom, Zacheta’s history reaches back to 1860, when it was founded by the Society for the Encouragement of Fine Arts.
visit websiteWarsaw Filharmonic
The Warsaw Philharmonic - The National Orchestra and Choir of Poland, which celebrated its centenary in 2001, is one of the oldest musical institutions in Europe. It was created thanks to the initiative of a group of Polish aristocrats and financiers.
visit websiteYou may also like:
- Copernicus Science Center
- Historical Museum of Warsaw
- Warsaw Chamber Opera
- The Grand Theatre - National Opera
- Chopin Museum
Shopping
Although in the not-too-distant past Poland was a communist block country where its residents could barely buy basic daily essentials, today Poland, and Warsaw in particular, has ample shopping opportunities for residents and visitors alike.
Zlote Tarasy or Golden Terraces has over 200 shops and restaurants under a wavy glass ceiling. It's located in the center of Warsaw next to the Railway station
Arkadia has over 200 shops and restaurants under a wavy glass ceiling. It's located in the center of Warsaw next to the Railway station
Galeria Mokotow has over 200 shops and restaurants under a wavy glass ceiling. It's located in the center of Warsaw next to the Railway station
Galeria Centrum has over 200 shops and restaurants under a wavy glass ceiling. It's located in the center of Warsaw next to the Railway station
Night life
Clubbing here is slightly more "high end" than other Eastern cities so dress smart. Your fine threads will make you lots of friends, show a little charm and you'll receive it back. Poles are one of the most hospitable people you will ever meet and Polish girls - one of the most (if not the most) charming in Europe.
Read more


Navbar stuff
OSM Mosques: Details of DITIB place to be QA'ed
Edit in JOSM
Reload from OSM
View details on OSM
OSM Map
SOURCE
KEY
VAL
-
Lat
-
Lon
-
Score
DITIB
Key
OSM
Key
DITIB
Name
OSM
Name
DITIB
Country
OSM
Country
DITIB
City
OSM
City
DITIB
Street
OSM
Street
DITIB
Housenumber
OSM
Housenumber


Trevor was accepted to the Academy during high school, and he left for Basic Training a month or so after graduation. While he was there, he was captain of an award-winning collegiate debate team, and he traveled and competed with the team in a bunch of different countries. All that, and he still managed to earn a spot in the top third of his class. All I know is if I missed that much class traveling, I probably would have been on academic probation the whole time. Great job Trev!
Now, after he cashes in on a well-earned 60 days of leave, Trevor will be traveling to Boston where he will be stationed as an Acquisitions Officer at the Air Force base there. His job will involve procuring and fulfilling contracts for equipment and/or programs in the Air Force. He has some really great dreams for the future, and he, more than anyone else I know, has the drive to be able to do whatever it is that he puts his mind to.


R.E.M.'s Peter Buck and Joseph Arthur announce collaborative debut album, share "I Am The Moment": Stream
By Lake Schatz |
Earlier this year, Peter Buck of R.E.M. and singer-songwriter Joseph Arthur announced the formation of a new duo called simply Arthur Buck. Now, they've returned with news of their debut album: the self-titled release is officially out June 15th through New West Records.
Though they'd been friends for over a decade, with Arthur opening for R.E.M. back in 2004, the pair hit the studio together for the first time at the end of 2017 following a chance meeting in Mexico. It was there that they improvised eight tracks that would eventually make up the bulk of Arthur Buck.
"It was all new songs, and it was spontaneous," Buck said of their collaborative yet off-the-cuff creative process in a statement. "And the great thing about working that way was that it didn't have to be anything in particular. It was liberated from any expectation. It was free."
The 11-track effort was later completed at Type Foundry Studio in Portland, Oregon. Arthur oversaw all the production, working out of his own Brooklyn studio, while mixing was handled by Tchad Blake (U2, Pearl Jam).
Tour dates in support are forthcoming. Stay tuned.


MUPPET TREASURE ISLAND A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 7.0 Alternative Scale: *** out of ****
United States, 1996 U.S. Release Date: 2/16/96 (wide) Running Length: 1:39 MPAA Classification: G Theatrical Aspect Ratio: 1.85:1
Cast: Tim Curry, Kevin Bishop, Kermit the Frog, The Great Gonzo, Rizzo Rat, Fozzie Bear, Miss Piggy, Billy Connolly, Jennifer Saunders Muppet Performers: Steve Whitmire, Dave Goelz, Jerry Nelson, Kevin Clash, Frank Oz Director: Brian Henson Producers: Brian Henson and Martin G. Baker Screenplay: Kirk R. Thatcher, Jerry Juhl, and James V. Hart based on the novel by Robert Louis Stevenson Cinematography: John Fenner Music: Hans Zimmer Songs by Barry Mann and Cynthia Weil U.S. Distributor: Walt Disney Pictures
No matter how you feel about cute, fuzzy puppets, it's difficult to actively dislike the Muppets. From their 1976 television show until today, Jim Henson's creations have always appealed on more than one level, offering adorable playmates and positive messages to children and surprisingly sophisticated humor to adults. MUPPET TREASURE ISLAND, the fifth big screen feature to star Kermit the Frog and friends, and the second directed by Brian Henson, delivers exactly what fans -- young and old -- expect.
As was true of their 1992 outing, THE MUPPET CHRISTMAS CAROL, the Muppets are visiting familiar motion picture territory -- there have been over a half-dozen movie adaptations of Robert Louis Stevenson's TREASURE ISLAND. Of course, none before now have featured singing crocodiles, warbling lobsters, talking frogs, and high-kicking pigs. As usual, a few human actors get in on the fun, including Tim Curry and Kevin Bishop.
MUPPET TREASURE ISLAND doesn't exactly re-invent the classic story, but it takes a few liberties with it. Young Jim Hawkins (Bishop) is on board the ship of Captain Smollett (Kermit the Frog), bound for the Caribbean and buried pirates' treasure. The crew, a mutinous group of thugs and cutthroats, are led by the one-legged bandit Long John Silver (Tim Curry). Once land is sighted, Silver makes his power-play, nabbing Jim and his treasure map and seizing control of the ship. The only obstacle still remaining between the rogue and unlimited wealth is an army of wild boars and their leader, Benjamina Gunn (Miss Piggy).
There have been many great on-screen/off-screen couples -- Bogart and Becall, Tracy and Hepburn, Branagh and Thompson -- but none are quite as intriguing as Kermit and Piggy. A match made in Jim Henson's workshop, these two have gone through some tough times in the last twenty years, but they have endured. And, although they don't have many scenes together in MUPPET TREASURE ISLAND (Piggy doesn't show up until the film is two-thirds over), it's clear that the chemistry is still there.
One of the chief pleasures of MUPPET TREASURE ISLAND is watching Tim Curry essay Long John Silver. Curry, who no one would ever call subtle, creates one of the most memorable human characters in any Muppet film. Kevin Bishop makes an appealing Jim Hawkins, the young protagonist in search of a family. Jennifer Saunders and Billy Connolly have suitably overt-the-top cameos.
As has always been true in Muppet movies, set design is superb. MUPPET TREASURE ISLAND is an impressive-looking motion picture, rich in color and contrast, and featuring some impeccable matte paintings. There are the usual musical numbers -- seven jaunty tunes that will be forgotten the moment you leave the theater. They may not be memorable, but at least they're not irritating.
MUPPET TREASURE ISLAND comes out under the Disney umbrella, and, like every movie that is favored with Mickey's Midas touch, this one has the potential to be a huge favorite. The Muppets certainly have "family appeal", and the film is designed to keep parents interested and children enthralled. It's not as eye-popping as TOY STORY or as magical as an animated feature, but MUPPET TREASURE ISLAND represents ninety- plus minutes of solid entertainment, and you won't have to dig to find it.
- James Berardinelli e-mail<EMAIL_ADDRESS><EMAIL_ADDRESS>web: http://www2.cybernex.net/~berardin
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


GuiParticleGraphCtrl
Hierarchy:
This object is derived from:
Methods:
addPlotPoint(int plotID, float x, float y, bool setAdded=true;)
Description: Add a data point to the given plot.
changePlotPoint(int plotID, int i, float x, float y)
Description: Change a data point to the given plot and plot position.
clearAllGraphs()
Description: Clear all of the graphs.
clearGraph(int plotID)
Description: Clear the graph of the given plot.
getGraphColor(int plotID)
Description: Get the color of the graph passed.
getGraphMax(int plotID)
Description: Get the color of the graph passed.
getGraphMin(int plotID)
Description: Get the color of the graph passed.
getGraphName(int plotID)
Description: Get the name of the graph passed.
getPlotIndex(int plotID, float x, float y)
Description: Gets the index of the point passed on the plotID passed (graph ID).
getPlotPoint(int plotID, int samples)
Description: Get a data point from the plot specified, samples from the start of the graph.
getSelectedPlot()
Description: Gets the selected Plot (a.k.a. graph).
getSelectedPoint()
Description: Gets the selected Point on the Plot (a.k.a. graph).
insertPlotPoint(int plotID, int i, float x, float y)
Description: Change a data point to the given plot and plot position.
isExistingPoint(int plotID, int samples)
Description: Returns true or false whether or not the point in the plot passed is an existing point.
resetSelectedPoint()
Description: This will reset the selected point to nothing.
setAutoGraphMax(bool autoMax)
Description: Set whether the max will automatically be set when adding points.
setAutoRemove(bool autoRemove)
Description: Set whether or not a point should be deleted when you drag another one over it.
setGraphHidden(int plotID, bool isHidden)
Description: Set whether the graph number passed is hidden or not.
setGraphMax(int plotID, float maxX, float maxY)
Description: Set the max values of the graph of plotID.
setGraphMaxX(int plotID, float maxX)
Description: Set the max X value of the graph of plotID.
setGraphMaxY(int plotID, float maxY)
Description: Set the max Y value of the graph of plotID.
setGraphMin(int plotID, float minX, float minY)
Description: Set the min values of the graph of plotID.
setGraphMinX(int plotID, float minX)
Description: Set the min X value of the graph of plotID.
setGraphMinY(int plotID, float minY)
Description: Set the min Y value of the graph of plotID.
setGraphName(int plotID, string graphName)
Description: set the graph's name of plot plotID.
setPointXMovementClamped(bool clamped)
Description: Set whether the x position of the selected graph point should be clamped
setRenderAll(bool renderAll)
Description: Set whether or not a position should be rendered on every point or just the last selected.
setRenderGraphTooltip(bool renderGraphTooltip)
Description: Set whether or not to render the graph tooltip.
setSelectedPlot(int plotID)
Description: Set the selected plot (a.k.a. graph).
setSelectedPoint(int point)
Description: Set the selected point on the graph.
Inherited Fields:
Accelerator
Type: string
AltCommand
Type: string
canSave
Type: bool
Command
Type: string
Extent
Type: Point2I
HorizSizing
Type: enumval
MinExtent
Type: Point2I
Modal
Type: deprecated
Position
Type: Point2I
Profile
Type: GuiProfile
setFirstResponder
Type: deprecated
Variable
Type: string
VertSizing
Type: enumval
Visible
Type: bool
canSaveDynamicFields
Type: bool
internalName
Type: string
parentGroup
Description: Group hierarchy parent of the object.
Type: SimObjectPtr
class
Description: Script SuperClass of object.
Type: string
superclass
Description: Script Class of object.
Type: string
hovertime
Type: int
ToolTip
Type: string
tooltipprofile
Type: GuiProfile
isContainer
Type: bool
langTableMod
Type: string


| I l@ve RuBoard |
Python is written in C and can be embedded in both C and C++ programs and extended with routines written in C and C++. The standard Python documentation includes a good tutorial on extending and embedding Python, which we won't repeat, and we certainly won't try to teach you C.
There are a number of reasons to use Visual C++ during your travels with Python:
To build Python from sources. Many companies that ship Python binaries like to know they can build everything from C sources and have control over those sources (for example, checked into their source control system). The same applies to all Python extensions your application may use.
To write a Python extensions as a DLL or if you have the sources to an interesting Python extension, but no binary for Windows for your Python version.
To make an existing C or C++ library available to Python.
To embed Python in a C or C++ application for one of the many good reasons for doing so!
|
Many of you are familiar with compiling C programs (and Python) on Unix, while others aren't C programmers at all. Although we attempt to make this chapter understandable for C novices, we certainly don't attempt to teach either the C++ language or the Microsoft Developers Studio environment.
It should be noted that once you start delving into building from sources, the world takes a murkier turn. When you download different source packages and attempt to build them into a single system, things rarely work as expected first time around.
One of the biggest problems is interproject dependencies. If you download the core Python sources, they will probably build well. However, if you then download some other Python extensions (such as the Win32 or COM sources), you may strike some problems when Visual C++ tries to find the Python files (such as header or library files) it needs.
The fundamental problem is that every programmer stores his or her source code in a different directory structure than everyone else. Sometimes these directory structures are dictated by corporate policy, or sometimes they are personal taste. Even worse than this is the problem of changing between versions of Python and other extensions you use. When a new version of Python comes out, you will probably need to change every single project file to reference the new version.
To attempt to make this problem bearable, here are a couple of tricks to make working with source code easier:
Don't specify Python15.lib, PyWinTypes.lib, or PythonCOM.lib in your project file. These packages employ a Visual C++ trick so that by including the necessary headers (such as Python.h or PyWinTypes.h), an implicit reference is made to the necessary .lib files. This automatically uses the correct release (e.g., Python15.lib) or debug library (Python15_d.lib), and is also useful when upgrading Python; for example, Python 1.6 will presumably change the names of these .lib files, but this scheme avoids changing your project in that case.
Use Microsoft Visual C++ to specify the Python and other directories globally, rather than on a per-project basis. This allows you to avoid referencing the location of the Python sources directly in your project file and applies for all projects. When you wish to move to a new version of Python, you can change Visual C++ so it references the new directories and rebuild all your projects.
The process of configuring Visual C++ in the manner described previously is quite simple. The first thing to do is to determine the location of the necessary Python files. If you installed the binary version of Python, these files are likely under the C:\Program Files\Python\Include and C:\Program Files\Python\libs. If you are building from the Python source archive, the directories for the headers may be something like Python-1.5.2\include and Python-1.5.2\pc, while the library files would be in Python-1.5.2\pcbuild. Then perform the following steps:
Start Microsoft Visual C++.
Select Tools Options Directories. Drop down the Show Directories For combo box, and select Include Files. Add the directory or directories where the Python headers can be located. Your screen should look something like Figure 22.1.
Select the combo box again, select Library files, and update the directories appropriately.
Select OK to close the dialog, and you're ready to go!
You may also wish to perform this same process for other common Python extensions you use. For example, you may make extensive use of the Win32 or COM extensions so you could perform this same procedure and specify their directories. Indeed, if you wish to build the COM extensions from sources you may need to ensure your directories are set up so that PyWinTypes.h and PyWinTypes.lib from the Win32 extensions can be found.
One of Python's most powerful features is how well it integrates with extensions written in C. If you have a library or toolkit available for C or C++, it is almost certain you can expose this library to Python using an extension module.
Alternatively, you may have a program with special requirements, such as crunching huge complex datasets, and your program could benefit immensely if you could speed up one small, but important part of the application. Writing this small speed-critical part in C and calling it from your Python program is an attractive solution many people adopt.
For whatever reason you need to do this, we provide here a short discussion of extension modules and building the modules on Windows.
For this example, we use a simple extension module from the Python tutorial. This creates a module called spam and exposes a function called system(), which runs a DOS command. This is obviously a contrived example as this same functionality can be obtained from the Python function os.system(); indeed, you would expect to find almost identical code implementing os.system(). The source code is as follows:
/* spammodule.c - pasted from Python extending/embedding manual*/ # include "Python.h" static PyObject *SpamError; static PyObject *spam_system(self, args) PyObject *self; PyObject *args; { char *command; int sts; if (!PyArg_ParseTuple(args, "s", &command)) return NULL; sts = system(command); return Py_BuildValue("i", sts); } static PyMethodDef SpamMethods[] = { {"system", spam_system, METH_VARARGS}, {NULL, NULL} /* Sentinel */ }; #ifdef MS_WIN32 __declspec(dllexport) #endif void initspam() { PyObject *m, *d; m = Py_InitModule("spam", SpamMethods); d = PyModule_GetDict(m); SpamError = PyErr_NewException("spam.error", NULL, NULL); PyDict_SetItemString(d, "error", SpamError); }
The format for Python extensions is well covered in the standard Python documents and in the various books to date. Our target is simply to get it to build on Windows. When this is done, you should end up with a file named spam.pyd, and be able to use it just like the following example:
>>> import spam >>> spam.system('start notepad') 0 >>>
And you see a notepad appear on the screen.
Before we start on a fairly long spiel about how to create a Microsoft Visual C++ Project file by hand, we would be remiss not to make mention of a handy Python tool that can save you lots of heartache and may let you skip the next section completely!
Python on Unix has a well-established build procedure that uses a file named setup.in to control the build process. Each different operating system reads the setup.in file and generates an appropriate makefile for the system.
David Ascher has developed a tool that takes one of these Unix setup.in files, generates a Microsoft Visual C++ project file, then invokes Visual C++ to build the project. Although this would appear to be of interest mainly for people with existing Unix source code, these setup.in files are so simple that creating one of these files for our project is simpler than mastering Visual C++.
The simplest possible setup.in file consists of two lines. The first line contains *shared* (this tells Unix systems the module is to be built as a shared module, the equivalent of a DLL on Windows). The second line consists of the name of the module we wish to build, and the source files needed to build it. The setup.in file contains the following two lines:
*shared* spam spammodule.c
Here, the module is called spam and there is a single source file, spammodule.c.
The tool that creates the Visual C++ project file is a single Python source file, compile.py , available from http://starship.python.net/crew/da/compile/. You can also find it, along with this book's code samples, at http://starship.python.net/crew/mhammond/ppw32/.
Using this tool to build the sample is simple; create a directory with spammodule.c and setup.in files, and from this directory, run the compile tool. A Visual C++ project is generated and the project built. Let's try this out. For this example, assume that compile.py is in your C:\Scripts directory and the spam files in C:\Scripts\spam:
C:\Scripts\spam>dir Volume in drive C has no label. Volume Serial Number is B423-50BF Directory of C:\Scripts\spam 18/05/99 19:29 <DIR> . 18/05/99 19:29 <DIR> .. 07/05/99 18:59 33 setup.in 07/05/99 14:53 761 spammodule.c 4 File(s) 794 bytes 113,135,104 bytes free C:\Scripts\spam>..\compile.py Attempting to start MSDev... Building workspace (.dsw) file for workspace Found python15.lib in L:\src\python-1.5.2\pcbuild Found Python include directory in L:\src\python-1.5.2\include Creating project (.dsp) file for spam Building project
As you can see, you start with only the two files mentioned previously and run the compile tool. During this process, you should see Visual C++ start, the build process complete, then Visual C++ exit. Let's see what's in the directory now:
C:\Scripts\spam>dir Volume in drive C has no label. Volume Serial Number is B423-50BF Directory of C:\Scripts\spam 18/05/99 19:31 <DIR> . 18/05/99 19:31 <DIR> .. 18/05/99 19:30 <DIR> pyds 07/05/99 18:59 33 setup.in 18/05/99 19:30 2,454 spam.dsp 18/05/99 19:30 1,182 spam.plg 07/05/99 14:53 761 spammodule.c 18/05/99 19:30 <DIR> tmp 18/05/99 19:30 618 workspace.dsw 18/05/99 19:31 33,792 workspace.ncb 18/05/99 19:31 49,664 workspace.opt 11 File(s) 88,504 bytes 112,688,128 bytes free C:\Scripts\spam>dir pyds\*.pyd Volume in drive C has no label. Volume Serial Number is B423-50BF Directory of C:\Scripts\spam\pyds 18/05/99 19:30 20,480 spam.pyd 1 File(s) 20,480 bytes 113,736,704 bytes free C:\Scripts\spam>
The script creates Visual C++ Project (spam.dsp) and Workspace (workspace.dsw) files (you can specify a different name for the workspace file by providing it as an argument to compile.py). There are some miscellaneous files created by the build process as well as two directories. The tmp directory is where the C object files (.obj ) files are stored, and pyds is where the final Python extension is built. As you can see, the extension weighs in at around 20 KB.
All that's needed now is to copy the final spam.pyd to a directory on the PythonPath. C:\Program Files\Python\Dlls is where Python installed some standard extensions, so this may be suitable. Once spam.pyd is in a location where Python can find it, the sample code presented earlier should work.
There will be cases where you choose to use Visual C++ yourself rather than rely on the compile.py tool covered in the previous section. Although this takes longer to set up and doesn't provide a portable build solution, it does provide greater control over the build process. Of course, you're free to use both solutions: use the compile tool to generate your first project file and workspace, but maintain them manually after creation.
Either way, we will briefly discuss creating a project file from scratch using Visual C++ that builds our spam sample. Here are the three steps:
Create a new project file.
Modify the project settings.
Build the project.
Creating a new project is fairly simple, although we're faced with a Microsoft Wizard! Complete the following steps:
Start Microsoft Visual C++.
Choose File New Projects Win32 Dynamic Link Library.
Under Location, choose a directory. We have used D:\MyStuff.
In the Project Name box, enter spam. A subdirectory called spam is suggested in the location box. The dialog should now look like Figure 22.2.
Select OK to start the New Project Wizard. When asked "What kind of DLL would you like to create?" choose "An empty DLL Project."
After a confirmation screen, VC++ creates an empty project, and the wizard exits.
Place the spammodule.c source file into the new spam directory.
Locate and select the File View tab at the bottom of the Workspace Explorer window.
Right-click on Spam Files, and select Add Files To Project from the context menu that appears and select the spammodule.c source file.
If you expand the Source Files tree and double-click on spammodule.c, it's opened in Visual C++, and the screen should now look like Figure 22.3.
We now have a project file, but some of the default settings aren't suitable for Python, so your next step is to modify some of the project settings. Specifically, you need to:
Change the C runtime library settings so the extension and Python share this library. This is a fairly obscure requirement, but it's needed to prevent the extension module crashing under specific circumstances (see the later section Section 22.1.3 for more information).
Change the extension of the final DLL to .pyd. Although unnecessary, this is an established convention that allows easy identification of Python extensions versus normal Windows DLLs.
If you wish to perform a debug build, you need to change the debug version of the final DLL spam_d.pyd (again, see the later section Section 22.1.3 for more information).
The process to perform these steps is:
Choose Project Settings. In the top left combo box, select the Win32 Release configuration.
Select the C/C++ tab and drop down the Category combo box, stopping to admire the breathtaking lack of adherence to Microsoft's own GUI design standards. Choose Code Generation, and a new property page appears on the C/C++ tab. Change "Use runtime library" to "Multithreaded DLL." The property page should look like Figure 22.4.
Select the Link tab and change the name of the output file from Release/spam.dll to Release/spam.pyd, which should look like Figure 22.5.
If you need to perform a debug build, repeat this process for the Win32 Debug configuration, but substitute Debug Multithreaded DLL for Multithreaded DLL in the first step and change the output file to spam_d.pyd as discussed previously.
|
Everyone works differently, so exactly how you manage your environment depends on your circumstances, but there are a number of other tips that relate to making your built extension module available to Python.
One alternative is to modify your PythonPath to explicitly include the directory where your PYD files are built; in our example, that would be D:\MyStuff\Spam\Release. Then the latest changes are available to Python as soon as the project is built, with no need to copy the extension anywhere else. A further refinement to this is to exploit the fact that release and debug builds create different files, spam.pyd and spam_d.pyd. This allows you to change your project to build our extensions into the same directory, avoiding the need to specify one directory for release builds and another for debug builds.
A second alternative is to exploit a feature in Visual C++ that allows you to execute an arbitrary command after your extension has built. It's quite common to use this feature to copy the final extension to another directory already on your PythonPath. To set this up, again go to the Visual C++ Project Settings, and you'll find, way off to the right in the available tabs, is Custom Build. Selecting this allows you to specify a simple copy command. Figure 22.6 shows the project setup to copy files into the C:\Program Files\Python\DLLs directory.
You're now almost ready to build, but faced with one Windows-specific complication the compile.py tools managed to hide. The problem is that you need to tell Windows that your module-initialization function (initspam()) is a public function, so Python can call it as the module is loaded. There are a number of ways to do this, the most common being: providing a module definition (.def ) file, adding a special /EXPORT:initspam argument to the linker or modifying the code itself. For this demonstration let's take the last option and modify the module-initialization code from the original:
void initspam() {
To:
#ifdef MS_WIN32 __declspec(dllexport) #endif void initspam() {
Figure 22.3 shows the source code after this change.
Finally, we're ready to build the project. Perform the following steps:
Choose Build Set Active Configuration and select Win32 Release.
Choose Build Build spam.pyd. If all goes well, you see some messages in the Visual C++ output window, finishing like this:
---------------Configuration: spam - Win32 Release--------------- Compiling... spammodule.c Linking... Creating library Release/spam.lib and object Release/spam.exp Performing Custom Build Step on .\Release\spam.pyd 1 file(s) copied spam.pyd - 0 error(s), 0 warning(s)
Note that because you specified an additional copy operation after the build, you can see the 1 file(s) copied message generated by the copy. A quick check in C:\Program Files\Python\DLLs shows the new spam.pyd.
Now, start Python (or PythonWin). Type import spam, followed by spam.system ('start notepad') or the command of your choice.
A couple of times now, we have glossed over some differences between debug and release builds for our extensions and Python. This is a symptom of the important, although somewhat technical, issue of the C runtime library.
If you don't know what a C runtime library is or don't care about the technical details, the simple rules to follow are:
Release builds of your project must use the Multithreaded DLL and link with the standard Python .lib files.
Debug builds of your project must use the Debug Multithreaded DLL C run-time library, must link with the _d version of the Python .lib files, and must themselves be named following the _d convention.
This is simple to set up, as we demonstrated when building the spam sample. The compile tool described previously automatically creates the correct settings, so in some cases you don't need to do anything. However, a deeper understanding of the issues will help you understand why the _d convention exists and how to exploit or work around it for your situation. Feel free to skip the rest of this section.
The underlying issue is that Python and its extensions are DLLs, and these DLLs need the same C runtime library. Particularly at issue are FILE objects and memory allocated via malloc(). If all Python extensions aren't using the same C runtime library, the FILE objects passed between Python and the extensions are considered invalid. The result is likely to be an access violation.
Although this problem isn't unique to Windows, Microsoft Visual C++ is one of the few compilers that provide different libraries for debug and release builds. The debug libraries are useful and contain all sorts of diagnostic and sanity checks for using these objects. As a result, it's common for a programmer to build a debug version of his module, but attempt to run it with a release version of Python or other modules. The result is a problem far worse than he was originally trying to debug, so Python invented a scheme to avoid this common pitfall.
The idea is that when Python itself is built for debug, it looks for only modules with _d appended to the name. A debug build of Python then finds only specific debug modules, and a release build of Python finds only release modules.
As you can see, the _d convention is not a true solution to the problem; the underlying issue is that Python and all the extensions must be built with the same, shared C runtime library. Python's use of _d is a convention that makes the more common errors less likely. This convention also means it's possible to have both debug and release builds of the same extension in the same directory. When you run Python.exe, the release extensions are automatically found. When you run Python_d.exe, the debug extensions are found without needing to change the PythonPath. This makes debugging quite simple: just run Python_d.exe under the debugger and your debug extension module can be debugged automatically.
The biggest problem with this scheme is that to debug a single extension module, you must have debug builds of every extension module your program uses. Depending on the application, this may be difficult and even impossible. You can exploit this information to make your debugging easier. Because the issue we have been discussing is the C runtime library, you can change almost every other compiler or linker option for your debug or release build except this. Thus, for your release build, you can temporarily disable optimizations and enable symbolic debugging information; just make sure the C runtime library never changes. Then step through your extension in the C debugger (but not through Python or other extensions) before restoring the default project settings.
There are occasions when it's necessary or desirable to build Python itself from its sources. As mentioned previously, reasons may include wanting to build a debug version, or simply the satisfaction or security of knowing you can build your entire project from scratch.
The process is quite simple, and Python builds easily. The sources come with Visual C++ project and workspace files, and building is as simple as opening the workspace and starting the build.
The sources are available from http://www.python.org, usually in a file with the name pythxxx.tgz, where xxx is the version of Python. For example, Python 1.5.2 sources are available in pyth152.tgz. The .tgz file is a gzipped tar file and is understood by the ubiquitous WinZip program (http://www.winzip.com). Once you expand this archive into a suitable directory (be careful to maintain the directory structure when expanding), you should have a Python-1.5.2 directory with a number of subdirectories including PCBuild, Python, Modules, and so forth.
In the PCBuild directory you'll find pcbuild.dsw; this is the Visual C++ workspace. Once opened, Visual C++ should look similar to Figure 22.7.
Depending on your requirements, you may wish to build some or all of the projects. At a minimum, you need to build the Python15 project that builds Python15.dll (or Python15_d.dll for debug builds). All built files are placed in the PCBuild directory, ready to be distributed, copied to the Windows System directory, etc.
Visual C++ generates large numbers of temporary files, often totaling megabytes. When you have created a DLL or EXE you are happy with, you may choose to copy it somewhere else and choose Build Clean. This deletes all the built files reclaiming the list disk space.
The process we described previously of building a DLL extension module for Python is known as extending Python; you extend its capabilities with a new module. The other common process is to put Python inside another existing application, possibly for use as a macro or extension language. This process is known as embedding Python.
If you look at the files Python installs, notice that the bulk of Python itself is implemented in a DLL, Python15.dll, for all Python 1.5.x versions. Python.exe itself is tiny, and simply uses the Python DLL. In fact, consider Python.exe as a trivial example of how to embed Python in your application.
Python exposes a large API that embedded programs use. This API is large and rich; almost anything you can do from Python code you can do from the C API, including running code, calling objects, creating new objects, pulling apart Python objects (such as getting the string value from a Python string object), and so forth.
The best way to get started with embedding Python is to read the excellent extending and embedding documentation (optionally installed with Python) in conjunction with the sample in the Demo\Embed directory of the Python sources. You can then peruse the Python/C API documentation (also optionally installed with Python).
| I l@ve RuBoard |


Information
" Etiam ante arcu, vestibulum diam. Curabitur quis lectus. Pellentesque dictum odio velit.
Read moreAction
Watch Dogs
Integer ut leo vitae nibh cursus aliquetr Sed, condimentum bibendum nibh accumsan vel.
Racing
Monster Racing
Integer ut leo vitae nibh cursus aliquetr Sed, condimentum bibendum nibh accumsan vel.
Angry Birds
Lorem Ipsum is simply dummy text of the printing industry.
Vice City GTA
Lorem Ipsum is simply dummy text of the printing industry.
Call Of Duty
Lorem Ipsum is simply dummy text of the printing industry.
IronMan
Posted By Admin on June 2, 2015 Comments (10)
God Of War
Posted By Admin on June 2, 2015 Comments (10)
Need For Speed
Posted By Admin on June 2, 2015 Comments (10)


WITNESS LIST
Special Purpose Districts Committee
May 6, 2015 - 8:00 AM
For:
Andrisek, Ann (Self)
Fairchild, Jack (Self)
Goynes, Paula (Self)
Goynes, Tom (Self; Texas Rivers Protection Association)
Mcgehee, Scott (Self)
Mosier, Doyle (City of martindale)
Pine, Jeff (Self)
Rumbaut, Michelle (Self)
Schleder, Max (Self)
Tittle, Steve (Self; Riverbend HOA)
Votteler, Todd (Guadalupe-Blanco River Authority)
Wassenich, Dianne (San marcos river foundation)
Against:
Coleman, Craig (Rky ltd)
Ewbank, Jim (Rky LLC)
Lawrence, Richard (Self; Texas state tubes)
Moses, Rocco (Self; Texas state tubes)
On:
Young, Larry (Texas Parks and Wildlife Department)
Registering, but not testifying:
For:
Doner, John (Self)
Law, Daniel (Caldwell County Sheriffs Office)
Wied, Lauren (Guadalupe Basin Coalition)
Zucker, Charles (Texas Rivers Protection Association)
Against:
Elliott, Ryan (Self; Texas river alliance)
Hinkle, Ron (Texas Association of Campground Owners)
Spilman, Tom (Wholesale Beer Distributors of Texas)
On:
Dussere, Mike (WORD of Comal County)
Nygren, Erik (Texas Parks and Wildlife Dept)
Warren, Emily (The meadows center for water and the environment)
For:
Reid, Daniel (Self)
Against:
Haupt, Harry (Self; Harris county fresh water district 58)
1
WITNESS LIST
Against:
Stefaniak, Lawrence (Self; HCFWSD 58)
Registering, but not testifying:
For:
Botkin, Chad (Self)
On:
Kahn, Joshua (Lamplight Capital)
Registering, but not testifying:
For:
Cohen, Howard (Self; Harris County WCID No. 157)
Registering, but not testifying:
For:
Cohen, Howard (Self; Harris County WCID No. 159)
Registering, but not testifying:
For:
Searle-sung, Brenda (Caughfield ranch ltd)
Registering, but not testifying:
For:
Tramm, Richard (Porter Special Utility District)
Against:
Embrey, Ty (Porter Municipal Utility District)
Registering, but not testifying:
For:
Goodall, Taylor (Dowdell PUD)
Registering, but not testifying:
For:
Cohen, Howard (Self; Clayton Hagerman Trust, et al)
2
WITNESS LIST
Registering, but not testifying:
For:
Green, Timothy (Pete terpstra)
3


You can't make your counterclaim using this service
You can only use this service to counterclaim for £10,000 or less.
You can continue your response online with no counterclaim or respond and counterclaim on paper.
If you continue your response online, you can't include the counterclaim, but you could make a new claim afterwards. This may mean you pay more in fees.
Respond and counterclaim on paper
Download a paper form (opens in a new window), complete it and send it to:
Civil Money Claims
St. Katharine's House
21-27 St. Katharine's Street
Northampton
NN1 2LH


water porous filter membrane flow passing restrictor irrigation chamber infiltration present pipe disposed figref[FIG. Embodiment apparatus restrictors filtration illustrated tubular restricting membranes stream impurities surface section diameter invention outflow axial pore flows formed inlet diagram opening seepage wall form smaller total document-id:: inner sidewall citation: cited embodiment, figref[FIGS. corresponding invention, plastic outlet pipe, sheet [patcit]: applicant structural according bag capability filtered orifice direction larger plurality support claim closely having maximum method chamber, edges embodiment pores CLAIM-TEXT:. claim-ref[claim wash manufacturing blockage invention; location blocked communicated engaging outside membrane, mounted particle directly end longitudinal membrane. micro rate apparatus, carried covered engaged orifices, valve chamber; enclosed is, molding number opening, optional second set Thus, accommodating apparatus. attached correspondence diameters drawings engage following force particles production schematic shape, structure "impact EMI-D adhesive area covers demand, different embodiments enters i.e., inside invention. large manner penetrating prior restrictor, speed" thereof using various washed bag-shaped chamber. constituted dispose easily engages entire equal firstly flat greater integrally just main material membranes; mouth one, passage penetration piston pressure provided provides pump service similar support, thereby. thereof, thereof. times water. No. addition, away circumference classification-national:: clear correspondingly descriptions easy effect effectively example, far flowing greatly impurity inserted life limited. locations. manners. membranes, membranes. mounting omitted. pipe. preferably process pump, slightly speed substantially (by Application Brownian CLAIM-TEXT:one Therefore, [nplcit]: action-date: addition block blocked. certain complete composed connected continuous device diagrams difficult discharged disposing examiner exists flush generating-office:: gluing) hot illustrate impact implemented improves located machine make making manufactured melting method, narrow needs orifice. orifices orifices. passes plants pores, problem providing pumped reduces shall shape. sinks sufficiently surface, time,


COURSES
We offer CBSE based curriculum from class I to XII. One of the top priorities is learning mother tongue and Malayalam is our second language.  We are giving an elevated place to Hindi – Our Rashtra Bhasha.
For Senior Secondary Level there are three options
FACILITIES
Our school is situated in 3acrs of land faraway from the din and bustle of the city though it is a city school. The classrooms are spacies as specified by the CBSE.
Mastering the 3R’s was the main objectives of learning in the ancient time.
Much water has flown under the bridge and rapid changes were brought in the layman’s everyday life. Systematic training of the pupil from infancy brings children to the new world of learning. With that intention. We have started the KG section with most modern amenities for learning through playing.
Learning by doing is the most effective means of securing knowledge. We have provided the labs for different subjects,
Chemistry, Physics, Biology, Computer Science and Mathematics with all facilities. Audio visual Lab with OHP, Slide Projector, LCD Monitor and all other accessories boost the task of learning.
A well setup library under the strict guidance of a well qualified Librarian with internet facility is provided.
The use of library is made mandatory to class I to XII with varied range.


Hnswlib.rb
Hnswlib.rb provides Ruby bindings for the Hnswlib that implements approximate nearest-neghbor search based on hierarchical navigable small world graphs.
Installation
Add this line to your application’s Gemfile:
gem 'hnswlib'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install hnswlib
Note: hnswlib.rb gives no optimization options when building native extensions. If necessary, add the optimization options yourself during installation, as follows;
$ bundle config --local build.hnswlib "--with-cxxflags=-march=native"
$ bundle install
Or:
$ gem install hnswlib -- --with-cxxflags=-march=native
Documentation
Usage
require 'hnswlib'
f = 40 # length of datum point vector that will be indexed.
t = Hnswlib::HierarchicalNSW.new(space: 'l2', dim: f)
t.init_index(max_elements: 1000)
1000.times do |i|
v = Array.new(f) { rand }
t.add_point(v, i)
end
t.save_index('test.ann')
require 'hnswlib'
u = Hnswlib::HierarchicalNSW.new(space: 'l2', dim: f)
u.load_index('test.ann')
q = Array.new(f) { rand }
p u.search_knn(q, 100) # will find the 100 nearest neighbors.
License
The gem is available as open source under the terms of the Apache-2.0 License.
Contributing
Bug reports and pull requests are welcome on GitHub at github.com/yoshoku/hnswlib.rb. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.


--- layout: post title: Instantiate 64-bit WScript with Powershell date: type: post published: false status: draft categories: [] tags: [] meta: _edit_last: '1' _s2mail: 'yes' author: login: AlexDGlover email<EMAIL_ADDRESS>display_name: AlexDGlover first_name: Alex last_name: Glover ---
start-job -scriptblock {Invoke-Command -script { c:\Windows\Sysnative\wscript.exe "C:\path\to\script.vbs" }}


The Maine Coon is a native New Englander, hailing from Maine, where he was a popular mouser, farm cat and, most likely, ship’s cat, at least as far back as the early 19th century.
(Click pic to read more).
(Click pic to read more).
(I am also a Code Master).
Maine Coon cats do not reach full physical maturation until they are about 4-5 years lid. The weight range will vary depending on gender and of course genetics. The accepted size standard for the breed ranges between 11-25lbs, with the males being larger than the females. This breed grows at double the rate of other domestic cats. They can easily gain 2 pounds per month during their growing cycle. It is important that their weight is monitored and they are not allowed to get too fat or the risk of health problems also doubles. The standards are 15-25lbs for males and 11-20 pounds for females.


| DOSE: T+ 0:00 |
3.0 mg |
insufflated |
Amphetamines |
(ground / crushed) |
| T+ 1:00 |
3.0 mg |
insufflated |
Amphetamines |
(ground / crushed) |
| T+ 2:00 |
3.0 mg |
insufflated |
Amphetamines |
(ground / crushed) |
| T+ 3:00 |
3.0 mg |
insufflated |
Amphetamines |
(ground / crushed) |
It was around 7p.m. and my friend had just got a bottle of 130 10mg pills of dexedrine. We were use to doing lines of adderall so we didn't think this would be much different. We broke up a 10mg pill into 3 lines. I took one whole line to start off with and my Friend (100lbs girl) took a little more than half of hers. We popped in requiem for a dream to start the night off.
I right away started to feel alot better than I did with adderall and she agreed. After a 10 mins or so I started to feel like a light meth high. After probably an hour I did another line and she finished hers off. It then started to feel alot more intense and she had check her pulse at 100bpms. We hung out for a while longer until about 9p.m. when we decided to break up another pill. She did a few little bumps off of it and left the rest for me which I then broke up into two lines and took one. It felt more and more like when I've smoke a few hits of good meth.
She took off to do some homework for the night and I talked on the phone for about an hour till I took the last line. About 30 to 45 mins after that it felt like a really good body high and I ended up cleaning my whole room. I was very talkative and couldn't sit still for quite some time. I ended up watching family guy season 4 all the way through and wasn't able to sleep until about 5a.m.
I decided to write this because I didn't realize how much different this was or at least made me react when I did it than adderall or any other ADD meds. It was a really good alternate to meth for me at least and I had a good time on it other than the fact that we did it so late I wasn't able to get to sleep well. I think it would be a good drug to do earlier or if I had a long night of partying ahead.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Index
All Classes|All Packages
D
- d_bg - Variable in class sample.SearchDonorOrgController
- d_button - Variable in class sample.DonationInfoController
- d_button - Variable in class sample.DoneePrevReqController
- DemoController - Class in sample
-
This is a demo Comtroll Class, made for the purpose of testing and debuging purposes
- DemoController() - Constructor for class sample.DemoController
- Donation - Class in sample
-
This class is for maintaining the donation records.
- Donation(String, String, String, String, Button, Button) - Constructor for class sample.Donation
-
Constructor of the Class
- DonationInfoController - Class in sample
-
This Controller class is here to change Control the sample.Donation.fxml This class extends the LogINpanelController Class.
- DonationInfoController() - Constructor for class sample.DonationInfoController
- DoneeNewReqController - Class in sample
-
This is the controller class for the new request of Blood Donation from a Done.
- DoneeNewReqController() - Constructor for class sample.DoneeNewReqController
- DoneePanelController - Class in sample
-
This is the Controller for the Donee Pane.
- DoneePanelController() - Constructor for class sample.DoneePanelController
- DoneePrevReqController - Class in sample
-
This is the Controller class for handling the Previous Donation requests of a Done.
- DoneePrevReqController() - Constructor for class sample.DoneePrevReqController
- Donor - Class in sample
-
This is the class for handling the instances of Donor in the system.
- Donor(String, String, String, String, String, String, String, Button) - Constructor for class sample.Donor
-
Constructor with parameters for the initialization of a donor instance.
- DonorApprovalListController - Class in sample
-
This is the Controller Class for handling the Donor Approval list.
- DonorApprovalListController() - Constructor for class sample.DonorApprovalListController
- DonorInfoController - Class in sample
-
This is a controller class for sample.DonorInfo.fxml
- DonorInfoController() - Constructor for class sample.DonorInfoController
- DonorPanelController - Class in sample
-
This is the Donor Panel Class for holding the features of the System while in the donor Mode.
- DonorPanelController() - Constructor for class sample.DonorPanelController
- dt_button - Variable in class sample.PendingRequestController
All Classes|All Packages


| Author | Albert Faber, Copyright © 2009, all rights reserved. |
| Adapted-by | |
| Compiler | >=2.4k |
The library will ease the use of for serial communication over the USB interface. By default nothing has to be defined by the user, below an example how to use the library include usb_serial .. usb_serial_init() .. ;-- optionally wait till USB becomes available while ( usb_cdc_line_status() == 0x00 ) loop end loop .. ;-- main loop var byte ch forever loop ; -- call the flush routine on a regular base in the main loop ; -- in order to keep the USB communicaiton alive usb_serial_flush() if ( usb_serial_read( ch ) ) usb_serial_data = ch -- echo end if ..... end loop In addition this library can be used in combination with other JAL libraries, like print.jal and format.jal, for example to send a string, one can use the following code fragment: const byte str[] = "Hello World" print_string( usb_serial_data, str ) customization The usb_serial library offers the following custimization prameters, the user has the ability to set these const parameter(s) before the inclusion of the usb_serial file const byte USB_CDC_RX_BUFFER_SIZE = 0x?? -- set receive FIFO size const byte USB_CDC_TX_BUFFER_SIZE = 0x?? -- set transmit FIFO size const word USB_SERIAL_PRODUCT_ID = 0x???? -- set USB device product ID const word USB_SERIAL_VENDOR_ID = 0x???? -- set USB device vendor ID const byte USB_STRING0[] = { .. } -- set USB language string const byte USB_STRING1[] = { .. } -- set USB mfg string const byte USB_STRING2[] = { .. } -- set USB product string
-
const word USB_EP2_IN_ADDR = (USB_EP2_OUT_ADDR + USB_EP2_OUT_SIZE )
const byte USB_EP3_OUT_SIZE = 8
const bit USB_EP1 = 1
const byte USB_DSC_FN_RPT_CAPABILITIES = 0x05
const byte USB_CONFIGURATION_DESCRIPTOR[ USB_CONFIGURATION_DESCRIPTOR_SIZE ]=
const byte USB_DSC_FN_UNION = 0x06
const byte USB_CS_INTERFACE = 0x24
const byte USB_DSC_FN_CALL_MGT = 0x01
const byte USB_DCS_INTERFACE = 0x04
const byte USB_DEVICE_DESCRIPTOR[USB_DEVICE_DESCRIPTOR_SIZE] = {
const word USB_EP2_OUT_ADDR = (USB_BASE_ADDRESS + 0x0040 )
var volatile byte usb_cdc_eptx_buffer[USB_EP3_IN_SIZE] at USB_EP3_IN_ADDR
var volatile byte usb_ep3in_buf[ USB_EP3_IN_SIZE ] at USB_EP3_IN_ADDR
const byte USB_CDC_RX_BUFFER_SIZE = 0x10
const bit USB_EP2 = 1
const word USB_EP1_IN_ADDR = (USB_EP1_OUT_ADDR + USB_EP1_OUT_SIZE )
const bit USB_EP3 = 1
var volatile byte usb_ep2out_buf[ USB_EP2_OUT_SIZE ] at USB_EP2_OUT_ADDR
const word USB_EP0_OUT_ADDR = (USB_BASE_ADDRESS + 0x0020 )
const byte USB_CDC_DATA_ENDPOINT = 3
const byte USB_STRING0[] =
const byte USB_STRING1[0x36] =
var volatile byte usb_ep1out_buf[ USB_EP1_OUT_SIZE ] at USB_EP1_OUT_ADDR
const byte USB_DSC_FN_COUNTRY_SELECTION = 0x07
const byte USB_CDC_INT_EP_SIZE = 8
var volatile byte usb_ep1in_buf[ USB_EP1_IN_SIZE ] at USB_EP1_IN_ADDR
const word USB_EP0_IN_ADDR = (USB_EP0_OUT_ADDR + USB_EP0_OUT_SIZE )
const word USB_SERIAL_VENDOR_ID = 0x04D8
const byte USB_STRING2[30] =
var volatile byte usb_ep0out_buf[ USB_EP0_OUT_SIZE ] at USB_EP0_OUT_ADDR
const byte USB_CDC_BULK_OUT_EP_SIZE = USB_EP3_OUT_SIZE
const word USB_EP3_IN_ADDR = (USB_EP3_OUT_ADDR + USB_EP3_OUT_SIZE )
const byte USB_CDC_COMM_INTF_ID = 0x00
const byte USB_EP3_IN_SIZE = 8
var volatile byte usb_ep3out_buf[ USB_EP3_OUT_SIZE ] at USB_EP3_OUT_ADDR
const word USB_CDC_BULK_IN_EP_ADDR = USB_EP3_IN_ADDR
const byte USB_DSC_FN_USB_TERMINAL = 0x09
const word USB_SERIAL_PRODUCT_ID = 0x000A
const byte USB_DSC_FN_TELEPHONE_RINGER = 0x04
const byte USB_CDC_DATA_INTF = 0x0A
const byte USB_EP0_OUT_SIZE = 8
const byte USB_EP1_IN_SIZE = 8
const byte USB_CS_ENDPOINT = 0x25
const byte USB_DSC_FN_TEL_OP_MODES = 0x08
const bit USB_EP0 = 1
const byte USB_EP0_IN_SIZE = 8
const byte USB_EP2_IN_SIZE = 8
const byte USB_CDC_BULK_IN_EP_SIZE = USB_EP3_IN_SIZE
var volatile byte usb_ep2in_buf[ USB_EP2_IN_SIZE ] at USB_EP2_IN_ADDR
const word USB_EP3_OUT_ADDR = (USB_BASE_ADDRESS + 0x0050 )
const byte USB_EP1_OUT_SIZE = 8
const USB_CONFIGURATION_DESCRIPTOR_SIZE = 0x09 + 0x09 + 0x05 + 0x04 + 0x05 + 0x05 + 0x07 + 0x09 + 0x07 + 0x07
var volatile byte usb_ep0in_buf[ USB_EP0_IN_SIZE ] at USB_EP0_IN_ADDR
const byte USB_EP2_OUT_SIZE = 8
const byte USB_DSC_FN_ACM = 0x02
var volatile byte usb_cdc_eprx_buffer[USB_EP3_OUT_SIZE] at USB_EP3_OUT_ADDR
const word USB_EP1_OUT_ADDR = (USB_BASE_ADDRESS + 0x0030 )
const word USB_CDC_BULK_OUT_EP_ADDR = USB_EP3_OUT_ADDR
const byte USB_DSC_FN_HEADER = 0x00
const byte USB_CDC_NO_PROTOCOL = 0x00
const byte USB_CDC_TX_BUFFER_SIZE = 0x20
const byte USB_DSC_FN_DLM = 0x03
const byte USB_CDC_DATA_INTF_ID = 0x01
usb_serial_data'put(byte in data)
usb_serial_init()
usb_serial_flush()
usb_serial_write(byte in data)
usb_serial_data'get() return byte
usb_serial_data_available'get() return bit
usb_serial_port_open'get() return bit
usb_serial_read(byte out data) return bit
const word USB_EP2_IN_ADDR = (USB_EP2_OUT_ADDR + USB_EP2_OUT_SIZE )
No documentation found
const byte USB_EP3_OUT_SIZE = 8
No documentation found
const bit USB_EP1 = 1
No documentation found
const byte USB_DSC_FN_RPT_CAPABILITIES = 0x05
No documentation found
const byte USB_CONFIGURATION_DESCRIPTOR[ USB_CONFIGURATION_DESCRIPTOR_SIZE ]=
Sets the default USB_CONFIGURATION_DESCRIPTOR record. It is not expected that the user of the usb_serial library needs to create its own record. However, if needed in exeptional cases, the user has the ability to define the const byte USB_CONFIGURATION_DESCRIPTOR[] before inclusion of the usb_serial library to customize the USB conifguration
const byte USB_DSC_FN_UNION = 0x06
No documentation found
const byte USB_CS_INTERFACE = 0x24
CDC class Functional Descriptors related constants Type Values for the bDscType Field (see USB specification
const byte USB_DSC_FN_CALL_MGT = 0x01
No documentation found
const byte USB_DCS_INTERFACE = 0x04
No documentation found
const byte USB_DEVICE_DESCRIPTOR[USB_DEVICE_DESCRIPTOR_SIZE] = {
Sets the default USB_DEVICE_DESCRIPTOR record. It is not expected that the user of the usb_serial library needs to create its own record. However, if needed in exeptional cases, the user has the ability to define the const byte USB_DEVICE_DESCRIPTOR[USB_DEVICE_DESCRIPTOR_SIZE] before inclusion of the usb_serial library
const word USB_EP2_OUT_ADDR = (USB_BASE_ADDRESS + 0x0040 )
No documentation found
var volatile byte usb_cdc_eptx_buffer[USB_EP3_IN_SIZE] at USB_EP3_IN_ADDR
define the buffer in dual port of the USB SIE, so data is accessible from the JAL code
var volatile byte usb_ep3in_buf[ USB_EP3_IN_SIZE ] at USB_EP3_IN_ADDR
No documentation found
const byte USB_CDC_RX_BUFFER_SIZE = 0x10
USB_CDC_RX_BUFFER_SIZE contains the size of the receive FIFO buffer a large(r) buffer can speed up the transmission speed at the cost of free memory space. The user of the usb_serial library has the ability to control size of the FIFO buffer, by defining the const byte USB_CDC_RX_BUFFER_SIZE = 0x?? before the inclusion of the usb_serial file
const bit USB_EP2 = 1
No documentation found
const word USB_EP1_IN_ADDR = (USB_EP1_OUT_ADDR + USB_EP1_OUT_SIZE )
No documentation found
const bit USB_EP3 = 1
No documentation found
var volatile byte usb_ep2out_buf[ USB_EP2_OUT_SIZE ] at USB_EP2_OUT_ADDR
No documentation found
const word USB_EP0_OUT_ADDR = (USB_BASE_ADDRESS + 0x0020 )
No documentation found
const byte USB_CDC_DATA_ENDPOINT = 3
USB_CDC_DATA_ENDPOINT specifies the USB CDC Data end point This usb serial library uses end point 3
const byte USB_STRING0[] =
USB_STRING0 shall contain the USB strings language ID The user has the ability to define the string content of USB_STRING0 before inclusion of the usb_serial library to override the default content ( 0x0904 ). note that the USB shall contain 16 bit unicode characters, little endian encoded, and that the first field of USB_STRING0 shall contain the size of the entire USB_STRING0 array, the second byte shall be set to USB_DT_STRING (=0x03).
const byte USB_STRING1[0x36] =
USB_STRING1 shall contain the USB device descriptor string The user has the ability to define the string content of USB_STRING1 before inclusion of the usb_serial library to override the default content ("Microchip Technology Inc."). note that the USB shall contain 16 bit unicode characters, little endian encoded, and that the first field of USB_STRING1 shall contain the size of the entire USB_STRING1 array, the second byte shall be set to USB_DT_STRING (=0x03).
var volatile byte usb_ep1out_buf[ USB_EP1_OUT_SIZE ] at USB_EP1_OUT_ADDR
No documentation found
const byte USB_DSC_FN_COUNTRY_SELECTION = 0x07
No documentation found
const byte USB_CDC_INT_EP_SIZE = 8
set the size of the interrupt interface
var volatile byte usb_ep1in_buf[ USB_EP1_IN_SIZE ] at USB_EP1_IN_ADDR
No documentation found
const word USB_EP0_IN_ADDR = (USB_EP0_OUT_ADDR + USB_EP0_OUT_SIZE )
No documentation found
const word USB_SERIAL_VENDOR_ID = 0x04D8
USB_SERIAL_VENDOR_ID is set to Microchip if const is not defined by the user of the usb_serial library. One can set the USB_SERIAL_VENDOR_ID by defining the const before inclusion of the usb_serial library
const byte USB_STRING2[30] =
USB_STRING2 shall contain the USB product descriptor string The user has the ability to define the string content of USB_STRING1 before inclusion of the usb_serial library to override the default content ("JAL Serial."). note that the USB shall contain 16 bit unicode characters, little endian encoded, and that the first field of USB_STRING1 shall contain the size of the entire USB_STRING2 array, the second byte shall be set to USB_DT_STRING (=0x03).
var volatile byte usb_ep0out_buf[ USB_EP0_OUT_SIZE ] at USB_EP0_OUT_ADDR
No documentation found
const byte USB_CDC_BULK_OUT_EP_SIZE = USB_EP3_OUT_SIZE
No documentation found
const word USB_EP3_IN_ADDR = (USB_EP3_OUT_ADDR + USB_EP3_OUT_SIZE )
No documentation found
const byte USB_CDC_COMM_INTF_ID = 0x00
set the communication interface ID
const byte USB_EP3_IN_SIZE = 8
No documentation found
var volatile byte usb_ep3out_buf[ USB_EP3_OUT_SIZE ] at USB_EP3_OUT_ADDR
No documentation found
const word USB_CDC_BULK_IN_EP_ADDR = USB_EP3_IN_ADDR
No documentation found
const byte USB_DSC_FN_USB_TERMINAL = 0x09
No documentation found
const word USB_SERIAL_PRODUCT_ID = 0x000A
USB_SERIAL_PRODUCT_ID is set to Microchip CDC if const is not defined by the user of the usb_serial library can set the USB_SERIAL_PRODUCT_ID by defining the const before inclusion of the usb_serial library
const byte USB_DSC_FN_TELEPHONE_RINGER = 0x04
No documentation found
const byte USB_CDC_DATA_INTF = 0x0A
No documentation found
const byte USB_EP0_OUT_SIZE = 8
No documentation found
const byte USB_EP1_IN_SIZE = 8
No documentation found
const byte USB_CS_ENDPOINT = 0x25
No documentation found
const byte USB_DSC_FN_TEL_OP_MODES = 0x08
No documentation found
const bit USB_EP0 = 1
Setup USB endpoints, three enpoints are required for a CDC class The default control enpoint Interrupt endpoint And the bulk endpoint
const byte USB_EP0_IN_SIZE = 8
No documentation found
const byte USB_EP2_IN_SIZE = 8
No documentation found
const byte USB_CDC_BULK_IN_EP_SIZE = USB_EP3_IN_SIZE
No documentation found
var volatile byte usb_ep2in_buf[ USB_EP2_IN_SIZE ] at USB_EP2_IN_ADDR
No documentation found
const word USB_EP3_OUT_ADDR = (USB_BASE_ADDRESS + 0x0050 )
No documentation found
const byte USB_EP1_OUT_SIZE = 8
No documentation found
const USB_CONFIGURATION_DESCRIPTOR_SIZE = 0x09 + 0x09 + 0x05 + 0x04 + 0x05 + 0x05 + 0x07 + 0x09 + 0x07 + 0x07
No documentation found
var volatile byte usb_ep0in_buf[ USB_EP0_IN_SIZE ] at USB_EP0_IN_ADDR
No documentation found
const byte USB_EP2_OUT_SIZE = 8
No documentation found
const byte USB_DSC_FN_ACM = 0x02
ACM - Abstract Control Management
var volatile byte usb_cdc_eprx_buffer[USB_EP3_OUT_SIZE] at USB_EP3_OUT_ADDR
No documentation found
const word USB_EP1_OUT_ADDR = (USB_BASE_ADDRESS + 0x0030 )
No documentation found
const word USB_CDC_BULK_OUT_EP_ADDR = USB_EP3_OUT_ADDR
No documentation found
const byte USB_DSC_FN_HEADER = 0x00
CDC class Functional Descriptors related constants bDscSubType in Functional Descriptors more.... see Table 25 in USB CDC Specification 1.1
const byte USB_CDC_NO_PROTOCOL = 0x00
No class specific protocol required
const byte USB_CDC_TX_BUFFER_SIZE = 0x20
USB_CDC_TX_BUFFER_SIZE contains the size of the transmit FIFO buffer a large(r) buffer can speed up the transmission speed at the cost of free memory space. The user of the usb_serial library has the ability to control size of the FIFO buffer, by defining the const byte USB_CDC_TX_BUFFER_SIZE = 0x?? before the inclusion of the usb_serial file
const byte USB_DSC_FN_DLM = 0x03
DLM - Direct Line Managment
const byte USB_CDC_DATA_INTF_ID = 0x01
set the interrupt interface ID
usb_serial_data'put(byte in data)
usb_serial_data'put - write char to the USB port, blocking Asynchronuous serial send routine, using the USB Cummunication class Sends byte X (8 bit) to the USB host (via virtual COM port) Note that characters are dropped when the communcation channel on the USB host side is not opened (yet), this is a design choice in order to avoid lockup(s)
usb_serial_init()
usb_serial_init will setup the USB communication, however, this can be a time consuming process, therefore this call is non blocking. In order to check if the USB device has established contact with the HOST USB device, one can call the usb_is_configured() function, see usb_is_configured() documentation for additional details.
usb_serial_flush()
usb_serial_flush shall be called on a regular base (millisecond range) in order to keep the USB transmision alive. Therfore it is adviced to call the usb_serial_flush procedure in the main loop of your application
usb_serial_write(byte in data)
usb_serial_write - write char to the USB port, blocking Asynchronuous serial send routine, using the USB Cummunication class Sends byte X (8 bit) to the USB host (via virtual COM port) Checks (and waits if necessary) if FIFO buffer is full Note that characters are dropped when the communcation channel on the USB host side is not opened (yet), this is a design choice in order to avoid lockup(s)
usb_serial_data'get() return byte
usb_serial_data'get() - read a char (blocking!) usb_serial_data'get() waits till a character has been received and returns it
usb_serial_data_available'get() return bit
No documentation found
usb_serial_port_open'get() return bit
Check if the serial port has been opened by the host.
usb_serial_read(byte out data) return bit
usb_serial_read - read char if available (non-blocking) usb_serial_read returns true if a character has been received, otherwise returns false. If function returns true, the data variable is valid, and contains the character that has been received. In other cases the data variable is not defined Note that characters are dropped when the communcation channel on the USB host side is not opened (yet), this is a design choice in order to avoid lockup(s)
_usb_serial_read(byte out data) return bit
_usb_serial_read - internal use only! _usb_serial_read returns true if a character has been received, otherwise returns false. If function returns true, the data variable is valid, and contains the character that has been received. In other cases the data variable is not defined Note that characters are dropped when the communcation channel on the USB host side is not opened (yet), this is a design choice in order to avoid lockup(s)
| 18f14k50 | 18f14k50_usb_serial.jal |
| 18f2450 | 18f2450_usb_serial.jal |
| 18f4550 | 18f4550_usb_serial.jal |
| 18f4550 | 18f4550_ir2serial.jal |
| 18f4550 | 18f4550_slip_poll_usb.jal |
| 18f67j50 | 18f67j50_slip_poll_usb.jal |


This site is hosted entirely on
GitHub. This site is no longer being actively contributed to by the original author (Wes Kendall), but it was placed on GitHub in the hopes that others would write high-quality MPI tutorials. Click
here for more information about how you can contribute.


Public Member Functions | |
| void | start () |
| Starts the timer. | |
| void | stop () |
| Stops the timer. | |
| int | getTimeElapsedInMilliseconds () |
| Returns the elapsed time in mulliseconds. | |
| std::string | getTimeElapsedString () |
| Returns a string of the time elapsed. | |
| bool | IsRunning () |
| Returns the timer's current running state. | |
Static Public Member Functions | |
| static std::string | timeAsString (int milliseconds) |
| int GameTimer::getTimeElapsedInMilliseconds | ( | ) |
| std::string GameTimer::getTimeElapsedString | ( | ) |
Returns a string of the time elapsed.
While the timer is running, this function will not return the same value in subsequent calls. If the timer is not running, this will return the time between the last call to start() and the last call to stop().
The string format returned is "[hours:]minutes:seconds.hundredths" Note that an 'hours' value of 0 will not be included in the string
| void GameTimer::start | ( | ) |
Starts the timer.
Once started the timer can only stopped by calling stop.


TERMINAL VELOCITY A Film Review Copyright Dragan Antulov 1999
The outcome of the latest bloodbath in Balkans would probably look like the ultimate humiliation for many Russians. But, actually, the worst humilitation for that former superpower lies not in the field of international politics, but in the field of popular entertainment. Once mighty empire is reduced to the source of stereotyped villains and cheesy plotlines for uninspired and unoriginal Hollywood filmmakers. One of such examples is TERMINAL VELOCITY, 1994 action thriller by Deran Sarafian.
The movie protagonist is Ditch Brodie (played by Charlie Sheen), maverick skydiving instructor who takes a flight one day in order to give parachuting lessons to beautiful stranger named Chris Morrow (Nastassja Kinski). During the flight, he flirts with her, but simple glancing away is enough for her to disappear from plane. The body is found on the ground, but Ditch is convinced that he had put her safety on. Faced with the manslaughter charges, he begins investigation of his own that would lead him to Chris, who seems to be alive and well. But it doesn't seem that it would be for long, because both of them are involved in conspiracy involving smuggling gold, and former KGB operatives who want to overthrow Russian government and restore Communism.
To be frank, I didn't expect much from this film yet I was disappointed. It wasn't the preposterous formulaic plot (certain mutant crossbreed between NORTH-NORTHWEST and Jan de Bont's SPEED), nor the cardboard characters the viewers don't care for. It wasn't even the not so original directing (one particular action scene is actually literally borrowed by Renny Harlin's DIE HARD 2). It wasn't Charlie Sheen, whose charisma and couple of wisecracking lines actually saved this film, turning it into unintentional comedy. The biggest disappointment was Nastassja Kinski, who obviously chose wrong film for her great comeback into the movie industry. Although she looks charming, she is anything but believable as tough intelligence operative, Russian to make things even more interesting. Villains are more convincing, as usual, although the main ones - played by James Gandolfini and Christopher MacDonald - doesn't look like Russian at all. However, although definitely and justifiably forgettable, TERMINAL VELOCITY is a film that can provide some entertainment for not very demanding audience.
RATING: 4/10 (+)
Review written on June 4th 1999
Dragan Antulov a.k.a. Drax Fido: 2:381/100 E-mail<EMAIL_ADDRESS>E-mail<EMAIL_ADDRESS>E-mail<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


AVSpeechSynthesizer
Written by Mattt Thompson on
Though we're a long way off from Hal or Her, we should never forget about the billions of other people out there for us to talk to.
Of the thousands of languages in existence, an individual is fortunate to gain a command of just two within their lifetime. And yet, over several millennia of human co-existence, civilization has managed to make things work, more or less, through an ad-hoc network of interpreters, translators, scholars, and children raised in the mixed linguistic traditions of their parents. We've seen that mutual understanding fosters peace, and that conversely, mutual unintelligibility destabilizes human relations.
It is fitting that the development of computational linguistics should coincide with the emergence of the international community we have today. Working towards mutual understanding, intergovernmental organizations like the United Nations and European Union have produced a substantial corpora of parallel texts, which form the foundation of modern language translation technologies.
Another related linguistic development is the Esperanto language, created by L. L. Zamenhof in an effort to promote harmony between people of different countries.
And while automatic text translation has reached an acceptable level for everyday communication, there is still a divide when we venture out into unfamiliar places. There is still much work to be done in order to augment our ability to communicate with one another in person.
Introduced in iOS 7, AVSpeechSynthesizer
produces synthesized speech from a given
AVSpeechUtterance
. Each utterance can
adjust its rate of speech and pitch, and be
configured to use any one of the available
AVSpeechSynthesisVoice
s:
NSString *string = @"Hello, World!";
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:string];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
AVSpeechSynthesizer *speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
[speechSynthesizer speakUtterance:utterance];
When speaking, a synthesizer can either be paused immediately or on the next word boundary, which makes for a less jarring user experience.
[speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord];
Supported Languages
Mac OS 9 users will no doubt have fond memories of the old system voices: Bubbles, Cellos, Pipe Organ, Bad News.
These can still be installed on Mac OS X. Just look under the "English (United States) - Novelty" voices in the "Dictation & Speech" preference pane.
In the name of quality over quantity, each language
is provided a voice for each major locale region. So
instead of asking for "Fred" and "Markus",
AVSpeechSynthesisVoice
asks for
en-US
and de-DE
.
As of iOS 7.1, [AVSpeechSynthesisVoice
speechVoices]
the following languages and
locales are support:
- Arabic (
ar-SA
) - Chinese (
zh-CN
,zh-HK
,zh-TW
) - Czech (
cs-CZ
) - Danish (
da-DK
) - Dutch (
nl-BE
,nl-NL
) - English (
en-AU
,en-GB
,en-IE
,en-US
,en-ZA
) - Finnish (
fi-FI
) - French (
fr-CA
,fr-FR
) - German (
de-DE
) - Greek (
el-GR
) - Hindi (
hi-IN
) - Hungarian (
hu-HU
) - Indonesian (
id-ID
) - Italian (
it-IT
) - Japanese (
ja-JP
) - Korean (
ko-KR
) - Norwegian (
no-NO
) - Polish (
pl-PL
) - Portuguese (
pt-BR
,pt-PT
) - Romanian (
ro-RO
) - Russian (
ru-RU
) - Slovak (
sk-SK
) - Spanish (
es-ES
,es-MX
) - Swedish (
sv-SE
) - Thai (
th-TH
) - Turkish (
tr-TR
)
NSLocale
and
NSLinguisticTagger
both use ISO 681
codes to identify languages.
AVSpeechSynthesisVoice
, however, takes
an IETF
Language Tag, as specified BCP 47 Document
Series. If an utterance string and voice aren't
in the same language, speech synthesis will fail.
This gist shows how to detect an ISO 681 language code from an arbitrary string, and convert that to an IETF language tag.
Delegate Methods
What makes AVSpeechSynthesizer
really
amazing for developers is the ability to hook into
speech events. An object conforming to
AVSpeechSynthesizerDelegate
can be
called when its speech synthesizer either starts or
finishes, pauses or continues, and as each range of
the utterance is spoken.
For example, an app, in addition to synthesizing a voice utterance, could show that utterance in a label, and highlight the word currently being spoken:
#pragma mark - AVSpeechSynthesizerDelegate
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer
willSpeakRangeOfSpeechString:(NSRange)characterRange
utterance:(AVSpeechUtterance *)utterance
{
NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:utterance.speechString];
[mutableAttributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor] range:characterRange];
self.utteranceLabel.attributedText = mutableAttributedString;
}
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer
didStartSpeechUtterance:(AVSpeechUtterance *)utterance
{
self.utteranceLabel.attributedText = [[NSAttributedString alloc] initWithString:self.utteranceString];
}
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer
didFinishSpeechUtterance:(AVSpeechUtterance *)utterance
{
self.utteranceLabel.attributedText = [[NSAttributedString alloc] initWithString:self.utteranceString];
}
See this example app for a demonstration of live text-highlighting for all of the supported languages.
Anyone who travels to an unfamiliar place returns with a profound understanding of what it means to communicate. It's totally different from how one is taught a language in High School: instead of genders and cases, it's about emotions and patience and clinging onto every shred of understanding. One is astounded by the extent to which two humans can communicate with hand gestures and facial expressions. One is also humbled by how frustrating it can be when pantomiming breaks down.
In our modern age, we have the opportunity to go out
in a world augmented by a collective computational
infrastructure. Armed with
AVSpeechSynthesizer
and the myriad other
linguistic technologies on iOS and elsewhere, we have
never been more capable of breaking down the forces
that most divide our species.
If that isn't universe-denting, then I don't know what is.


Preparation time
overnight
Cooking time
30 mins to 1 hour
Serves
Serves 4-6
Delicately flavoured, creamy sweetbreads are the offal of choice for many food lovers. Try them popcorn-style, with a touch of saucy frost.
For the frosted Worcestershire sauce, mix 400ml/14fl oz water with the Worcestershire sauce and treacle and season to taste. Put in the freezer for at least 4 hours. When you are ready to serve, scrape it with a spoon to create granite ice.
For the sweetbreads, rinse the sweetbreads under running cold water for 10 minutes and then place in a bowl, cover with water and place in the fridge for at least 3 hours or ideally overnight.
In a pot place the milk and rosemary, season well with salt and bring to a simmer. Strain the sweetbreads and add them to the simmering milk, let the milk come to a simmer again and remove from the heat. Let the sweetbreads cool down in the milk and then strain them.  (You can set aside in the fridge at this stage until you are ready to make the popcorn.)
For the popcorn, in a large lidded pan add enough vegetable oil to cover the bottom of the pan and add the corn kernels, cover with a lid and put on a high heat. When you can hear the corn kernels popping, reduce the heat and shake the pan to make sure most of the kernels will pop. Give them another minute, remove from the heat and let them sit for 5 minutes. Remove them from the pot and crush roughly in a food processor. Tip into a bowl.
Fill a deep-fat fryer or a large, deep, heavy-bottomed pan two-thirds full with vegetable oil. Heat the oil to 180C (use a thermometer to check the temperature if you're not using a deep-fat fryer). (CAUTION: Hot oil can be dangerous. Don't leave unattended)
Put the plain flour in a bowl and season with a pinch of salt.
For the tempura batter, mix the tempura flour with the sparkling water in a bowl until forms a smooth runny paste.
Pass the sweetbread pieces through seasoned flour, then through the tempura batter and finally coat them in the crispy popcorn.
Deep-fry until golden-brown, season with salt and serve with some frosted Worcester on the side.


Bautista Agut withdraws from Spain's Davis Cup team after the death of his father
by OmnisportRoberto Bautista Agut has withdrawn from Spain's Davis Cup team following the death of his father on Thursday.
Bautista Agut had played two singles matches for Spain at this week's tournament in Madrid, losing to Andrey Rublev on Tuesday before defeating Croatia's Nikola Mektic on Wednesday.
However, Spain will be without the 29-year-old – who is their number two player behind world number one Rafael Nadal – for the rest of the competition.
"We want to accompany Roberto in these hard times. He is an exceptional tennis player who symbolises the highest values of tennis and sports," Royal Spanish Tennis Federation (RFET) president Miguel Diaz said in a statement.
"He is an example, not only as an athlete, but also as a person. I want to transfer in my name all the support of Spanish tennis."
Five-time Davis Cup champions Spain face Argentina in the quarter-finals on Friday.