mysql_insert_id
(PHP 4, PHP 5)
mysql_insert_id — 取得上一步 INSERT 操作产生的 ID
说明
int mysql_insert_id ([ resource $link_identifier ] )
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的
AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier，则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值，则 mysql_insert_id() 返回 0。如果需要
保存该值以后使用，要确保在产生了值的查询之后立即调用 mysql_insert_id()。
Note:
MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值
，并且不会在查询语句之间被重置。
Warning
mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成
long（PHP 中命名为 int）。如果 AUTO_INCREMENT 的列的类型是 BIGINT，则
mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数
LAST_INSERT_ID() 来替代。
Example #1 mysql_insert_id() 例子
参见 mysql_query()。
User Contributed Notes 40 notes
===============================================================================
If you insert a data row by using the ON DUPLICATE KEY UPDATE clause in an
INSERT-statement, the mysql_insert_id() function will return not the same
results as if you directly use LAST_INSERT_ID() in MySQL.
See the following example:
// insert a datarow, primary key is auto_increment
// value is a unique key
$query = "INSERT INTO test (value) VALUES ('test')";
mysql_query( $query );
echo 'LAST_INSERT_ID: ',
mysql_query( "SELECT LAST_INSERT_ID()" ),
'
mysql_insert_id: ',
mysql_insert_id();
?>
This will print:
LAST_INSERT_ID: 1
mysql_insert_id: 1
In this case the function returns the same as the MySQL-Statement.
But see the insert on an existing key:
$query = "INSERT INTO test (value)
VALUES ('test')
ON DUPLICATE KEY UPDATE value = 'test2'";
mysql_query( $query );
echo 'LAST_INSERT_ID: ',
mysql_query( "SELECT LAST_INSERT_ID()" ),
'
mysql_insert_id: ',
mysql_insert_id();
?>
This will print:
LAST_INSERT_ID: 2
mysql_insert_id: 1
By using the ON DUPLICATE KEY UPDATE clause, only the old datarow will be
modified, if the INSERT statement causes a duplicate entry, but the
LAST_INSERT_ID() function returns the next auto_increment value for the primary
key, which is by the way not set as the next auto_increment value in the
database.
The mysql_insert_id() function returns the primary key of the old (and changed)
data row. For me this is the right operation method, because the LAST_INSERT_ID
() function returns a value which is not referenced to a data row at all.
Greets from Munich.
heiligkind
===============================================================================
I thought this would be relevant to all the people using mysqli and looking for
the ID after INSERT command :
query($demande);
if (!$resultat) {
return false;
} else {
return $conn->insert_id; // function will now return the ID instead of
true.
}
}
?>
Then, on the other side, let us call this function as follows :
Category stuff was added to the database as follows :
";
echo "
ID de la category : ".$cat_id."
";
}
?>
===============================================================================
How to get ID of the last updated row in MySQL?
75
down vote
I've found an answer to this problem :)
by Pomyk
SET @update_id := 0;
UPDATE some_table SET row = 'value', id = (SELECT @update_id := id)
WHERE some_other_row = 'blah' LIMIT 1;
SELECT @update_id;
EDIT by aefxx
This technique can be further expanded to retrieve the ID of every row affected
by an update statement:
SET @uids := null;
UPDATE footable
SET foo = 'bar'
WHERE fooid > 5
AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;
This will return a string with all the IDs concatenated by a colon.
(questions: 1388025 form stackoverflow)
===============================================================================
Get current AUTO_INCREMENT value for any table
example:
$table=$db->prepare("SHOW TABLE STATUS FROM -DatabaseName-");
$table->execute();
$sonuc = $table->get_result();
while ($satir=$sonuc->fetch_assoc()){
if (isset($satir["Name"])== "-TableName-"){
$ai[$satir["Name"]]=$satir["Auto_increment"];
}
}
echo $ai["-TableName-"];
===============================================================================
I don't get all the fuss around this.
I read:
"The value of mysql_insert_id() is affected only by statements issued within
the current client connection. It is not affected by statements issued by other
clients."
See: http://dev.mysql.com/doc/refman/5.0/es/mysql-insert-id.html
I can't really see what's inaccurate about that.
"In the case of a multiple-row INSERT statement, mysql_insert_id() returns the
first automatically generated AUTO_INCREMENT value; if no such value is
generated, it returns the last last explicit value inserted into the
AUTO_INCREMENT column."
I must be missing something here but why would you insert multiple rows and
then only handle the last one with some favoured behaviour? You could just as
well insert them one at a time and then handle each row separately with the
latest id.
I can't see what's wrong with that.
However I can see what's wrong with simply using max(my_table.id_column)
because of the concurrent access issues this would imply.
===============================================================================
Just a quick note. mysql_insert_id() does work with REPLACE.
===============================================================================
There's nothing inherently wrong with using auto-increment fields. There's also
nothing wrong with the main competetive idea, which is for the database to
supply a primitive sequence of non-repeating identifiers, typically integers.
This is rather like which side of the road you drive on.
The bigger problem is when people don't understand what they are doing with
database access. It's like driving a car without really knowing the rules of
the road. Such people wind up making bad decisions without realizing it, and
then, eventually, something breaks.
Databases are complex beasts, and worth taking the time to really understand.
Learn about the implications and limitations of different approaches to solving
problems. Then, you will be prepared to pick a solution based on what has to
work.
===============================================================================
Why on earth are you all arguing about the best way to get the next
auto_increment value? The whole point is that it increments automatically. The
name should be a give away.
Don't calculate the next id, just leave the field blank and let the database
issue the id itself.
===============================================================================
Just wanted to re-iterate previous comment on receiving NULL or 0 return
statement from calling mysql_insert_id() after insert statement.
If you have multiple mysql connections (i.e. mysql_connect() or mysqli_connect
()) on the page you will need to specify the the connection you are using when
calling this function!
I.e.
mysql_insert_id($MY_CONN);
===============================================================================
Forget about using MAX to get the last inserted id. Race conditions like other
users inserting between your SELECT MAX(.. and your INSERT may render your id
unusable.
The WAY to get the id is by using mysql_insert_id() or the mysql SQL function
LAST_INSERT_ID().
Take care, if using mysql_insert_id() you should provide the resource returned
by the mysql_connect, not the resultset returned by mysql_query.
===============================================================================
Other methods seem to have problems with missing records in auto increment
sometimes you will have records 1 2 5 6 most functions would return the value
of 5 for next auto increment when indeed it would be 7. This is the only way I
found to make this work so I can use my customer number and the record number
to provide a truly unique customer number that is also useful.
$next_increment = 0;
$qShowStatus = "SHOW TABLE STATUS LIKE 'your_table'";
$qShowStatusResult = mysql_query($qShowStatus) or die(mysql_error());
$row = mysql_fetch_assoc($qShowStatusResult);
$next_increment = $row['Auto_increment'];
echo $next_increment;
then you can do something like this
echo $next_increment ."-". rand();
My first post: I hope this is useful to someone
===============================================================================
You can't do an INSERT DELAYED and expect to get anything but zero, for it runs
in a separate thread, and mysql_insert_id() is tied to the current thread.
Vlad
===============================================================================
Using 'SELECT MAX(id)+1...' will not return the next auto_increment id. This
function is totaly unreliable by two reasons.
1. In race conditions there is no guarantee that other user will not insert new
record while your function have done its work. This will render your
"generated" last_id obsolete. It is rare case but it happens.
2. Most of all, if the last record(s) in the table is deleted the max id will
no longer match the auto_increment value, because auto_increment never repeats
numbers, it increases whenever an insert statement is completed and does not
decrease if you erase the last record!!!
e.g. If you have this table with the last record deleted:
id name
1. car
2. plane
3. truck - [erased]
auto_increment is 4
but MAX(id) is 2!!!
===============================================================================
In reply to: sly at noiretblanc dot org:
Make sure that auto_increment has an capital A as the first letter, otherwise
it WON'T work! So you have to spell it as Auto_increment... And then it works
fine.
===============================================================================
In response to treylane at example dot com.
It is very very very important that you put in an "or die" or some other form
of error handling.
Some scripts can fail invisibly and insert invalid data throughout your whole
database because of mysql_insert_id
inserting the last successful insertid rather than reporting that the last
attempt failed.
example of an or die statement.
$result = mysql_query($sql)
or die("Invalid query: " . mysql_error());
$EventID = mysql_insert_id();
===============================================================================
It's not true that mysql_insert_id() only returns the ID generated for an
AUTO_INCREMENT column by the previous INSERT query.
We can use LAST_INSERT_ID() statement that will return value for
mysql_insert_id().
Example:
$sql = "UPDATE `mytable` SET `mytable_id`= LAST_INSERT_ID(`mytable_id` + 1)
WHERE ...;
@mysql_query($sql);
$last_id = mysql_insert_id();
LAST_INSERT_ID() statement will affect mysql_insert_id().
Regards,
Buana
===============================================================================
and the primary reason to use neither of those last two solutions is both could
result in race conditions when there is more than a single user with access to
the database. when you use MAX or ORDER BY DESC LIMIT 1 you will retrieve the
maximum value from the table, at that moment. That doesn't mean another user
doesn't do an insertion in the primary and secondary table BEFORE you do your
insertion in the secondary table. You have thus inserted a row with a correct
id into the second table. Always use last_insert_id()
===============================================================================
If mysql_insert_id() returns 0 or null, check your auto increment field is not
being set by your sql query, also if you have multiple db connections like I
did, the solution is to create a seperate db connection for this query.
===============================================================================
My apologies for the error below (that was modified out of a class) - as you
cannot define a constant as an array.
replace the line:
define("ID",...);
?>
with
$mysql_id = mysql_query("...");
?>
$mysql_id is now an array in which the first element $mysql_id[0] holds the
last inserted id.
Apologies if anyone struggled over that one... esp. the noobs.
===============================================================================
Take care of setting an empty value for the AUTO_INCREMENT Field else you never
get a value except zero returned from mysq_insert_id() ....
Ciao Ephraim
===============================================================================
I believe the "resource link" being referred to is not what is returned from
mysql_query() but the $link returned from mysql_connect(). mysql_insert_id()
will just use the most recent connection if there is no explicit $link being
used.
So the above example in the manual page itself should behave the same with
mysql_insert_id($link) at the end instead of the mysql_insert_id() they used.
If you had multiple connections, the $link might come in handy.
Also in reading the mysql manual itself, there is some enlightening information
on the fact that this does appear to be totally safe to use because it is on a
per-connection basis.
Here's the relevant quote from the manual on LAST_INSERT_ID() which is located
here: http://dev.mysql.com/doc/mysql/en/Information_functions.html
"The last ID that was generated is maintained in the server on a per-connection
basis. This means the value the function returns to a given client is the most
recent AUTO_INCREMENT value generated by that client. The value cannot be
affected by other clients, even if they generate AUTO_INCREMENT values of their
own. This behavior ensures that you can retrieve your own ID without concern
for the activity of other clients, and without the need for locks or
transactions."
Sounds safe to me. I couldn't imagine this would be done any other way *but* on
a per-connection basis, otherwise chaos would ensue. The only way to test it
would be to perform a multi-thread type test. Perhaps someone is up for it and
wants to post their results somewhere? :)
===============================================================================
Apparently the value returned by mysql_insert_id() may be correct for BIGINT
auto_increment keys below the value of INT, but it may wrap to negative when
the BIGINT auto_increment passes the largest signed value of INT. A timebomb
for very large tables...
PHP 5.2.10, MySQL 5.0.81, assume the connection and selection...
===============================================================================
It seems that, in case of a very first INSERT, mysql_insert_id() returns 0. My
guess is that MySQL does not trigger auto increment if the table is empty. Once
an entry is present, it works as expected.
===============================================================================
A bit more on return values:
mysql_insert_id() returns 0 if you haven't actually manipulated anything yet.
Also, it returns 0 even if the DB connection is lost[0] between inserting and
calling mysql_insert_id() - so you can always count on getting an integer.
[0] By 'lost' I mean e.g. a DB crash. Actually closing the open link and then
trying to communicate with the DB will of course result in an error.
===============================================================================
You can create a extra collum like with name "key" and generate this "key"
using date() function:
$key = date("Y-m-d H:i:s:u");
Then do the INSERT
"INSERT into 'table' ('col_1', 'col_2', 'key') values ('value 1', 'value 2',
'$key')";
And now, you can SELECT the last ID
"SELECT ID from 'table' where key = '$key'";
===============================================================================
If i can't get a good increment.
I use this function
';
$query = mysql_query($select);
$obj = mysql_fetch_object($query);
return $obj->id;
}
?>
===============================================================================
Just a reminder, mysql_insert_id() should be called after 'mysql_affected_rows
()', but BEFORE 'mysql_query("COMMIT")'.
===============================================================================
Here's an elegant way to INSERT using UPDATE syntax.
Usage:
===============================================================================
Be careful, because this operates on the last performed query, it includes
UPDATEs and SELECTs as 'queries'. For example, this is what I set up.
INSERT post into database
UPDATE child forums with insert ID (insert ID is correct)
Insert ID = 0 because of last query
Send the user to their post - but fail because the insert ID is zero.
So store it in a variable like $insert_id instead of querying it every time.
===============================================================================
Be careful when using "insert ignore". If the unique index already exists, the
record will not be added, but it WILL give you the id of the next
auto_increment value even though it didn't create it.
";
echo mysql_insert_id()."
";
// same record, database is unique on 'num'
$sql = "insert ignore into sometable set num=10";
mysql_query($sql) or die();
echo mysql_affected_rows()."
";
echo mysql_insert_id()."
";
?>
would give:
1
116372
0
116373
===============================================================================
This might be obvious, but it tripped me up - be careful when using
last_insert_id() with persistent connections - running last_insert_id() after a
failed update/insert/etc will return the last insert id of the last successful
update/insert made by that CONNECTION rather than 0 for the number of rows
updated by the previous non-working query, and who knows what the last query
run on that connection was.
===============================================================================
If you want to use the ID that was generated for one table and insert it into a
second table, you can use SQL statements like this:
INSERT INTO foo (auto,text)
VALUES(NULL,'text'); # generate ID by inserting NULL
INSERT INTO foo2 (id,text)
VALUES(LAST_INSERT_ID(),'text'); # use ID in second table
...found here:
http://www.mysql.com/doc/en/Getting_unique_ID.html
It works even without inserting the NULL value for some reason ;)
The following is great for monitoring:
$new_id = mysql_insert_id();
print "New id: $new_id\n";
Hope it helps you all, cheers.
===============================================================================
"Why on earth are you all arguing about the best way to get the next
auto_increment value? The whole point is that it increments automatically. The
name should be a give away."
Because you need the same last id value in another table. So you need a way to
identify it, in order to use it in the next query. This way its easier than
using a new query to get the id like ORDER BY id DESC LIMIT 1
===============================================================================
If you use this function after doing an INSERT ... SELECT to insert multiple
rows at once, you get the autonumber ID of the *first* row added by the INSERT.
e.g. if there are 4 records in table 'init' that have column 'type' = 2
I want to add these 4 records to table 'game'
Table game has an autonumber column 'game_id' that is currently at 32.
If I do this query:
INSERT INTO game (type, players, rounds)
SELECT type, players, rounds FROM init
WHERE type = 2
Then mysql_insert_id() will return 33, not 36.
===============================================================================
any zerofills on your id get chopped off on this function because it returns an
int.
===============================================================================
When used in transactions, mysql_insert_id() MUST be called before committing.
Otherwise, it will return unpredictable results.
===============================================================================
As mentioned by frumler at the-beach dot no_spam dot net
the LAST_INSERT_ID works like a charm when inserting values into tables.
I'm not sure why anyone would need mysql_insert_id() when LAST_INSERT_ID is
readily available.
example:
Say you have a table called "transaction" and a table called "accounts".
Obviously each account must be created using a transaction, so every time a
record is created in the accounts table, a record must be created in the
transaction table containing the same account_id(auto_increment) that was just
created by mysql.
Here's a simple way to do this:
===============================================================================
It's possible to do the same with M$ Server.
function odbc_insert_id()
{
$query = "SELECT @@IDENTITY AS ID;";
$result = odbc_exec($this->m_rConnectionID, $query);
$row = odbc_fetch_object($result);
return $row->ID;
}
===============================================================================
Beware, mysql_insert_id() only returns the value of the last syntaxically
correct insert statement.
If your code has a problem and the insert is not understood by the server then
the value of the last working insert command is returned.
Put something else in place such as "select count( id ) from table" before and
after the mysql_insert_id() call to ensure that a row was inserted.
===============================================================================
To get the NEXT insert id use the mysql query SHOW TABLE STATUS LIKE
'tablename' and get the field auto_increment...


