|
Smartlock
|
Access structure of the I2C Driver. More...
#include <Driver_I2C.h>
Data Fields | |
| ARM_DRIVER_VERSION(* | GetVersion )(void) |
| Pointer to ARM_I2C_GetVersion : Get driver version. | |
| ARM_I2C_CAPABILITIES(* | GetCapabilities )(void) |
| Pointer to ARM_I2C_GetCapabilities : Get driver capabilities. | |
| int32_t(* | Initialize )(ARM_I2C_SignalEvent_t cb_event) |
| Pointer to ARM_I2C_Initialize : Initialize I2C Interface. | |
| int32_t(* | Uninitialize )(void) |
| Pointer to ARM_I2C_Uninitialize : De-initialize I2C Interface. | |
| int32_t(* | PowerControl )(ARM_POWER_STATE state) |
| Pointer to ARM_I2C_PowerControl : Control I2C Interface Power. | |
| int32_t(* | MasterTransmit )(uint32_t addr, const uint8_t *data, uint32_t num, bool xfer_pending) |
| Pointer to ARM_I2C_MasterTransmit : Start transmitting data as I2C Master. | |
| int32_t(* | MasterReceive )(uint32_t addr, uint8_t *data, uint32_t num, bool xfer_pending) |
| Pointer to ARM_I2C_MasterReceive : Start receiving data as I2C Master. | |
| int32_t(* | SlaveTransmit )(const uint8_t *data, uint32_t num) |
| Pointer to ARM_I2C_SlaveTransmit : Start transmitting data as I2C Slave. | |
| int32_t(* | SlaveReceive )(uint8_t *data, uint32_t num) |
| Pointer to ARM_I2C_SlaveReceive : Start receiving data as I2C Slave. | |
| int32_t(* | GetDataCount )(void) |
| Pointer to ARM_I2C_GetDataCount : Get transferred data count. | |
| int32_t(* | Control )(uint32_t control, uint32_t arg) |
| Pointer to ARM_I2C_Control : Control I2C Interface. | |
| ARM_I2C_STATUS(* | GetStatus )(void) |
| Pointer to ARM_I2C_GetStatus : Get I2C status. | |
Access structure of the I2C Driver.


Lacrosse Game Clock
MBS Sports Events Limited.
Home
About
Shot Clock
Links
FAQ
Contact
Links
Credit for the Shot Clock goes to
scorecounter.com


Edward Lombe
Learn More About This Ship
View MoreWallace
Learn More About This Ship
View MoreElizabeth Walker
Learn More About This Ship
View MoreClifford
Learn More About This Ship
View MoreClayton
Learn More About This Ship
View MoreChindera
Learn More About This Ship
View MoreNormanby
Learn More About This Ship
View MoreChang Chow
Learn More About This Ship
View MoreCato
Learn More About This Ship
View MoreCarbine
Learn More About This Ship
View MoreCacique
Learn More About This Ship
View MoreBuninyong
Learn More About This Ship
View MoreBoomerang
Learn More About This Ship
View MoreBlue Bell
Learn More About This Ship
View MoreBenowa
Learn More About This Ship
View MoreBeagle
Learn More About This Ship
View MoreBeatrice
Learn More About This Ship
View MoreBanshee
Learn More About This Ship
View MoreAda Dent
Learn More About This Ship
View MoreAbbey
Learn More About This Ship
View More


Learnify encourages you to self-learn online.
Follow other people's link-list to learn faster and more efficiently.
or sign up with
Learn anything you want from the list of useful URL that other people had created for you.
Create your own list and share with others to get upvoted.
Not just learn, learn efficiently
15 useful links in this playlist!


- composite
- {{ country.aggregate_score }}
{{ country.findings|markdown }}
-
{% regroup object.indicator_scores.all by indicator.subsection.section as section_list %}
{% for section in section_list %}
{% section_agg country section.grouper as section_score %}
{{ country.electoral_summary|markdown }}


| Package | com.whirled.contrib.card.graphics |
| Class | public class TimerMovie |
| Inheritance | TimerMovie flash.display.Sprite |
| Property | Defined by | ||
|---|---|---|---|
| _duration : int | TimerMovie | ||
| _frameCount : int | TimerMovie | ||
| _lastTimer : int | TimerMovie | ||
| _movie : MovieClip | TimerMovie | ||
| _timer : Timer | TimerMovie |
| Method | Defined by | ||
|---|---|---|---|
|
TimerMovie(embedded:Class)
Creates a new movie.
| TimerMovie | ||
|
reset():void
Stop the movie and reset to frame 0
| TimerMovie | ||
|
start(duration:Number):void
Reset the movie to frame 0 and play, finishing in the given duration.
| TimerMovie | ||
|
stop():void
Stop the movie where it is and leave it.
| TimerMovie |
| Method | Defined by | ||
|---|---|---|---|
|
timerListener(event:TimerEvent):void
| TimerMovie |
| Constant | Defined by | ||
|---|---|---|---|
| INTERVAL : Number = 100 [static]
| TimerMovie |
| _duration | property |
protected var _duration:int
| _frameCount | property |
protected var _frameCount:int
| _lastTimer | property |
protected var _lastTimer:int
| _movie | property |
protected var _movie:MovieClip
| _timer | property |
protected var _timer:Timer
| TimerMovie | () | constructor |
public function TimerMovie(embedded:Class)
Creates a new movie.
Parametersembedded:Class — class containing the movie |
| reset | () | method |
public function reset():void
Stop the movie and reset to frame 0
| start | () | method |
public function start(duration:Number):void
Reset the movie to frame 0 and play, finishing in the given duration.
Parametersduration:Number |
| stop | () | method |
public function stop():void
Stop the movie where it is and leave it.
| timerListener | () | method |
protected function timerListener(event:TimerEvent):void
Parameters
event:TimerEvent |
| INTERVAL | constant |
protected static const INTERVAL:Number = 100


How to prevent Github Actions from deploying on PR with CI/CD
My experience using Github Actions for CI/CD as a solo contributor🔗
I am using Github Actions to build and deploy my website when I push. That is a classic continuous integration / continuous deployment workflow. It’s convenient to commit, push and have my site build and deploy as a result. This workflow is simple but only works because I am the only contributor.
Github Actions for CI/CD with Pull Request🔗
It is a good practice to run sanity checks on pull requests prior to merging. How would that be accomplished with Github Actions?
It turns out that you can do this but you need to be very intentional with how your jobs are configured.
In my workflow, I am designating a main branch zola
that will run full CI/CD. Build, test and deploy. And for any other branch, just build and test.
I’ll share my example Github Actions workflow file, then I’ll provide a template that you can modify and use for your own purposes.
My example Github Actions workflow🔗
Here’s my site’s current workflow file for Github Actions. I’ll break this down.
on:
push:
branches:
- zola
pull_request:
jobs:
build:
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/zola'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Build only'
uses: tjtelan/zola-deploy-action@master
env:
BUILD_DIR: .
TOKEN: ${{ secrets.TOKEN }}
BUILD_ONLY: true
build_and_deploy:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/zola'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Build and deploy'
uses: tjtelan/zola-deploy-action@master
env:
PAGES_BRANCH: master
BUILD_DIR: .
TOKEN: ${{ secrets.TOKEN }}
At the top, I am specifying the events that I want to trigger on with the on
top-level key.
on:
push:
branches:
- zola
pull_request:
I want to trigger on push events to the zola
branch, and all pull requests.
Later below are 2 jobs that are almost identical. I’ll break them down one at a time then compare their differences.
build
job
build:
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/zola'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Build only'
uses: tjtelan/zola-deploy-action@master
env:
BUILD_DIR: .
TOKEN: ${{ secrets.TOKEN }}
BUILD_ONLY: true
- This job uses the
ubuntu-latest
github hosted runner as my environment. - I do a check for the git ref via the
github.ref
key. Or another way to say this is I check that the working branch that triggered this job is not thezola
branch. I’ll continue forward only if this condition istrue
. - Lastly are my steps. I use the
actions/checkout@master
marketplace action to check my code out, and I use my fork of an action for Zola calledtjtelan/zola-deploy-action@master
. I have an environment variableBUILD_ONLY
set totrue
which results in building my site but not deploying it.
build_and_deploy
job
build_and_deploy:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/zola'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Build and deploy'
uses: tjtelan/zola-deploy-action@master
env:
PAGES_BRANCH: master
BUILD_DIR: .
TOKEN: ${{ secrets.TOKEN }}
- This job also uses the
ubuntu-latest
github hosted runner as my environment. - I do a similar check for the git ref via the
github.ref
key. This time I am looking for the working branch to bezola
- Lastly are my steps. Same as the previous job, but I am configuring
tjtelan/zola-deploy-action@master
differently. Rather than settingBUILD_ONLY
, I am definingPAGES_BRANCH
tomaster
, which is where I want to deploy my site code after build.
Last words on job differences🔗
The only differences are the branch check via github.ref
, and the specifics of steps
. I happen to be using my own Github Action tjtelan/zola-deploy-action
but your steps could consist of anything you want to do differently between pull requests and push to your “special” branch.
Github Actions template🔗
on:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/master
steps:
- name: 'Checkout'
uses: actions/checkout@master
build_and_deploy:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master
steps:
- name: 'Checkout'
uses: actions/checkout@master
Here’s a template that you can use for your own push vs PR workflows. By default, I assume master
as the special branch, so you’ll need to change that if you want to use a different branch. Additionally, you’ll need to provide all the steps to take after checking code out.


