_The_Score_ (R) *** (out of ****)
Frank Oz, well-known for directing comedies such as most recent film, _Bowfinger_; and even better known as the man pulling the strings behind Yoda and Miss Piggy, is perhaps the last person one would expect to breathe some renewed life into the classic heist picture. Yet that's exactly what he and a superb cast do in the sleek entertainment that is _The_Score_.
"Renew" seems to have been the key idea behind _The_Score_, particularly in its story. The basic plot is something that has been seen many times before. Montreal-based career thief Nick (Robert DeNiro) wants out of the criminal life to settle down with his flight attendant girlfriend Diane (Angela Bassett). First, though, Nick agrees to one last heist at the urging of longtime associate Max (Marlon Brando)--the theft of a priceless French scepter held in a customs house. Two wild cards are put into play: one, said customs house is in Montreal, thus violating Nick's rule of not doing local jobs; and two, he must work with a young upstart named Jack (Edward Norton), who has already studied the inner workings of the building under the guise of a mentally challenged janitor.
Instead of trying to add new wrinkles to the time-worn recipe, Oz strips the genre down to its bare core. The plot is as simple as it sounds, and the twists in the story occur according to readily apparent schedule. Oz doesn't stop there, however. The film's R rating comes exclusively through language, for he doesn't allow himself the easy out of titillating or distracting the audience with gratuitous violence or sex. Hence it's that much more dependent on the cast to engage the viewer, and everyone lives up to their stellar reputations. A noticeably galvanized Brando appears to have a ball sharing scenes with DeNiro (perhaps because, if the stories are to be believed, that DeNiro himself directed them, not Oz, with whom Brando clashed), and the electricity emanates from the screen. Norton not so surprisingly keeps up with his elders with extraordinary ease. His live wire performance plays well against DeNiro's cool calm, making for an intriguingly volatile chemistry. Of the core cast, Bassett fares the least well--if only because her role is never more than the token love interest.
The no-frills mindset Oz brings to _The_Score_ puts the most pressure on himself when it comes time for the heist to take place. The pattern of obstacles thrown in Nick and Jack's way are obviously as meticulously calculated as the heist plans the pair map out, but Oz is able to keep the tension taut by sticking to the minimalist approach. There aren't any overwrought score cues or out-of-nowhere physical confrontations to artificially manufacture suspense; Oz is wise enough to know that a simple gesture such as having a stray leg briefly creep into the picture of a security monitor is enough to generate the real deal.
Touches like those and the film's attention to pure performance, both in front of and behind the camera, give _The_Score_ a distinctly old-fashioned feel--and in a season of CG effects _and_ thespians, such embracing of the basics is not only refreshing but feels downright innovative.
©2001 Michael Dequina
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>The Movie Report/Mr. Brown's Movie Site: www.mrbrownmovies.com www.filmthreat.com | www.cinemareview.com | www.digitalwidescreen.com on ICQ: #25289934 | on AOL Instant Messenger: MrBrown23
========== X-RAMR-ID: 29105 X-Language: en X-RT-ReviewID: 237082 X-RT-TitleID: 1108799 X-RT-SourceID: 636 X-RT-AuthorID: 1202 X-RT-RatingText: 3/4
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


R/biophysmodel_Colias.R
Tb_butterfly.Rd
Predicts body temperatures (operative environmental temperatures) of a butterfly in °C. Based on Kingsolver (1983, Thermoregulation and flight in Colias butterflies: elevational patterns and mechanistic limitations. Ecology 64: 534–545). Assumes butterfly basks with closed wings perpendicular to solar beam. Source: Buckley LB and Kingsolver JK. 2012. The demographic impacts of shifts in climate means and extremes on alpine butterflies. Functional Ecology https://doi.org/10.1111/j.1365-2435.2012.01969.x and subsequent publications.
Tb_butterfly( T_a, Tg, Tg_sh, u, H_sdir, H_sdif, z, D, delta, alpha, r_g = 0.3, shade = FALSE )
| T_a | is air temperature in °C |
|---|---|
| Tg | is surface temperature in °C in the sun |
| Tg_sh | is surface temperature in °C in the shade |
| u | is wind speed in m/s |
| H_sdir | is direct solar radiation flux in W/m^2 |
| H_sdif | is diffuse solar radiation flux in W/m^2 |
| z | is solar zenith angle in degrees |
| D | is thoracic diameter in cm |
| delta | is thoracic fur thickness in mm |
| alpha | is wing solar absorbtivity as a proportion. Range for Colias is 0.4 to 0.7. |
| r_g | is substrate solar reflectivity (proportion), see Kingsolver (1983) |
| shade | is whether body temperature should be calculate in sun (FALSE) or shade (TRUE) |
predicted body (operative environmental) temperature (°C)
Predicts body temperature (operative environmental temperature) of a butterfly in °C.
Other biophysical models:
Free_or_forced_convection()
,
Grashof_number_Gates()
,
Grashof_number()
,
Nu_from_Gr()
,
Nu_from_Re()
,
Nusselt_number()
,
Prandtl_number()
,
Qconduction_animal()
,
Qconduction_substrate()
,
Qconvection()
,
Qemitted_thermal_radiation()
,
Qevaporation()
,
Qmetabolism_from_mass_temp()
,
Qmetabolism_from_mass()
,
Qnet_Gates()
,
Qradiation_absorbed()
,
Qthermal_radiation_absorbed()
,
Reynolds_number()
,
Tb_CampbellNorman()
,
Tb_Fei()
,
Tb_Gates()
,
Tb_grasshopper()
,
Tb_limpetBH()
,
Tb_limpet()
,
Tb_lizard()
,
Tb_mussel()
,
Tb_salamander_humid()
,
Tb_snail()
,
Tbed_mussel()
,
Tsoil()
,
actual_vapor_pressure()
,
boundary_layer_resistance()
,
external_resistance_to_water_vapor_transfer()
,
heat_transfer_coefficient_approximation()
,
heat_transfer_coefficient_simple()
,
heat_transfer_coefficient()
,
saturation_vapor_pressure()
,
saturation_water_vapor_pressure()
if (FALSE) { Tb_butterfly( T_a=25, Tg=25, Tg_sh=20, u=0.4, H_sdir=300, H_sdif=100, z=30, D=0.36, delta=1.46, alpha=0.6, r_g=0.3) }


By creating an account you agree to our Terms of Services & Privacy Policy.
Already have an account? Login here.


{{requestMessage}}
{{resultMessage}}
New goal: {{goalVolume}}
Result: {{userResult}}. When W.B. asked for {{previousGoalVolume}}.
Scoreboard


National health insurance enrollment for international students
The most serious problem is the question of "How will I cope sudden sickness?" Without National Health Insurance, you must pay very high medical fee if you get sick. You have to realize it is inevitable to join The National Health Insurance! This service is also open to foreigners as well as Japanese citizens, but you have no right to receive the service unless you pay for your responsibility.
Joining the Scheme Is Basically from the Date of Arrival in Japan The date of joining scheme is based on the date of arrival in Japan. If the application is made later, the insurer will be required to pay the past premium for the period from the first day in Japan to the date of the application.
What is Covered by National Health Insurance?
- Members of the scheme basically pay 30% of medical fees. That is to say that 70% of the cost is covered by the scheme. (The following are the cases that the scheme is not applied and you have to pay all the cost; "extra charged private rooms" in hospitals, expensive medicines not listed in the scheme, special treatments such as having a gold tooth put in, baby delivery and abortion, etc.)
- Reimbursement of Medical Payment
- when you are injured in an accident and received a treatment at a hospital which is not under the National Health Insurance scheme, or when you got sudden sick or injury during a trip and received a treatment without submitting an insurance card
- attendance expenses for serious illness, which is approved by a doctor
- under the direction of doctor, when a patient receives massage, acupuncture, moxa cautery or osteopathy
- expenses for making a corset and a plaster
- expenses for blood transfusion which is not covered by the insurance
- transportation expenses from home to a hospital for a person with serious sickness
- Assistance for High Medical Expenses
- Delivery, Death
Under the following conditions, 70% of the cost will be reimbursed if the claim is approved even after you once paid all medical fees at time of treatment.
If an individual's medical costs for treatment at one hospital exceed a certain limit, there is a payment system for high-cost medical care where they can apply for a refund of the amount paid over that certain limit. However, it will be not covered for the fee of doctor's medical advice at regular outpatient treatments or the cost of special private room. For further details, please contact National Health Insurance department at the ward or city office.
With National Health Insurance, a woman can receive assistance of 420,000JPY (Approx. US$ 4,200) for a delivery. Likewise, the same amount will be given if there is a certificate or proof of miscarriage and premature birth if the pregnancy period is beyond four months (85 days)
At time of a member's death, 50,000JPY(Approx. US$ 500) to 70,000JPY(Approx. US$ 700) will be given to a person who held the funeral.
How to Join National Health Insurance
- You apply at the National Health Insurance section of the ward or city office for where you live. You will need your residence card and passport.
- If you live with your family, members of your family can also join the scheme. When you are applying, make sure that all the names of your family are listed on the card.
Changing of Address
If you move, you must go to the city office of the new residential area to apply for a new insurance card re-issued. If this procedure is not made, National Health Insurance will not be effective.


Next: NIL as a Component Value, Previous: Common Case in Pathname Components, Up: Interpreting Pathname Component Values


a dull, boring box, and that any innovation had stopped in the industry.
Steve Jobs and Apple thought differently. They were among the very few that professed quite the opposite: the PC had a very exciting future. As they put it, it had evolved throughout the years from the age of productivity, in the 1980s, where people used it for spreadsheets and databases; to the age of networking, in the 1990s, where it connected to the Internet; and it was now, in the early 2000s, entering its third age: that of the digital lifestyle. Consumers were increasingly starting to use all kinds of digital devices: digital cameras, camcorders, music players, PDAs... But these devices didn’t make sense without a computer. The personal computer was going to become the center or digital hub of this new digital lifestyle, making all its pieces — music, photos, movies, contacts, data — come together.