Development
9 Mar 2020
Game development started
25 Dec 2020
Christmas event was held
5 Feb 2021
Game opened to public as open beta
Delta Line opened
Brentwood Town Centre <> Delta (5 stations)
Delta Line opened
Brentwood Town Centre <> Delta (5 stations)
27 Feb 2021
version 0.1.2
version 0.1.2
Brentwood Town Centre station concourse opened
13 Mar 2021
version 0.1.3
version 0.1.3
Brentwood North Depot station opened
Brentwood North Depot <> Brentwood Town Centre (1 station)
Brentwood North Depot <> Brentwood Town Centre (1 station)
29 Mar 2021
version 0.2.0
version 0.2.0
Game reached 10,000 visits
Angle Shuttle opened
Guildford Road <> Angle Land Port (2 stations)
Angle Shuttle opened
Guildford Road <> Angle Land Port (2 stations)
13 Apr 2021
version 0.2.1
version 0.2.1
Delta station revamped
22 May 2021
version 1.0.0
version 1.0.0
Hong Kong Week
AI trains will be replaced by Hong Kong trains temporarily
Delta Line - Metro-Cammell EMU (DC)
Angle Ahuttle - SP1900 EMU
AI trains will be replaced by Hong Kong trains temporarily
Delta Line - Metro-Cammell EMU (DC)
Angle Ahuttle - SP1900 EMU
21 Jul 2021
version 1.0.3
version 1.0.3
Delta Line is served by the new trains
16 May 2021
Roblox Star Line reached 1 million visits
Some Delta Line trains will run on Roblox Star Line
Some Delta Line trains will run on Roblox Star Line
Future development
- Airport Line opens
Millennium <> Airport (5 stations) - Airport Line extends
Airport <> Delta Expo (1 station) - Roblox Star Line Week
TRR trains will run on Delta Line - Hong Kong Week 2.0
AI trains will be replaced by Hong Kong trains
Airport Line - ADTranz-CAF EMU
Angle Shuttle - Metro-Cammell EMU (AC)
Delta Line - Rotem EMU (DC) - Light rail opens