| TEP: | 136 |
|---|---|
| Group: | Network Protocol Working Group |
| Type: | Informational |
| Status: | Draft |
| TinyOS-Version: | > 2.1 |
| Author: | Stephen Dawson-Haggerty, Matus Harvan, and Omprakash Gnawali |
Recently, there has been renewed interest in the applicability of Internet Protocol-based networking for low power, embedded devices. This interest is being driven by several sources. One, emerging standards from the IETF are beginning to make it possible to design efficient, compatible implementations of IP for this class of resource-constrained device. Two, there has been an emergence of a significant number of both open and closed IP embedded IP stacks which demonstrate the applicability of this model of networking. Third, a set of recent academic papers have made the case that this network architecture is a significant research enabler and shown in more detail the structure of a full stack.
In this TEP, we briefly explain how IP mechanisms map onto the well-studied problems of the sensor network community like collection routing and local aggregation. Next, we discuss the current "state of the standards." Finally, we propose a path for the adoption of IP within TinyOS.
There are two versions of IP: IPv4 (RFCXXX) and IPv6 (RFCXXX). Previous studies have indicated that IPv6 is more applicable to the low-power, embedded space then IPv4 for various reasons; most standardization efforts have focused on adapting IPv6 to these devices. Therefore, we consider only IPv6.
A central question for implementing IPv6 in sensor networks is what has become know as "route over" vs. "mesh under" in the IETF. In mesh under networking, routing is done on layer two addresses, and every host is one hop from every other. Although this is the most compatible with existing assumptions about subnet design, it leads to significant redundancies and inefficiencies in this space. The alternative, so called route-over exposes the radio topology at the IP layer. While not strictly compatible with some IPv6 mechanisms, this is becomming the favored approach since a single set of tools can be used to debug. For the rest of this TEP we assume that route over is the model.
There are a number of existing routing protocols for IPv6, some targeted at wireless links. However, IPv6 itself does not require any particular routing protocol to be used with a domain; common choices in wired networks are OSPF and IS-IS. Recent study in the IETF has indicated that existing protocols are probably not appropriate for this space [draft-ietf-roll-protocols-02], and so further work is needed on this point. Existing protocols with TinyOS implementations such as DYMO or S4 may be appropriate for this task; collection and dissemination protocols like CTP or Drip are probably not directly applicable since they are address-free, although the insight gained from their implementations may be transferable.
The most well-known property of IPv6 is probably it's address length. An IPv6 address is 128 bits long. Within this space, IPv6 defines unicast, anycast, and multicast address ranges; each of these ranges further have properties of their own. For a full explaination of IPv6 addressing we refer the reader to, for example, [OReilly, RFC], we cover briefly some of the important details.
Unicast addresses in IPv6 consist of two parts: the network identifier (the first 64 bits), and the interface identifier (the second). The interface identifier is a flat space, and may be derived from the interface's MAC address, a random number, or other mechanism. IPv6 contains mechanisms to ensure that the interface ID is unique within the subnet. The network may be assigned using many different mechanisms, but some network identifiers are special.
Unlike IPv4, each interface in IPv6 is multihomed: it is expected to have multiple IPv6 addresses. When an interface is brought up, IPv6 contains mechanisms to configure the interface with a locally unique, non-routable address known as the link-local address. This address has the network identifier fe80::, and can be used for communication between hosts in the same subnet.
In a TinyOS IPv6 stack, this address range might be used to allow TinyOS nodes to communicate locally without routing, for instance to enable local aggregation. If the TinyOS hosts can assign themselves link-local addresses derived from their IEEE802.15.4 16-bit short id, or full 64-bit EUID. For instance, a node with short ID 16 might assign the address fe80::10 to its 802.15.4 interface. These addresses would not be routed; an IP stack would send directly to the short id 0x10 contained in the address.
IPv6 also contains several mechanisms to allow a host to obtain a publicly-routable network identifier. TinyOS hosts communicating with these addresses could contact nodes in other sensor networks or on the internet; the fact that they are multihomed allows them to use both public and link-local addresses simultaneously.
IPv6 contains a multicast address range; addresses beginning with the byte containing all ones (0xff) are multicast addresses. Following this byte are four bits of flags and four bits of "scope". For instance, scope 1 is node-local, and scope 2 is link local. IPv6 defines many well-known multicast groups [http://www.iana.org/assignments/ipv6-multicast-addresses]; of most interest here are the "link-local all nodes" and "link local all-routers" addresses: ff02::1 and ff02::2, respectively. Depending on weather TinyOS IP hosts are also IP routers, these addresses are effecitvely link-local broadcast addresses which might be mapped into the layer 2 broadcast address (0xffff). Thus IPv6 contains mechanisms for local broadcast.
There is also a site-local scope defined in IPv6 (5) with a similar ff05::2 address. "Site local" is an administratively defined scope in IPv6, and might naturally consist of an entire sensor network. Thus, sending to this address would correspond to disseminating a value to each node in the network and could be implemented with a trickle-based algorithm.
Futhermore, the TinyOS community could develop additional conventions to provide and address for scoped flooding or delivery to nodes with particular capabilities. A full IP multicast implementation within the sensor network could be used for many things including control applications or publish-subscribe network layers which have previously been special purpose.
Anycast addresses indicate that the packet should be delivered to at least one host with the anycast address. This seems initially similar to the model for collection routing such as MultiHopLQI or CTP, in that a collection report is delivered to a single root. However, it is more likeley that those "collection roots" in an IP-based infrastructure are not actually the final destination for the data; they are likely to only be intermediate routers who send the data on to a final destination. Therefore, while there may be applications for anycast addressing, we do not believe this addressing mode to be appropriate in the common case.
As alluded to earlier, IPv6 contains two mechanisms to allow internet hosts to become associated with a public network identifier. These methods are stateless autoconfiguration and DHCPv6. Stateless autoconfiguration defines Router Solicitations and Router Advertisements. A host joining a network sends router solicitations to the link-local all-routers address (ff02::2) using his link-local address as the source address. Routers respond with a Router Advertisement containing, among other things, a public network identifier which the host may use.
In a TinyOS IP implementation, router solicitations and advertisements might be used for default route selection on the hosts, as well as neighbor discovery.
A common idiom in TinyOS is to provide "stacked" headers by implementing a series of components, all of which implement the Packet interface. IPv6 supports this a more flexible way with options headers. These headers fall into one of two categories: hop-by-hop options headers and destination option headers. These headers are chained together with small, two-octet common header fields which identifiy the header type of the next header, and the length of that options header. This allows hosts to process a header chain even if they do not know how to interpret all of the options headers.
These headers are commonly used for protocol options, or to piggyback data on outgoing packets. For instance, a link estimator component could add an extra "link options" header to occasional outgoing packets as an options header, while avoiding the overhead when it is not necessary to do so. This header architecture is significantly more flexible then the existing TinyOS packet architecture, although it does come at the slight cost of complexity.
All of the previously defined mechanisms are well defined for IPv6 in various RFCs. However, most nodes running TinyOS are significantly more resource-constrained then typical IPv6 hosts. Thus, there is ongoing work on adapting these mechanisms to the characteristics of embedded devices.
The first issue which must be addressed is the sheer size of the IPv6 header: 40 octets. Of this, 32 octets are the source and destination addresses of the packet. The IETF has published RFC4944 which describes a header compression technique known as HC1. However, this scheme has significant problems, most importantly the inability to take advantage of 16-bit short identifiers when available. There have been a sequence of internet drafts proposing improved techinques such as HC1g, and HC. The most recent version of these drafts is draft-hui-6lowpan-hc-02, and there are strong indications that the working group will depreciate HC1 from RFC4944 in the future.
IPv6 requires a minimum link MTU of 1280 octets in RFCXXX. Clearly, this is much larger then the IEEE802.15.4 link MTU of 127 octets. RFC4944 defines "layer 2.5" fragmentation which allow packets up to this MTU to be transfered over small MTU links. While there are some issues have been raised with this scheme, it seems likely to remain relatively unaltered.
IPv6 stateless autoconfiguration as originally defined has some problems, expecially once a "route over" network topology is established; for instance, Duplicate Address Detection is likely to require some changes. A subcomittee of the 6lowpan working group is currently investigating these issues is is likely to propose adaptation mechanisms but they are currently in flux.
It is currently not possible to develop a standards-compliant routing layer, as the relevant standards do not exist. Work in this direction is occuring in the Roll working group, but a full specification is likely some way off.
As the previous sections have shown, many sensor network abstractions map well into IPv6 mechanisms, with a significant gain in clarity of abstraction. However, standards are currently unavailable to specifiy exactly how this should be accomplished. Therefor, our position is that TinyOS should move quickly to incorporate existing techinques and standards into an IPv6 stack where possible, while taking liberties with the standards when doing so improves performance or simplifies implementation. Given that the standards themselves are in a state of flux, having an open implementation which demonstrates challenges and feasible mechaninisms is likely to be of significant value.
The most important places where it may be necessary to move ahead of the standards are the routing; an IPv6 stack with no routing will not be as useful as one with it. One open question is weather we choose a routing algorithm which functions in a completly decentralized fashion like AODV, OLSR, DYMO, S4, or many existing protocols or choose one which imposes more hierarchy on deployments. We do note that existing standards like Zigbee and WirelessHART both contain multi-tier architectures with devices of differing capabilities. This has also been a common deployment model in many applications, but it limits the utility to places where this is possible. The correct long-term answer is probably to support both types of routing.
This document is meant to introduce readers to the ways in which IPv6 mechanisms can be used in a TinyOS-based sensor network deployment, and how they relate to previous work. It does not address any implementation issues, which will be presented in a later TEP.


The database interface is envisioned to consist of two layers. The first layer is an encapsulation of the core functionality of ODBC. This layer makes it possible to run SQL queries. The second layer exploits the relation between Prolog predicates and database tables, providing ---a somewhat limited--- natural Prolog view on the data. The current interface only covers the first layer.
The value of RDMS for Prolog is often over-estimated, as Prolog itself can manage substantial amounts of data. Nevertheless a Prolog/RDMS interface provides advantages if data is already provided in an RDMS, data must be shared with other applications, there are strong persistency requirements or there is too much data to fit in memory.
The popularity of ODBC makes it possible to design a single foreign-language module that provides RDMS access for a wide variety of databases on a wide variety of platforms. The SWI-Prolog RDMS interface is closely modeled after the ODBC API. This API is rather low-level, but defaults and dynamic typing provided by Prolog give the user quite simple access to RDMS, while the interface provides the best possible performance given the RDMS independency constraint.
The Prolog community knows about various high-level connections between RDMS and Prolog. We envision these layered on top of the ODBC connection described here.
The ODBC interface deals with a single ODBC environment with multiple simultaneous connections. The predicates in this section deal with connection management.
alias
option is used. In addition to the options below, options applicable to
odbc_set_connection/2
may be provided.
user(User)
.once
(default if an alias
is provided), a second call to open the same DSN simply
returns the existing connection. If multiple
(default if
there is no alias name), a second connection to the same data-source is
opened.true
, use Microsoft SQL server 2005 mars mode.
This is support for multiple concurrent statements on a connection
without requiring the dynamic cursor (which incurs an astounding 20-50x
slowdown of query execution!!). MARS is a new feature in SQL2k5
apparently, and only works if you use the native driver. For the
non-native driver, specifying that it is enabled will have absolutely no
effect.'3.0'
.
The other supported value is '2.0'
.
The following example connects to the WordNet1An
SQL version of WordNet is available from http://wordnet2sql.infocity.cjb.net/
[1] database, using
the connection alias wordnet
and opening the connection
only once:
open_wordnet :- odbc_connect('WordNet', _, [ user(jan), password(xxx), alias(wordnet), open(once) ]).
user
and
password
.
Whenever possible, applications should use odbc_connect/3. If you need this predicate, please check the documentation for SQLDriverConnect() and the documentation of your driver.bugFacilities to deal with prompted completion of the driver options are not yet implemented.
read
, tell the driver we only access the database in
read mode. If update
(default), tell the driver we may
execute update commands.true
(default), each update statement is committed
immediately. If false
, an update statement starts a
transaction that can be committed or rolled-back. See section
2.3 for details on transaction management.dynamic
makes it possible to have multiple active statements on the same
connection with Microsoft SQL server. Other values are static
, forwards_only
and keyset_driven
.unicode
while
on other platforms it is utf8
. Below, the *A() functions
refer to the `ansi' ODBC functions that exchange bytes and the *W()
functions refer to the `unicode' ODBC functions that exchange UCS-2
characters.
true
(default false
), statements returning
SQL_SUCCESS_WITH_INFO
succeed without printing the info.
See also section 2.7.1.$null$
. NullSpecifier is
an arbitrary Prolog term, though the implementation is optimised for
using an unbound variable, atom and functor with one unbound variable.
The representation null(_)
is a commonly used alternative.
The specified default holds for all statements executed on this connection. Changing the connection default does not affect already prepared or running statements. The null-value can also be specified at the statement level. See the option list of odbc_query/4.
Name(Value)
. If Property
is unbound all defined properties are enumerated on backtracking.
Currently the following properties are defined.
cursor_type
to dynamic
. See odbc_set_connection/2.
ODBC distinguishes between direct execution of literal SQL strings and parameterized execution of SQL strings. The first is a simple practical solution for infrequent calls (such as creating a table), while parameterized execution allows the driver and database to precompile the query and store the optimized code, making it suitable for time-critical operations. In addition, it allows for passing parameters without going through SQL-syntax and thus avoiding the need for quoting.
[]
for Options.If the statement is a SELECT
statement the result-set is
returned in RowOrAffected. By default rows are returned
one-by-one on backtracking as terms of the functor row/Arity
,
where Arity denotes the number of columns in the result-set.
The library pre-fetches the next value to be able to close the statement
and return deterministic success when returning the last row of the
result-set. Using the option findall/2
(see below) the
result-set is returned as a list of user-specified terms. For other
statements this argument returns affected(Rows)
, where Rows
represents the number of rows affected by the statement. If you are not
interested in the number of affected rows odbc_query/2
provides a simple interface for sending SQL-statements.
Below is a small example using the connection created from
odbc_connect/3.
Please note that the SQL-statement does not end in the `
'
character.
;
lemma(Lemma) :- odbc_query(wordnet, 'SELECT (lemma) FROM word', row(Lemma)).
The following example adds a name to a table with parent-relations,
returning the number of rows affected by the statement. Note that the
SQL quote character is the ASCII single quote and, as this SQL
quote is embedded in a single quoted Prolog atom, it must be written as \'
or ''
(two single quotes). We use the first
alternative for better visibility.
insert_child(Child, Mother, Father, Affected) :- odbc_query(parents, 'INSERT INTO parents (name,mother,father) \ VALUES (\'mary\', \'christine\', \'bob\')', affected(Affected)).
Options defines the following options.
default
to use
default conversion for that column. The length of the type-list must
match the number of columns in the result-set.
For example, in the table word
the first column is
defined with the SQL type DECIMAL(6)
. Using this SQL-type,
``001'' is distinct from ``1'', but using Prolog integers is a valid
representation for Wordnet wordno
identifiers. The
following query extracts rows using Prolog integers:
?- odbc_query(wordnet, 'select * from word', X, [ types([integer,default]) ]). X = row(1, entity) ; X = row(2, thing) ; ...
See also section 2.6 for notes on type-conversion.
true
(default false
), include the
source-column with each result-value. With this option, each result in
the
row/N
-term is of the format below. TableName
or
ColumnName may be the empty atom if the information is not
available.3This is one possible
interface to this information. In many cases it is more efficient and
convenient to provide this information separately as it is the same for
each result-row.
column(TableName, ColumnName, Value)
lemmas(Lemmas) :- findall(Lemma, odbc_query(wordnet, 'select (lemma) from word', row(Lemma)), Lemmas).
Using the findall/2
option the above can be implemented
as below. The number of argument of the row
term must match
the number of columns in the result-set.
lemmas(Lemmas) :- odbc_query(wordnet, 'select (lemma) from word', Lemmas, [ findall(Lemma, row(Lemma)) ]).
The current implementation is incomplete. It does not
allow arguments of
row(...)
to be instantiated. Plain instantiation can always
be avoided using a proper SELECT statement. Potentially useful however
would be the translation of compound terms, especially to translate
date/time/timestamp structures to a format for use by the application.
SELECT
). The predicate prints a
diagnostic message if the query returns a result.
ODBC provides for `parameterized queries'. These are SQL queries with
a
-sign at places where parameters appear.
The ODBC interface and database driver may use this to precompile the
SQL-statement, giving better performance on repeated queries. This is
exactly what we want if we associate Prolog predicates to database
tables. This interface is defined by the following predicates:
?
[]
for Options.?
)
and unify Statement with a handle to the created statement. Parameters
is a list of descriptions, one for each parameter. Each parameter
description is one of the following:
silent(true)
option
of odbc_set_connection/2.
An alternative mapping can be selected using the > option
of this predicate described below.char
, varchar
,
etc. to specify the field-width. When calling odbc_execute/[2-3],
the user must supply the parameter values in the default Prolog type for
this SQL type. See section 2.6 for
details.atom > date
The use must supply an atom of the format YYYY-MM-DD
rather than a term date(Year,Month,Day)
. This construct
enhances flexibility and allows for passing values that have no proper
representation in Prolog.
Options defines a list of options for executing the statement. See odbc_query/4 for details. In addition, the following option is provided:
auto
(default) to extract the result-set on backtracking or fetch
to prepare the result-set to be fetched using odbc_fetch/3.
ODBC doesn't appear to allow for multiple cursors on the same
result-set.4Is this right?
This would imply there can only be one active odbc_execute/3
(i.e. with a choice-point) on a prepared statement. Suppose we have a
table age (name char(25), age integer)
bound to the
predicate age/2 we cannot write the code
below without special precautions. The ODBC interface therefore creates
a clone of a statement if it discovers the statement is being executed,
which is discarded after the statement is finished.5The
code is prepared to maintain a cache of statements. Practice should tell
us whether it is worthwhile activating this.
same_age(X, Y) :- age(X, AgeX), age(Y, AgeY), AgeX = AgeY.
Normally SQL queries return a result-set that is enumerated on backtracking. Using this approach a result-set is similar to a predicate holding facts. There are some cases where fetching the rows one-by-one, much like read/1 reads terms from a file is more appropriate and there are cases where only part of the result-set is to be fetched. These cases can be dealt with using odbc_fetch/3, which provides an interface to SQLFetchScroll().
As a general rule of thumb, stay away from these functions if you do not really need them. Experiment before deciding on the strategy and often you'll discover the simply backtracking approach is much easier to deal with and about as fast.
fetch(fetch)
and be executed using odbc_execute/2. Row
is unified to the fetched row or the atom end_of_file
6This
atom was selected to emphasise the similarity to read.
after the end of the data is reached. Calling odbc_fetch/2
after all data is retrieved causes a permission-error exception. Option
is one of:
relative(1)
is the same
as next()
, except that the first row extracted is row 2.
In many cases, depending on the driver and RDBMS, the cursor-type
must be changed using odbc_set_connection/2
for anything different from next()
to work.
Here is example code each time skipping a row from a table `test' holding a single column of integers that represent the row-number. This test was executed using unixODBC and MySQL on SuSE Linux.
fetch(Options) :- odbc_set_connection(test, cursor_type(static)), odbc_prepare(test, 'select (testval) from test', [], Statement, [ fetch(fetch) ]), odbc_execute(Statement, []), fetch(Statement, Options). fetch(Statement, Options) :- odbc_fetch(Statement, Row, Options), ( Row == end_of_file -> true ; writeln(Row), fetch(Statement, Options) ).
ODBC can run in two modi. By default, all update actions are immediately committed on the server. Using odbc_set_connection/2 this behaviour can be switched off, after which each SQL statement that can be inside a transaction implicitly starts a new transaction. This transaction can be ended using odbc_end_transaction/2.
commit
pending updates are made permanent, using
rollback
they are discarded.
The ODBC documentation has many comments on transaction management and its interaction with database cursors.
With this interface we do not envision the use of Prolog as a database manager. Nevertheless, elementary access to the structure of a database is required, for example to validate a database satisfies the assumptions made by the application.
all_types
to enumerate all known types. This predicate
calls SQLGetTypeInfo() and its facet names are derived from the
specification of this ODBC function:
NULL
. May be unknown
false
,
true
, like_only
or all_except_like
.
Databases have a poorly standardized but rich set of datatypes. Some
have natural Prolog counterparts, some not. A complete mapping requires
us to define Prolog data-types for SQL types that have no standardized
Prolog counterpart (such as timestamp), the definition of a default
mapping and the possibility to define an alternative mapping for a
specific column. For example, many variations of the SQL DECIMAL
type cannot be mapped to a Prolog integer. Nevertheless, mapping to an
integer may be the proper choice for a specific application.
The Prolog/ODBC interface defines the following Prolog result types
with the indicated default transformation. Different result-types can be
requested using the types(TypeList)
option for the
odbc_query/4
and odbc_prepare/5
interfaces.
char
, varchar
,
longvarchar
, binary
, varbinary
,
longvarbinary
, decimal
and numeric
.
Can be used for all types.bit
, tinyint
,
smallint
and integer
. Please note that
SWI-Prolog integers are signed 32-bit values, where SQL allows for
unsigned values as well. Can be used for the integral, and decimal
types as well as the types date
and timestamp
,
which are represented as POSIX time-stamps (seconds after Jan 1, 1970).real
, float
and
double
. Can be used for the integral and decimal
types as well as the types date
and timestamp
,
which are represented as POSIX time-stamps (seconds after Jan 1, 1970).
Representing time this way is compatible to SWI-Prologs time-stamp
handling.date(Year,Month,Day)
used as
default for the SQL type date
.time(Hour,Minute,Second)
used as
default for the SQL type time
.timestamp(Year,Month,Day,Hour,Minute,Second,Fraction)
used
as default for the SQL type timestamp
.
ODBC operations return success, error or `success with info'. This section explains how results from the ODBC layer are reported to Prolog.
If an ODBC operation returns `with info', the info is extracted from
the interface and handled to the Prolog message dispatcher print_message/2.
The level of the message is informational
and the term is
of the form:
If an ODBC operation signals an error, it throws the exception
error(
. The
arguments of the odbc(State, Native, Message)
, _)odbc/3
term are explained in section
2.7.1.
In addition, the Prolog layer performs the normal tests for proper arguments and state, signaling the conventional instantiation, type, domain and resource exceptions.
There is a wealth on ODBC implementations that are completely or almost compatible to this interface. In addition, a number of databases are delivered with an ODBC compatible interface. This implies you get the portability benefits of ODBC without paying the configuration and performance price. Currently this interface is, according to the http://www.php.netPHP documentation on this subject, provided by Adabas D, IBM DB2, Solid, and Sybase SQL Anywhere.
The SWI-Prolog ODBC interface was developed using http://www.unixodbc.orgunixODBC and http://www.mysql.comMySQL on http://www.suse.comSuSE Linux .
On MS-Windows, the ODBC interface is a standard package, linked
against
odbc32.lib
.
The following issues are identified and waiting for concrete problems and suggestions.
The SWI-Prolog ODBC interface started from a partial interface by Stefano De Giorgi. Mike Elston suggested programmable null-representation with many other suggestions while doing the first field-tests with this package.


Who has the best cheap car insurance in Oregon?
by Liz Knueven, Business Insider US- Car insurance in Oregon isn’t incredibly expensive, but shopping around can help you save even more.
- Car insurance companies base your premium on many different factors, including your credit score, but each company weighs these factors differently, resulting in different prices between companies.
- According to data from Consumer Reports, the best cheap car insurance companies in Oregon are typically USAA, State Farm, and Safeco for good or better credit, and American Family car insurance for drivers with poor credit.
- Read more personal finance coverage.
Car insurance in Oregon is relatively affordable, with the average driver paying $877 per year for coverage according to the Insurance Information Institute. But, even though coverage is affordable in this West Coast state, there’s still a lot to be saved by shopping around for coverage and comparing quotes.
Shopping around for your car insurance the best way to make sure that you’re getting the best rate for you. Car insurance companies base their premiums, or the amount you’ll pay for coverage, on a variety of factors. Since each company weighs factors differently, getting one quote won’t help you make sure you’re getting the best possible price.
Here are the best companies to start your car insurance shopping, broken down by credit score.
Who has the best cheap car insurance in Oregon?
Consumer Reports compiled car insurance pricing formulas from every insurance company in each state. It found that three companies offer the best prices for for the typical single adult driver in Oregon in three different credit categories.
Drivers with good credit, or FICO scores between 670 and 739, will find that their best options are USAA and State Farm, on average:
- USAA car insurance: $974 per year
- State Farm car insurance: $1,041 per year
- Safeco car insurance: $1,044 per year
People with excellent FICO scores (or scores above 800) can expect to see some of the lowest rates in Oregon, on average:
- Safeco car insurance: $819 per year
- USAA car insurance: $826 per year
- State Farm car insurance: $840 per year
Drivers with poor FICO scores below 579 will pay the most for car insurance coverage, on average. Here are the three most affordable companies for this credit range:
- American Family car insurance: $1,756 per year
- Allstate car insurance: $1,968 per year
- State Farm car insurance: $2,010 per year
Who gets the best cheap car insurance in Oregon?
As the car insurance prices above show, drivers with the best credit scores will typically see the lowest cost of coverage in Oregon. But, that doesn’t mean that you can’t save if you don’t have a perfect credit score.
Raising your credit score could help lower your car insurance costs. And, you can save by shopping around for coverage. Every car insurance company prices premiums according to different factors, so you’ll want to see what types of coverage and rates multiple companies offer.
Get quotes from several companies and compare them to find your best cost for coverage. Look for the policy with the most coverage types and the highest limits for your budget. Also make sure to look at the deductible, or the amount you’ll pay out of pocket if you get into an accident. Generally, the lower the premium, the higher the deductible. Look for a policy that has a low deductible, the most coverage, and the lowest premium to find your best deal.
- More personal finance coverage
- 4 reasons to open a high-yield savings account while interest rates are down
- It took less than 10 minutes to open a high-yield cash account with Wealthfront and earn more on my savings
- How to buy a house with no money down
- When to save money in high-yield savings
- Best rewards credit cards
- 7 reasons you may need life insurance, even if you think you don’t


Protesters fire arrows at Hong Kong police
by Richard GoodPro-democracy campaigners fired used petrol bombs, arrows and even catapults against police as the battle for power in Hong Kong moved to a university campus in the Chinese territory’s central Kowloon district.
Police responded with tear gas and pepper spray.
The Hong Kong Polytechnic is the last of five universities to be in the hands of the activists and it is used as a base from which to block the Cross-Harbour tunnel.
Tensions have been heightened by reports of Chinese soldiers making a rare public appearance on the streets of Hong Kong.
Dozens of Chinese troops, dressed in black shorts and olive drab T-shirts, ran out in loose formation and picked up paving stones, rocks and other obstacles that had cluttered the street.
The military is allowed to help maintain public order, but only at the request of the Hong Kong government. The government said that it had not requested the military’s assistance, describing it as a voluntary community activity.
Months of protest in the former British colony have seen campaigners clash with the authorities over allegations that Beijing is attempting to reduce its autonomy.
Protesters have tried to turn the university campuses into armed camps, resorting to medieval-style weapons such as bows and arrows, catapults and gasoline bombs to stop police from entering the grounds.
Protesters said they need the weapons to protect the campuses from police using tear gas
A Hong Kong police officer was hit in the leg by an arrow on Sunday. Police said the weapon struck a media liaison officer, who was taken to a hospital. Photos on the department’s Facebook page show the arrow sticking out of the back of the officer’s lower leg.
Education officials announced that classes from nursery to secondary school would be suspended again on Monday because of safety concerns.


New Apple iPhone 11 Smart Battery Case Adds 1 Unique Surprise Feature
by David PhelanWhen Apple introduced its latest iPhones in September, it boasted that the new handsets had seriously improved battery life. Most strikingly, the iPhone 11 Pro Max claimed to last four hours longer than its closest predecessor, the iPhone XS Max.
It’s true, it’s been quietly revelatory. I’ve been using the iPhone 11 Pro Max since the day it was announced and the battery life is epic. I literally never need to recharge during the day. In fact, I never even think about it.
So, today’s completely unexpected announcement of smart battery cases seems puzzling at first. What on earth do I need that for? Well, it could be handy if you know that you’re going to have to go without charging your iPhone overnight, for a start.
Here’s everything we know about the new cases.
They’re wireless-chargeable
This is a neat feature, first introduced on last year’s smart battery cases for the iPhone XS and iPhone XS Max. It means you can place the case on a QI-compatible charging pad to charge it, with the iPhone inside or not.
Apple Releases iOS 13.2.3: Another Unexpected Update With Vital Changes
Forbes David Phelan
They feel great
If you find the glass of the iPhone 11 a little slippy (the more heavily matte finish on the iPhone 11 Pro and iPhone 11 Pro Max are less so) the the soft-touch finish on the battery case is easy to hold in your hand securely.
They come in up to three colors
That’s one more than last year’s battery cases (which of course don’t fit on the new iPhones thanks to the redesigned and improved camera units on the back.
For the iPhone 11, there are still only two color options, Soft White and Black. Both look very similar to last year’s offerings.
But if you’re a Pro user then you have three colors to choose from: White, Black and Pink Sand, which is particularly fetching.
There’s a new feature no other case can match
This is really cool. There’s a button on the case. It sits completely flush with the case, so you don’t notice it. When you press it, though, it launches the iPhone camera. Only Apple would add an extra feature to a case that directly interacts with the iPhone in a new way.
Exactly how it works is a different matter. I’ve reached out to Apple and will update this story when I hear back.
Actually, it’s cooler than that
That’s because there are extra details about this button that are worth knowing. First, it launches the camera even if the phone is locked. Second, with a quick press, it snaps a photo. With a long press, it records a QuickTake video.
Apple December New York Event: Exactly What Will Be Revealed
Forbes David Phelan
Apple says you’ll get up to 50% more battery life
Seriously, there’s already great daily battery life on all three new iPhones so an extra 50% is pretty amazing. Want to know how Apple worked this out? Here’s what the company says:
Testing conducted by Apple in October 2019 using preproduction iPhone 11 Pro units and software paired with preproduction iPhone 11 Pro Smart Battery Case units and software. Video tests consisted of repeated playback of a 2-hour 23-minute movie purchased from the iTunes Store. All settings were default except: Bluetooth was paired with headphones; Wi-Fi was associated with a network; the Wi-Fi feature Ask to Join Networks, Auto-Brightness, and True Tone were turned off. All battery claims depend on network configuration and many other factors; actual results will vary.
Specific, much?
The cases are available now
On sale now at apple.com, each case retails for $129 (£129 in the U.K.) so they’re not cheap. But they are cool.
_________________________
Follow me on Instagram by clicking here: davidphelantech and Twitter: @davidphelan2009
More on Forbes
_________________________


public class NurAccessoryConfig
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
ACC_EXT_GET_CFG
Get configuration command.
|
static int |
ACC_EXT_SET_CFG
Set configuration command.
|
static int |
APP_CTX_SIZE
Byte size of the application context.
|
static int |
APP_CTX_SIZE_OLD1 |
static int |
APP_FL_HID_BARCODE
HID-bit for the barcode scan.
|
static int |
APP_FL_HID_RFID
HID-bit for the RFID scan / inventory.
|
static int |
APP_FL_USE_PEERMGR
Allow pairing bit
|
static int |
APP_PERM_SIG
Constant signature value used by the module and API extension.
|
static int |
APP_PERM_SIG_OLD1 |
static int |
CONFIG_FLAG_EXA31
Device is configured as EXA31 reader.
|
static int |
CONFIG_FLAG_EXA51
Device is configured as EXA51 reader.
|
int |
configValue |
static int |
DEV_FEATURE_IMAGER
Device has 1D/2D imager.
|
static int |
DEV_FEATURE_VIBRATOR
Device has built-in vibrator.
|
static int |
DEV_FEATURE_WIRELESS_CHG
Device has built-in wireless charging device.
|
int |
flags
Control/status flag set.
|
int |
hidBarcodeTimeout
Barcode scan timeout.
|
int |
hidRFIDMaxTags
Maximum number of tags.
|
int |
hidRFIDTimeout
RFID scan / inventory timeout.
|
static int |
MAX_NAME_LENGTH
Maximum name length in characters.
|
java.lang.String |
name
Name read from the accessory / reader.
|
int |
signature
For recognition.
|
static int |
SZ_NAME_FIELD
Size, in bytes, of the name field in the configuration protocol packet.
|
| Constructor and Description |
|---|
NurAccessoryConfig() |
| Modifier and Type | Method and Description |
|---|---|
static NurAccessoryConfig |
allocEmpty()
Creates an empty configuration.
|
static NurAccessoryConfig |
deserializeConfigurationReply(byte[] reply)
Deserializes the accessory extension's configuration reply.
|
boolean |
getAllowPairingState()
Get state of 'Allow pairing' flag.
|
java.lang.String |
getDeviceType()
Get device name EXA51 or EXA31
|
boolean |
getHidBarCode()
Get whether the HID-bit is set in the flag set.
|
boolean |
getHidRFID()
Get whether the RFID HID-bit is set in the flag set.
|
static byte[] |
getQueryCommand()
Configuration get -command.
|
boolean |
hasImagerScanner()
Get whether the accessory has 1D/2D imager present.
|
boolean |
hasVibrator()
Get whether the accessory has built-in vibrator.
|
boolean |
hasWirelessCharging()
Get whether the accessory has wireless charging device.
|
boolean |
isDeviceEXA31()
Get whether the device is configured as EXA31 reader.
|
boolean |
isDeviceEXA51()
Get whether the device is configured as EXA51 reader.
|
static byte[] |
serializeConfiguration(NurAccessoryConfig cfg)
Serializes accessory extension configuration into a byte array that the extension module consumes / accepts.
|
void |
setAllowPairingState(boolean setAllowPairing)
Set the 'Allow pairing' state.
|
void |
setHidBarcode(boolean setHID)
Set the HID flag in the barcode scan.
|
void |
setHidRFID(boolean setHID)
Set the RFID HID-flag in the barcode scan.
|
public static final int ACC_EXT_GET_CFG
public static final int ACC_EXT_SET_CFG
public static final int APP_PERM_SIG
public static final int APP_PERM_SIG_OLD1
public static final int APP_CTX_SIZE
public static final int APP_CTX_SIZE_OLD1
public static final int SZ_NAME_FIELD
public static final int MAX_NAME_LENGTH
public static final int APP_FL_HID_BARCODE
public static final int APP_FL_HID_RFID
public static final int APP_FL_USE_PEERMGR
public static final int CONFIG_FLAG_EXA51
public static final int CONFIG_FLAG_EXA31
public static final int DEV_FEATURE_IMAGER
public static final int DEV_FEATURE_WIRELESS_CHG
public static final int DEV_FEATURE_VIBRATOR
public int signature
public int configValue
public int flags
public int hidBarcodeTimeout
public int hidRFIDTimeout
public int hidRFIDMaxTags
public java.lang.String name
public void setHidBarcode(boolean setHID)
setHID
- set to true to set the behavior to "HID".public boolean getHidBarCode()
public void setHidRFID(boolean setHID)
setHID
- set to true to set the behavior to "HID".public boolean getHidRFID()
public boolean getAllowPairingState()
public void setAllowPairingState(boolean setAllowPairing)
setAllowPairing
- set to true if allowing device to pair with the target device".public static NurAccessoryConfig deserializeConfigurationReply(byte[] reply) throws java.lang.Exception
reply
- Bytes received from the transport layer / reader module.com.nordicid.nurapi.NurApiException
- Exception is thrown if he reply is invalid.java.lang.Exception
public static byte[] serializeConfiguration(NurAccessoryConfig cfg) throws java.lang.Exception
cfg
- A valid accessory extension configuration.java.lang.Exception
- API exception is thrown with invalid signature.public static byte[] getQueryCommand()
public static NurAccessoryConfig allocEmpty()
public boolean isDeviceEXA51()
public boolean isDeviceEXA31()
public java.lang.String getDeviceType()
public boolean hasImagerScanner()
public boolean hasWirelessCharging()
public boolean hasVibrator()


Nandhitha Hariharan
About
Nandhitha Hariharan is a feminist by belief, a writer by passion and a filter-coffee addict because caffeine and writing are the two things she cannot live without. She enjoys writing about love, feminism and loves reading books. A finance professional turned marketer, she does marketing for brands during the day. She started her writing journey by penning down movie reviews for The Hindu Nxg. It slowly branched into opinion pieces, book reviews, articles and so on. After this, she was published with an international magazine. She discovered her love for writing about feminism online when her article on dress-code for girls in college was well received. Today, apart from her day job she runs an initiative called Let’s Talk Life along with a friend which encourages poetry and open discussion in Chennai. Nandhitha loves penning down performance poetry and reading it out aloud because she believes in the therapeutic value it offers. Nandhitha enjoys reading – While it is hard for most people to pick one book and say it is their favorite, it is quite easy for her. “To Kill A Mocking Bird” remains her all time favorite book and the spot for the second best book can never quite be filled because there are too many. Apart from writing, Nandhitha enjoys experimenting with new foods. A big foodie and a movie buff, she likes watching light movies with a huge tub of butter popcorn. An introvert by nature, she can be found with her nose in her favorite book every other day. She is an aspiring novelist and a storyteller who is working on her current book. Her works can also be found at Women’s Web and many other websites online.


A static database query should always have a constant string as first argument. Dynamically computed query string may lead to SQL injection attacks
$query = $connection->query("SELECT nid, title FROM {node} WHERE user = $name"); $query = $connection->query("SELECT nid, title FROM {node} WHERE user = ".$name);


--- layout: default --- {% assign posts_count = (paginator.posts | size) %}
Hello world! Hello beyond as well, I suppose. That would be flattering. My name is Destiny Rose Murphy. I'm 19 years old and currently living in New York City, where I just moved. I've just started my first adult job at the law firm Quinn Emanuel where (so far) I work in complex securities litigation and criminal defense. Earlier this year I graduated from Yale Law School, which I transferred to from Georgetown Law after my 1L year. For my undergraduate degree I majored in English, Political Science, and Philosophy, and I minored in Public Policy and International Affairs at Southern Methodist University in Dallas, Texas.
It's so strange and wonderful to be finally out of school! I've been heading towards this moment in my life, where I just /am/ a lawyer, for virtually my whole life, but it has taken near-constant striving to get here; and now I'm just here. I passed the bar and my application for admission to practice in New York has been accepted. I get handed work assignments that are interesting, and I do them. I go to brunch on weekends and snuggle with my cat in the evenings and fiddle with decorating my apartment constantly. Friends and family come to visit, and life is easy in a way it has never been before. There are still important professional and financial goals that I have: I need to pay off the debt I accrued getting here, and I need to build up some savings, and I'd like to work on getting something published while I'm at Quinn. Bu all of those goals feel eminently if not obviously achievable, and there are also non-professional goals that my life suddenly seems to have space for, like upping my strength in the gym, getting better at skiing, and taking another vacation. All in all, I am immensely pleased and content with where I am right now, and it's magical.
This blog began because I got my tonsils taken out. During recovery I realized there wasn't a lot of good advice to be found online for people who wanted to recover quickly and strongly. So, I decided to write an article intended to help others out. Then, (partially because sometimes when I can't sleep I write about things, and partially because I wanted to learn more about coding), I decided to expand the blog to everything else I think about. I hope you enjoy reading the stuff that I like to write, and, please, reach out if you have any questions or comments.


---
layout: def
---
An observable is a quantity being measured in an quantum mechanical experiment.
Observables are denoted with mathematical notation to represent the measurement in a quantum system. For instance, in a Stern-Gerlache experiment, the observable is the spin angular momentum, mathematically denoted with $S_z$. It can be one of the eigenvalues of the associated operator.
Notations
Notation depends on what is the observable. It is a variable which represents the eigenvalues of the associated operator.
Concepts
In a general sense. Let's talk about the observable $A$. The measurement of the observable $A$ gives results of $A_1, A_2, \dots, A_n$, where $n$ may be finite or infinite. The quantum state associated with the observable result $A_i$ is $|a_i\rangle$.
$a_i$ can be imaginary— can it?
Related
Eigenvectors
Hilbert Space
State


THE MUMMY (M). (Universal/UIP) Director: Stephen Sommers Stars: Brendan Fraser, Rachel Weisz, John Hannah, Arnold Vosloo, Kevin J O'Connor, Jonathan Hyde, Omid Djalili, Bernard Fox.
In the '30's and '40's, Universal produced a series of horror films (featuring Boris Karloff and Lon Chaney) about a resurrected Mummy seeking vengeance on those who disturbed his tomb. Eager for a crowd pleasing hit, Universal has whisked the dust off the character and unwrapped it for a new generation. Rather than a straight horror film, this $80 million version of The Mummy is a rollicking good adventure yarn in a similar vein to the popular Indiana Jones series. The Mummy is perfect Saturday afternoon matinee material, albeit with a distinctly '90's sensibility and a sophisticated edge.
The action of The Mummy takes place in Egypt in 1925. The B-grade Indiana Jones-type character here is Rick O'Connell (Brendan Fraser), a foreign legionnaire who knows the location to Humanaptra, the mythical lost city of ancient Egypt. He is hired by virginal librarian and amateur archaeologist Evelyn Carnahan (Rachel Weisz, from Swept From The Sea, etc) to lead an expedition to the buried city and its reputed treasure trove.
Along the way they encounter a rival expedition, led by Kevin J O'Connor, which has less scholarly pursuits in mind. However, when they find the city they unwittingly unleash the ferocious power of Imhotep (Arnold Vosloo), an evil priest buried alive 3000 years earlier for murdering the pharaoh, and are forced to join forces to battle his supernatural powers. Imhotep brings with him numerous Biblical plagues as well as legions of undead, which he turns loose on the modern world. He also sets his sights on using Evelyn as a human sacrifice in order to resurrect his dead lover. Director Stephen Sommers, best known for his live action version of The Jungle Book, brings plenty of pace and excitement to the film. He also maintains a wonderful tongue in cheek approach throughout this entertaining yarn.
Cast largely against type as the swashbuckling hero Fraser is superb, and he brings an enthusiasm, physicality, and sense of humour to the role that ideally captures the film's tone. Weisz brings a combination of vulnerability and strength to her role as the bookish Evelyn, who is suddenly out of her depth when fighting centuries old curses. John Hannah (from Sliding Doors, etc) adds much comic relief as Evelyn's roguish brother Jonathan, although his occasionally irritating character is something of a cliché.
Unlike another recent big budget sci-fi blockbuster currently screening around town, the impressive array of digitally created special effects on display here serve only to beef up the story. The effects, especially those that recreate fierce sandstorms and re-animate skeletal armies, are superb and enhance the fanciful material. The Mummy is ideal entertainment, and heaps more fun than the over hyped The Phantom Menace. **** greg king http://www.netau.com.au/gregking
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


{{unreferenced|date=August 2008}} {{Infobox prepared food | name = Pain au chocolat | image = | caption = | alternate_name = Chocolate bread | country = France | region = | creator = | course = | type = Viennoiserie sweet roll | served = Hot or warm | main_ingredient = Yeast-leavened dough, chocolate | variations = Pain aux raisins | calories = | other = }} Pain au chocolat ({{IPA-fr|pɛ̃ o ʃɔ.kɔ.la|-|Fr-pain au chocolat.ogg}}, chocolate bread), is a viennoiserie sweet roll consisting of a cuboid-shaped piece of yeast-leavened laminated dough, similar in texture to a puff pastry, with one or two pieces of dark chocolate in the centre.
Pain au chocolat is made of the same layered dough as a croissant. Often sold still hot or at least warm from the oven, they are commonly sold alongside croissants in French bakeries and supermarkets.
Contents |
They are most often sold in packages at supermarkets and convenience stores, and occasionally made fresh in pastry shops. The packaged variety are most popular amongst schoolchildren as a quick breakfast.{{fact|date=November 2014}}
In Tunisia, Algeria, Morocco, the Netherlands, Belgium, Norway, Ireland and the United Kingdom they are sold in most bakeries, supermarkets and cafés.
In Germany they are sold less frequently than chocolate croissants and are referred to as both "pain au chocolat".
In Belgium they are sold in most bakeries and are referred as "pain au chocolat".
In Portugal and Spain they are sold in bakeries and supermarkets as napolitanas (from Naples).
In Mexico they are also most commonly found in bakeries and supermarkets, and are known as chocolatines.
In the United States, English Canada, and Australia they are often referred to as "chocolate croissants".
In Brazil they are referred to "croissant de chocolate".
In New Zealand they are commonly referred to as "chocolate croissants" and are sold freshly baked in most bakeries and supermarkets.
{{portal|Food|France}}
{{reflist}}
{{Pastries}} {{Chocolate desserts}}


PROFESSIONAL EXPERIENCE
Data Infrastructure Engineer, September 2015 – Present
Google Inc., Mountain View, CA
Software Engineer, September 2013 – September 2015
Cognizant Technology Solutions, San Ramon, CA
Cloudfire Platform Engineering at Symantec Global HQ (Mountain View, CA)
- Developed Django app/dashboard with REST API for displaying CPE Service Health Status and Metrics.
gTech Engineering Business Intelligence at Google Global HQ (Mountain View, CA)
- Developed software in Javascript, Python and Go using Test Driven Development (TDD).
- Conversion of operational ETL pipeline from Python workflow to Pipewrench (PatchPanel) workflow.
- Added, Modified, or Deprecated multiple ETL processes to include MapReduce in Python and Go.
- Enhanced Third Party data through Exploratory Data Analysis (EDA) using Google search in ETL
pipeline.
- Conversion of operational ETL binaries from Sawzall to Go lang (~10k lines of code).
- Build internal Business Intelligence tools using Google’s App Engine integrated with Google Data
Services.
- Developed visualization dashboards using Aplos and Google’s Dashboard for ETL pipeline quality
monitoring.
- Experienced with Google’s internal bug tracking, code review, and version control software for each
project.
- Worked directly with Third Party data vendors to establish FTP acquisition and ETL pipeline data
importation.
Software Engineer, February 2012 – September 2013
REI Systems, Sterling, VA
Enterprise System Development Office (ESDO) at US Department of Homeland Security (District
of Columbia)
- Supporting the 13 federal agencies inclusive of DHS in Drupal
Website-Content-Management-as-a-Service (WCMaaS)
- Deploying and maintaining Testing, Staging and Production environments on the CGI Federal Cloud.
- Experienced with continuous integration systems (Bamboo) and version control/management (Git).
- Onboarding new tenant technologies through linux server installation and configuration (Tomcat,
MongoDB, Node.js)
- Daily operations and maintenance support of tenants through JIRA issue tracking software.
- Working remotely from REI office with travel to DHS HQ, Daily SCRUM and tenant/consultant meetings
by phone.
GovDashboard, Software-as-a-Service (SaaS) for Business Intelligence Visualizations.
- Development of open source SaaS for REI’s performance analysis tool extending the core Drupal CMS
platform.
- Developed OOP software in Python for Predictive Analytics; Logistic & Multivariate Linear
Regression Regression.
- Developed interactive data visualizations using AJAX, Drupal’s restAPI, HighCharts and D3.js
graphing libraries.
- Developed custom drupal module for FISMA security policies for REI’s federal agency sites.
- Experienced with continuous integration systems (Hudson) and version control/management
(Subversion).
Web Developer - Owner, July 2003 – January 2012
dba Ultimate Creative Media, Frederick, MD
- Founded a marketing business for the development of advertising media for small businesses.
- Designed business identities and media presence through a partnership with experienced Graphic Artist.
- Developed and maintained business websites for information, e-commerce, forums, and blogging.
- Provided website hosting services and maintenance for business websites including HTTPS.
- Deployed, administered and troubleshot Linux (SuSE) production server for large personal phpBB site.
Web Developer - Owner, January 2000 – December 2011
dba UltimateDressage.com, Frederick, MD
- Founded a phpBB forum for Dressage enthusiasts that has grown into one of the largest available social
communities.
- Developed custom modifications allowing for subscriptions based registration and classified
advertising.
- Social Media Banner Ad advertising deployed using OpenX ad server integrated with phpBB.
- Installation and remote maintenance of Linux based (SuSE) production server through collocation.
PROFESSIONAL DEVELOPMENT
Meetup: Data Science for Sustainability, Big Data Developers Silicon Valley, Silicon Valley Big Data
Science, 2014-2015
Meetup: Data Science DC, Data Visualization DC, Hadoop-DC, NOVA-Python, Statistical Programming DC,
2013
GitHub Repositories: Study and Development Projects https://github.com/msusol,
2013-2015
Coursera: Regression Models, Brian Caffo, PhD, Roger D. Peng, PhD, Jeff Leek, PhD, Johns
Hopkins University, 2015
Coursera: Getting and Cleaning Data, Roger D. Peng, Jeff Leek, & Brian Caffo, Johns
Hopkins University, 2014
Coursera: Exploratory Data Analysis, Roger D. Peng, Jeff Leek, & Brian Caffo, Johns
Hopkins University, 2014
Coursera: R Programming, Roger D. Peng, Jeff Leek, & Brian Caffo, Johns Hopkins
University, 2014
Coursera: Algorithms: Design and Analysis, Part 1, by Tim Roughgarden, Stanford University,
2014
Coursera: Introduction to Data Science, by Bill Howe, University of Washington, 2013
Coursera: Machine Learning, by Andrew Ng, Stanford University, 2013
VOLUNTEER EXPERIENCE
Web Developer - Board of Directors, January 2000 – December 2005
CDCTA - 501(c)(3), Culpepper, VA
- Responsible for the design and development of the organization’s website using PHP & MySQL
technologies.
- Developed an extensive custom CMS allowing each board member to control website content through user
authentication.
- Additionally developed e-mail based marketing and e-newsletter program through the CMS programming.
- Awarded “Volunteer of the Year” in 2005 for these contributions to the organization.


Spark Release 0.8.0
Apache Spark 0.8.0 is a major release that includes many new capabilities and usability improvements. It’s also our first release in the Apache incubator. It is the largest Spark release yet, with contributions from 67 developers and 24 companies.
You can download Spark 0.8.0 as either a source package (4 MB tar.gz) or a prebuilt pacakge for Hadoop 1 / CDH3 or CDH4 (125 MB tar.gz). Release signatures and checksums are available at the official Apache download site.
Monitoring UI and Metrics
Spark now displays a variety of monitoring data in a web UI (by default at port 4040 on the driver node). A new job dashboard contains information about running, succeeded, and failed jobs, including percentile statistics covering task runtime, shuffled data, and garbage collection. The existing storage dashboard has been extended, and additional pages have been added to display total storage and task information per-executor. Finally, a new metrics library exposes internal Spark metrics through various API’s including JMX and Ganglia.
Machine Learning Library
This release introduces MLlib, a standard library of high-quality machine learning and optimization algorithms for Spark. MLlib was developed in collaboration with the UC Berkeley MLbase project. The current library contains seven algorithms, including support vector machines (SVMs), logistic regression, several regularized variants of linear regression, a clustering algorithm (KMeans), and alternating least squares collaborative filtering.
Python Improvements
The Python API has been extended with many previously missing features. This includes support for different storage levels, sampling, and various missing RDD operators. We’ve also added support for running Spark in IPython, including the IPython Notebook, and for running PySpark on Windows.
Hadoop YARN support
Spark 0.8 add greatly improved support for running standalone Spark jobs on a YARN cluster. The YARN support is no longer experimental but now part of mainline Spark. Support for running against a secured YARN cluster has also been added.
Revamped Job Scheduler
Spark’s internal job scheduler has been refactored and extended to include more sophisticated scheduling policies. In particular, a fair scheduler implementation now allows multiple users to share an instance of Spark, which helps users running shorter jobs to achieve good performance, even when longer-running jobs are running in parallel. Support for topology-aware scheduling has been extended, including the ability to take into account rack locality and support for multiple executors on a single machine.
Easier Deployment and Linking
User programs can now link to Spark no matter which Hadoop version they need, without having to publish a version of spark-core
specifically for that Hadoop version. An explanation of how to link against different Hadoop versions is provided here.
Expanded EC2 Capabilities
Spark’s EC2 scripts now support launching in any availability zone. Support has also been added for EC2 instance types which use the newer “HVM” architecture. This includes the cluster compute (cc1/cc2) family of instance types. We’ve also added support for running newer versions of HDFS alongside Spark. Finally, we’ve added the ability to launch clusters with maintenance releases of Spark in addition to launching the newest release.
Improved Documentation
This release adds documentation about cluster hardware provisioning and inter-operation with common Hadoop distributions. Docs are also included to cover the MLlib machine learning functions and new cluster monitoring features. Existing documentation has been updated to reflect changes in building and deploying Spark.
Other Improvements
- RDDs can now manually be dropped from memory with
unpersist
.
- The RDD class includes the following new operations:
takeOrdered
, zipPartitions
, top
.
- A
JobLogger
class has been added to produce archivable logs of a Spark workload.
- The
RDD.coalesce
function now takes into account locality.
- The
RDD.pipe
function has been extended to support passing environment variables to child processes.
- Hadoop
save
functions now support an optional compression codec.
- You can now create a binary distribution of Spark which depends only on a Java runtime for easier deployment on a cluster.
- The examples build has been isolated from the core build, substantially reducing the potential for dependency conflicts.
- The Spark Streaming Twitter API has been updated to use OAuth authentication instead of the deprecated username/password authentication in Spark 0.7.0.
- Several new example jobs have been added, including PageRank implementations in Java, Scala and Python, examples for accessing HBase and Cassandra, and MLlib examples.
- Support for running on Mesos has been improved – now you can deploy a Spark assembly JAR as part of the Mesos job, instead of having Spark pre-installed on each machine. The default Mesos version has also been updated to 0.13.
- This release includes various optimizations to PySpark and to the job scheduler.
Compatibility
- This release changes Spark’s package name to ‘org.apache.spark’, so those upgrading from Spark 0.7 will need to adjust their imports accordingly. In addition, we’ve moved the
RDD
class to the org.apache.spark.rdd package (it was previously in the top-level package). The Spark artifacts published through Maven have also changed to the new package name.
- In the Java API, use of Scala’s
Option
class has been replaced with Optional
from the Guava library.
- Linking against Spark for arbitrary Hadoop versions is now possible by specifying a dependency on
hadoop-client
, instead of rebuilding spark-core
against your version of Hadoop. See the documentation here for details.
- If you are building Spark, you’ll now need to run
sbt/sbt assembly
instead of package
.
Credits
Spark 0.8.0 was the result of the largest team of contributors yet. The following developers contributed to this release:
- Andrew Ash – documentation, code cleanup and logging improvements
- Mikhail Bautin – bug fix
- Konstantin Boudnik – Maven build, bug fixes, and documentation
- Ian Buss – sbt configuration improvement
- Evan Chan – API improvement, bug fix, and documentation
- Lian Cheng – bug fix
- Tathagata Das – performance improvement in streaming receiver and streaming bug fix
- Aaron Davidson – Python improvements, bug fix, and unit tests
- Giovanni Delussu – coalesced RDD feature
- Joseph E. Gonzalez – improvement to zipPartitions
- Karen Feng – several improvements to web UI
- Andy Feng – HDFS metrics
- Ali Ghodsi – configuration improvements and locality-aware coalesce
- Christoph Grothaus – bug fix
- Thomas Graves – support for secure YARN cluster and various YARN-related improvements
- Stephen Haberman – bug fix, documentation, and code cleanup
- Mark Hamstra – bug fixes and Maven build
- Benjamin Hindman – Mesos compatibility and documentation
- Liang-Chi Hsieh – bug fixes in build and in YARN mode
- Shane Huang – shuffle improvements, bug fix
- Ethan Jewett – Spark/HBase example
- Holden Karau – bug fix and EC2 improvement
- Kody Koeniger – JDBV RDD implementation
- Andy Konwinski – documentation
- Jey Kottalam – PySpark optimizations, Hadoop agnostic build (lead), and bug fixes
- Andrey Kouznetsov – Bug fix
- S. Kumar – Spark Streaming example
- Ryan LeCompte – topK method optimization and serialization improvements
- Gavin Li – compression codecs and pipe support
- Harold Lim – fair scheduler
- Dmitriy Lyubimov – bug fix
- Chris Mattmann – Apache mentor
- David McCauley – JSON API improvement
- Sean McNamara – added
takeOrdered
function, bug fixes, and a build fix
- Mridul Muralidharan – YARN integration (lead) and scheduler improvements
- Marc Mercer – improvements to UI json output
- Christopher Nguyen – bug fixes
- Erik van Oosten – example fix
- Kay Ousterhout – fix for scheduler regression and bug fixes
- Xinghao Pan – MLLib contributions
- Hiral Patel – bug fix
- James Phillpotts – updated Twitter API for Spark streaming
- Nick Pentreath – scala pageRank example, bagel improvement, and several Java examples
- Alexander Pivovarov – logging improvement and Maven build
- Mike Potts – configuration improvement
- Rohit Rai – Spark/Cassandra example
- Imran Rashid – bug fixes and UI improvement
- Charles Reiss – bug fixes, code cleanup, performance improvements
- Josh Rosen – Python API improvements, Java API improvements, EC2 scripts and bug fixes
- Henry Saputra – Apache mentor
- Jerry Shao – bug fixes, metrics system
- Prashant Sharma – documentation
- Mingfei Shi – joblogger and bug fix
- Andre Schumacher – several PySpark features
- Ginger Smith – MLLib contribution
- Evan Sparks – contributions to MLLib
- Ram Sriharsha – bug fix and RDD removal feature
- Ameet Talwalkar – MLlib contributions
- Roman Tkalenko – code refactoring and cleanup
- Chu Tong – Java PageRank algorithm and bug fix in bash scripts
- Shivaram Venkataraman – bug fixes, contributions to MLLib, netty shuffle fixes, and Java API additions
- Patrick Wendell – release manager, bug fixes, documentation, metrics system, and web UI
- Andrew Xia – fair scheduler (lead), metrics system, and ui improvements
- Reynold Xin – shuffle improvements, bug fixes, code refactoring, usability improvements, MLLib contributions
- Matei Zaharia – MLLib contributions, documentation, examples, UI improvements, PySpark improvements, and bug fixes
- Wu Zeming – bug fix in scheduler
- Bill Zhao – log message improvement
Thanks to everyone who contributed!
We’d especially like to thank Patrick Wendell for acting as the release manager for this release.
Spark News Archive


An identification of the specification containing the total set of rules regarding semantic content, cardinalities and business rules to which the data contained in the instance document conforms is reported in BT-24 “Specification identification”. The identifier for this CIUS is:
| BT-24 | 1..1 | Specification identification | urn:cen.eu:en16931:2017#compliant#urn:klingon-invoice:1.0 |
According to the e-Invoice instance document syntax the specification identification will be:
UBL 2.1:
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:klingon-invoice:1.0</cbc:CustomizationID>
CII 16B:
<rsm:ExchangedDocumentContext> <ram:GuidelineSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:klingon-invoice:1.0</ram:ID> </ram:GuidelineSpecifiedDocumentContextParameter> </rsm:ExchangedDocumentContext>
Lorem ipsum
Lorem ipsum


BOILER ROOM
Review by John Beachem
* * * 1/2
Directed by: Ben Younger Written by: Ben Younger
"They say money can't buy happiness? Just look at the smile on my face," Jim Young (Ben Affleck) tells his new employees in one of the best scenes of "Boiler Room", the new film from first time writer/director, Ben Younger. For those of you who are wondering, the film's title refers to the underbelly of wall street. Boiler rooms are the locations of all sorts of illegal activity, involving stock brokers ripping off naive customers for all they're worth. The film itself may start on shaky legs, but once it gets going, this is a thoroughly enjoyable movie which does an excellent job showing us how the lust for money can corrupt us all.
Seth (Giovanni Ribisi) is a young entrepreneur who makes his living running an illegal casino out of his house. His father (Ron Rifkin), a respected judge, is not at all pleased about this, particularly when he finds out that his son has left college to pursue this "career". One day Seth's friend, Adam (Jamie Kennedy), stops by with another man named Greg (Nicky Katt), who turns out to be a broker for a small firm called J.T. Marlin, where he has amassed quite a fortune. Greg and Adam soon convince Seth to give the firm a try. Soon, Seth becomes a rising star in the company, begins dating the receptionist, Abby (Nia Long), and even makes some semblance of peace with his father. However, not everything is what it appears to be at J.T. Marlin. Late night paper shreddings occur, supposedly great stock options don't appear to exist, and the owners seem to be keeping escape plans in case the newspapers start asking questions.
One of the things that most surprised me about this film was that Younger managed to turn what should have been a boring subject into a film which sometimes reminded me of the brilliance of "Wall Street". Like I said, "Boiler Room" starts off poorly, with a somewhat boring intro, out of place rap music, and distracting camera cuts. However, once Seth gets fully involved with J.T. Marlin, things certainly pick up. The actual trading scenes are very well done, and perfectly convey the frenzy of the constant escalating situations. The scenes showing the activities of these men outside of work are superbly constructed as well. For example, in one scene the group hangs out at Jim Young's house, watching "Wall Street" itself while quoting the entire film, word for word.
As for the acting, Giovanni Ribisi ("Saving Private Ryan") is somewhat miscast. While he does a good job playing a young man who is weak in the face of his father, it's difficult to believe that he turns into a cutthroat wall street broker. There's also something cold about his acting during the more emotional scenes. Nia Long ("The Best Man") is fairly good as Seth's love interest who is struggling with her conscience, and Ron Rifkin ("LA Confidential") is quite good as the father who says things like "Relationship? What relationship? I'm your father, not your girlfriend." Of the main cast, the two best actors are Nicky Katt ("The Limey"), who is quite creepy as the twisted Greg, and Van Diesel ("Pitch Black") as Chris, who is Seth's friend and the only other broker who seems to be a decent person. Amazingly, the real standout performance here comes from Ben Affleck. While Affleck appears in only three or four scenes, two of them involve him giving amazingly stirring speeches with a talent I didn't believe he possessed.
The only other fault I can think of is the film's ending. While Hollywood writers may not have run out of original ideas afterall, they've certainly forgotten how to end a film. "Boiler Room" is yet another one of those films, like "Eye of the Beholder", which simply stops rather than ending. We're left with dozens of unanswered questions and the feeling that Younger simply ran out of ideas. "Boiler Room" runs a bit too long at two hours, and I personally would have cut out the first fifteen minutes or so. I'd recommend it to fans of the film, "Wall Street", and to anyone who has even a passing interest in the stock market. I give it a well earned three and a half out of five stars.
Comments? Feel free to e-mail them to<EMAIL_ADDRESS>For past reviews, movie news, and other fun stuff, visit: http://www.dependentfilms.net
* * * * * - One of the greatest movies ever made, see it now. * * * * - Great flick, try and catch this one. * * * - Okay movie, hits and misses. * * - Pretty bad, see it only if you've got nothing better to do. * - One of the worst movies ever made. See it only if you enjoy pain.
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