MARGARITA HAPPY HOUR A film review by Jeremiah Kipp Copyright 2001 filmcritic.com filmcritic.com
"I'm so exhausted all the time... Can't ask my mom for help... You wanna split some nachos?... So I spent my whole friggin' day at Medicaid... Drink up, ladies -- only 15 minutes left of happy hour!"
Five irresponsible late-twentysomething mommies meet at an El Cheapo Mexican restaurant to splurge on $2 Margaritas. What better way to hang on to their last vestige of rebellious slacker spirit? They drink to each other's health or bitch about the state of affairs while their two-year-old babies crawl around under the table having tea parties. It's pretty goddamned cute without being precious or sentimental.
Living in the artsy section of Brooklyn with seven roommates, sharp-witted freelance illustrator Zelda (Eleanor Hutchins), sporting a nasty scar on her cheek, is somehow just scraping by. Even if the kid is adorable, it's no picnic taking care of her Little Z (long-haired Jonah Leland). Our surly heroine is continually forced to deal with the system without the benefit of help from her affable fuck-up of a boyfriend, Max (Larry Fessenden, Habit). This couple is rough around the edges, but both care for the baby and still share feelings for each other even if the electric spell of first love is gone. Sure, he loves me -- he just can't stand to look at my face.
An assured directorial debut by Ilya Chaiken, Margarita Happy Hour won critical accolades at the 2001 Sundance Film Festival, receiving the catchy label of "Sex in the City for the downtown crowd." I guess that's someone's way of saying Margarita centers on dealing with the pressures of raising a baby in the starving artist milieu.
Comparing this authentic, lived-in low budget feature to a glossy TV show is something of a misnomer -- Chaiken's inventive directorial approach really harks back to 70's filmmakers like Robert Altman or Hal Ashby. That cinematic heyday was a time when "slice of life" actually meant empathetic, unsentimental warts 'n' all sketches of everyday life. It's great to see new directors as diverse as Aiyana Elliott (The Ballad of Ramblin' Jack), Jonathan Nossiter (Signs and Wonders), and Chaiken reclaiming that cinematic spirit.
The casting couldn't be better. As Zelda, Hutchins is as sharp as a whip with charisma to spare. Whether sparring with her boyfriend or telling a bedtime story to Little Z, she presents a character who is wholly authentic and believable.  In the same way Chaiken has found lived-in urban locations, cramped apartments and rickety stairs, she's also found an actress who completely fits into the environment of her film.
There are strong supporting turns from Fessenden as the ne'er do well boyfriend, investing the role with surprising warmth and complexity, and Holly Ramos as Zelda's long suffering buddy, Natali, just out of rehab, all sad eyes and gimlet smiles. Her delicate, careworn performance defies junkie stereotypes.
Zelda's flashbacks are seamlessly incorporated into the present day, detailing happier times when she picked up Max in a bar ("I hope you write better than you play pool,") or walked the streets of Manhattan with Natali in search of par-tayy central. Hedonism is fun, kids. You can only evade mature decisions for so long, though. Chaiken gives her heroine a handful of tough decisions, leading to some dramatic contrivances that seem a bit heavy handed in this otherwise naturalistic, perceptive scenario.
These faults are easily forgiven, even forgotten, when Chaiken unveils her spacious, clearly motivated open ending. Margarita Happy Hour is that rarity in movies -- as though the narrative has begun long before the opening reel and will continue after the closing credits end. A full world has been presented onscreen, not some series of carefully structured plot points building to a pat resolution. Let's be honest, how many times do you watch a movie feeling like the characters actually had lives outside of the screenplay?
It'd be a shame not to mention at least one of the character details that Chaiken literally throws away during the 98 minute running time. The scene has little to do with the plot, but adds to the cohesiveness of Margarita's world: Larry Fessenden is walking down the street with a cuppa coffee, not a care in the world. He stops to light a cigarette, and one of those obnoxious bike messengers sideswipes him. "MY FUCKIN' COFFEE!" It goes flying. Not leaving well enough alone, the messenger rides back and forth, taunting him. Ha ha.
 Let's just chalk it up as another classic New York moment in a movie jam-packed with them.

Visit filmcritic.com on the Web at http://www.filmcritic.com
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


Completely failed files: 2; Completely failed subtests: 7; Failure level: 7/107 (6.54%)
| Test | FF30 | FF33 | UC10 |
|---|---|---|---|
| /proximity/ProximityEvent_tests.html (5/81, 6.17%, 4.67% of total) | TIMEOUT | TIMEOUT | - |
| value of undefined resolves to NaN | FAIL | FAIL | - |
| treat object as null | FAIL | FAIL | - |
| treat object with non-callable call property as null | FAIL | FAIL | - |
| treat array as null | FAIL | FAIL | - |
| treat non-callable host object as null | FAIL | FAIL | - |
| /proximity/idlharness.html (2/26, 7.69%, 1.87% of total) | OK | OK | ERROR |
| DeviceProximityEvent interface: existence and properties of interface object | FAIL | FAIL | FAIL |
| UserProximityEvent interface: existence and properties of interface object | FAIL | FAIL | FAIL |


async = require "async"
fs = require "fs"
path = require "path"
{mkdirp} = require "./util"
{chown} = require "./util"
util = require "util"
The Installer
class, in conjunction with the private
InstallerFile
class, creates and installs local and system
configuration files if they’re missing or out of date. It’s used by
the Pow install script to set up the system for local development.
async = require "async"
fs = require "fs"
path = require "path"
{mkdirp} = require "./util"
{chown} = require "./util"
util = require "util"
Import the Eco templates for the /etc/resolver
and launchd
configuration files.
resolverSource = require "./templates/installer/resolver"
firewallSource = require "./templates/installer/cx.pow.firewall.plist"
daemonSource = require "./templates/installer/cx.pow.powd.plist"
InstallerFile
represents a single file candidate for installation:
a pathname, a string of the file’s source, and optional flags
indicating whether the file needs to be installed as root and what
permission bits it should have.
class InstallerFile
constructor: (@path, source, @root = false, @mode = 0o644) ->
@source = source.trim()
Check to see whether the file actually needs to be installed. If
the file exists on the filesystem with the specified path and
contents, callback
is invoked with false. Otherwise, callback
is invoked with true.
isStale: (callback) ->
fs.exists @path, (exists) =>
if exists
fs.readFile @path, "utf8", (err, contents) =>
if err
callback true
else
callback @source isnt contents.trim()
else
callback true
Create all the parent directories of the file’s path, if
necessary, and then invoke callback
.
vivifyPath: (callback) =>
mkdirp path.dirname(@path), callback
Write the file’s source to disk and invoke callback
.
writeFile: (callback) =>
fs.writeFile @path, @source, "utf8", callback
If the root flag is set for this file, change its ownership to the
root
user and wheel
group. Then invoke callback
.
setOwnership: (callback) =>
if @root
chown @path, "root:wheel", callback
else
callback false
Set permissions on the installed file with chmod
.
setPermissions: (callback) =>
fs.chmod @path, @mode, callback
Install a file asynchronously, first by making its parent directory, then writing it to disk, and finally setting its ownership and permission bits.
install: (callback) ->
async.series [
@vivifyPath,
@writeFile,
@setOwnership,
@setPermissions
], callback
The Installer
class operates on a set of InstallerFile
instances.
It can check to see if any files are stale and whether or not root
access is necessary for installation. It can also install any stale
files asynchronously.
module.exports = class Installer
Factory method that takes a Configuration
instance and returns
an Installer
for system firewall and DNS configuration files.
@getSystemInstaller: (@configuration) ->
files = [
new InstallerFile "/Library/LaunchDaemons/cx.pow.firewall.plist",
firewallSource(@configuration),
true
]
for domain in @configuration.domains
files.push new InstallerFile "/etc/resolver/#{domain}",
resolverSource(@configuration),
true
new Installer files
Factory method that takes a Configuration
instance and returns
an Installer
for the Pow launchctl
daemon configuration file.
@getLocalInstaller: (@configuration) ->
new Installer [
new InstallerFile "#{process.env.HOME}/Library/LaunchAgents/cx.pow.powd.plist",
daemonSource(@configuration)
]
Create an installer for a set of files.
constructor: (@files = []) ->
Invoke callback
with an array of any files that need to be
installed.
getStaleFiles: (callback) ->
async.select @files, (file, proceed) ->
file.isStale proceed
, callback
Invoke callback
with a boolean argument indicating whether or
not any files need to be installed as root.
needsRootPrivileges: (callback) ->
@getStaleFiles (files) ->
async.detect files, (file, proceed) ->
proceed file.root
, (result) ->
callback result?
Installs any stale files asynchronously and then invokes
callback
.
install: (callback) ->
@getStaleFiles (files) ->
async.forEach files, (file, proceed) ->
file.install (err) ->
util.puts file.path unless err
proceed err
, callback


Gold: Doji on D1 questions bulls amid mixed trade sentiment
by Anil Panchal- Gold fails to extend the latest recovery as mixed headlines concerning the US-China phase on deal question markets.
- US House of Representatives’ support for Hong Kong Bill flares up the trade tension.
- A bearish candlestick formation joins mildly positive catalysts for the US dollar (USD), which in turn can pull the bullion downwards.
Although the United States’ (US) support for Hong Kong protesters favors the broad risk-off momentum, the mixed response from Chinese diplomats and a bearish candlestick formation question Gold buyers around $1,473 during early Thursday.
Following the Senate’s approval for Hong Kong Human Rights Bill, the House of Representatives also marked its assent on the proposal that could activate regular reviews of Hong Kong's special financial status and bar exports of many crowd control munitions to the Hong Kong police. The bill is yet to be signed by US President Donald Trump, who is widely expected to confirm his previous support for the Asian nation to exert additional pressure on China.
Even so, China’s Vice-Premier and Chief trade negotiator Liu He said he is "cautiously optimistic" about reaching a phase one trade deal, as conveyed by Bloomberg. Alternatively, China’s Think Tank keeps the risk-off alive while saying that the Hong Kong issue is definitely a negative factor in the US-China trade talks.
As a result, the US 10-year treasury yields seesaw around 1.73% while S&P 500 Futures stay negative around 3,100.
That said, the recent minute statement concerning the Federal Open Market Committee (FOMC) reiterated its static bias towards the present monetary policy, which in turn failed to impress the USD buyers. However, the greenback has recently been the market’s favorite due to its safe-haven allure.
Moving on, trade/political headlines will keep the driver’s seat while second-tier manufacturing and housing data from the US could offer intermediate moves.
Technical Analysis
Given the pair’s formation of a Doji candlestick on the daily (D1) chart, prices are likely to extend the latest pullback towards a monthly low near $1,445. However, an upside clearance of 100-day Simple Moving Average (SMA) level of $1,481/82 could propel prices to $1,500.
additional important levels
| Overview | |
|---|---|
| Today last price | 1472.66 |
| Today Daily Change | -0.31 |
| Today Daily Change % | -0.02% |
| Today daily open | 1472.97 |
| Trends | |
|---|---|
| Daily SMA20 | 1482.74 |
| Daily SMA50 | 1491.44 |
| Daily SMA100 | 1481.25 |
| Daily SMA200 | 1396.66 |
| Levels | |
|---|---|
| Previous Daily High | 1478.86 |
| Previous Daily Low | 1466.12 |
| Previous Weekly High | 1474.6 |
| Previous Weekly Low | 1445.8 |
| Previous Monthly High | 1519.04 |
| Previous Monthly Low | 1455.5 |
| Daily Fibonacci 38.2% | 1473.99 |
| Daily Fibonacci 61.8% | 1470.98 |
| Daily Pivot Point S1 | 1466.44 |
| Daily Pivot Point S2 | 1459.9 |
| Daily Pivot Point S3 | 1453.69 |
| Daily Pivot Point R1 | 1479.18 |
| Daily Pivot Point R2 | 1485.39 |
| Daily Pivot Point R3 | 1491.93 |


gpi Tracked Payment - Select
Pay following amount:
from account
Debtor Name:
Alfred Jean-Charles
/ Id:
My ID
debtor Account:
BE25 0056 8328 8588
/ BIC:
GEBABEBB
Confirm Payment
Sending payment information to merchant...