EventEmitter Class
EventEmitter is a Jermaine model that supports basic event emitting / handling for Jermaine objects.
Events are represented as plain old JavaScript objects with at least the following two properties:
type
a string giving the type of the event; this can be any arbitrary string. The event type is not restricted to be from some predetermined list; applications are free to use whatever strings they want for their event types.
target
a reference to the object that emitted the event
Event objects may also contain arbitrary other properties that are specific to a particular event type.
Any Jermaine model can declare itself to be an event emitter by saying "this.isA(EventEmitter)" in its model declaration.
This adds three methods to the model:
addListener(eventType, listenerFunction)
Registers listenerFunction as a listener for events of type eventType (a string). listenerFunction should be a function that accepts a single argument which will be a reference to an event object as described above. When the object emits the event, the listener function will be invoked in the context where its "this" keyword refers to the object that emitted the event (the event target). If listenerFunction is already registered as a listener for eventType, this function does nothing --- each listener function can be registered only once.
removeListener(eventType, listenerFunction)
Removes the given listenerFunction from the list of listeners for this object for events of type eventType.
emit(event)
Causes the object to emit the given event. The argument can be either a string, in which case it is assumed to be an event type and is converted to an event object with the given 'type' property, or an event object with a 'type' property and any other desired properties. The emit() method automatically adds a 'target' property to the event object, whose value is a reference to the object emitting the event.
In most cases the emit() method is only called from within the implementation of an EventEmitter object, and code external to the object's model will use its addListener() and removeListener() methods to process events that the object emits. All three of these methods are public methods, though, so it's also possible for code outside of an object's implementation to cause it to emit an event, or for the object's own code to listen for and process its own events.
Two special types of events are always present for every EventEmitter object: the "listenerAdded" and "listenerRemoved" events. These events make it possible to monitor the addition or removal of event listeners. The "listenerAdded" event is emitted whenever a new listener function is added, and the "listenerRemoved" event is emitted whenever a listener is removed. Each of these events contain the following properties:
targetType
the event type associated with the listener being added or removed
listener
the listener function being added or removed
Constructor
EventEmitter
()
Example:
var Person = new window.jermaine.Model(function() {
this.isA(EventEmitter);
this.hasA("name").which.isA("string");
this.respondsTo("say", function(something) {
console.log(this.name() + ' says ' + something);
this.emit({type : "say", message : something});
});
});
var person = new Person().name("Mark");
var sayListener = function(event) {
console.log(event.target.name() + ' said ' + event.message);
};
person.say('Hello');
person.addListener("say", sayListener);
person.say('Alright');
person.removeListener("say", sayListener);
person.say('Goodbye');
OUTPUT:
Mark says Hello
Mark says Alright
Mark said Alright
Mark said Goodbye
Item Index
Methods
Methods
addListener
-
eventType
-
listener
Adds a listener function for events of a specific type emitted by this object.
Parameters:
-
eventType
Stringthe type of event
-
listener
Functiona listener function
Returns:
emit
-
event
Call this objects listeners for a specific event. If the "event" argument is a string, it is converted to an Object having that string as the value of its "type" attribute; otherwise the "event" argument should be an event Object having a "type" attribute and any other attributes approriate for that event type. In either case, all (if there are any) of the current listeners on this object for events of the given type will be invoked, being passed an event object.
Parameters:
-
event
Object | Stringeither a string representing an event type, or an event object with a 'type' attribute.
Returns:
removeListener
-
eventType
-
listener
Removes a listener function for events of a specific type emitted by this object.
Parameters:
-
eventType
Stringthe type of event
-
listener
Functionthe listener function to remove


The free visa trap: How a false notion is fuelling the deportation of migrants from Saudi Arabia
by bdnews24.comShoeb Hossain left Kishoreganj in pursuit of a better life in Saudi Arabia under the "free" visa scheme 10 years ago.
For a while, the move seemed to be paying dividends as Shoeb made a good living from a small shop he ran in Riyadh.
But his world was turned upside down when police sent him to a deportation camp after a raid in October.
A few weeks later, he returned home empty-handed and dispirited.
“I was on the way to my shop when they detained me. I couldn’t even get to my shop. I had goods worth Tk 4 million in the shop but there was nothing I could do to retrieve it. They only handed my phone back,” he told bdnews24.com.
According to the expratiate welfare desk at the Hazrat Shahjalal Internation Airport, Saudi Arabia -- the biggest labour market for Bangladesh -- has deported 20,692 Bangladeshis in the first 10 months of 2019 alone.
And the labour wing of the Bangladesh consulate in Jeddah estimates that on average, 106 expatriates a day have been deported over the last 10 months.
Research organisations working on migration and expatriate welfare issues believe an economic recession has been driving the Middle-Eastern country's efforts to increase the participation of Saudi nationals in the workforce.
And as part of the initiative, the government, by strictly enforcing its labour law, has recently started deporting migrant workers for flouting rules.
Another reason why Bangladeshi migrant workers are increasingly becoming classed as 'illegal' in Saudi Arabia is their inability to earn back the money spent to get to the Middle East, Shariful Hasan, head of BRAC's Migrant Programme told bdnews24.com.
At the same time, the growing emphasis on 'Saudization', whereby companies and enterprises are required to fill up their workforce with Saudi nationals, is also working to the detriment of migrants.
“They (migrant workers) spend around Tk 700,000 to go overseas for work. But in many instances, they are unable to recoup that amount from their current employment and switch to a different workplace. But the law in Saudi Arabia does not allow one to work for anyone other than a specified employer or kafeel,” Shariful told bdnews24.com.
Free Visa: A Death Trap
Bangladeshi migrant workers have been moving to Saudi Arabia under ‘free visa’ scheme, which allows them to go there without any specific job placement.
There is no legal basis whatsoever for the notion of 'free visas' in Saudi Arabia. But many workers are nevertheless introduced to the idea by relatives or recruiting agencies.
“We want to make it clear that there’s no such thing as a free visa,” Bangladesh Ambassador to Saudi Arab Golam Masih told bdnews24.com.
“It is often seen that a small company in Saudi Arabia without any capacity to employ workers nevertheless takes approval to hire some workers. The workers’ visas are issued under the employer's name. Then the migrant workers take their Iqama (work permit) from that employer and start working elsewhere,” he explained.


7 On Your Side mobilizes for 92-year-old WWII veteran
by Nina PinedaA World War II veteran went to battle with his old landlord after he moved out of his apartment, but never got his deposit back despite doing everything right.
That's when 7 On Your Side's Nina Pineda stepped in to help.
World War II veteran Robert C Jackson's new apartment walls are decorated with honors, letters from kids and pictures from his 90th birthday party. He moved all his memorabilia when his old place raised the rent by $800 last year.
After relocating January 31, he says he's been waiting for the management company for Nu Horizons Manor to return his security deposit. He had even taken several photos of the unit before moving out.
"I left the place in immaculate condition," Jackson said.
That's his military training. Private Jackson was in the 94th Combat Engineers Division and says he worked with the Office of Strategic Services, the precursor of the CIA, back when the Army was segregated.
Jackson was not about to wave the white flag and go down without a fight, so he took the landlord to small claims court. When nobody from Nu Horizons showed up Suffolk County District Court, he won a default judgment of $2,500.
"It's outrageous quite frankly," said Jackson.
Attorney Craig Bruno's help was enlisted by Jackson, who learned Touro College offers pro-bono help for vets.
"The need for legal services for veterans is astronomical," Bruno said.
They won his case in court, but still couldn't get the company to pay up.
"It was very frustrating," said Jackson. "We sent a few letters they never responded."
7 On Your Side called the company to sharp attention and overnight, a check for $2,500 was sent out express mail.
"It took Channel 7 to get it done," said Jackson.
The manager of Nu Horizons Manor apologized and called it a misunderstanding. The rep said they had sent out his security check months ago -- but didn't know it wasn't cashed.
The big takeaway is to first check your lease. This will tell you when you can expect your security deposit back -- here it was 60 days.
Next is to clean and fix -- fill holes in the wall, clean carpets and don't leave any belongings behind.
Also take pictures before you move in and after you move out. This will go a long way to prove your apartment's condition.
Channel 7 is proud to be the home for the New York City Veterans Day Parade. Watch it live Monday at noon.


Car 1
description
status
Car 1
Press to see details
Car 2
description
status
Car 2
Press to see details
Car 3
description
status
Car 3
Press to see details
title
description
8.0
★★★
★★
Car
Press button
title
description
8.0
★★★
★★
Car
Press button
title
description
8.0
★★★
★★
Car
Press button
title
description
8.0
★★★
★★
Car
Press button
Autonomous Car Cooperation control panel
Home
main page
Car 1
car description
Car 2
car description
Car 3
car description


★ Climate Change ★ The Smart Grid ★ Universal Basic Income ★ The Automation Crisis ★
Fundamental Advancements Towards Tomorrow’s Smartgrid
ϕ Smart Grid Analytics and Surveillance
ϕ Packet Switching for the Smart Grid
ϕ Quantum Networking For Instantaneous Transmission of Grid State
ϕ Quantum Networking and FinTech
ϕ Quantum Networking and Telecom
ϕ To Supplement American Exports, Stability in Developing Nations is Crucial
ϕ Hybrid Power Grids Offer Economically Practical Infrastructure Rollout to Developing Nations
ϕ The Smart Grid Affects Real Estate Trends
“Hey, it’s me.” – David Conner, the guy without enough money to open a bank account who made less than $400 in 2016 and $1717 in 2015. The guy without enough skill to be employable in America or, at least, to break through being virtually blacklisted by negative career experience.
Fundamental Advancements Towards Tomorrow’s Smartgrid
Alternating Current (AC) and Direct Current (DC) have different qualities making them useful in consumer electronics. Our electric grid utilizes AC to transmit power long distances because it’s more efficient in doing so than DC. Thanks to Tesla, we didn’t have to deal with GE’s plan for local DC switching facilities in a pure DC electric grid. Incidentally, the power grid of the 21st century looks a lot more like GE’s plan. However, GE, Westinghouse, Siemens and the other juggernauts of 20th century electronics never could have implemented their plan for locally switched DC without digital electronics. They also lacked computers to algorithmically design circuits and identify optimal parameters for standardization.
The divide between AC and DC moves from the endpoint of consumer technology (i.e. transformers, such as power supplies or adapters) to the consumer’s house or building. During the infrastructure transition, AC remains prevant and DC is used to distribute electricity generated by renewables. The consumer mostly accesses DC power through an inverter, but further into the transition, it makes more sense to begin designing consumer electronics to tap into DC power directly.
These hybrid electric designs bridge the gap for renewables to connect into a consumer’s home. They are required as the seeds of a viable product platform for renewables. Otherwise, renewables aren’t very marketable to homes and offices. Renewables require a change in the consumer electric grid – large changes in the electric framework running through their home and office. Otherwise, renewables simply can’t be marketed to customers.
For example, the Tesla Powerwall can be easily connected to renewables such as solar, but isn’t so easily integrated into a consumer’s home AC circuits. Not in any inexpensive or simple way. However, if a consumer’s home is fully DC, everything connects quite simply – the Tesla storage battery and any renewables that charge it. Therefore there’s going to be a huge technological shift in the parts of the electric grid connect to your home and office. The divide between AC & DC will be pushed further out. Until the actual electric grid infrastructure can be replaced, DC networks will be pushed from the consumer side to the POD (Point of Demarcation).
All this in-home and in-office infrastructure change is exorbitant. How do we know that the trend in consumer adoption will resist price pressure? Prices of these goods are effectively inflated from cost structures of infrastructure modifications and sales are limited until the platform of infrastructure is established. These are tough business problems to be sure. They will take decades to overcome, but they are not prohibitive. To most efficiently use power from renewables and products like the Tesla Powerwall or to sell it back to the electric grid, one needs to replace their in-home circuitry to handle DC power. DC is more efficiently distributed locally and the infrastructure is more modular with DC power routing in place. The higher the price of energy, the higher the incentive for accelerating this change in infrastructure on the consumer side.
In countries with highly developed economies, the evolution of the smart-grid will be ironically slower, as there are major headaches replacing the infrastructure. To ensure that American interests become leaders in the manufacture, design and marketing of smart-grid technology, we need to ensure that there are plenty of stable markets in developing nations.
Smart Grid Analytics and Surveillance
The smart grid enables centralized analysis of resource consumption and other IoT signals. Just like with the internet, the money is in mining the data produced by users. This enables amazing features such as fairly pricing electricity fed back into the grid. However, spectral analysis and pattern mining on these signals leads surveillance to apporach a state of completeness in its degree to map out individuals lives.
Using spectral analysis techniques, you can process the power utilization patterns at the consumer’s central connection to the POD to identify activities in their home. This is especially true if you have explicit power utilization metadata is relayed through the DC switching fabric back to a central point. Again, even if the metadata isn’t explicit, many of the same metrics can be inferred by tapping into the signal on the line. These metrics produce more characteristically identifiable signals on DC than on AC, I think. These signals can be matched to some finite list of consumer electronics signal patterns.
Math … and lots of it. It’s not easy, but theoritcally possible.
With power utilization signals and IoT devices, every time you microwave a hot pocket or flush the toilet, these events are emitted in signals, then processed and analyzed by a multitude of internet-connected services. Sorry, at this point, you can’t even take a poop without the government knowing how much water was displaced.
There is a major difference in qualitative magnitude between this and prior major technological advancements. Signals-based analysis on IoT data and the surveillance based on it plateau into a degree of completeness surpassing everything seen until we have a working brain-computer interface. These require nanotechnology. The smart grid lands us at a point of diminishing returns in the ratio of qualitative analytical insight and the quantity/types of data signals produced.
Before we advance further, society needs to have a real discussion on the sociocultural impact of technology and surveillance. 2015 and 2016 were abysmal in terms of the quality of discussion on this issue. Our society simply hasn’t deliberated enough on the qualitative effects on life. Surveillance and technology have been rammed down our throats under the pretense of national security, which preemptively short-circuits any real discussion with fear-mongering and propaganda tactics. Everything is unnecessarily secret with zero indication that your life is being affected when it is. I did not anticipate surveillance’s ability to enable & augment systematic harassment and gaslighting. How can we say we know how surveillance affects our life when citizens are never notified when it’s used to harass, intimidate and extort them?
Why are we normalizing this? Is it really necessary to catch Bin Laden to record Americans jacking off without their knowledge. Wow Homeland … In what country is the war on terror being fought?
Packet Switching for the Smart Grid
Researchers across the world are revitalizing their interests in power grid technology. They are solving electrical engineering problems that otherwise lay dormant for decades. It’s a revitalized area of research. To Cisco networking enthusiasts, one particularly interesting area of this research is power packet routing. To the layman, power packet routing combines the internet and electric power distribution, so your devices can be connected to the internet by simply being plugged in to power. This helps IoT devices quite a bit because they usually require an external power source, unless solar works.
There will be major economic opportunities in the route/switch hardware used for smart grid packet switching, if this is the direction infrastructure evolution takes. The hardware, software and business models would strongly mirror developments in telecom. This will essentially be the third generation of telecom switching, where the first was telecom/PBX and the second was internet route/switch gear. Every home or office that wants to tap into renewables will need some of this equipment. In America and other nations with complete electrical grids, this infrastructure will undergo several several major design iterations.
Power Packet Routing
Depending on the rollout of other technologies and relevant consumer behavior, some aspects of smart grid technology may not become anything more than a good idea. The correct answer here is simplicity and the problem is designing the next generation of consumer electronics. Design iteration on these consumer electronics is incredibly expensive, almost as expensive as maintaining backwards compatibility. Whether the benefits of new infrastructure outweigh the costs of implementation in developed countries will determine whether these technologies will become mainstream.
Power packet switching requires layers of gear similar to Cisco routers and switches. Furthermore, TDMA-like protocols can send power and digitized data over the same channel by using something like an ethernet frame that accompanies a pulse-width regulated burst of power. Enabling this to work with various voltages, amperages and wattages requires either incredibly complicated component design or standardization of power distribution components and interfaces for consumer electronics. What would routing protocols look like for DC networks? This paper from Kyoto in 2015 explores further: Router for Power Packet Distribution Network: Design and Experimental Verification.
The problems that electrical engineers are solving to create tomorrow’s smart-grid are incredibly complicated and just as urgent for American industry to succeed in the global economy from 2020 through 2040. It is critical to get this right and there are singularly correct answers to overarching design patterns here. There always are. Whether the correct answers mesh well with the economics of both smart-grid rollout and renewables is an enigma. Green issues and climate change policy will have a huge effect on the apparent solutions in the smart-grid infrastructure discussion.
For more detail on research conducted in this field, check out this IEEE publication: IEEE Transactions on Power Systems. Most of those studies require payment to access, but that’s where you can find all the critical research being done.
Here is a good introduction into some of the high-level design concepts used to determine viable smart-grid topologies: A Review of Architectures and Concepts for Intelligence in Future Electric Energy Systems. To understand more about shifting the divide between AC and DC, read this IEEE publication: DC Local Power Distribution: Technology, Deployment, and Pathways to Success.
Quantum Networking For Instantaneous Transmission of Grid State
Quantum networking (QN) is like the Ansible from Ender’s Game. QN has incredibly niche applications. It’s penetration into hardware will be determined by its cost and technical requirements, like superconduction. However, it can cause radically differently hardware and software design patterns to emerge. It is especially useful in geographically distributed systems such as GPS, the smart grid or smart cars, when overcoming the speed of light matters. It’s use as a clock-synching mechanism would be ubiquitous, if technical limitations could be transcended.
QN will allow for the instantaneous desemination of power grid state. Machine-learning algorithms can be more efficient when managing the distribution of power because they never have to query distant systems for status or wait for state to be synced before making a decision. Quantum networking could be used in cubesats for the activation of networked resillience to EMP. As soon as one cubesat experiences EMP, it broadcasts a warning to other satellites networked in the same quantum comm. channel. These satellites can immediately activate a cheap, as-needed faraday cage, retaining operational capability through an EMP blast.
Those who don’t understand the engineering limitations imposed by special relativity or assume quantum networking to be impossible wouldn’t think about how transcending the FTL barrier with information transmission radically changes hardware and software design patterns. Quantum networking should be possible with a stochastic communication protocol and enough spliced pairs of particles, whose entanglement is somehow maintained. There are engineering challenges to be sure. If cyclical entanglement enabling chained entanglement of spin to charge is possible, it would be incredibly useful.
QN, the Answer to Fermi’s Paradox?
IMO, SETI has failed to find advanced civilizations sprawling the galaxy because they only use quantum networking. If there is some stochastic communication protocol that allows entangled particles to transcend space, enabling instantanious communication, that’s leagues better than communication via EMR. It’s faster, stealthier and more secure.
Once your civ goes dark, you never go back.
The specifics of quantum networking, particularly whether it’s convenient, cheap and portable, strongly determines how the technology unfolds. These qualities determine which industries thrive and survive as other tech that can be dependent on quantum networking unpredictably changes. QN, its technical limitations and its evolution, represent huge unknowns with massive implications on how technology will unfold before 2050.
Quantum Networking and FinTech
Wonder why I’m busting out all the valuable business strategy and economic analysis? Just remember how the world demanded that morally-reprehensible asshole-that-makes-you-think, David Conner, was never to be allowed to build a single project. Ever.
QN can break both telecom and fintech. Fintech applications already benefit greatly from tiny optimizations. For example, the investment for transcontinental fiber solely for fintech applications makes business sense. Apparently, milliseconds shaved and dedicated communication infrastructure pays off. Now, assume QN is real, bandwidth is not a bottleneck and transmission time is zero. Then, after transending contraints of spacetime with QN, fintech simply becomes a game determined by speed of processing in data centers. If you can process data faster and more accurately while anticipating the strategies of other firms, you win.
At this point, an advantageous strategy is to influence sequencing of trading orders placed on stock and commidity exchanges because (i think) it allows for preferential pricing, relative to the time of transaction. As financial transactions accelerate, the final frontier is the sequencing of transactions. If the world of fintech finds itself in this spot, where the sequencing of transactions becomes gamed, it leads financial institutions to the need to solve very difficult software/hardware architecture design problems. Further, the financial world will gravitate towards products like R3’s distributed ledger Corda, which leverages blockchain as a secure, transactional, distributed financial ledger. If so and if gaming the sequencing of transactions is a viable trading tactic, this causes major headaches around 2030 because of processing overhead and the speed at which transactions can be processed becomes energy-bound.
Anime’s About Hypothetical Economic Systems Are My Favorite
In the context of financial engineering, utilizing a distributed ledger while gaming trading tactics, imagine solving the stochastic programming for anticipating pricing trends in fluctuating energy prices, trying to anticipate an adversaries tactics in a world where the rate of financial transactions is energy-bound. See this article for more information: A Stochastic Programming Framework for the Valuation of Electricity Storage.
Quantum Networking and Telecom
However, QN’s potential to completely disrupt telecom is much greater. QN has the potential to create perfect and low energy communication with high bandwidth. It is completely decentralized and disruptive to both society and the business model of telecom. There is a complete loss of regulation over information transfer via lack of infrastructure to regulate. Loss of ability to control/monitor information transmission threatens the business model of telecom and of services built on top of telecom products. Therefore, telecom could foreseeably collapse slowly by 2050, depending on the specifics of QN, IFF it is real.
It’s this decentralized communication and loss of control in particular that terrifies the shadowy cigar-smoking Wizard of Oz types who secretly control the world and wouldn’t hesitate to burn it to the ground to hang on to power.
QN transforms computing power into something non-locational that transcends the limitations of spacetime. The CPU processing can occur anywhere and you can take it everywhere. Processing becomes dirt cheap and all data processing operations can be communicated over low power channels. Because energy isn’t needed for communcation, consumer electronics, such as AR headsets become mostly dumb terminals, that function to display rendered frames of video and coordinate UI interactions.
The degree of penetration into consumer electronics depends on the specifics of QN. Will it be cheap? Portable? Low power? Or is QN even possible? More crucially, what are the teleological consequences to various combinations of feature sets for QN? How do our lives change as a result? Can we ever return to a 1950’s golden era where privacy is more than an idea?
To Supplement American Exports, Stability in Developing Nations is Crucial
The AC/DC divide pushes itself from consumer electronics to homes and gradually expansive groupings of DC electronics systems. As this transformation ripples across the globe, various viable design patterns emerge which themselves necessitate hardware products with increasingly complicated feature sets. This shift creates trillions in demand for replacement of electric grid infrastructure worldwide. This occurs gradually across at least three decades.
The mechanics of this flux of demand rippling through the global economy affect industrialized nations differently than developing nations with less infrastructure. The nations with more infrastructure to replace do it more slowly, which creates a need to gradually shift to new infrastructure. Most of this requires backwards compatability, complicating design. This requirement for backwards compatibility limits the payoffs to infrastructure updates. This might imply that undeveloped nations benefit with less investment than developed nations.
In the end, we all end up with mostly the same set of capabilities from upgraded smart grid infrastructure, but less developed nations are better positioned to receive these benefits faster with less cost and less design constraints. Therefore, the flux of demand will tend to strongly impact developing nations, as they get higher payoffs for cheaper, as long as there is some threshold of stability.
If the US leverages its authority as an international power player to compel others to help foster stability in these nations, then we can accordingly position ourselves to help supply that demand. The demand is a product of the expectation of permanent stablity in these nations. That is an absolute dependency to expect demand from these nations. Therefore, the US helps provide stability and profits from the export of electric grid technology, while sharing the benefits received from smart grid consumption analytics. We share the advantages in using this data to stay ahead. We do this while helping to promote the level of stability and nation development that makes it all possible and we do so with free market principles.
Hybrid Power Grids Offer Economically Practical Infrastructure Rollout to Developing Nations
Hybrid power grids are a great intermediate step for building out infrastructure in rural areas of developing nations. Again, stability is paramount before taking the first steps.
Islands of isolated power grids can be built out so reachargeable devices can become a norm in developing nations, especially in rural areas. These isolated hybrid power-grids which can harness renewables infrastructure which generate the commerce and investment required to fully connect those rural communities to the national power grid. The topology of these island grids should enable them to be connected to a single national smart grid later on. This increased speed to develop infrastructure in developing countries translates into demand for renewables, while more quickly providing valuable infrastructure that empowers people.
With a minimum of infrastructure and by harnessing the power of Zuckerburg’s army of Facebook wifi drones, even Nanu in Northwest Nigeria can access the latest status updates from his friends.
More seriously, communication helps reduce friction in regional economies, which translates into commerce which benefits the people. Most interesting to Facebook data scientists will be how people with limited exposure to modernization initially react. Donning my anthropoligist hat, we need to proactively understand how to rollout technology to preserve cultures before they are all assimilated into the Borg.
To understand the implementation details and economic opportunities, see this paper: Economic evaluation of hybrid energy systems for rural electrification in six geo-political zones of Nigeria
The Smart Grid Affects Real Estate Trends
There are predictable dynamics in real-estate that result from the availability and qualities of smart-grid infrastructure as well as incentivizations inherent in the economics of infrastructure installation. These are especially present in urban and high-rise residential areas. Changes in infrastructure here have long-lasting consequences, so we’re going to want to do this right, so the smart-grid platform empowers American industry across the world.
A building’s capacity for renewable energy production is correlated to surface area, so as the proportion of volume to surface area increases, the likelihood of balanced energy utilization drops rapidly. This is dependent on whether fusion or alternatives like them become available. Fusion will become the dominant form of energy production later in the 21st century.
The version and specific features of smart-grid infrastructure for buildings strongly affect the value, price and marketability of real-estate and moreso as time moves on. The effect should is more prominent if we expect incentivization from climate change policies like the Paris Agreement to actually make a difference.
Smart grid real-estate trends scale from micro to macro. These are exhibited over varying time scales from years to decades. Most are similar to real-estate trends involving 20th century technology.
These real-estate trends include:
(1) The properties existing interoperability with renewables.
(2) The potential of properties to be upgraded with smart grid tech
(3) The dynamics of infrastructure rollout for a specific technology
(4) The upper bound on renewable wattage for a building
(5) Capicity for urban food production
(6) Regional dynamics in these trends, such as oversupply of renewable electricity
If one learns the sequencing of and trends surrounding the rollout of smartgrid technology and maintains visibility into the geographic distribution of its adoption, real-estate moguls can set up an event-driven purchasing strategy to profit in the billions. Such a strategy has incredible synergy with smart-grid infrastructure and services. With enough capital, you can purchase, upgrade and flip properties. With properly allocated investments, you can profit at every step.
It’s like being Jay-Z, listening to the raps you produced in a club you own and shelling out for a round of chapaign for some VIP’s.
So if you can influence policy as it crucially relates to real-estate, you can further massage your profits. However, someone making the wrong moves here could cost America trillions. It’s actually best to have someone leading whose incentives strongly align with our options for economic growth.