Dried fruit is fruit from which the majority of the original water content has been removed either naturally, through sun drying, or through the use of specialized dryers or dehydrators.Dried fruit has a long tradition of use dating back to the fourth millennium BC in Mesopotamia,and is prized because of its sweet taste,nutritive value,[1] and long shelf life.
A spice is a seed, fruit, root, bark, or other plant substance primarily used for flavoring, coloring or preserving food. Spices are distinguished from herbs, which are the leaves, flowers, or stems of plants used for flavoring or as a garnish. Many spices have antimicrobial properties,[1] which may explain why spices are more prominent in cuisines originating in warmer climates, where food spoilage is more likely, and why the use of spices is more common with meat, which is particularly susceptible to spoiling.[2] Spices are sometimes used in medicine, religious rituals, cosmetics or perfume production.
Our Varieties in Spices
Turmeric is the spice that gives curry its yellow color. It has been used in India for thousands of years as a spice and medicinal herb. Recently, science has started to back up what Indians have known for a long time — it really does contain compounds with medicinal properties.
Chili powder (also spelled chile, chilli, or, alternatively, powdered chili) is the dried, pulverized fruit of one or more varieties of chili pepper, sometimes with the addition of other spices (where it is also sometimes known as chili powder blend or chili seasoning mix).
Coriander, popularly known as dhania in India, is extensively used across various regional cuisines to flavour curries, stir fries, snacks, breakfast items – you name it! It is popular in Mexico and the south western part of USA too, where it is utilised in salsas and mixed greens to burritos and meat dishes.
Amchur Powder, which is also referred as mango powder, is one of the Indian fruity spices powder that is made from dried unripe green mangoes.Apart from adding flavour, colour and taste to the food, amchur powder comprises various health benefits. It contains many nutrients including vitamin A, E and C, and antioxidants, and is used in preparing many Ayurvedic medicines.
Spice mixes are blended spices or herbs. Blends such as chili powder, curry powder, herbes de Provence, garlic salt, and other seasoned salts are traditionally sold pre-made by grocers, and sometimes baking blends such as pumpkin pie spice are also available.
Black pepper (Piper nigrum) is a flowering vine in the family Piperaceae, cultivated for its fruit, known as a peppercorn, which is usually dried and used as a spice and seasoning. When fresh and fully mature, the fruit is about 5 mm (0.20 in) in diameter and dark red, and contains a single seed, like all drupes.
Kala namak or Karrupu Uppu is a kiln-fired rock salt used in South Asia with a sulphurous, pungent-smell. It is also known as "Himalayan black salt", Sulemani namak, bit lobon, kala noon, or pada loon and manufactured from the salts mined in the regions surrounding the Himalayas.
Cumin is a flowering plant in the family Apiaceae, native to southwestern Asia including the Middle East. Its seeds – each one contained within a fruit, which is dried – are used in the cuisines of many cultures in both whole and ground form.


#include <featureline.h>
Inherits FeatureOutputData.
Definition at line 19 of file featureline.h.
Public Member Functions | |
| FeatureLine * | clone () const |
| FeatureLine (const FeatureLine &rhs) | |
| FeatureLine (ObjectID object_id) | |
| FeatureLine & | operator= (const FeatureLine &rhs) |
| void | printHeader (std::ostream &s) const |
| void | printLine (std::ostream &s) const |
| void | setEndPoints (float x1, float y1, float x2, float y2) |
| float | x1 () const |
| float | x2 () const |
| float | y1 () const |
| float | y2 () const |
Protected Member Functions | |
| virtual void | appendBuffer (std::vector< uint8 > &buffer) const |
| virtual uint32 | numDataBytes () const |
| virtual void | readFromBuffer (const std::vector< uint8 > &buffer, int &read_pos_inout) |
| FeatureLine | ( | ObjectID | object_id | ) | [explicit] |
| object_id | The Serializable ID of this object |
| virtual void appendBuffer | ( | std::vector< uint8 > & | buffer | ) | const [protected, virtual] |
| FeatureLine* clone | ( | ) | const [virtual] |
| virtual uint32 numDataBytes | ( | ) | const [protected, virtual] |
| void printHeader | ( | std::ostream & | s | ) | const [virtual] |
| void printLine | ( | std::ostream & | s | ) | const [virtual] |
| virtual void readFromBuffer | ( | const std::vector< uint8 > & | buffer, | |
| int & | read_pos_inout | |||
| ) | [protected, virtual] |
| void setEndPoints | ( | float | x1, | |
| float | y1, | |||
| float | x2, | |||
| float | y2 | |||
| ) |
Set the endpoints of the line.
| x1 | X-coordinate of the start of the line in normalised image coordinates | |
| y1 | Y-coordinate of the start of the line in normalised image coordinates | |
| x2 | X-coordinate of the end of the line in normalised image coordinates | |
| y2 | Y-coordinate of the end of the line in normalised image coordinates |
y1 in range 0..1 or y1 == invalidValue()
x2 in range 0..1 or x2 == invalidValue()
y2 in range 0..1 or y2 == invalidValue()
| float x1 | ( | ) | const |
| float x2 | ( | ) | const |
| float y1 | ( | ) | const |
| float y2 | ( | ) | const |


Babies acquire knowledge from parents, and the environment and learn from it.
AI acquires data from the sensors and learns from it.
Input
Data
Learning
Mistakes
Output
Know your AI
What is AI ?
Build your AI
Build your AI
Ethical problems in AI
Will AI take over the world?
Comparing Human
babies and AI


About Us
You pumkin spice-sippin', Seattle cunts are in luck! Here at Pat's we've developed
a way to bake fish right into cookies! Started just last year, right here in Seattle, we've already expanded to 5 locations with more on the way. Thanks to the support of this incredible depressing city we've served up over 700,000 cookies. We look forward to our further expansion and thank you all for your fucked palletes and support!
Hours of Operation
All of our locations are open from 6am through 8pm, leaving you plenty of time both before and after sitting at that job you hate to grab some of our moderately, locally famous treats. To find all of our locations click the Locations link in the navigation bar, above.
Testimonials
Harry Goldmansteinbergstien -
"These cookies are fantastic! My grandkids LOVE them! I know this because I got them all Pat's Salmon Cookies for Hanukkah and the majority found themselves speechless and unable to do anything but nod their heads [in approval] while eating them. I haven't seen them that excited since thier passover readings!"
The Reynolds Family -
"We just can't buttfuckin' get enough of Pat's Salmon Cookies! Breakfast: Pat's. Lunch: Pat's.
Dinner: grilled lemon salmon filets. Desert: Pat's!  (Reynolds family pictured below)
Pat's Store open now!
Your voices have been heard! We are proud to announce the newest addition to Pat's Salmon Cookies - the Pat's Salmon Cookies online store!


Slim HTML example
However you can also use interpolation.
page was generated at 2014-08-05 17:30
Mixing with normal Slim is also possible:
1
2
3


Angular Intro
Name:
The name is
My first expression: {{ test/10 }}
Name:
{{name}}
Number:
{{test=number/10}}
First Name:
Last Name:
Full Name: {{test2 + " " + lastName}}
Test Input :


To have a good job in one of the famous animation studios in the world.
And to learn more about the advance techniques as i work along. And to
be known as one of the best animator someday.
Personal Details
Name: Jhon Lawrence A. Hortaleza
Address: #95 pinpin street, Palma Urbano Baguio City
Nationality: Filipino
Age: 20
Date of Birth: August 13, 1996
Mobile:<PHONE_NUMBER>5
Email<EMAIL_ADDRESS>Educational Background
Elementary
- Blessed Angels Achievers School
High School
- Blessed Angels Achievers Integrated School
College
- University of the Cordilleras
Skills and Qualifications
Have knowledge in Java Programming
Good in Photoshop, Illustrator, Manga Studio, Blender, Crazy talk, ClipStudio Paint etc.


current position
starting position
display as number
rotor type
reflector type
plugboard
plugboard
to morse


<%- include components/contact-modal.html %> <%- include components/navbar.html %>
Menu
Menu
<%- include components/menu-content.html%>
<%- include components/footer.html %>


Here you can follow along with the Web Development Quickstart lessons. We will start from the beginning with very simple technology and techniques. Each page is built (as much as possible) using the skills you are learning.


Some of my passions include technology, sports, TV/Movies and food.
I enjoy writing code with these technologies
Click here for a list of courses I've completed.
You can reach me by email