Part Three
Universal Basic Income
Part three describes the motivations behind Universal Basic Income and alternative policy.


I have read (I think) everything written up on this site regarding the method to calculate the export current. (I have a standard installation with inverters connected into the main consumer unit on a sparate MCB.) Hence my meter tails have current flow equating to both import and export current. To date (prior to emon) I use an Owl meter with a CT on the meter tail and subtract the actual meter reading (corrected by 7.75% as the Owl overeads by this amount.) to find the export power.
I am really curious to understand better how this design (option 2) using the current sensing CT on the meter tail and the voltage measurement (via an ac/ac power adapter) calculates the current flow direction? I am puzzled by this and don't find the descriptions very illuminating? Can somebody explain please? Is it to do with phase differences?
If I understand this question I can then work out my best way to install monitors. I have questions like: -
I want to control a variable load to consume excess power. I intend to drive this to zero meter tail current when generation exceeds consumption. I will need a near instantaneous calculation to do this. How long does the design accumulate current readings for before transmission?
I would like to install my EmonTX near the inverter and place the AC/AC adapter local to the inverter as well. This is quite remote from the main meter. Will this have an effect on the result?
Many thanks
Steve
Re: Am I exporting or importing?
You dont need an AC AC adapter for the inverter. All solar inverters have a one stable fixed, predefined voltage. usually it is 10v higher than your grid voltage. What kind of inverter do you have?
Re: Am I exporting or importing?
Hi Steve,
What you have described is exactly how my PV installation is setup. The Owl monitor will be over reading since it's only monitoring apparent power. The apparent power will be greater than the real power (what your utility meter will be reading) when the power factor is less than 1. The power factor is not always constant. We found that the power factor can get quite low when the power output is below around 15% of array peak capacity. We have observed this to be worse with transformer inverters (non-TL). See the screen grab below from my home monitoring system (it's a 2.9Kw system with a Fronious 3000+ inverter):
The difference at low powers is not as great with a TL inverter. See here for a live example of such a system: http://vis.openenergymonitor.org/pages/solar.php. We believe the low power factors caused by solar PV inverters could be caused by non-liner current waveforms from the inverters (like from a SMPS) rather than just the current being out of phase with the voltage. We plan to do some more testing on this soon. There is an interesting paper which explains this in more details linked to at the bottom of this page: http://openenergymonitor.org/emon/buildingblocks/ac-power-introduction
In order to be able to detect the polarity of the current (which way it's flowing), we needs a point of reference. This point of reference is provided by the AC voltage reading. When the current is negative the polarity of the current waveform is inverse to that of the voltage waveform, the waveforms are still in phase (assuming a PF of 1).
The emonTx can be set to take a reading (by sampling over 1480 wavelengths) as often as you like. The default is every 10's,.
As Amin mentioned above the AC-AC adapter is not measuring the voltage of the inverter it's measuring the AC RMS grid voltage at the point of your property, therefore it doesn't matter where it's located.
Best of luck with your system.
All the best,


City
Temperature:
Humidity:
Wind Speed:
UV Index:
5-day Forecast:
?/?/21
Temp:
Humidity:
?/?/21
Temp:
Humidity:
?/?/21
Temp:
Humidity:
?/?/21
Temp:
Humidity:
?/?/21
Temp:
Humidity:
Temperature:
Humidity:
Wind Speed:
UV Index:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:
Temp:
Humidity:


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| createModelFromJoi.js | 30% | 6/20 | 0% | 0/6 | 0% | 0/2 | 30% | 6/20 | |
| createService.js | 42.86% | 3/7 | 0% | 0/4 | 0% | 0/1 | 42.86% | 3/7 | |
| filterPopulateByAbilities.js | 11.54% | 6/52 | 0% | 0/36 | 0% | 0/5 | 12% | 6/50 | |
| joi.js | 100% | 3/3 | 100% | 0/0 | 100% | 0/0 | 100% | 3/3 | |
| joi2json.js | 3.15% | 4/127 | 0% | 0/91 | 0% | 0/2 | 3.17% | 4/126 | |
| modelToSwagger.js | 20% | 2/10 | 0% | 0/4 | 0% | 0/1 | 22.22% | 2/9 | |
| pick.js | 13.33% | 8/60 | 0% | 0/42 | 0% | 0/3 | 13.56% | 8/59 | |
| swaggerSchemaExamples.js | 100% | 3/3 | 100% | 0/0 | 100% | 0/0 | 100% | 3/3 | |
| swaggerServiceConfiguration.js | 11.76% | 2/17 | 0% | 0/14 | 0% | 0/1 | 12.5% | 2/16 |


libunixonacid
libskarnet
skalibs
Software
skarnet.org
The following functions are declared in the skalibs/skaclient.h header, and implemented in the libskarnet.a or libskarnet.so library.
skaclient is a client-server initiation protocol framework, allowing a process (the "client") to either connect to another process (the "server") via a Unix domain socket, or spawn such a "server" process itself. The client and the server then communicate via two sockets, one for synchronous data, the other for asynchronous data; they exchange unixmessages.
The skaclient framework is used in several places in skarnet.org software, whenever a server can send asynchronous data to its client. For instance:
FIXME: to be completed.


The Conversation (1974)
Grade: 65
It is ironic that "The Conversation" was released the same year that Nixon resigned. Nixon was forced out of office largely because he was caught committing crimes on tape. And "The Conversation" is about the consequences of bugging.
Gene Hackman plays a professional wiretapper. He is well-paid getting the scoop on others, but is very secretive, to the point of paranoia, about guarding his own personal life. He tapes a young couple's conversation, and begins to worry about what may happen to them. The man says to the woman, "they'll kill us if they can."
Hackman refuses to turn the tapes in to his client, despite increasing pressure from a young Harrison Ford, who is a cheerless bad guy. In fact, everyone in this movie is cheerless. It is also slow, which is good for character development, except the only character getting screen attention is Hackman, and he doesn't reveal very much.
Women seem to want Hackman. This seems odd, given that he is middle-aged, nerdy, secretive, and withdrawn. He also spies on them. And others spy on him. The theme of everyone under surveillance was better developed, with more humor, in "The Anderson Tapes" (1971) although "The Conversation" has the better cinematography.
John Cazale has a supporting role. The only other movies I've seen him in are the Godfather films, "The Deer Hunter" (1979) and "Dog Day Afternoon" (1975). He sure found his way into good films. I guess his goofy looks kept him from being cast in insipid romantic comedies.
Look fast for Robert Duvall as the shadowy, well-guarded Director.
An interesting film, and a chance to see Shirley (Cindy Williams) without Laverne, and Ford as a laconic villian (rather than a laconic hero). Nominated for best picture, "The Conversation" is a bit overrated. Towards the end it is hard to tell what's real and what's not, but then the surrealist moments are the best in the film.
http://members.tripod.com/~Brian_Koller/movies.html
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


Thermal Assist
Fix to glider
v
v
0.0
m/s
v
v
avg
0.0
m/s
Alt
0.0
m
Controls
v =
0.0
y/s
ω =
0.0
rad/s
Reset pos
Reset vel
Reset all
Key ω =
0.0
rad/s
Thermal X-section
Show vario
Show glider
Edit points
Settings
Thermal assist
● interval =
0
ms
● cnt =
0
Clear ●s
Vario avg time =
0
ms
Thermal interpolation
L =
0.2
C =
0.25
L
2
C =
0.0


| Package | Description |
|---|---|
| org.apache.bcel.classfile |
This package contains the classes that describe the structure of a
Java class file and a class file parser.
|
| Modifier and Type | Method and Description |
|---|---|
String |
ConstantPool.constantToString(Constant c)
Resolve constant to a string representation.
|
String |
ConstantPool.constantToString(int index,
byte tag)
Retrieve constant at `index' from constant pool and resolve it to
a string representation.
|
Constant |
ConstantPool.getConstant(int index,
byte tag)
Get constant from constant pool and check whether it has the
expected type.
|
String |
ConstantPool.getConstantString(int index,
byte tag)
Get string from constant pool and bypass the indirection of
`ConstantClass' and `ConstantString' objects.
|
static String[] |
Utility.methodSignatureArgumentTypes(String signature) |
static String[] |
Utility.methodSignatureArgumentTypes(String signature,
boolean chopit) |
static String |
Utility.methodSignatureReturnType(String signature) |
static String |
Utility.methodSignatureReturnType(String signature,
boolean chopit) |
static String |
Utility.methodSignatureToString(String signature,
String name,
String access,
boolean chopit,
LocalVariableTable vars)
A returntype signature represents the return value from a method.
|
static String |
Utility.methodTypeToSignature(String ret,
String[] argv)
Converts string containing the method return and argument types
to a byte code method signature.
|
JavaClass |
ClassParser.parse()
Parse the given Java class file and return an object that represents
the contained data, i.e., constants, methods, fields and commands.
|
static Attribute |
Attribute.readAttribute(DataInput file,
ConstantPool constant_pool)
Class method reads one attribute from the input data stream.
|
static Attribute |
Attribute.readAttribute(DataInputStream file,
ConstantPool constant_pool)
Class method reads one attribute from the input data stream.
|
static Constant |
Constant.readConstant(DataInput input)
Read one constant from the given input, the type depends on a tag byte.
|
static byte |
Utility.typeOfMethodSignature(String signature)
Return type of method signature as a byte value as defined in Constants
|
static byte |
Utility.typeOfSignature(String signature)
Return type of signature as a byte value as defined in Constants
|
| Constructor and Description |
|---|
ConstantPool(DataInput input)
Read constants from given input stream.
|
FieldOrMethod(DataInput file,
ConstantPool constant_pool)
Construct object from file stream.
|
FieldOrMethod(DataInputStream file,
ConstantPool constant_pool)
Deprecated.
(6.0) Use
FieldOrMethod.FieldOrMethod(java.io.DataInput, ConstantPool) instead. |
Copyright © 2004–2016 The Apache Software Foundation. All rights reserved.


{% comment %} Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. {% endcomment %}
Published
{{ page.date | date_to_string }}
By
{% if author_name %}
{{ author_name }} ({{ page.author }})
{% else %}
{{ page.author }}
{% endif %}
{% if page.translations %}
Translations
{% for trans in page.translations %}
{{ trans.language }}
{% endfor %}
{% endif %}


Social Demo - Facebook
A sample application that demonstrates how to use the Facebook JavaScript SDK and the Graph API.
Social Demo - Facebook
A sample application that demonstrates how to use the Facebook JavaScript SDK and the Graph API.
Social Demo - Facebook
A sample application that demonstrates how to use the Facebook JavaScript SDK and the Graph API.
Go to Article - Facebook Graph API & Demo Example
Last updated: 2014-06-01
Author: Summer Tang (summer.tang@spring-trees.com)


{% extends 'base.html' %} {% block content %}
This plugin has already been configured, but you can update the Sentry organization.


ABOUT
Hello, my name is Zifan Shi! You can call me "Stan" if mandarin is too hard. I was born and raised in Suzhou, China, a beautiful city near Shanghai.
I studied Computer Science and minored in Physics during my undergrad. I am currently doing Progressive Degree Program (PDP) at USC.
PDP allows me to do bachelor and master at the same time. I am graduating in December 2020 for master degree and December 2019 for bachelor.


--- subject: GDPR Update Required ---
Hi {firstname},
Please update your account:
https://www.paypal.com/account/update
Thank you!


Here is your secret link for sharing!
I will be alive for 7 days or until opened once
Here is your decrypted secret


文章
看我如何分析 Windows LNK 檔案攻擊
Translated by JohnThunder
Mar 23, 2019
如何當個貓ware研究者
Translated by jhe
Dec 9, 2018
LM, NTLM, Net-NTLMv2 我的天呀！
Translated by jhe
Jul 7, 2018
寵物追踪器對MITM攔截攻擊毫不設防
Translated by NotSurprised
Jun 12, 2018
用偵查來PWN解後端控制台
Translated by NotSurprised
May 15, 2018
DNS重綁 偷你以太幣
Translated by NotSurprised
May 13, 2018
你不算個資安專家，如果你只是...
Translated by jhe
May 8, 2018
沒有RCE？那就直接SSH進去啊！
Translated by NotSurprised
Apr 18, 2018
挖礦JavaScript代碼的感染趨勢
Translated by NotSurprised
Apr 18, 2018
使用 CVE-2017-5123 逃離 Docker 容器
Translated by jhe
Mar 31, 2018


The Facetious Graph Generator helps out in those situations where a verbal response just won't cut it.


And
Container grouping components under a common name
Be explicit .controller(‘MyController’, [‘$scope’, ‘$http’, function($scope $http){…})


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
When I arrived in Tamil Nadu from the north of India and found fabulous seafood all down the Coromandel coast, it was like I’d come home. This combination of whole crab, coconut and tamarind with curry leaves, tomatoes, chilli and spices is going on the menu...
For the crab, break off the tail flaps and discard. Break off the claws, then take a large-bladed knife and cut them in half at the joint; crack the shells of each piece with a hammer or the back of a knife. Chop the body section in half, then gently tug on the legs to pull the body pieces away from the back shell. Use a knife as an added lever if you need to, but the body pieces should come away quite easily with the legs still attached. Turn each piece over and pick off the dead man’s fingers (soft gills), then cut in half once more so you have two legs attached to each piece.
For the coconut paste, grind the fennel and cumin seeds in a pestle and mortar, then add to a mini-food processor with the coconut and a splash of water and blend to a smooth paste.
For the masala, heat the oil in a heavy-based saucepan or karahi over a medium heat, add the fennel and fenugreek seeds, garlic, shallots and onion and fry for 10 minutes, or until the onion is golden-brown.
Stir in the curry leaves, chilli powder and turmeric, fry for 30 seconds and then add the tomatoes. Simmer for 5-10 minutes, stirring occasionally, until the tomatoes have reduced down to a pulp.
Stir in the coconut paste and fry for 2-3 minutes. Add 200ml/7fl oz of water and the kokum, tamarind liquid, coriander, sugar and salt and bring to a boil. Add the crab, cover the pan, and cook over a high heat for 3-4 minutes, or until the sauce is rich and quite thick, adding a splash more water if it looks like catching on the bottom of the pan. Serve.


| Name | Value |
|---|---|
| ClusterName | {{deployment.cluster}} |
| Deployed at | {{deployment.deploymentMoment}} |
| ServicePort | {{deployment.servicePort}} |
| DesiredCount | {{deployment.desiredCount}} |
| Name | Value | |
|---|---|---|
| ContainerName | {{container.containerName}} | |
| ContainerImage | {{container.ContainerImage}} | {{serviceName}} |
| ContainerTag | {{container.containerTag}} | |
| ContainerPort | {{container.containerPort}} | |
| ContainerCommand | {{cmd}} |


EdX is a nonprofit online initiative created by founding partners Harvard and MIT and composed of dozens of leading global institutions, the xConsortium. EdX offers interactive online courses and MOOCs from the world’s best universities and institutions.
Learn MoreOpen edX is the open source platform that powers edX courses. Through our commitment to the open source vision, edX code is freely available to the community. Institutions can host their own instances of Open edX and offer their own classes. Educators can extend the platform to build learning tools that precisely meet their needs. And developers can contribute new features to the Open edX platform.
Learn MoreReview the different installation options and determine which is right for you.
Install Open edXThe Modern Business template by Start Bootstrap includes:
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis, omnis doloremque non cum id reprehenderit, quisquam totam aspernatur tempora minima unde aliquid ea culpa sunt. Reiciendis quia dolorum ducimus unde.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestias, expedita, saepe, vero rerum deleniti beatae veniam harum neque nemo praesentium cum alias asperiores commodi.


Password Generator
1
2
3
4
5
6
Number of Letters
1
2
Number of Symbols
1
2
3
4
5
6
Number of Numbers
Generate Password
Password Generator
Your password is:


Home
Projects
Donation
More
About Us
Vision and Mission
JAR of Hope's mission is dedicated to bringing awareness and raising funds directed to ongoing research in the hope of eliminating Duchenne Muscular Dystrophy.


Australian court to rule on Wednesday on appeal by Vatican's former treasurer
MELBOURNE (Reuters) - Australia’s High Court will rule on Wednesday whether to allow a final bid by Vatican former treasurer George Pell to overturn his convictions for sexually abusing two 13-year-old choirboys in the late 1990s.
Pell, the highest ranking Catholic worldwide to be convicted of child sex offences, was jailed in March for six years, and would become eligible for parole in October 2022, aged 81.
In September, Pell sought leave to appeal against a ruling by the appeal court in the southeastern state of Victoria that upheld his conviction on five charges of abusing the boys at St Patrick’s Cathedral when he was archbishop of Melbourne.
The High Court will hand down its decision at 9:30 am (2230 GMT), the court’s spokesman said. If it grants leave to appeal, the case will be heard in 2020.
Pell’s lawyers appealed against the 2-1 decision by the Court of Appeal, saying the majority were wrong in concluding that the verdicts were not unreasonable.
They were also wrong in shifting to the defense the burden of proving it would have been impossible for Pell to have committed the offences, the lawyers said.


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/Integer.20gcd.20issues.html ---
Suppose we have x,y : ℤ
. If I understand correctly:
int.gcd x y
has type ℕ
; in particular int.gcd 0 (-2) = 2
.gcd_domain
for ℤ
which defines gcd_domain.gcd x y = int.of_nat (int.gcd x y)
. In particular, we have gcd_domain.gcd 0 (-2) = 2
. This is more or less forced by the axioms for gcd_domain
.euclidean_domain
for ℤ
, and a function euclidean_domain.gcd
defined using the euclidean algorithm. This always satisfies euclidean_domain.gcd 0 y = y
(independent of any choices about rounding up or down in the division algorithm). In particular, we have euclidean_domain.gcd 0 (-2) = -2 ≠ gcd_domain.gcd 0 (-2)
.gcd
functions.a
and b
such that int.gcd x y = a * x + b * y
; we need to do some messing about with cases on the signs of x
and y
.I assume that we have essentially the same issues with gcd
of polynomials over a field.
This does not seem very satisfactory. Some possible ways to improve the situation:
ℤ
gcd_domain.gcd x y
being the normalization of euclidean_domain.gcd x y
. Delete the direct gcd_domain
instance for ℤ
.euclidean_domain
so as to include a normalization function that is allowed to be the identity. Define euclidean_domain.gcd
to incorporate this function, so that it is possible for euclidean_domain.gcd
to be part of a gcd_domain
structure. The second of these seems most promising to me. Am I missing anything?
@Chris Hughes @Mario Carneiro does this accurately represent the current state of things?
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Enter two or more names in the field below, and the sorted list of names will appear in the textarea.


This is a quote
Before the war NATO was made
Not deleted text... deleted text
Link to an anchor on another page: the anchor


Oxycodone provides the most glowing and rapturous high I have experienced in my very thorough career as a recreational drug user. I have used many opiates throughout the years (morphine, hydrocodone, hydromorphone, fentynal, codeine,) but oxycodone has always been my personal favorite, particularly in the form of those beautiful time-released OxyContin tablets. Recently, I have gone on a four month hiatus from prescription drugs to focus on getting my life in order, but several days ago I decided to have a little reunion with my favorite pill for old timeís sake. I will describe the experience here for anyone who might be interested.
I procured an 80mg OxyContin tablet and hurried to my dorm room feeling as anxious and elated as a child waking up on Christmas morning. I sat at my desk and proceeded to crush the pill, my hands sweating slightly. After carefully picking the outer coating from the pile I divided the remaining powder into three lines. I drew an excited breath and quickly inhaled the first two lines. I then walked to the bathroom and sniffed a bit of saline solution to increase nasal absorption.
Whenever I snort oxycodone, I immediately feel a growing contentment, though the high does not begin for another five to ten minutes. The first indication of intoxication is always a slight numbing sensation and itchiness at the tip of my nose. Feeling this, I knew it was going to be a great evening. I went out to smoke. As I lit my second cigarette I felt the first pronounced wave of euphoria.
The oxycodone experience is difficult to describe to an opiate virgin. Personally, I feel as if I have suddenly gained all that I want in life and no longer have anything to fear. I am perfectly content both mentally and emotionally. All the tension slips from my body and I feel warm and utterly comfortable, as if I were sitting beside a roaring fire, wrapped in a delicate cashmere blanket, rocking gently back and forth. Communication is pleasant but unnecessary. Under the influence of oxycodone, no companionship is needed. I accept myself and the world just as we are, not begrudgingly, but eagerly, ecstatically even.
 I feel as though a warm liquid were moving through my body, as if sauna jets were buried deep within my muscles. I am now itching all over. This may sound unpleasant, but oddly enough it is my favorite part of the high. Scratching is unbelievably satisfying. When high, I can sit and scratch for hours and be perfectly entertained.
After an hour or so of scratching and cuddling with myself I decide it is time to do the remaining line. Itís a bit smaller than the first two, just a booster, roughly 20mg. I sniff it all up and go downstairs to see whatís going on in the day room. My peers are just starting a movie and I decide to join in. 30 minutes into the film the Oxy is really starting to kick in. The funny thing about oxycodone is that it comes in waves, much like MDMA. Just when I think I'm coming down I'm suddenly higher than ever.
The movie is a blissful blur, and when it is over I decide to go to bed. I love sleeping on Oxy because I donít actually sleep, but I still dream. Even when Iím dreaming I am aware that I am high and I notice every itch and every scratch. This is the most tranquil and beautiful part of the high. Strange stories and forgotten memories float before my closed eyes. Though I would not classify them as hallucinations, they are strangely three dimensional. I marvel at just how good I feel and catch myself wondering, if only reality was this pleasurableÖ
In the morning I pop out of bed, slightly high but feeling refreshed and ready to take on the day.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


This is a toggle group using group close mode.
- When a member of the group is open and you open another toggle in the group...
- Its useful for navigation, menus and accordians.
NOTE: if you don't need the animation delays, just use outside mode - don't worry about the
groupings


Google sues Texas to protect confidential information in antitrust probe
Google sued Texas' attorney general on Thursday to ensure that its confidential business information will not be disclosed to rivals as he leads a multi-state probe into possible antitrust violations by the Internet search and advertising company.
REUTERS: Google sued Texas' attorney general on Thursday to ensure that its confidential business information will not be disclosed to rivals as he leads a multi-state probe into possible antitrust violations by the Internet search and advertising company.
In papers filed with a Travis County, Texas state court, Google and its parent, Alphabet Inc, said Attorney General Ken Paxton's hiring for the probe of three outside consultants, including two who have worked for rivals or Google critics, threatens to expose key elements of Google's business practices, justifying appropriate safeguards.
(Reporting by Jonathan Stempel in New York; Editing by Steve Orlofsky)


Other instruments:
Mandolin
Ukulele chord progressions
Scale:
Major chords
Accompanying minor chords
2009 Guðmundur Hreiðarsson | Comments?
E-mail me


JAY AND SILENT BOB STRIKE BACK A film review by Mark R. Leeper
CAPSULE: The running gag pair of characters from all of Kevin Smith's films gets their own movie. The gags are sporadically funny. It is more than occasionally funny for teens who are fond of scatological humor and anti-gay jokes. The plot is weak and the leads are not a particularly funny comic team. The little inside jokes and digs at other entertainment and particularly at Kevin Smith films are the best features of the film. Sadly for me they were just not funny enough to make the film worth watching. This feels like the high school skit that that the principal would not let the kids do on talent night. (And it turns out he had very good reasons.) Rating: 4 (0 to 10), low 0 (-4 to +4)
A film needs a plot. It needs characters for empathy value. It needs a story and an emotional center. If a film is just a chain of jokes it can only be so good and any entertainment value will succeed or fail based on how funny the jokes are. Kevin Smith has now made two satisfying films, CLERKS and CHASING AMY. With DOGMA he tried to make a philosophical religious comedy and mixed with a madcap romp. Peter Cook and Dudley Moore did that very successfully with their BEDAZZLED. But getting the combination to work is very hard to do right and Kevin Smith's fecal monsters in DOGMA were not the way to do it. His remaining two films, MALLRATS and his new JAY AND SILENT BOB STRIKE BACK are aimed squarely at a teenage audience.   For me, the vast majority of the jokes were just not very funny. There was not enough cleverness or variety. It is funny at most once or twice to accuse someone of being gay. Penis jokes work only so many times.
Showing up as minor characters in every Kevin Smith film Jay and Silent Bob were a clever pair of human running gags. They were sort of the modern equivalents of Naunton Wayne and Basil Radford, the comic duo who showed up satirizing the English middle class in several good British post-war films including DEAD OF NIGHT, THE LADY VANISHES, and PASSPORT TO PIMLICO. Jay and Silent Bob were originally supposedly typical Generation X stoners. As the series wore on they had larger and larger parts. In JAY AND SILENT BOB STRIKE BACK they are the leads.
Jay and Silent Bob (played by Jason Mewes and Kevin Smith) are chased away from the front of the convenience store where they were dealing drugs in CLERKS. This leaves them at loose ends. They are not sure what would be worthwhile to do with their lives when they hear that a comic book with characters visually modeled on them will be adapted into a movie. They decide to devote their lives to wrecking the movie or getting some of that big movie industry cash. So it is off to Hollywood to shake down the movie company and having adventures along the way. The film is mostly about their adventures on the road and when they get to Hollywood
The problem with this comedy team is that neither really pulls his weight to make the film funny. Silent Bob, being silent, can only contribute to the comedy by reacting with that very expressive face of his. This makes his piece of the comedy even less than a straight man like a Dean Martin or Bud Abbott would have. Jay has to be the comic. He could carry the load for both if he were extremely inventive. The problem is that he is not sufficiently funny. He is too bland to be the comic half and his lines just do not show any comic flair. So Jay and Silent Bob are a long way from being a successful comic team. Their starring roles and the low humor make this a comedy for those young at mind and for people who can laugh at gags they have seen before--sometimes just minutes before.
Like DOGMA before it, but definitely not like CHASING AMY, this film feels more like an amateurish skit than a real movie. Certainly neither the plot nor the characters are at all involving. They are excuses for gags, many of which still fall flat. It is DOGMA without any of the humorous theological content. The film does not offer much to an adult audience. I rate it 4 on the 0 to 10 scale and a low 0 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 2001 Mark R. Leeper
-- Mark R. Leeper,http://www.geocities.com/markleeper/ Or try your search engine on "Mark Leeper"
-- Mark R. Leeper,http://www.geocities.com/markleeper/ Or try your search engine on "Mark Leeper"
========== X-RAMR-ID: 29359 X-Language: en X-RT-ReviewID: 246529 X-RT-TitleID: 1109455 X-RT-AuthorID: 1309 X-RT-RatingText: 4/10
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


pixel to pixel
- grayscale
- sepia
- thresholding-128
- invert
- saturation
- red
- green
- blue
- mirror
edge/line detection
- roberts
- sharpen
- sobel y
- sobel x
- highpass
- lowpass(3x3)
- lowpass(5x5)
- laplacian
- gaussian
- bigGaussian
- prewitt y
- prewitt x
- canny
control
Drag and drop filters here


In the tab 'MessageFormatting' you can specify the message format.
In the table 'MessageArguments' you can specify the arguments of a message. For Number, Date arguments the formats specified in the Options Panel 'Message Argument Parse Patterns' is used.
The message patterns details described below are extracted from :
MessageFormat
uses patterns of the following form:
MessageFormatPattern: String MessageFormatPattern FormatElement String FormatElement: { ArgumentIndex } { ArgumentIndex , FormatType } { ArgumentIndex , FormatType , FormatStyle } FormatType: one of number date time choice FormatStyle: short medium long full integer currency percent SubformatPattern String: StringPartopt String StringPart StringPart: '' ' QuotedString ' UnquotedString SubformatPattern: SubformatPatternPartopt SubformatPattern SubformatPatternPart SubFormatPatternPart: ' QuotedPattern ' UnquotedPattern
Within a String, "''"
represents a single
quote. A QuotedString can contain arbitrary characters
except single quotes; the surrounding single quotes are removed.
An UnquotedString can contain arbitrary characters
except single quotes and left curly brackets. Thus, a string that
should result in the formatted message "'{0}'" can be written as
"'''{'0}''"
or "'''{0}'''"
.
Within a SubformatPattern, different rules apply.
A QuotedPattern can contain arbitrary characters
except single quotes; but the surrounding single quotes are
not removed, so they may be interpreted by the
subformat. For example, "{1,number,$'#',##}"
will
produce a number format with the pound-sign quoted, with a result
such as: "$#31,45".
An UnquotedPattern can contain arbitrary characters
except single quotes, but curly braces within it must be balanced.
For example, "ab {0} de"
and "ab '}' de"
are valid subformat patterns, but "ab {0'}' de"
and
"ab } de"
are not.
The ArgumentIndex value is a non-negative integer written
using the digits '0' through '9', and represents an index into the
arguments
array passed to the format
methods
or the result array returned by the parse
methods.
The FormatType and FormatStyle values are used to create
a Format
instance for the format element. The following
table shows how the values map to Format instances. Combinations not
shown in the table are illegal. A SubformatPattern must
be a valid pattern string for the Format subclass used.
| Format Type | Format Style | Subformat Created | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| (none) | (none) | null
| |||||||||||||||
number
| (none) | NumberFormat.getInstance(getLocale())
| |||||||||||||||
integer
| NumberFormat.getIntegerInstance(getLocale())
| ||||||||||||||||
currency
| NumberFormat.getCurrencyInstance(getLocale())
| ||||||||||||||||
percent
| NumberFormat.getPercentInstance(getLocale())
| ||||||||||||||||
| SubformatPattern | new DecimalFormat(subformatPattern, new DecimalFormatSymbols(getLocale()))
| ||||||||||||||||
date
| (none) | DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
| |||||||||||||||
short
| DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
| ||||||||||||||||
medium
| DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
| ||||||||||||||||
long
| DateFormat.getDateInstance(DateFormat.LONG, getLocale())
| ||||||||||||||||
full
| DateFormat.getDateInstance(DateFormat.FULL, getLocale())
| ||||||||||||||||
| SubformatPattern | new SimpleDateFormat(subformatPattern, getLocale())
|
Here are some examples of usage. In real internationalized programs, the message format pattern and other static strings will, of course, be obtained from resource bundles. Other parameters will be dynamically determined at runtime.
The first example uses the static method MessageFormat.format
,
which internally creates a MessageFormat
for one-time use:
int planet = 7; String event = "a disturbance in the Force"; String result = MessageFormat.format( "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.", planet, new Date(), event);
The output is:
At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
The following example creates a MessageFormat
instance that
can be used repeatedly:
int fileCount = 1273; String diskName = "MyDisk"; Object[] testArgs = {new Long(fileCount), diskName}; MessageFormat form = new MessageFormat( "The disk \"{1}\" contains {0} file(s)."); System.out.println(form.format(testArgs));
The output with different values for fileCount
:
The disk "MyDisk" contains 0 file(s). The disk "MyDisk" contains 1 file(s). The disk "MyDisk" contains 1,273 file(s).
For more sophisticated patterns, you can use a ChoiceFormat
to produce correct forms for singular and plural:
The output with different values forMessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}."); double[] filelimits = {0,1,2}; String[] filepart = {"no files","one file","{0,number} files"}; ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart); form.setFormatByArgumentIndex(0, fileform); int fileCount = 1273; String diskName = "MyDisk"; Object[] testArgs = {new Long(fileCount), diskName}; System.out.println(form.format(testArgs));
fileCount
:
The disk "MyDisk" contains no files. The disk "MyDisk" contains one file. The disk "MyDisk" contains 1,273 files.
You can create the ChoiceFormat
programmatically, as in the
above example, or by using a pattern. See ChoiceFormat
for more information.
form.applyPattern( "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
Note: As we see above, the string produced
by a ChoiceFormat
in MessageFormat
is treated specially;
occurences of '{' are used to indicated subformats, and cause recursion.
If you create both a MessageFormat
and ChoiceFormat
programmatically (instead of using the string patterns), then be careful not to
produce a format that recurses on itself, which will cause an infinite loop.
When a single argument is parsed more than once in the string, the last match will be the final result of the parsing. For example,
MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}"); Object[] objs = {new Double(3.1415)}; String result = mf.format( objs ); // result now equals "3.14, 3.1" objs = null; objs = mf.parse(result, new ParsePosition(0)); // objs now equals {new Double(3.1)}
Likewise, parsing with a MessageFormat object using patterns containing multiple occurences of the same argument would return the last match. For example,
MessageFormat mf = new MessageFormat("{0}, {0}, {0}"); String forParsing = "x, y, z"; Object[] objs = mf.parse(forParsing, new ParsePosition(0)); // result now equals {new String("z")}


 Later, at the Crypt
Grammar School for Orphans near Ullapool in the Scottish Highlands, the boy's bomb-making skills improved
dramatically. His disposition and total number of intact eyeballs, however, did not.
Word of his proficiency with explosives spread, and it was not long before Crypt Grammar received two
visitors; the Demoman's real parents, who lovingly explained that all Demomen are abandoned at birth until
their skills manifest themselves, a long-standing, cruel, and wholly unnecessary tradition among the
Highland Demolition Men. His unhappy childhood had ended, but his training had just begun.
The Demoman is a scrumpy-swilling demolitions expert from the Scottish town of Ullapool, and is one of the
most versatile members of the team. A master of explosives, the Demoman strategically deals massive amounts
of indirect and mid-range splash damage. Armed with his Grenade Launcher and Stickybomb Launcher, the
Demoman uses his one good eye and the knowledge of his surrounding environment for well-timed sticky bomb
detonations that send enemies skyward, often in many pieces. Should anyone get past his explosive ordinance,
however, they will be shocked to learn the Demoman is extremely proficient at melee combat, being one of the
deadliest melee users in the game, with a variety of powerful melee unlocks in his arsenal.
The Demoman excels at swift destruction; he can bounce his grenades at creative angles to wreak havoc on
enemy Sentry Gun emplacements while remaining safely out of sight. His sticky bombs are a perfect tool for
area denial, and are effective at keeping opponents away from any carts, control points, or Intelligence
that he deems off-limits.


Login
E-Mail Address
Email is invalid
Password
Forgot Password?
Password is required
Remember Me
Login
Don't have an account?
Create One


Next: P-D3 Use combination between
Up: Dereferenceability
Previous: P-D1 Use slash URIs
This solution is formed by including a fragment to the URIs.
The fragment is separated from the rest of URI by using hash symbol (#).
Use hash URIs when dealing with small datasets.
This will reduce number of HTTP round trips.
An example of using hash URIs is:
The URI of the ScorVoc20 vocabulary is:
http://purl.org/eis/vocab/scor
The URI of the Process resource is:
http://purl.org/eis/vocab/scor#Process
lavdim
2015-08-12