This tool is used to aid in the design of a simple construction dewatering system in an unconfined aquifer underlain by bedrock or a low permeability layer. The system consists of one or more wells that fully penetrate the aquifer. Steps:
1. Enter aquifer properties
Enter the average hydraulic conductivity of the aquifer, the average bedrock elevation, and the average water table elevation prior to pumping.
2. Enter the project parameters
Enter the total pumping rate (each well will pump an equal fraction of this amount and the desired water table elevation (typically at or below the bottom of the planned excavation).
3. Set map features
Use the navigation tools on the map to locate your project and then use the rectangle tool to indicate the location of your excavation and use the point tool on the map to enter the locations of your wells.
4. Perform calculations
Click on the "Calculate Water Table Elevations" tool to perform the drawdown calculations and display the results on the map.


is_char(obj)
Return true
if obj
is a character,
otherwise return false
.
Characters are atomic objects representing letters, digits, special symbols such as $ or _, and certain non-graphic control
characters such as space and newline. Characters literals have the \
prefix. The written character representation of
the letter A, for example, is \A
.
The following are special literals that represent non-graphic characters:
\newline |
\space |
\return |
\tab |
\backspace |
\alarm |
\vtab |
\esc |
\delete |
\nul |
Any Unicode character may be written with the
syntax \xhh
, \uhhhh
or \Uhhhhhhhh
where n
consists of two, four or eight hexadecimal digits representing a valid Unicode scalar value.
is_char(\a)
// true
is_char(\2)
// true
is_char(2)
// false
is_char(\xef)
// true
is_char(\space)
// true


Did one of your friends just say something funny, stupid, or both? Now you can immortalize it on the internet forever! Getting started is easy! Simply login or create a new account below, add each-other as friends, and start adding quotes! It's really that easy. Never forget that hilarious or insightful line again.
Nobody will be able to see your quotes unless you accept them as a friend. Your moments of weakness are safe with us.
Warning! This site requires Internet Explorer 8, or any other modern browser.
"{{quote}}"
{{#if isOwner}} {{/if}} {{#unless isOwner}} {{#unless isFaved}} {{else}} {{/unless}} {{/unless}} {{/if}} {{#unless selectedQuote}}Your api key:
{{key}}


FACT CHECK: Melaye lied, these are not Bello’s fake ‘soldiaers’
by Timileyin OmilanaSenator Dino Melaye on November 15 posted a picture of four Nigerian soldiers holding up four fingers in each of their hands.
The sign was made popular by the Nigerian President Muhammadu Buhari during the presentation of the 2019 budget to the National Assembly at the end of 2018.
Buhari was seeking reelection then four another four-year term and the symbol was quickly adopted by his party, campaign team and supporters.
Four Nigerian soldiers were among those who held up the sign in the days leading up to the election in February. The picture of the soldiers drew the ire of many Nigerians who felt they should be apolitical and hold allegiance to Nigeria and not the president.
The Nigerian Army said it was aware of what the soldiers but ” dissociate itself from the pictures of the four armed men dressed in military camouflage doing a 4-by-4 fingers sign connoting a campaign symbol of a political party.”
On November 15, Senator Dino Melaye posted the same picture to his Twitter handle. But he claimed the soldiers were supporters of Kogi State, Governor Yahaya Bello.
“Bello’s fake soldiaers (sic),” he said in the caption accompanying the picture.
Bello, a member of the APC and an ally of Buhari, has used the 4+4 sign at his campaign on many occasions.
But the soldiers, whose pictures Melaye posted, were clearly not his supporters. A reverse image search showed that the picture was used by a number of publications including, BBC Pidgin, Channels and Daily Post in February.
It went viral before then.


CrimPapers
Articles published on 23 July 2020
On 23 July 2020, 12 new articles were published in 11 journals.
Pursuing A Correctional Career: the Motivations and Reasons For Staying by Ethan M. Higgins, Kristin Swartz
Effects of School Resource Officers on School Crime and Responses to School Crime by Denise C. Gottfredson,
scott Crosse,
zhiqun Tang,
erin L. Bauer,
michele A. Harmon,
carol A. Hagen,
angela D. Greene
Law in Action: Local-Level Prostitution Policies and Practices and Their Effects on Sex Workers by Anna Di Ronco
The Promise and Challenge of Activity-Based Crime Rates: A Comparison of the Usa, Canada, and Australia
Psychiatric and Forensic Characteristics of Sex Offenders With Child and With Adult Victims by Goran Arbanas, Paula Marinovic, Nadica Buzina
Protecting Against Misinformation: Examining the Effect of Empirically Based Investigative Interviewing on Misinformation Reporting
Comparing the Impact of Household Gun Ownership and Concealed Carry Legislation on the Frequency of Mass Shootings and Firearms Homicide by Emma E. Fridel
Chinese Police Officers’ Attitudes Toward Domestic Violence Interventions: Do Training and Knowledge of the Anti-Domestic Violence Law Matter? by Kai Lin, Ivan Y. Sun, Yuning Wu, Jia Xue
Feeling Guilty: Little Effect on False Confession Rate by Teresa Schneider, Melanie Sauerland, Laura Grady, Aniek Leistra, Stephanie van Lier, Harald Merckelbach
Islam, Authoritarianism, and Underdevelopment by Dipak K. Gupta
The Isis Reader: Milestone Texts of the Islamic State Movement by Daniel Milton
Resilience in Children and Adolescents Survived Psychologically Traumatic Life Events: A Critical Review of Application of Resilience Assessment Tools For Clinical Referral and Intervention by Sujata Satapathy, Saloni Dang, Rajesh Sagar, S. N. Dwivedi


Home
Categories
Foods
Drinks
Contact
Explore Foods
Pizza
Burger
Momo
Explore Drinks
Boba
Matcha Green Latte
Mocktails
All rights reserved. Designed By
Aditya Budi | ID


Rule Configuration
The most important thing you’ll configure with Stein are rules.  It might be some rule set such as a region to be deployed, naming convention, or some linting. Or it can be a higher level component such as an email provider, DNS record, or database provider.
This page assumes you’re familiar with the configuration syntax already.
Example
A rule
configuration looks like the following:
rule "replicas" {
description = "Check the number of replicas is sufficient"
conditions = [
"${jsonpath(".spec.replicas") > 3}",
]
report {
level = "ERROR"
message = "Too few replicas"
}
}
Description
The rule
block creates a rule set of the given NAME (first parameter). The name must be unique.
Within the block (the { }
) is configuration for the rule.
Meta-parameters
There are meta-parameters available to all rules:
description
(string) - A human-friendly description for the rule. This is primarily for documentation for users using your Stein configuration. When a module is published in Terraform Registry, the given description is shown as part of the documentation.depends_on
(list of strings) - Other rules which this rule depends on. This rule will be skipped if the dependency rules has failed. The rule name which will be described in “depends_on” list should follow as “rule.xxx”.precondition
(configuration block; optional) -cases
(list of bools) - Conditions to determine whether the rule should be executed. This rule will only be executed if all preconditions return true.
conditions
(list of bools) - Conditions for deciding whether this rule passes or fails. In order to pass, all conditions must return True.report
(configuration block) -level
(string) - Error level. It can take “ERROR” or “WARN” as the level. In case of “ERROR”, this rule fails. But in case of “WARN”, this rule doesn’t fail.message
(string) - Error message. Let’s write the conditions for passing the role here.
Syntax
The full syntax is:
rule NAME {
description = DESCRIPTION
[depends_on = [NAME, ...]]
[PRECONDITION]
conditions = [CONDITION, ...]
REPORT
}
where PRECONDITION is:
precondition {
cases = [CONDITION, ...]
}
where REPORT is:
report {
level = [ERROR|WARN]
message = MESSAGE
}


Waiting for job to complete...
Generating Results2....
Generating the Results2 file failed.
WARNING: Results generated before Nov 14, 2019 do not render in Chrome M80 or newer. See crbug.com/1021137.


Restangular
Restangular.all('data').doGET().then(function(response){
//results are returned under data attribute because of the API Response Macro below
console.log(response.data);
});
Restangular is an AngularJS service to handle Rest API Restful Resources properly and easily
API Response Macro
//return your data using the api response macro
return response()->api($data);
ResponseMacroServiceProvider returns your data inside the
data object.
You can customize it to include other properties.
It's also useful to differentiate data from the default Restangular methods.
Also route versioning is configured for you inside
routes.php file and
angular/config/restangular.js.


--- title: mCognito Labs --- mCognito Labs Software Development made simple. Contact Us sdsdsdsdsds
Software Development made simple.
Contact Us
sdsdsdsdsds


My Own Header
I am typing something Here ou go.
I am typing something on line 2.
Some message here.
More message here.
This page uses Javascript. Your browser either doesn't support Javascript or you have it turned off. To see this page as it is meant to appear please use a Javascript enabled browser.


| dbDriver {DBI} | R Documentation |
These methods are deprecated, please consult the documentation of the individual backends for the construction of driver instances.
dbDriver()
is a helper method used to create an new driver object
given the name of a database or the corresponding R package. It works
through convention: all DBI-extending packages should provide an exported
object with the same name as the package. dbDriver()
just looks for
this object in the right places: if you know what database you are connecting
to, you should call the function directly.
dbUnloadDriver()
is not implemented for modern backends.
dbDriver(drvName, ...) dbUnloadDriver(drv, ...)
drvName |
character name of the driver to instantiate. |
... |
any other arguments are passed to the driver |
drv |
an object that inherits from |
The client part of the database communication is
initialized (typically dynamically loading C code, etc.) but note that
connecting to the database engine itself needs to be done through calls to
dbConnect
.
In the case of dbDriver
, an driver object whose class extends
DBIDriver
. This object may be used to create connections to the
actual DBMS engine.
In the case of dbUnloadDriver
, a logical indicating whether the
operation succeeded or not.
Other DBIDriver generics:
DBIDriver-class
,
dbCanConnect()
,
dbConnect()
,
dbDataType()
,
dbGetInfo()
,
dbIsReadOnly()
,
dbIsValid()
,
dbListConnections()
Other DBIDriver generics:
DBIDriver-class
,
dbCanConnect()
,
dbConnect()
,
dbDataType()
,
dbGetInfo()
,
dbIsReadOnly()
,
dbIsValid()
,
dbListConnections()
# Create a RSQLite driver with a string d <- dbDriver("SQLite") d # But better, access the object directly RSQLite::SQLite()


{% extends "base.html" %} {% block title %}404 (Not Found){% endblock %} {% block heading %}404 — Not Found{% endblock %} {% block content %}
The page you requested, "{{ request_path }}", could not be found.


Document Creator is a software developed by
Journet Nicholas (journet [at] labri.fr) and
Boris Mansencal (boris.mansencal [at] labri.fr).
Font creator has been developed by
T. Autret,
A. Boschet,
T. Labrousse,
R. Tisné ,
J. Gouraud,
A. Borde, P. Beziau, M. Bazalgette and Z. Taoufik.
Design by F. Bruneau
Made with libnavajo and OpenCV
Bootstrap Portfolio Themes


Ohk , what about orientation for Unsplash?
-----
Mixed
Portrait
Landscape
Squarish
Custom
What is the height of image you want?
and width should be?
Back
Next


featured work Portfolio Site Github Link Interactive Resume Github Link Website Optimization Github Link


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
THE HIGH COURT OF JHARKHAND AT RANCHI A.B.A. No. 245 of 2016 ..... Shatrughan Prasad Singh @ Shatrughan Singh ..... .... Petitioner Versus State of Jharkhand ..... .... Opposite Party CORAM: HON'BLE MR. JUSTICE RAVI NATH VERMA For the Petitioner : Mr. Ashutosh Kr. Singh, Advocate For the State : Mr. Gouri S. Prasad, APP 03/ 22.02.2016
The sole petitioner Shatrughan Prasad Singh @ Shatrughan Singh has moved this Court for grant of privilege of anticipatory bail in connection with Hunterganj P.S. Case No. 130 of 2015, instituted under Sections 379 of the Indian Penal Code and also under Section 21 MMDR Act, 2007, Section 21 of the Air Pollution Control and Prevention Act, Section 54 of the Jharkhand Mines Minerals Concession Rules, 2004 and Section 8 of the Jharkhand Mineral Sales Act, 2007.
Heard learned counsel for the petitioner and learned counsel representing the State.
The prosecution case relates to illegal mining of stones. Learned counsel appearing for the petitioner submitted that the petitioner is a licencee granted by the Department of Mines and Minerals and licence has also be granted under the Water ( Prevention and Control of Pollution) Act, 1974. Hence the petitioner had the right to store stones.
Learned Counsel representing the State has no serious objection. Considering the submissions of the counsels, facts of case and counter case and the allegation, I am inclined to grant the privilege of anticipatory bail to the sole petitioner, Shatrughan Prasad Singh @ Shatrughan Singh in the event of his arrest or surrender within a period of two weeks from the date of this order and shall be released on bail on furnishing bail bond of Rs. 10,000/- (Rupees Ten Thousand) with two sureties of the like amount each to the satisfaction of learned Sub-Divisional Judicial Magistrate, Chatra in connection with Hunterganj P.S. Case No. 130 of 2015 ( G. R. No. 1096 of 2015) subject to the conditions laid down under section 438 (2) Cr. P.C.
(R.N.Verma, J.) Anjali


Functional programming in C 2008/03/03
I've been meaning to write this post for some time to document how I avoid the giant-if-statement-with-strcmp()
problempattern when writing C programs.
The solution to every problem in C is to use pointers. Keeping with that lemma, it's possible, beneficial and even fun to make pointers to functions do your bidding without the pile of if
or switch
statements typical of most student programming projects. It's really close enough that I started calling it functional programming years ago even though this is still a far cry from Lisp/Python/JavaScript/whatever. It doesn't matter because C is still awesome.
Use the STL, Luke
I'm cheating a bit when I say functional programming in C. The use case I'm going to present is a C++ sample but there's no reason why you can't hash your own table in straight C99. I just don't care to myself. The example uses the STL map
class to map strings to functions, making it trivially easy to build your own shell-like app that takes some argument and dispatches a function to make it so. The map provides the nice dispatch-y interface but there's no reason you couldn't do something like this in plain C:
void foo(int i) { printf("You called foo(%d)!\n", i); } void bar(void(*)(int) f) { (*f)(2); }
Anyone fluent in a scripting language that isn't PHP will likely understand exactly what's going on here. foo
is a simple function that does nothing interesting. bar
is a function that takes as its argument a pointer to a function. That function can't return anything and must take a single integer argument. Many will call foul here saying that the strong type restrictions here make this sort of "functional programming" rather useless. I say nay and cite curvr.cc as my example. In any language, a function lacking any expectations for its arguments will be rather tedious. C doesn't give you this as a way to shoot yourself in the foot (there are so many other ways, however).
Function pointer declaration
The simplest way I know to explain the difficult syntax of function pointer declaration is an analogy to something easy like a character and a pointer to a character.
char c
: char * p
:: void foo(int i)
: void (*)(int)
The first half declares a character, c
and a pointer, p
that can point to c
. Similarly, the second half declares a void function foo
that takes an integer argument and a pointer to a void function that takes an integer argument.
Now for the useful part
Using this pattern for creating function pointers we can now define a few functions and map them in a useful way. This is again taken from my curvr.cc file (more info about curvr).
// First a few function prototypes to map int curve(Magick::Image & img); int bigcurve(Magick::Image & img); int anticurve(Magick::Image & img); // Then the map part int main(int argc, char * * argv) { // Magically figure out a string called process // Setup the map using the address operator (&) std::map<std::string, int (*)(Magick::Image &)> processes; processes["curve"] = &curve; processes["bigcurve"] = &bigcurve; processes["anticurve"] = &anticurve; // Call a function from the map (*processes[process])(img); }
Your code will be shorter now. Go forth and hack.
Comments (3)
I needed to change
void bar(void(*)(int) f)
to
void bar(void(*f)(int))
to get your example to compile and work.
— Dotan Dimet — 2008/04/17 3:26 am
Ah, I see it now -[ int (*)(Magick::Image &) ] is a type, [ int(* fp)(Magick::Image&)] is a variable. You need types for the C++ templates, but not for the C function declarations.
— Dotan Dimet — 2008/04/17 3:29 am
You're right with the type vs. variable distinction. Glad you figured it out without me explaining myself more clearly.
— Richard Crowley — 2008/04/17 7:18 am


hdpe
High-density Polyethylene (HDPE) pipe is strong, durable, flexible and lightweight. This making it an ideal solution for modern waterworks and waste infrastructure. When fused together HDPE creates one seamless system making it leak free. Due to the strength of HDPE, it is an ideal choice for trenchless installations. It is non-toxic, non-corrosive, chemical resistant and as long life cycle. HDPE is a cost effective and sustainable solution for municipal, landfill, irrigation and energy.


Google Stadia won't run on existing Chromecast Ultras at launch
Source: Android Central
What you need to know
- Google Stadia is a game streaming service that utilizes the cloud.
- The Founder's Edition launches on November 19th.
- During an AMA, a Google employee revealed that existing Chromecast Ultras won't work with Stadia at launch.
Google's Stadia situation keeps going from bad to worse. First there were complaints that people who ordered it wouldn't be getting their Founder's Editions until a few days after it launched, and now an AMA on Reddit has revealed that people won't even be able to use their existing Chromecast Ultras with Stadia upon release. They'll need to wait for a firmware update.
Reddit user livenetwork asked whether or not current Chromecast Ultra devices would receive the firmware update to play Stadia on November 19th or if they'd need to use the Chromecast Ultra shipped with the Founder's Edition, and the reply was concerning.
Andrey Doronichev, Director of Product for Stadia, said, "On Day 1 you should use the Chromecast Ultra that came in your bundle. It has the latest firmware. We will be updating the existing CC Ultra's over the air soon after launch."
That's... not instilling any confidence in the service for anyone on the fence.
"Soon after launch" could mean any number of things. We don't know whether this will mean a few hours or a few days, but given that some people won't even receive their package for a few days until after launch and Doronichev is encouraging that Reddit user to use the Chromecast Ultra that comes with Stadia, it doesn't sound promising.
Everything you need
Stadia Founder's Edition
A good way to start
This bundle includes everything you need to get started with Google Stadia. It includes the controller, Chromecast Ultra, Destiny 2, and three months of the Stadia Pro subscription for you and a friend. It's a great way to begin your game streaming journey
Pick up the parts
Chromecast Ultra
HD streaming
You can buy everything together or you can get just the basics for Google Stadia. The Chromecast Ultra is available to purchase now and lets you stream 4K TV as well as play games when Stadia launches in November.
All you need
Google Stadia controller
A firm grip on what's needed
The Stadia controller is all you need to use Google Stadia if you already have the Chromecast Ultra. You can also use it on your other devices too. Get the Wasabi colored one, it's gorgeous.
We may earn a commission for purchases using our links. Learn more.


The following measurements can be evaluated:
Measures of planes (azimuth of dip/angle of dip)
Measures of linears (azimuth of dip/angle of dip)
Lineations from arial or satellite images
Displacement data (slickensides, striations, and polarity)
Fold shapes (Isogonen, Fourier-Analysis)
Strain data (Talbot-method)


@copyright 2003-2006 Richard Carlsson
@version {@vsn}
@title Welcome to EDoc
@doc EDoc is the Erlang program documentation generator. Inspired by the
JavadocTM tool for the JavaTM programming language, EDoc is adapted to the
conventions of the Erlang world, and has several features not found in
Javadoc.
== Contents ==
- {@section Introduction}
- {@section Running EDoc}
- {@section Generic tags}
- {@section Overview tags}
- {@section Module tags}
- {@section Function tags}
- {@section References}
- {@section Notes on XHTML}
- {@section Wiki notation}
- {@section Macro expansion}
- {@section Type specifications}
- {@section Acknowledgements}
== Introduction ==
EDoc lets you write the documentation of an Erlang program as
comments in the source code itself, using tags on the form
"`@Name ...'". A source file does not have to contain tags
for EDoc to generate its documentation, but without tags the result will
only contain the basic available information that can be extracted from
the module.
A tag must be the first thing on a comment line, except for leading
'`%'' characters and whitespace. The comment must be between
program declarations, and not on the same line as any program text. All
the following text - including consecutive comment lines - up until the
end of the comment or the next tagged line, is taken as the
content of the tag.
Tags are associated with the nearest following program construct "of
significance" (the module name declaration and function
definitions). Other constructs are ignored; e.g., in:
```
%% @doc Prints the value X.
-record(foo, {x, y, z}).
print(X) -> ...
'''
the `@doc' tag is associated with the function `print/1'.
Note that in a comment such as:
```% % @doc ...'''
the tag is ignored, because only the first '`%'' character is
considered "leading". This allows tags to be "commented out".
Some tags, such as `@type', do not need to be associated
with any program construct. These may be placed at the end of the file,
in the "footer".
== Running EDoc ==
The following are the main functions for running EDoc:
- {@link edoc:application/2}: Creates documentation for a
typical Erlang application.
- {@link edoc:packages/2}: Creates documentation for one or
more packages, automatically locating source files.
- {@link edoc:files/2}: Creates documentation for a
specified set of source files.
- {@link edoc:run/3}: General interface function; the common
back-end for the above functions. Options are documented here.
Note that the function {@link edoc:file/2} belongs to the old, deprecated
interface (from EDoc version 0.1), and should not be used.
== Generic tags ==
The following tags can be used anywhere within a module:
- `@clear'
- This tag causes all tags above it (up to the previous program
construct), to be discarded, including the `@clear'
tag itself. The text following the tag
is also ignored. This is typically only useful in code
containing conditional compilation, when preprocessing is turned
on. (Preprocessing is turned off by default.) E.g., in
```-ifdef(DEBUG).
%% @doc ...
foo(...) -> ...
-endif.
%% @clear
%% @doc ...
bar(...) -> ...'''
the `@clear' tag makes sure that EDoc does not see
two `@doc' tags before the function `bar',
even if the code for function `foo' is removed by
preprocessing. (There is no way for EDoc to see what the first
`@doc' tag "really" belongs to, since preprocessing
strips away all such information.)
- `@end'
- The text following this tag is always ignored. Use this to
mark the end of the previous tag, when necessary, as e.g. in:
```%% ----------------------------------
%% ...
%% @doc ...
%% ...
%% @end
%% ----------------------------------'''
to avoid including the last "ruler" line in the
`@doc' tag.
Note: using some other "dummy" `@'-tag for
the same purpose might work in a particular implementation of
EDoc, but is not guaranteed to. Always use `@end'
to ensure future compatibility.
- `@todo' (or `@TODO')
- Attaches a To-Do note to a function, module, package, or
overview-page. The content can be any XHTML text describing
the issue, e.g.:
```%% @TODO Finish writing the documentation.'''
or
```%% @todo Implement RFC 2549.'''
To-Do notes are normally not shown unless the `todo' option is
turned on (see {@link edoc:get_doc/2}).
- `@type'
- Documents an abstract data type or type alias. The content
consists of a type declaration or definition, optionally
followed by a period ('`.'') separator and XHTML
text describing the type (i.e., its purpose, use, etc.). There
must be at least one whitespace character between the
'`.'' and the text. See {@section Type specifications} below
for syntax and examples.
All data type descriptions are placed in a separate section of
the documentation, regardless of where the tags occur.
== Overview tags ==
The following tags can only be used in an overview file:
- `@title'
- Specifies a title for the overview page. The content
can be arbitrary text.
== Module tags ==
The following tags can be used before a module declaration:
- `@author'
- Specifies the name of an author, along with contact
information. An e-mail address can be given within `<...>'
delimiters, and a URI within `[...]' delimiters. Both e-mail and
URI are optional, and any surrounding whitespace is stripped from
all strings.
The name is the first nonempty string that is not within `<...>'
or `[...]', and does not contain only whitespace. (In other words,
the name can come before, between, or after the e-mail and URI,
but cannot be split up; any sections after the first are ignored.)
If an e-mail address is given, but no name, the e-mail string will
be used also for the name. If no `<...>' section is present, but
the name string contains an '`@'' character, it is assumed to be
an e-mail address. Not both name and e-mail may be left out.
Examples:
```%% @author Richard Carlsson'''
```%% @author Richard Carlsson
%% [http://user.it.uu.se/~richardc/]'''
```%% @author '''
```%% @author<EMAIL_ADDRESS>[http://user.it.uu.se/~richardc/]'''
- `@copyright'
- Specifies the module copyrights. The content can be
arbitrary text; for example:
```
%% @copyright 2001-2003 Richard Carlsson'''
- `@deprecated'
- Mark the module as deprecated, indicating that it should no
longer be used. The content must be well-formed XHTML, and should
preferably include a `@{@link}' reference to a
replacement; as in:
```
%% @deprecated Please use the module @{@link foo} instead.'''
- `@doc'
- Describes the module, using well-formed XHTML text. The
first sentence is used as a summary (see the
`@doc' function tag below
for details). For example.:
```%% @doc This is a very useful module. It is ...'''
- `@hidden'
- Marks the module so that it will not appear in the
documentation (even if "private" documentation is generated).
Useful for sample code, test modules, etc. The content can be
used as a comment; it is ignored by EDoc.
- `@private'
- Marks the module as private (i.e., not part of the public
interface), so that it will not appear in the normal
documentation. (If "private" documentation is generated, the
module will be included.) The content can be used as a comment; it
is ignored by EDoc.
- `@reference'
- Specifies a reference to some arbitrary external resource,
such as an article, book, or web site. The content must be
well-formed XHTML text. Examples:
```%% @reference Pratchett, T., Interesting Times,
%% Victor Gollancz Ltd, 1994.'''
```%% @reference See Google for
%% more information.'''
- `@see'
- See the `@see' function tag
below for details.
- `@since'
- Specifies when the module was introduced, with respect to
the application, package, release or distribution it is part
of. The content can be arbitrary text.
- `@version'
- Specifies the module version. The content can be arbitrary
text.
== Function tags ==
The following tags can be used before a function definition:
- `@deprecated'
- See the `@deprecated'
module tag for details.
- `@doc'
- XHTML text describing the function. The first
sentence of the text is used as a quick summary; this ends at
the first period character ('`.'') or exclamation mark
('`!'') that is followed by a whitespace character, a
line break, or the end of the tag text, and is not within XML
markup. (As an exception, the first sentence may be within an
initial paragraph element)
- `@equiv'
- Specify equivalence to another function call/expression.
The content must be a proper Erlang expression. If the
expression is a function call, a cross-reference to the called
function is created automatically. Typically, this tag is used
instead of `@doc'.
- `@hidden'
- Marks the function so that it will not appear in the
documentation (even if "private" documentation is generated).
Useful for debug/test functions, etc. The content can be
used as a comment; it is ignored by EDoc.
- `@private'
- Marks the function as private (i.e., not part of the public
interface), so that it will not appear in the normal
documentation. (If "private" documentation is generated, the
function will be included.) Only useful for exported functions,
e.g. entry points for `spawn'. (Non-exported functions are
always "private".) The content can be used as a comment; it is
ignored by EDoc.
- `@see'
- Make a reference to a module, function, datatype, or
application. (See {@section References} below.)
The content consists of a reference, optionally followed by a
period ('`.''), one or more whitespace characters, and
XHTML text to be used for the label; for example "`@see edoc'" or
"`@see edoc. EDoc'". If no label text is specified, the
reference itself is used as the label.
- `@since'
- Specifies in what version of the module the function was
introduced; cf. the
`@version'
module tag. The content can be arbitrary text.
- `@spec'
- Used to specify the function type; see {@section Type
specifications} below for syntax. If the function name is
included in the specification, it must match the name in the
actual code. When parameter names are not given in the
specification, suitable names will be taken from the source
code if possible, and otherwise synthesized.
- `@throws'
- Specifies which types of terms may be thrown by the
function, if its execution terminates abruptly due to a call to
`erlang:throw(Term)'. The content is a type expression (see {@section
Type specifications}), and can be a union type.
Note that exceptions of type `exit' (as caused by calls to
`erlang:exit(Term)') and `error' (run-time errors such as `badarg'
or `badarith') are not viewed as part of the normal interface of
the function, and cannot be documented with the `@throws' tag.
- `@type'
- See the `@type' generic tag
for details. Placing a `@type' tag by a function
definition may be convenient, but does not affect where the
description is placed in the generated documentation.
== References ==
In several contexts (`@see' tags, `@link' macros, etc.), EDoc lets
you refer to the generated documentation for modules, functions,
datatypes, and applications, using a simple and compact syntax. The
possible formats for references are:
| Reference syntax | Example | Scope |
| `Module' | {@link edoc_run}, `erl.lang.list' | Global |
| `Package.*' | `erl.lang.*' | Global |
| `Function/Arity' | `file/2' | Within module |
| `Module:Function/Arity' | {@link edoc:application/2} | Global |
| `Type()' | `filename()' | Within module |
| `Module:Type()' | {@link edoc:edoc_module()} | Global |
| `//Application' | {@link //edoc} | Global |
| `//Application/Module' | {@link //edoc/edoc_doclet} | Global |
| `//Application/Module:Function/Arity' | {@link //edoc/edoc_run:file/1} | Global |
| `//Application/Module:Type()' | {@link //edoc/edoc:edoc_module()} | Global |
EDoc will resolve references using the information it finds in
`edoc-info'-files at the locations specified with the `doc_path'
option. EDoc will automatically (and somewhat intelligently) try to find
any local `edoc-info'-files using the current code path, and add them to
the end of the `doc_path' list. The target doc-directory is also
searched for an existing info file; this allows documentation to be
built incrementally. (Use the `new' option to ignore any old info
file.)
Note that if the name of a module, function or datatype is explicitly
qualified with an application (as in "`//edoc/edoc_run'"), this
overrides any other information about that name, and the reference will
be made relative to the location of the application (if it can be
found). This makes it possible to refer to e.g. a module "`fred'" as
"`//foo/fred'" without accidentally getting a reference to
"`//bar/fred'". You should not use this form of explicit references for
names that are local to the application you are currently creating -
they will always be resolved correctly.
Note that module-local references such as `file/2' only work properly
within a module. In an overview-page like this (i.e., the one you are
currently reading), no module context is available.
== Notes on XHTML ==
In several places, XHTML markup can be used in the documentation
text, in particular in `@doc' tags. The main differences from
HTML are the following:
- All elements must have explicit start and end tags, and be
correctly nested. This means that you cannot e.g. write a
`
- ' tag without also writing a corresponding `
'
tag in the right place. This could be an annoyance
at times, but has the great advantage that EDoc can report all
malformed XHTML in your source code, rather than propagate the
errors to the generated documentation.
- XHTML tag and attribute names should always be lower-case.
- Attributes must be quoted, as in e.g. `'.
To write an element like the HTML `
', which has no actual content,
you can write either the full `
', or better, use the XHTML
abbreviated form `
'.
Since the purpose of EDoc is to document programs, there is also a
limited form of "wiki"-syntax available for making program code easier
to write inline (and to make the doc-comments easier to read).
See {@section Wiki notation} below for details.
The HTML heading tags `h1' and `h2' are reserved for use by EDoc.
Headings in documentation source code should start at `h3'. There is
however a special syntax for writing headings which avoids using
specific level numbers altogether; see {@section Headings} below for details.
EDoc uses {@link //xmerl. XMerL} to parse and export XML markup.
== Wiki notation ==
When EDoc parses XHTML, it does additional pre- and post-processing of
the text in order to expand certain notation specific to EDoc into
proper XHTML markup. This "wiki" ([http://en.wikipedia.org/wiki/Wiki])
notation is intended to make it easier to write source code
documentation.
=== Empty lines separate paragraphs ===
Leaving an empty line in XHTML text (i.e., a line which except for
any leading start-of-comment '%' characters contains only
whitespace), will make EDoc split the text before and
after the empty line into separate paragraphs. For example:
```%% @doc This will all be part of the first paragraph.
%% It can stretch over several lines and contain any
%% XHTML markup.
%%
%% This is the second paragraph. The above line is
%% regarded as "empty" by EDoc, even though it ends with
%% a space.'''
will generate the following text:
This will all be part of the first paragraph. It can
stretch over several lines and contain any XHTML markup.
This is the second paragraph. The above line is regarded as "empty" by
EDoc, even though it ends with a space.
Paragraph splitting takes place after the actual XHTML parsing. It only
affects block-level text, and not e.g., text within `' markup, or
text that is already within `' markup.
=== Headings ===
Section headings, sub-headings, and sub-sub-headings, can be written
using the following notation:
```== Heading ==
=== Sub-heading ===
==== Sub-sub-heading ===='''
Such a heading must be alone on a line, except for whitespace, and
cannot be split over several lines. A link target is automatically
created for the heading, by replacing any whitespace within the text by
a single underscore character. E.g.,
```== Concerning Hobbits =='''
is equivalent to
```
'''
Thus, headings using this notation should not contain characters that
may not be part of URL labels, except for whitespace. If you need to
create such headings, you have to use the explicit XHTML markup.
A hypertext link to a heading written this way can be created using the
`@section' macro, which transforms the argument text into a label as
described above. E.g.,
```@{@section Concerning Hobbits}'''
is equivalent to writing
```Concerning Hobbits'''
The above expansions take place before XML parsing.
=== External links ===
Writing a URL within brackets, as in "`[http://www.w3c.org/]'", will
generate a hyperlink such as [http://www.w3c.org/], using the URL both
for the destination and the label of the reference, equivalent to writing
"`http://www.w3c.org/'". This
short-hand keeps external URL references short and readable. The
recognized protocols are `http', `ftp', and `file'. This expansion takes
place before XML parsing.
=== Verbatim quoting ===
In XHTML text, the '`
' character (Unicode `000060',
known as "grave accent" or "back-quote") can be used for verbatim
quoting. This expansion takes place before XML parsing.
- A character sequence "
`...'
" or
"``...''
" will be expanded to
"`...
'", where all occurrences of the special XML
characters '`<'' and '`&'' (and for completeness, also '`>'') in
the quoted text have been escaped to "`<'", "`&'", and
"`>'", respectively.
All whitespace is stripped from the beginning and end of the
quoted text.
Double back-quotes "``...''
" can be used
to quote text containing single '`` ' ''' characters. The automatic
stripping of any surrounding whitespace makes it possible to write
things like "`` 'foo@bar' ''
".
To quote text containing "''
" verbatim,
explicit `' markup or similar must be used.
- A character sequence "
```...'''
"
will be expanded to "`'", which disables
all XML markup within the quoted text, and displays the result in
fixed-font with preserved indentation. Whitespace is stripped from
the end of the quoted text, but not from the beginning, except for
whole leading lines of whitespace. This is
useful for multi-line code examples, or displayed
one-liners.
- To produce a single '
`
'-character in XML
without beginning a new quote, you can write "`'
"
(no space between the '`
' and the ''
').
You can of course also use the XML character entity
"``'".
Examples:
```%% @doc ...where the variable `Foo' refers to... '''
```%% @doc ...returns the atom ``<EMAIL_ADDRESS>''... '''
%% @doc ...use the command ```erl -name foo''' to...
%% @doc ...as in the following code:
%% ```f(X) ->
%% case X of
%% ...
%% end'''
%% @doc ...or in the following:
%% ```
%% g(X) ->
%% fun () -> ... end
%% '''
== Macro expansion ==
Before the content of a tag is parsed, the text undergoes macro
expansion. The syntax for macro calls is:
@{@name}
or
@{@name argument}
where name and argument are separated by one or more
whitespace characters. The argument can be any text, which may contain
other macro calls. The number of non-escaped "@{@
" and
"`}'" delimiters must be balanced.
The argument text is first expanded in the current environment, and
the result is bound to the macro parameter, written
@{@?}
. (If no argument is given, @{@?}
is
bound to the empty string.) The macro definition is then substituted
for the call, and expansion continues over the resulting text. Recursive
macro expansions are not allowed.
=== User-defined macros ===
Users can define their own macros by using the `def' EDoc
option; see {@link edoc:file/2} and {@link edoc:get_doc/2} for more
information.
=== Predefined macros ===
@{@date}
- Expands to the current date, as "Month Day Year",
e.g. "{@date}".
@{@docRoot}
- Expands to the relative URL path (such as
`"../../.."') from the current page to the root
directory of the generated documentation. This can be used to
create XHTML references such as `' that are independent of how
deep down in a package structure they occur. If packages are not
used (i.e., if all modules are in the "empty" package),
@{@docRoot}
will always resolve to the empty
string.
@{@link reference.
description}
- This creates a hypertext link; cf. the
`@see' function tag above for
details. The description text (including the period separator)
is optional; if no text is given, the reference itself is
used. For example,
@{@link edoc:file/2}
creates the
link {@link edoc:file/2}, and `@{@link edoc:file/2. this link}'
creates {@link edoc:file/2. this link}.
@{@module}
- Expands to the name of the current module. Only defined when a
module is being processed.
@{@package}
- Expands to the name of the current package.
@{@section
heading}
- Expands to a hypertext link to the specified section heading;
see {@section Headings} for more information.
@{@type
type-expression}
- Formats a type expression within `
...
'
markup and with hypertext links for data types. For example,
@{@type {options, List::edoc:option_list()@@}}
generates "{@type {options, List::edoc:option_list()@}}". (Cf.
{@section Escape sequences} below.)
@{@time}
- Expands to the current time, as "Hr:Min:Sec",
e.g. "{@time}".
=== Escape sequences ===
To prevent certain characters from being interpreted as delimiters,
for example to produce the text "@{@
" in the output, or use a
'`}'' character in the argument text of a macro call, the
following escape sequences may be used:
@@{
- Expands to "`{'". Example:
```
%% @doc A macro call starts with the sequence "<EMAIL_ADDRESS>@@}
- Expands to "`}'". Example:
```
%% @doc ...@{@foo ...{Key, Value@@}...}...'''
@@@@
- Expands to "`@'". Example:
```
%% @doc Contact us at support@@@@@{@hostname}'''
Will generate the text "Contact us at<EMAIL_ADDRESS>if the macro `hostname' is bound to
"`vaporware.acme.com'". Also:
```
%% @doc You might want to write something like
%% @@@@foo that will expand to @@foo and does not start
%% a new tag even if it appears first in a line.'''
== Type specifications ==
=== Function specifications ===
The following grammar describes the form of the specifications
following a `@spec' tag:
Spec |
::= |
FunType Def*
| FunctionName FunType Def* |
FunctionName |
::= |
Atom |
FunType |
::= |
"(" UnionTypes? ")" "->" UnionType |
UnionTypes |
::= |
UnionType
| UnionType "," UnionTypes |
UnionType |
::= |
UnionList
| Name "::" UnionList |
Name |
::= |
Variable |
UnionList |
::= |
Type
| Type "+" UnionList
| Type "|" UnionList |
Type |
::= |
TypeVariable
| Atom
| Integer
| Float
| FunType
| "{" UnionTypes? "}"
| "[" "]"
| "[" UnionType "]"
| TypeName "(" UnionTypes? ")"
| ModuleName ":" TypeName "(" UnionTypes? ")"
| "//" AppName "/" ModuleName ":" TypeName "(" UnionTypes? ")" |
TypeVariable |
::= |
Variable |
TypeName |
::= |
Atom |
ModuleName |
::= |
Atom
| ModuleName "." Atom |
AppName |
::= |
Atom |
Def |
::= |
TypeVariable "=" UnionType
| TypeName "(" TypeVariables? ")" "=" UnionType |
TypeVariables |
::= |
TypeVariable
| TypeVariable "," TypeVariables |
Examples:
```
%% @spec my_function(X::integer()) -> integer()'''
```
%% @spec (X::integer()) -> integer()'''
```
%% @spec sqrt(float()) -> float()'''
```
%% @spec pair(S, T) -> {S, T}'''
```
%% @spec append(List, List) -> List
%% List = [term()]'''
```
%% @spec append(A::List, B::List) -> List
%% List = [term()]'''
```
%% @spec open(File::filename()) -> file_descriptor()
%% filename() = string() + atom()'''
```
%% @spec close(graphics:window()) -> ok'''
In the above examples, `X', `A', `B',
and `File' are parameter names, used for referring to the
parameters from the documentation text. The type variables
`S', `T' and `List' are used to
simplify the type specifications, and may be supplied with
definitions. It is also possible to give definitions for named types,
which means that the name is simply an alias. (Use the
`@type' tag to document abstract data types.) If a named type
is defined in another module, it can be referred to as
`Module:TypeName(...)'.
Both the '`|'' and the '`+'' character may be
used to separate alternatives in union types; there is no semantic
difference. Note that the notation `[Type]' means "proper
(nil-terminated) list whose elements all belong to `Type'";
For example, `[atom()|integer()]' means the same thing as
`[atom()+integer()]', i.e., a proper list of atoms and/or
integers.
If only a type variable is given for a parameter, as in
"`pair(S, T) -> ...'", the same variable name may implicitly
be used as the parameter name; there is no need to write
"`pair(S::S, T::T) -> ...'".
EDoc automatically extracts possible parameter names from the source
code, to be used if no parameter name is given in the specification (or
if the specification is missing altogether). If this fails, EDoc will
generate a dummy parameter name, such as `X1'. This way, EDoc
can often produce helpful documentation even for code that does not
contain any annotations at all.
=== Type definitions ===
The following grammar (see above for auxiliary definitions) describes
the form of the definitions that may follow a `@type' tag:
Typedef |
::= |
TypeName "(" TypeVariables? ")" Def*
| TypeName "(" TypeVariables? ")" "=" UnionType Def* |
(For a truly abstract data type, no equivalence is specified.) The main
definition may be followed by additional local definitions. Examples:
```
%% @type myList(X). A special kind of lists ...'''
```
%% @type filename() = string(). Atoms not allowed!'''
```
%% @type thing(A) = {thong, A}
%% A = term().
%% A kind of wrapper type thingy.'''
=== Pre-defined data types ===
The following data types are predefined by EDoc, and may not be
redefined:
```
any()
atom()
binary()
bool()
char()
cons()
deep_string()
float()
function()
integer()
list()
nil()
none()
number()
pid()
port()
reference()
string()
term()
tuple()
'''
Details:
- `any()' means "any Erlang data type".
`term()' is simply an alias for `any()'.
- `atom()', `binary()',
`float()', `function()',
`integer()', `pid()', `port()'
and `reference()' are primitive data types of
the Erlang programming language.
- `bool()' is the subset of `atom()' consisting
of the atoms `true' and `false'.
- `char()' is a subset of
`integer()' representing character codes.
- `tuple()' is the set of all tuples `{...}'.
- `list(T)' is just an alias for `[T]'.
- `nil()' is an alias for the empty list `[]'.
- `cons(H,T)' is the list constructor. This is usually not
used directly. It is possible to recursively define `list(T)
:= nil()+cons(T,list(T))'.
- `string()' is an alias for `[char()]'.
- `deep_string()' is recursively defined as
`[char()+deep_string()]'.
- `none()' means "no data type". E.g., a function
that never returns has type `(...) -> none()'
== Acknowledgements ==
Since the first version of EDoc, several people have come up with
suggestions (Luke Gorrie, Joe Armstrong, Erik Stenman, Sean Hinde, Ulf
Wiger, ...), and some have even submitted code to demonstrate their
ideas (Vlad Dumitrescu, Johan Blom, Vijay Hirani, ...). None of that
code was actually included in the Great Rewriting that followed the
initial public release (EDoc version 0.1), but most of the central
points were addressed in the new system, such as better modularization
and possibility to plug in different layout engines, and making EDoc
understand the application directory layout.
It is now getting too hard to keep track of all the people who have made
further suggestions or submitted bug reports, but your input is always
appreciated. Thank you.


Threshold with Cell Set
07 Mar 2015In my last blog, I described a new type of unstructured grid which can be used to represent a subset of a structured dataset without explicit connectivity data structures. I mentioned that one very good application of such a dataset is a better implementation of the threshold filter. In the blog, we'll go over such an implementation as shown here and here.
Let's first quickly go over the original VTK implementation as can be found
here.
First notice that this filter accepts any vtkDataSet
and produces an unstructured
grid.
// Note that subclasses of vtkUnstructuredGridAlgorithm produce
// vtkUnstructuredGrid in the first output by default.
class VTKFILTERSCORE_EXPORT vtkThreshold : public vtkUnstructuredGridAlgorithm
{
// FillInputPortInformation is overriden to change the required
// input from vtkUnstructuredGrid to vtkDataSet
int vtkThreshold::FillInputPortInformation(int, vtkInformation *info)
{
info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
return 1;
}
Next, let's quickly take a look at RequestData
. I added some comments
in the excerpt to make it easier to follow. I also took out pieces that
are not very relevant to our discussion. See the full source for details.
int vtkThreshold::RequestData(
vtkInformation *vtkNotUsed(request),
vtkInformationVector **inputVector,
vtkInformationVector *outputVector)
{
// get the info objects
vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
vtkInformation *outInfo = outputVector->GetInformationObject(0);
// get the input and output
vtkDataSet *input = vtkDataSet::SafeDownCast(
inInfo->Get(vtkDataObject::DATA_OBJECT()));
vtkUnstructuredGrid *output = vtkUnstructuredGrid::SafeDownCast(
outInfo->Get(vtkDataObject::DATA_OBJECT()));
// ...
// We create an output unstructured grid. This grid will contain
// the same set of point and cell arrays. But these will be new
// arrays that contain only the output subset.
outPD->CopyGlobalIdsOn();
outPD->CopyAllocate(pd);
outCD->CopyGlobalIdsOn();
outCD->CopyAllocate(cd);
// Create new output points.
numPts = input->GetNumberOfPoints();
output->Allocate(input->GetNumberOfCells());
newPoints = vtkPoints::New();
// ...
newPoints->Allocate(numPts);
// We need this map to find the mapping between input
// and output point ids so that we can copy the point data.
pointMap = vtkIdList::New(); //maps old point ids into new
pointMap->SetNumberOfIds(numPts);
for (i=0; i < numPts; i++)
{
pointMap->SetId(i,-1);
}
// ...
// Check that the scalars of each cell satisfy the threshold criterion
for (cellId=0; cellId < input->GetNumberOfCells(); cellId++)
{
cell = input->GetCell(cellId);
cellPts = cell->GetPointIds();
numCellPts = cell->GetNumberOfPoints();
// Here whether to keep a cell is determined. The answer is stored in
// the keepCell variable.
// If we are keeping the cell, copy to the output.
if ( numCellPts > 0 && keepCell )
{
// satisfied thresholding (also non-empty cell, i.e. not VTK_EMPTY_CELL)
// Go over the points of the cell.
for (i=0; i < numCellPts; i++)
{
ptId = cellPts->GetId(i);
// If we didn't insert the point already, insert in the output
if ( (newId = pointMap->GetId(ptId)) < 0 )
{
input->GetPoint(ptId, x);
newId = newPoints->InsertNextPoint(x);
// Update the point map for future use.
pointMap->SetId(ptId,newId);
// Also copy the data.
outPD->CopyData(pd,ptId,newId);
}
// Insert the point to the output cell.
newCellPts->InsertId(i,newId);
}
// ...
// Insert the new cell to the output
newCellId = output->InsertNextCell(cell->GetCellType(),newCellPts);
// Copy the cell data
outCD->CopyData(cd,cellId,newCellId);
newCellPts->Reset();
} // satisfied thresholding
} // for all cells
// ..
output->SetPoints(newPoints);
newPoints->Delete();
output->Squeeze();
return 1;
}
In our new filter, much of this will remain the same. In fact, to quickly
develop it, I copied vtkThreshold
to vtkThreshold3
and made a few changes.
First, I change the filter to produce a vtkCellSet
:
class vtkThreshold3 : public vtkUnstructuredGridBaseAlgorithm
{
int vtkThreshold3::RequestDataObject(
vtkInformation *vtkNotUsed(request),
vtkInformationVector **vtkNotUsed(inputVector),
vtkInformationVector *outputVector)
{
vtkInformation* info = outputVector->GetInformationObject(0);
vtkCellSet *output = vtkCellSet::SafeDownCast(
info->Get(vtkDataObject::DATA_OBJECT()));
if (!output)
{
vtkCellSet* newOutput = vtkCellSet::New();
info->Set(vtkDataObject::DATA_OBJECT(), newOutput);
newOutput->Delete();
}
return 1;
}
Next, I changed the part of the code that creates new points and cells to instead keep track of the ids of the cells that we want to threshold. So the following code
// If we are keeping the cell, copy to the output.
if ( numCellPts > 0 && keepCell )
{
// satisfied thresholding (also non-empty cell, i.e. not VTK_EMPTY_CELL)
// Go over the points of the cell.
for (i=0; i < numCellPts; i++)
{
ptId = cellPts->GetId(i);
// If we didn't insert the point already, insert in the output
if ( (newId = pointMap->GetId(ptId)) < 0 )
{
input->GetPoint(ptId, x);
newId = newPoints->InsertNextPoint(x);
// Update the point map for future use.
pointMap->SetId(ptId,newId);
// Also copy the data.
outPD->CopyData(pd,ptId,newId);
}
// Insert the point to the output cell.
newCellPts->InsertId(i,newId);
}
// ...
// Insert the new cell to the output
newCellId = output->InsertNextCell(cell->GetCellType(),newCellPts);
// Copy the cell data
outCD->CopyData(cd,cellId,newCellId);
newCellPts->Reset();
} // satisfied thresholding
changes to
if ( numCellPts > 0 && keepCell )
{
ids->InsertNextValue(cellId);
} // satisfied thresholding
And the ids
are used in creating the cell set as follows
vtkIdTypeArray* ids = vtkIdTypeArray::New();
ids->Allocate(input->GetNumberOfCells());
output->GetImplementation()->SetCellIds(ids);
ids->Delete();
Finally, we have to create an instance of vtkPoints
for the output
unstructured grid. This has to be handled specially in the cases where
the input does not have its own vtkPoints
(for example vtkImageData
).
Here is the code:
vtkImageData* inputImage = vtkImageData::SafeDownCast(input);
if (inputImage)
{
vtkNew<vtkImageData> img;
img->CopyStructure(inputImage);
vtkNew<vtkImagePointsArray<double> > ptsArray;
ptsArray->InitializeArray(img.GetPointer());
ptsArray->SetName("pts");
vtkNew<vtkPoints> points;
points->SetData(ptsArray.GetPointer());
output->SetPoints(points.GetPointer());
}
This is it! The output of this filter acts as an unstructured grid but does not store cells or points explicitly. As a bonus, the filter actually got simpler and performs better. We can exercise this filter as follows.
vtkNew<vtkRTAnalyticSource> source;
source->SetWholeExtent(-50, 50, -50, 50, -50, 50);
vtkNew<vtkThreshold3> threshold;
threshold->ThresholdByLower(200);
threshold->SetInputConnection(source->GetOutputPort());
threshold->Update();
cerr << "Threshold " << timer->GetElapsedTime() << endl;
cerr << threshold->GetOutput()->GetNumberOfCells() << endl;
vtkNew<vtkContourFilter> contour;
contour->SetValue(0, 150);
contour->SetInputConnection(threshold->GetOutputPort());
contour->Update();
cerr << "Contour " << timer->GetElapsedTime() << endl;
cerr << contour->GetOutput()->GetNumberOfPoints() << endl;
Careful readers probably noticed that there is a flaw in this approach: the output of the threshold filter contains all of the points of the input. Therefore, any point-based filters such as glyph and point statistics will incorrectly produce results based on all input points. With the current VTK data model, there is no easy way of fixing this issue. In the near future, we will add support for masking (blanking) of points and cells to all datasets. With this feature in place, one could easily keep track of all points touched by the output grid during tresholding and mask all others. In fact, if masking support was in the data model, we wouldn't have to create a new unstructured grid but directly mask cells and points that are not needed. A blog for another time.


spartan¶
A spartan bioinformatics package, providing only the essentials and nothing fancy or luxurious. Enough to get the job done quickly without flourish.¶
README¶
This is spartan.
spartan is a central place that I have decided to store/develop many of the bioinformatics classes/functions/scripts that I have written and find I use a lot.
As the name implies, this is pretty functional code, but I have only done MINIMAL user-proofing. For the most part if a function/method expects a gff file you should do your due diligence that that file is indeed formatted correctly. If someone wants to add more, I welcome it. However if I am going to add code it will be to add functionality.
After all, this is spartan.
INSTALL¶
By cloning the repo:
git clone https://github.com/xguse/spartan.git
[sudo] pip install spartan/
If you don’t use pip (but you should be using pip):
git clone https://github.com/xguse/spartan.git
cd spartan/
[sudo] python setup.py install
With pip without cloning the repo:
pip install https://github.com/xguse/spartan.git


Returns a Date from a formated string of one of the following formats :
YYYY-MM-DD hh:mm:ss or YYYY-MM-DD or hh:mm:ss. The first two formats
are expressed in local time, the third in UTC Epoch.
Returns the timestamp of the date. It's the number of milliseconds
elapsed since 1st January 1970. It might only have a per-second precision
depending on the platforms.
YYYY-MM-DD hh:mm:ss
orYYYY-MM-DD
orhh:mm:ss
. The first two formats are expressed in local time, the third in UTC Epoch.


Karabiner-Elements
A powerful and stable keyboard customizer for macOS.
Supported systems
macOS 14 Sonoma
macOS 13 Ventura
macOS 12 Monterey
macOS 11 Big Sur
macOS 13 Ventura
macOS 12 Monterey
macOS 11 Big Sur
Both Intel-based Macs and Apple Silicon Macs are supported.
Powerful
There are many powerful, predefined rules.
- Diamond cursor
- Emacs key bindings anywhere
- Vi key bindings
- Prevent unintended command-q
- Mouse keys
You can import them from the Internet.
Flexible
You can write your own rules if you want to modify existing rules or create new rules from scratch.
Sponsors
Thank you for supporting Karabiner-Elements!


8.3 The sys Module
The
attributes of the sys module are bound to data and
functions that provide information on the state of the Python
interpreter or that affect the interpreter directly. This section
documents the most frequently used attributes of
sys, in alphabetical order.
The list of command-line arguments passed to the main script.
argv[0] is the name or full path of the main
script, or '-c' if the -c
option was used. See Section 8.4 later in this chapter for a good way to use
sys.argv.
In interactive sessions, the Python interpreter calls
displayhook, passing it the result of each
expression-statement entered. The default
displayhook does nothing if
value is None,
otherwise it preserves and displays value:
if value is not None:
_ _builtin_ _._ = value
print repr(value) You can rebind sys.displayhook in order to change
interactive behavior. The original value is available as
sys._ _displayhook_
_.
excepthook(type,value,traceback)
|
|
When an exception is not caught by any handler, Python calls
excepthook, passing it the exception class,
exception object, and traceback object, as covered in Chapter 6. The default excepthook
displays the error and traceback. You can rebind
sys.excepthook to change what is displayed for
uncaught exceptions (just before Python returns to the interactive
loop or terminates). The original value is also available as
sys._ _excepthook_ _.
If the current thread is handling an exception,
exc_info returns a tuple whose three items are the
class, object, and traceback for the exception. If the current thread
is not handling any exception, exc_info returns
(None,None,None). A traceback object indirectly
holds references to all variables of all functions that propagated
the exception. Thus, if you hold a reference to the traceback object
(for example, indirectly, by binding a variable to the whole tuple
that exc_info returns), Python has to retain in
memory data that might otherwise be garbage-collected. So you should
make sure that any binding to the traceback object is of short
duration. To ensure that the binding gets removed, you can use a
try/finally statement
(discussed in Chapter 6).
Raises a SystemExit exception, which normally
terminates execution after executing cleanup handlers installed by
try/finally statements. If
arg is an integer, Python uses
arg as the program's exit
code: 0 indicates successful termination, while
any other value indicates unsuccessful termination of the program.
Most platforms require exit codes to be between 0
and 127. If arg is not
an integer, Python prints arg to
sys.stderr, and the exit code of the program is
1 (i.e., a generic unsuccessful termination code).
Returns the name of the default codec used to encode and decode
Unicode and string objects (normally 'ascii').
Unicode, codecs, encoding, and decoding are covered in Chapter 9.
Returns the reference count of object.
Reference counts are covered in Section 13.4.
Returns the current limit on the depth of Python's
call stack. See also Section 4.10.9 and
setrecursionlimit in this section.
Returns a frame object from the call stack. When
depth is 0, the result
is the frame of _getframe's
caller. When depth is
1, the result is the frame of the
caller's caller, and so forth. The leading
_ in
_getframe's name is a reminder
that it's a private system function, to be used for
internal specialized purposes. Chapter 17 covers
ways in which you can use frame objects for debugging.
The largest integer in this version of Python (at least
2147483647). Negative integers can go down to
-maxint-1, due to 2's complement
notation.
A dictionary whose items are the names and module objects for all
loaded modules. See Chapter 7 for more information
on sys.modules.
A list of strings that specifies the directories that Python searches
when looking for a module to load. See Chapter 7
for more information on sys.path.
A string that names the platform on which this program is running.
Typical values are brief operating system names, such as
'sunos5', 'linux2', and
'win32'.
ps1 and ps2 specify the primary
and secondary interpreter prompt strings, initially
'>>> ' and
'... ', respectively. These
attributes exist only in interactive interpreter sessions. If you
bind either attribute to a non-string object, Python prompts by
calling str( ) on the object each time a prompt is
output. This feature lets you create dynamic prompting by coding a
class that defines _ _str_ _ and assigning an
instance of that class to sys.ps1 and/or
sys.ps2.
Sets the default codec used to encode and decode Unicode and string
objects (normally 'ascii').
setdefaultencoding is meant to be called only from
sitecustomize.py during startup; the
site module removes this attribute from
sys. You can call reload(sys)
to make this attribute available again, but this is not considered
good programming practice. Unicode, codecs, encoding, and decoding
are covered in Chapter 9. The
site and sitecustomize modules
are covered in Chapter 13.
Sets a global profile function, a callable object that Python then
calls at each function entry and return. Profiling is covered in
Chapter 17.
Sets the limit on the depth of Python's call stack
(the default is 1000). The limit prevents runaway
recursion from crashing Python. Raising the limit may be necessary
for programs that rely on deep recursion, but most platforms cannot
support very large limits on call-stack depth. Lowering the limit may
help you check, during debugging, that your program is gracefully
degrading under situations of almost-runaway recursion. See also
Section 4.10.9.
Sets a global trace function, a callable object that Python then
calls as each logical source line executes. Chapter 17 covers tracing.
stdin
,
stdout, and stderr are
predefined file objects that correspond to Python's
standard input, output, and error streams. You can rebind
stdout and stderr to file-like
objects (objects that supply a write method
accepting a string argument) to redirect the destination of output
and error messages. You can rebind stdin to a
file-like object open for reading (one that supplies a
readline method returning a string) to redirect
the source from which built-in functions raw_input
and input read. The original values are available
as _ _stdin_ _, _ _stdout_ _,
and _ _stderr_ _. Chapter 10
covers file objects and streams.
The maximum number of levels of traceback displayed for unhandled
exceptions. By default, this attribute is not set (i.e., there is no
limit). When sys.tracebacklimit is less than or
equal to 0, traceback information is suppressed
and only the exception type and value are printed.
A string that describes the Python version, build number and date,
and C compiler used. version[:3] is
'2.1' for Python 2.1, '2.2' for
2.2, and so on.
|