Next Tottenham manager odds: Jose Mourinho favourite to replace Mauricio Pochettino
by Sporting LifeTottenham have announced they have sacked manager Mauricio Pochettino after five-and-a-half years in charge.
- Spurs sack Mauricio Pochettino
- Reaction from Lineker, Redknapp & more
- Pochettino: The highs and lows
Here, we take a look at some of the contenders who could be ready to fill the role at the Tottenham Hotspur Stadium, with odds from Sky Bet's next manager market. (correct at 2300 GMT 19/11/2019)
Jose Mourinho (1/8)
Could the self-styled 'Special One' take up another Premier League managerial post?
The Portuguese has been very positive about Tottenham since recently taking up a role as a Sky Sports pundit and will be desperate to show he can still cut it in England after a disappointing end to his Manchester United tenure.
He has won trophies wherever he has been, something that would certainly peak the interest of Spurs chairman Daniel Levy, but the financial constraints placed on a man who became the first manager to rack up £1bn on transfers may deter the former Chelsea boss.
Eddie Howe (7/1)
If Spurs did not want to go for tried-and-tested winners and instead look for promise and potential - they could do much worse than look to the Bournemouth boss.
Howe is now enjoying his fifth consecutive season as a Premier League manager having led the Cherries to the promised land in 2015 and has finished ninth, 12th and 14th in the past three years.
Could he make the step up to a side challenging for honours as well as managing a bigger budget? It would be an interesting watch, especially as the 41-year-old encourages attacking football.
Massimiliano Allegri (10/1)
The Italian left his position as Juventus head coach at the end of last season having been in charge in Turin since joining from AC Milan in 2014.
Allegri won the Italian league title in each of his five seasons in charge while his trophy haul with the Bianconeri also includes four Coppa Italia titles, with last season being the only time during his reign that they failed to secure the domestic double.
Despite success on home soil, Allegri was unable to deliver the biggest prize in European club football, losing two Champions League finals - against Barcelona in 2015 and Real Madrid in 2017.
Julian Nagelsmann (11/1)
Leipzig boss Julian Nagelsmann has less experience at top level management than others vying for favourtism in this market but his stock is rapidly rising in Germany.
When he came into his first job at 1899 Hoffenheim in February 2016, they were 17th in the Bundesliga standings, seven points from the safety of 15th spot and facing relegation. Under Nagelsmann, they avoided relegation by winning seven of their remaining 14 games and finished a point above the relegation playoff spot.
He’d go significantly better in 2016/17, guiding ‘Die Kraichgauer’ to 4th in the table and securing a spot in the UEFA Champions League, although Liverpool would knock them out in the qualifying round before a disappointing Europa League campaign followed.
Domestically they came third in 2017/18 to earn another crack at the Champions League - only to end up bottom of their group - and after a relatively disappointing ninth-placed finish in his final season, he headed for Leipzig.
Not only are they taking the Bundesliga by storm, lying second in the table with help from an 8-0 victory over Mainz, but they are cruising into the knockout stages of the Europa League.
Rafael Benitez (11/1)
Another man with plenty of Premier League experience and several pieces of silverware on his CV.
Spent the last few seasons in England keeping Newcastle in the top-flight against the odds before moving to China but, despite the wages on offer in the far east, the Spaniard would surely be tempted back for such a big job.
Having worked under Mike Ashley at St James' Park he would be more accustomed to the way Tottenham operate and would even have more freedom than he was used to at Newcastle.
Erik Ten Hag (N/A)
Former Holland international Ten Hag has been earning plenty of plaudits for the job he is doing at Ajax.
He took a group of promising, precocious players to the semi-finals of the Champions League last season only to have their hearts broken by Pochettino's Tottenham - but he did collect the domestic league and cup double.
Like Howe, he promotes an attractive style and he also has a proven track record of working with - and improving - young players, with Tottenham's academy often producing enough talent ready to be shaped and moulded into first-team regulars.
Gareth Southgate (33/1)
Another man who believes fully in the ability of youth - England manager Southgate would surely be on any shortlist drawn up by Levy.
Not only has he given plenty of opportunities to exciting, up-and-coming talent, he has also worked with key members of the current Spurs squad - Harry Winks, Dele Alli, Danny Rose, Eric Dier and Three Lions skipper Harry Kane all having played international football under Southgate in recent times.
The one issue would be whether Southgate has the credentials in club management having been sacked as Middlesbrough boss with the club in the Championship in 2009 - his only club job to date.
Other names
- Carlo Ancelotti - 18/1
- Brendan Rodgers - 25/1
- Niko Kovac - 22/1
- Chris Wilder 33/1
- Diego Simeone - 40/1


Sorry! The following changes will be lost. It appears that your draft was overwritten by changes on another machine.
The lost changes are displayed below. You may want to export or copy and paste these changes before discarding them.


We all love Github, but the embedded Gists aren't great: they're drab and lack some functionality. Pretty Gist is a jQuery plugin to make prettier and more functional embedded Github Gists. It's super simple to use, and can easily enhance Gists already embedded on your pages by just dropping it in.
In it's simplest form, with syntax highlighting it styles an embedded GitHub Gist thusly (note the code to use it is within the embedded Gist!):
Options
There are a couple of different options available for formatting and styling your Gists:
For more information and licensing, please consult the
Github repo.


| 006:059 Khan | : |
And with Him are the keys of the Ghaib (all that is hidden), none knows them but He. And He knows whatever there is in (or on) the earth and in the sea; not a leaf falls, but he knows it. There is not a grain in the darkness of the earth nor anything fresh or dry, but is written in a Clear Record. |
| 006:059 Maulana | : |
And with Him are the treasures of the unseen -- none knows them but He. And He knows what is in the land and the sea. And there falls not a leaf but He knows it, nor is there a grain in the darkness of the earth, nor anything green or dry, but (it is all) in a clear book. |
| 006:059 Pickthal | : |
And with Him are the keys of the Invisible. None but He knoweth them. And He knoweth what is in the land and the sea. Not a leaf falleth but He knoweth it, not a grain amid the darkness of the earth, naught of wet or dry but (it is noted) in a clear record. |
| 006:059 Rashad | : |
With Him are the keys to all secrets; none knows them except He. He knows everything on land and in the sea. Not a leaf falls without His knowledge. Nor is there a grain in the depths of the soil. Nor is there anything wet or dry, that is not recorded in a profound record. |
| 006:059 Sarwar | : |
He has with Him the keys to the unseen which no one knows besides Him. He knows all that is in the land and the sea. Not a single leaf falls which He would not know. No single seed exists even in the darkest places of the land, nor anything in the world either wet or dry, that is not kept recorded in the self-evident Book (the tablet preserved in the heavens). |
| 006:059 Shakir | : |
And with Him are the keys of the unseen treasures-- none knows them but He; and He knows what is in the land and the sea, and there falls not a leaf but He knows it, nor a grain in the darkness of the earth, nor anything green nor dry but (it is all) in a clear book. |
| 006:059 Sherali | : |
And with HIM are the keys of the unseen; none knows them but HE. And HE knows whatsoever is in the land and in the sea. And there falls not a leaf but HE knows it; nor is there a grain in the deep darkness of the earth, nor anything green or dry, but it is recorded in a clear book. |
| 006:059 Yusufali | : |
With Him are the keys of the unseen, the treasures that none knoweth but He. He knoweth whatever there is on the earth and in the sea. Not a leaf doth fall but with His knowledge: there is not a grain in the darkness (or depths) of the earth, nor anything fresh or dry (green or withered), but is (inscribed) in a record clear (to those who can read). |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > علمه جلّ شأنه Pillars of Islam> Islamic> Oneness of Allah> His Glory's Knowledge أركان الإسلام > التوحيد > توحيد الله تعالي > وحدانيته Pillars of Islam> Islamic> Oneness of Allah> Singularity and Being Unique العلوم والفنون > الحقائق العلمية و الإشاة إلى وقائع أيدتهاالإكتشافات العلمية > الإشارة إلى عدم فناء المادة Science and Art> The Scientific Facts and the Indication to Facts which have been supported by the Scientific Discoveries>Indication to the Non-Extinction of Matter العلوم والفنون > الحقائق العلمية و الإشاة إلى وقائع أيدتهاالإكتشافات العلمية > البحر Science and Art> The Scientific Facts and the Indication to Facts which have been supported by the Scientific Discoveries>The Sea
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Less than 10pc Kenyans to retire comfortably on pension
by BUSINESS DAILYIn Summary
- The inadequacy of the pension pay has therefore pushed many retirees into dependence on families for sustenance, especially when they have medical bills to foot.
- The findings of the Actserv survey ties in with a recent one done by the Association of Kenya Insurers (AKI) which found that nearly 80 percent of workers want to start a business after retirement to continue meeting daily needs as high expenses and low income levels make it hard to save for sunset years.

According to the survey done by Actuarial Services East Africa (Actserv), retirees in defined benefit schemes have it worse than their counterparts in contributory schemes.
The firm measured the adequacy of benefits using a ratio of income after retirement to income immediately before retirement, with an ideal level between 66 and 75 percent.
The firm surveyed 85 pension schemes (53 defined contribution and 32 defined benefit schemes) finding that only nine percent met the ideal level of income replacement ratio for members.
“Of the defined contribution pension schemes in the survey only 13 percent seemed to provide adequate levels of benefits for individuals joining at age 25…while six percent of defined benefit schemes seemed to provide adequate levels of benefits.”
“For a large number of pension schemes, it would appear that members are unlikely to achieve an appropriate income replacement ratio in retirement. This would mean that members require to consider making additional savings towards retirement.”
Also Read
-
Joe Muganda to exit Vivo Energy Kenya
-
Equity to acquire DRC bank at $105m
-
Kenyans pay $430m for non-existent insurance
-
Food prices push Nigeria inflation to 17-month high
Advertisement
The problem is also exacerbated by the relatively low returns that some schemes are getting from their investments, putting the onus on trustees to demand better investment decisions from fund managers.
“Apart from enhancing contributions or improving pension accrual factors, trustees may need to focus on improving investment returns and giving members better education on wise use of their retirement benefits,” said Actserv.
The inadequacy of the pension pay has therefore pushed many retirees into dependence on families for sustenance, especially when they have medical bills to foot.
The findings of the Actserv survey ties in with a recent one done by the Association of Kenya Insurers (AKI) which found that nearly 80 percent of workers want to start a business after retirement to continue meeting daily needs as high expenses and low income levels make it hard to save for sunset years.
The September survey, done on behalf of AKI by Research Plus Africa, also found that 19 per cent of workers feel that they cannot afford to retire, while 39 percent said that they view their children as old-age safety net.


Apple Posts New Featurettes for 'SEE' and 'For All Mankind' [Video]
by iClarifiedApple has posted new featurettes for 'SEE' and 'For All Mankind'. Both are original series available now via the Apple TV+ streaming service.
For All Mankind — Creating the World Featurette
From the lunar surface of the moon to the precise recreation of the original Mission Control, the level of authenticity and attention to detail that brought For All Mankind to life is astounding. Hear from the Executive Producers and crew members regarding the incredible care and craft that went into building the sets, finding the real-life props and designing the wardrobes for this nostalgic, alternate history drama.
SEE — The Story Featurette
Executive Producers of the Apple Original series SEE discuss the process of creating the show’s expansive narrative.


{% extends 'layouts.html' %} {% block body %}
Download IPAs, Signed Apps, Apple Developer Betas, and Jailbreaks.


JmxWeb plugin is web based platform for managing and monitoring openfire via JMX. It includes hawtio, a lightweight and modular HTML5 web console with lots of plugins and jolokia a JMX-HTTP bridge providing a web based alternative to JSR-160 connectors. It also includes the mbeans from the java-monitor probe for openfire.
If you want to monitor openfire JMX mbeans, enable JMX by adding the following to System Properties via the Web Admin Console or add into the table ofproperty.
If you want your admin users to recieve periodic summary emails of JMX, configure Opefire email service and add the following to System Properties via the Web Admin Console.
To access hawtio, point your browser at http://your-server:7070/hawtio
To access jolokia rest api from your javascript applications use URL http://your-server:7070/jolokia. Make sure you provide headers for basic authentication.


Entertainments
Entertainments in the internet wasn't popular until the early 2000s. Same as all of the others.
The reason was because of lack of people using the internet or having a computer. Now the
entertainment industry in the internet has increase a lot. It has become so popular that
even movies retail stores have closed. Many other companies are selling their movies and musics
online.
This is where YouTube comes to action. This platform has changed the way
we see entertainment in the world.  It was not possible. Now because of YouTube be can do
that and even more. People can now share anything they want and even make more from that.
There are many other platform to enjoy any sort of entertainments. One of those is Netflix which
has become so popular today that many other companies are making their own streaming services to
compete against them.
| Entertainments |
|---|
| YouTube |


Grammar
{{syntax}}
Source Code
Packrat
Auto Refresh
Parse
{{source}}
AST
Optimized AST mode:
All
Only
Profile


Commands, menus and toolbars
Every command, and I mean every command, has an entry in the global menubar. Ideally we would make the full functionality available through commands (for the disabled), I think the only new commands needed would be select prev/select next/select parent/select first child. Property boxes (and all other dialogs) should have a taborder.
I think we can still fit all this in the menubar, otherwise we may have to go with a modal menubar, where one or two menus (View and Operation?) change when you switch views. I would prefer not to do this, however, it always confuses the hell out of me when programs do this.
In addition to being in the menu commands may be available in convenience locations:
- In the contextual menu
- as keyboard shortcuts
- in a toolbar or floating palette
- as buttons in modeless dialogs
Of these, the first four should preferrably be user-configurable. If this is too difficult for the next release we should definitely have the following choices:
- Concise contextual menus (jack-style) or complete contextual menus (dick-style)
- A set of toolbar/palettes that are easy to open/close and a memory for your setting (probably not per document but per user).
By default all views should follow focus. This includes the Node Properties dialog. There should be a way to disconnect a properties dialog, though, so you can compare properties. The window title changes from Node Properties to Node Properties for XXXX.
The modeless properties dialog would have Apply/Revert buttons, the modal one OK/Cancel.
We need to think of a grouping of properties, probably in a 2-level hierarchy. Ideally this hierarchy would be used for the propertiies dialog too.


matsutake habitat suitable climate species distribution variables change RCP China data MaxEnt km soil type {border-style area used . × environmental potential px;} #ffffff;} Tricholoma highly vegetation model future ectomycorrhizal habitats suitability bioclimatic distributions scenarios geographic modeling range using global growth shifts mushroom natural plant results areas ecological factors px; temperature variables, {font-family China, Ecol. Sci. Sichuan Yang analysis bio bio, different font-size models spatial study topographic value variable warming Biol. CHS Climate Fig. Glob. Using changes current double; factor fungal matsutake. occurrence presence resolution respectively. Change China. Korea, Nature North Province, Thus, Yunnan [], ability assessment border-color border-width boundary central comprehensive considered decreases diversity entropy fruiting fungi high host important indicated key mainly marginally northeastern obtained plants populations predict probability solid; species, trees values {font-style {font-weight (approximately According Chang. Chinese Heilongjiang Int. Pinus SDMs Science Sciences Therefore, University Wei affect artificial associated based bold climatic conditions courier; created derived distribution. em; endangered extinction forecast genetic gradually included large limiting matsutake, medicinal mushrooms northern particularly production pt;} rainfall ranges reproduction set shift slope southeastern structure study, variables.


Below is my triangle tracker application which prompts the user to input three dimensions of their choice and decides on a what type of triangle it is and what type of a triangle it is


Add To Contacts
Name
*
Title
Primary Phone Number
*
Secondary Phone
Email
Addres
website
Company
Choose group
{%for g in data%}
{{g}}
{%endfor%}


-
{{#each restoList }}
{{> restoButton }}
{{/each}}
You can vote for the meal you want to eat for lunch.
This is the group you want to eat with.
You have 5 votes each day. You can vote to the same restaurant if you want to.
This Homer Simpson will kindly tell you where to eat today.
You can always change group by clicking here.


Following on from Pirates of the CariWebbean guide Webb to L2 while avoiding Elon Musk's Tesla and out-of-control Starlink satellites.
Use your cursor keys to control Webb.


Android-maps-utils bindings for Xamarin.Android apps
Bindings for android-maps-utils for Xamarin.Android apps
Many developers use Google Maps for Android (Google Play Services) to display maps and related content in Xamarin-based Android apps.
Javascript SDK for Google Maps has clustering and other neat stuff built in. Android Maps SDK has none of this included. However, there is a solution!
To address this problem, Google Maps team shared so called android-maps-utils
extensions to the Android maps SDK which allows you do following:
- Marker clustering — handles the display of a large number of points
- Heat maps — display a large number of points as a heat map
- IconGenerator — display text on your Markers (see screenshot to the right)
- Poly decoding and encoding — compact encoding for paths, interoperability with Maps API web services
- Spherical geometry — for example: computeDistance, computeHeading, computeArea
- KML — displays KML data (Caution: Beta!)
- GeoJSON — displays and styles GeoJSON data
(Please read more on the official website: http://googlemaps.github.io/android-maps-utils/)
Down the road you can find steps and details how the bindings for quite complex java library could be created and how these fresh bindings for Android Maps utils could be consumed in the Xamarin Android application.
To get to the how to part, scroll down
Existing Xamarin.Android bindings
Particularly I was interesting about clustering, as the application has to display around 500 markers in a dense area.
Looking for existing solution to the problem, one can find bindings made by Øystein Heimark. But these are quite old. To practice and to get the freshest code, I’ve created the updated bindings:
github.com/alexsorokoletov/Xamarin.Android.Maps.Utils
Creating java library bindings for Xamarin.Android
There is an official guide from Xamarin: Binding a Java Library - Consuming Java libraries from C#
Following the guide, one can sometimes see warnings or erros on the bindings.
For example,
/GoogleMapsUtilityBinding/obj/Debug/generated/src/Com.Google.Maps.Android.Geojson.GeoJsonLineStringStyle.cs(118,118): Error CS0234: The type or namespace name 'IGeoJsonStyle' does not exist in the namespace 'Com.Google.Maps.Android.Geojson'. Are you missing an assembly reference? (CS0234) (GoogleMapsUtilityBinding)
To fix this error all you need is to manually edit Metadata.xml file and introduce these changes
As you proceed, there will be a few more errors and several warnings. Fixes for them are documented in the Metadata.xml file
More than helpful were comments and examples from brendanzagaeski with different approaches to different java-to-csharp binding problems. Links to these examples are in the end of the page.
JAR/AAR dependencies
Case with android-maps-utils
is interesting because the jar/aar file depends on google-play-services.jar and android-support-v4.jar.
Xamarin suggests to add these jar files as ReferenceJar items by setting Build Action to ReferenceJar. What is missing here for a successful compilation is a C# side of these reference jars. After adding the jars you need to add a Nuget packages or Xamarin components with C# bindings for these jars.
With that change,C# bindings generator will generate correct code an generated C# code will be compilable, because you already have C# part of the referenced libraries.
One of the questions one might have - which version of google-play-services.jar should we use? The android-maps-utils library is compiled against google-play-services 7.8.0, so, basically, we can use anything >=7.8.0
How to use this library (examples)
On C# side what you need to do is following: 0) reference the bindings 1) instantiate cluster manager
If you already have custom handlers to map CameraChange/MarkerClick, you can do following (specifics of Xamarin.Android events subscriptions)
2) implement custom IClusterItem object
3) add items to the clusterer and enjoy
What if you have another version of Google Play Services already linked to your main project? In that case fork the repo and remove references that it has currently and then add references to the same packages and versions you have in your main project.
Helpful links
-
My other Xamarin bindings: Tutorial – Android float label binding for Xamarin.Android
- “Maps Shortcuts: Android Maps Utility Library” youtube video Maps Shortcuts: Android Maps Utility Library
-
example of use for original android maps util library github.com/googlemaps/android-maps-utils/tree/master/demo
-
brendanzagaeski Metadata.xml examples:
https://gist.github.com/brendanzagaeski/c32d65c21e152799af69 https://gist.github.com/brendanzagaeski/6d1052a8b76f9067548e https://gist.github.com/brendanzagaeski/69f490e31ca6a71136ff https://gist.github.com/brendanzagaeski/3868e30b85a1feb1181b https://gist.github.com/brendanzagaeski/9834034 https://gist.github.com/brendanzagaeski/9607158
If you liked this post, you can share it with your followers or follow me on Twitter!


{% load static %}
Our product provides a convenient visual of active network connections to your computer.
Upon entering the nodemap, you will be greeted with something like the following:
As the page sits idle, more nodes will begin to populate the screen.
Below is an example of a more populated view of the nodemap:


--- layout: post title: My Reading List Widget date: 2011-09-12 17:39:00.000000000 +02:00 type: post published: true status: publish categories: - Web development tags: - books - my reading list - widget meta: posterous_6b63f8d297c73139dd329498419cf441_post_id: '69868042' posterous_6b63f8d297c73139dd329498419cf441_permalink: http://exploringtheweb.net/my-reading-list-widget _thumbnail_id: '1342' _edit_last: '1' dsq_thread_id: '497470000' author: login: bbWebdesign email<EMAIL_ADDRESS>display_name: Bob first_name: Bob last_name: Belderbos ---
As you can see at the right side, I created a widget with recent books I have read/ am reading/ want to read. This data is fetched from My Reading List, a Facebook App I created to integrate your reading into Facebook
My first take was the complete app page in an iframe but it is cluttered (images below). Instead I wrote a widget page to get the last 4 to 6 titles from the My Reading List database dynamically. It's much cleaner now. Below it you can click to see all titles or to join the App. I always loved how you could integrate your Amazon reading list into Linkedin but wanted to have it on my blog + with Facebook integration :)
You can! Just join My Reading List and start adding books. You then put an iframe on your site and point to http://fbreadinglist.com/widget.php?id=<your_fb_id>
As you can see the original widget was black because I published it on Exploring the web which has a dark theme. I just made a white version which you see used on this blog:
http://fbreadinglist.com/widget_white.php?id=<your_fb_id>
When you hover over the book thumbs, you see the title, review, date. Clicking the thumb gets you to the My Reading List book page with Facebook comment box. I might wrap this in a Wordpress plugin one day.


rmid
; it implements and supports all of the same
activation interfaces and semantics as rmid
, but it also
implements and supports {@linkplain net.jini.security network
security}. Like rmid
, Phoenix also provides a simple
command line interface for stopping an activation system daemon on the
same host.
The standard command line for running Phoenix is:
java [options] -jar install_dir/lib/phoenix.jar configOptionswhere options are standard options for the
java
command, install_dir is the directory where the River-Internet release
is installed, and configOptions are the options (typically starting
with a filename or URL) of a Phoenix
configuration.
Phoenix has code that must be downloadable to clients, so one of
the options should set the java.rmi.server.codebase
system property to a codebase path (space-separated list of URLS) that
serves up install_dir/lib-dl/phoenix-dl.jar
and
install_dir/lib-dl/jsk-dl.jar
(in that order).
Phoenix also runs with a security manager, so one of the options should
set the java.security.policy
system property to a security
policy file. The Phoenix configuration must supply at least a
persistenceDirectory
entry for the component named
org.apache.river.phoenix
.
Phoenix supports being started via a {@link org.apache.river.start.NonActivatableServiceDescriptor}. An example service descriptor for starting Phoenix is:
new NonActivatableServiceDescriptor( codebase, policy, "install_dir/lib/phoenix.jar", // classpath "org.apache.river.phoenix.PhoenixStarter", // implClassName serverConfigArgs)where codebase is the codebase path, policy is the name of the security policy file, install_dir is the directory where the River-Internet release is installed, install_dir
/lib/phoenix.jar
is the class path for
Phoenix, org.apache.river.phoenix.PhoenixStarter
is the class
name of the instance to construct to start Phoenix, and
serverConfigArgs are the options (typically starting with a
filename or URL) of a Phoenix
configuration.
Phoenix has code that must be downloadable to clients, so
the codebase path specified by codebase should be two URLs that
serve up install_dir/lib-dl/phoenix-dl.jar
and
install_dir/lib-dl/jsk-dl.jar
(in that order).
The Phoenix configuration must supply at least a
persistenceDirectory
entry for the component named
org.apache.river.phoenix
.
The PhoenixStarter
instance implements the {@link
net.jini.export.ServiceProxyAccessor} interface, and implements the
{@link net.jini.export.ServiceProxyAccessor#getServiceProxy
getServiceProxy} method to return Phoenix's
ActivationSystem
proxy. When Phoenix's
ActivationSystem
is shutdown, the activation system
implementation will invoke the unregister
method of the
{@link org.apache.river.start.LifeCycle} instance passed to the
PhoenixStarter
constructor.
See the org.apache.river.start package documentation for details on configuring service descriptors.
Phoenix obtains its configuration by calling {@link net.jini.config.ConfigurationProvider#getInstance ConfigurationProvider.getInstance} with the specified configOptions.
The following entries are obtained from the configuration, all for the
component named org.apache.river.phoenix
:
| • |
loginContext
| |
|---|---|---|
|   | Type: | {@link javax.security.auth.login.LoginContext}
|
|   | Default: | null
|
|   | Description: | JAAS login context |
| • |
persistenceDirectory
| |
|---|---|---|
|   | Type: | String
|
|   | Default: | no default |
|   | Description: | log directory |
| • |
activatorExporter
| |
|---|---|---|
|   | Type: | {@link net.jini.export.Exporter}
|
|   | Default: |
|
|   | Description: | activator exporter |
| • |
systemExporter
| |
|---|---|---|
|   | Type: | {@link net.jini.export.Exporter}
|
|   | Default: |
|
|   | Description: | {@link java.rmi.activation.ActivationSystem} exporter |
| • |
monitorExporter
| |
|---|---|---|
|   | Type: | {@link net.jini.export.Exporter}
|
|   | Default: |
|
|   | Description: | {@link java.rmi.activation.ActivationMonitor} exporter |
| • |
registryExporter
| |
|---|---|---|
|   | Type: | {@link net.jini.export.Exporter}
|
|   | Default: | null Deprecated: new {@link org.apache.river.phoenix.RegistrySunExporter}()
|
|   | Description: | {@link java.rmi.registry.Registry} exporter |
| • |
registryRmiServerSocketFactory
| |
|---|---|---|
|   | Type: | {@link java.rmi.server.RMIServerSocketFactory}
|
|   | Default: | {@link java.rmi.server.RMISocketFactory#getSocketFactory}
if not null, otherwise {@link java.rmi.server.RMISocketFactory#getDefaultSocketFactory}
|
|   | Description: | {@link java.rmi.server.RMIServerSocketFactory} registryRmiServerSocketFactory |
| • |
registryRmiClientSocketFactory
| |
|---|---|---|
|   | Type: | {@link java.rmi.server.RMIClientSocketFactory}
|
|   | Default: | {@link java.rmi.server.RMISocketFactory#getSocketFactory}
if not null, otherwise {@link java.rmi.server.RMISocketFactory#getDefaultSocketFactory}
|
|   | Description: | {@link java.rmi.server.RMIClientSocketFactory} registryRmiClientSocketFactory |
| • |
instantiatorPreparer
| |
|---|---|---|
|   | Type: | {@link net.jini.security.ProxyPreparer}
|
|   | Default: | new {@link net.jini.security.BasicProxyPreparer}()
|
|   | Description: | {@link java.rmi.activation.ActivationInstantiator} proxy preparer |
| • |
groupConfig
| |
|---|---|---|
|   | Type: | String[]
|
|   | Default: | same configuration options as Phoenix |
|   | Description: | default activation group configuration options |
| • |
groupLocation
| |
|---|---|---|
|   | Type: | String
|
|   | Default: | obtain the location (a URL) from the code source
of the protection domain of Phoenix's implementation class; if the URL
ends in ".jar", then the default value for this
entry is that URL except that ".jar" is replaced with "-group.jar",
otherwise the default value is null
|
|   | Description: | codebase for {@link org.apache.river.phoenix.ActivationGroupImpl} |
| • |
groupOptions
| |
|---|---|---|
|   | Type: | String[]
|
|   | Default: | new String[0]
|
|   | Description: | extra options for all activation group commands |
| • |
groupTimeout
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 60000
|
|   | Description: | maximum time in milliseconds to wait for group activation or termination |
| • |
groupThrottle
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 3
|
|   | Description: | maximum concurrent activation group execs |
| • |
groupOutputHandler
| |
|---|---|---|
|   | Type: | {@link org.apache.river.phoenix.GroupOutputHandler}
|
|   | Default: | a handler that sends the group standard output to the standard output stream of Phoenix and sends the group error output to the error output stream of Phoenix |
|   | Description: | handler for the output of activation group processes |
| • |
unexportTimeout
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 60000
|
|   | Description: | maximum time in milliseconds to wait for in-progress calls to finish during shutdown before forcibly unexporting remote objects |
| • |
unexportWait
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 10
|
|   | Description: | milliseconds to wait between unexport attempts during shutdown |
| • |
persistenceSnapshotThreshold
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 200
|
|   | Description: | number of log updates between snapshots |
If no default is listed for an entry and the configuration cannot provide that entry, Phoenix will not start.
If a non-null
loginContext
entry is provided,
a login is performed on that context, and Phoenix executes under the resulting
{@link javax.security.auth.Subject} (via
{@link javax.security.auth.Subject#doAsPrivileged Subject.doAsPrivileged}).
The persistenceDirectory
entry specifies the name of the
directory Phoenix uses to write its persistent database. If the named
directory does not exist, Phoenix will create it. Only the directory itself
will be created; the parent directory must already exist.
Phoenix exports four remote objects: activator, activation system, activation
monitor, and registry. Each object is exported using an Exporter
obtained from the configuration. Phoenix provides various classes to
facilitate the configuration of these exporters, as described further below.
None of the remote objects implement any access control directly; any desired
access control must be implemented through the exporters. The exported
registry is always read-only, with a single binding of the name
java.rmi.activation.ActivationSystem
to the activation system
proxy; this proxy also implements {@link org.apache.river.phoenix.ActivationAdmin}.
For compatibility with {@link java.rmi.activation.ActivationGroup#getSystem
ActivationGroup.getSystem}, the registry must be exported to the JRMP runtime,
using the registry well-known object identifier. To support persistent
references, the exporters for the activator and the activation system must
produce proxies that are reusable across restarts of Phoenix. For JRMP and
Jini extensible remote invocation (Jini ERI), this means using fixed object
identifiers and fixed ports.
If the activator supports constraints (meaning the activator proxy implements
{@link net.jini.core.constraint.RemoteMethodControl}), then the
activation identifiers handed out by Phoenix will also implement
RemoteMethodControl
, otherwise they will not. The activator
implements {@link net.jini.security.proxytrust.ServerProxyTrust}
and its
{@link net.jini.security.proxytrust.ServerProxyTrust#getProxyVerifier
getProxyVerifier} method returns a verifier for the activation
identifiers used by Phoenix. The activation identifier class implements
the getProxyTrustIterator
method required by
{@link net.jini.security.proxytrust.ProxyTrustVerifier},
providing an iterator that produces the activator proxy. To support trust
verification of activation identifiers, the activator proxy must implement
{@link net.jini.security.proxytrust.TrustEquivalence} and
must either be a bootstrap proxy that implements
{@link net.jini.security.proxytrust.ProxyTrust} or be able
to produce one through its own getProxyTrustIterator
method.
Whenever an ActivationInstantiator
proxy is received from an
activation group, Phoenix passes it to the
{@link net.jini.security.ProxyPreparer} given by the
instantiatorPreparer
entry, if any. The resulting proxy is used
whenever Phoenix makes a remote call to that activation group.
When Phoenix starts an activation group, it relies on
phoenix-init.jar
being in the class path of the group VM,
therefore this JAR file must be included directly or indirectly in the class
path specified in the CommandEnvironment
of the
ActivationGroupDesc
. Phoenix starts an activation group as
follows:
createGroup
method that has three parameters of type
ActivationGroupID
, ActivationGroupDesc
, and
long
, Phoenix calls that method with the activation group
identifier, the activation group descriptor, and the current group
incarnation. Normally it should in turn call {@link
net.jini.activation.ActivationGroup#createGroup
ActivationGroup.createGroup}, to allow exporter-based remote objects to go
inactive.
The class {@link org.apache.river.phoenix.ActivationGroupImpl} is used by Phoenix
when an activation group descriptor does not specify a group class name. This
group implementation is also configurable. The groupConfig
entry
specifies the configuration options that should be used when the group
descriptor does not specify a group class and does not provide any explicit
initialization data for the group. The configuration entries used by
ActivationGroupImpl
are described further below.
The groupLocation
entry specifies the codebase, if any, that
should be used to load the class
{@link org.apache.river.phoenix.ActivationGroupImpl}. This codebase is used when
an activation group descriptor does not specify a group class name and does
not specify a group location.
The groupOptions
entry specifies extra command line options to
pass for every activation group process created by Phoenix. These options are
always placed after any properties and command line options specified
in the activation group descriptor, in the final command line used to create
the process. The most common use of this feature is to temporarily set system
properties for debugging.
The groupTimeout
entry specifies the maximum time in milliseconds
to wait after an activation group process is created before an
activeGroup
remote call must be received from that group. If the
remote call is not received within that period, the attempt to activate an
object within that group will terminate with an
ActivationException
. If an activation group process subsequently
must be destroyed (so that a new process for the same group can be created),
this entry also specifies the maximum time to wait for the process to actually
terminate (after being destroyed) before giving up and proceeding to create
a new process.
The groupThrottle
entry specifies the maximum number of group
processes Phoenix will create concurrently, to avoid system thrashing
(particularly when Phoenix is restarting). If too many group processes need
to be created at one time, creation of some will temporarily be deferred until
existing creations complete.
The groupOutputHandler
entry specifies the
{@link org.apache.river.phoenix.GroupOutputHandler} for the output of activation
group processes. The handler is called each time a group process is created.
The unexportTimeout
entry specifies the maximum time in
milliseconds to wait for in-progress inbound remote calls to finish during
shutdown before forcibly unexporting all remote objects. The
exportWait
entry specifies the time in milliseconds to wait
between unsuccessful export attempts.
Phoenix writes information about registered groups and objects to a
persistent database, so that Phoenix can be restarted after a crash
without losing state. As registrations are changed, incremental update
records are written out, until a threshold is reached, and then a
consolidated snapshot of the entire state is written out (to speed up
recovery after a crash). The persistenceSnapshotThreshold
entry specifies the the number of incremental updates to write between
snapshots.
Phoenix uses the {@link java.util.logging.Logger} named
org.apache.river.phoenix
to log information at the following
levels:
| Level | Description |
|---|---|
| {@link java.util.logging.Level#SEVERE SEVERE} | persistent database snapshot failures |
| {@link java.util.logging.Level#WARNING WARNING} | failure to restart an activatable object that has been registered to auto-restart |
| {@link java.util.logging.Level#WARNING WARNING} | failure to recover from the persistent database |
| {@link java.util.logging.Level#INFO INFO} | startup of Phoenix |
| {@link java.util.logging.Level#INFO INFO} | shutdown of Phoenix |
| {@link java.util.logging.Level#FINE FINE} | process command line when an activation group is created |
The following classes are useful in conjunction with Jini ERI:
The following classes are useful in conjunction with JRMP:
ActivationGroupImpl
obtains the following entries from its
configuration, all for the component named org.apache.river.phoenix
:
| • |
loginContext
| |
|---|---|---|
|   | Type: | {@link javax.security.auth.login.LoginContext}
|
|   | Default: | null
|
|   | Description: | JAAS login context |
| • |
inheritGroupSubject
| |
|---|---|---|
|   | Type: | boolean
|
|   | Default: | false
|
|   | Description: | if true , group subject is inherited when an activatable object is created
|
| • |
instantiatorExporter
| |
|---|---|---|
|   | Type: | {@link net.jini.export.Exporter}
|
|   | Default: | retains existing JRMP export of instantiator |
|   | Description: | {@link java.rmi.activation.ActivationInstantiator} exporter |
| • |
monitorPreparer
| |
|---|---|---|
|   | Type: | {@link net.jini.security.ProxyPreparer}
|
|   | Default: | new {@link net.jini.security.BasicProxyPreparer}()
|
|   | Description: | {@link java.rmi.activation.ActivationMonitor} proxy preparer |
| • |
systemPreparer
| |
|---|---|---|
|   | Type: | {@link net.jini.security.ProxyPreparer}
|
|   | Default: | new {@link net.jini.security.BasicProxyPreparer}()
|
|   | Description: | {@link java.rmi.activation.ActivationSystem} proxy preparer |
| • |
unexportTimeout
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 60000
|
|   | Description: | maximum time in milliseconds to wait for in-progress calls to finish before forcibly unexporting the group when going inactive |
| • |
unexportWait
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 10
|
|   | Description: | milliseconds to wait between unexport attempts when going inactive |
If a non-null
loginContext
entry is provided,
a login is performed on that context, the group is created under the resulting
{@link javax.security.auth.Subject} (set to be read-only), and all subsequent
remote calls by the group to Phoenix are executed under that subject.
By default, the activation group automatically exports itself as a JRMP
unicast remote object. (This is a limitation of the existing activation
system design.) If an instantiatorExporter
entry is provided, the
group is unexported from the JRMP runtime and then re-exported with the
provided exporter.
When the group is initially created, it passes the
ActivationSystem
proxy (obtained from the
ActivationGroupID
) to the
{@link net.jini.security.ProxyPreparer} given by the
systemPreparer
entry, if any. A new
ActivationGroupID
is constructed with the resulting proxy,
and is used to create the group. A remote call through the prepared
ActivationSystem
proxy is made to report the group as active, and
the ActivationMonitor
proxy returned by that call is passed to
the {@link net.jini.security.ProxyPreparer} given by the
monitorPreparer
entry, if any. The prepared
ActivationMonitor
proxy will be used for all subsequent remote
calls to Phoenix.
The unexportTimeout
entry specifies the maximum time in
milliseconds to wait for in-progress inbound remote calls to finish before
forcibly unexporting the group when it goes inactive. The
exportWait
entry specifies the time in milliseconds to wait
between unsuccessful export attempts.
The inheritGroupSubject
entry if true
indicates that the activation group's subject should be inherited by the
access control context in which the group creates an activatable object.
If the entry is false
, then the group's subject is
not inherited by that context. The default is false
.
For JRMP and Jini ERI, a local-host-based access control policy (equivalent to
that enforced by rmid
) can be obtained by using the exporters
provided in this package.
{@link org.apache.river.phoenix.SystemPermission}, {@link org.apache.river.phoenix.ActivatorPermission}, {@link org.apache.river.phoenix.MonitorPermission}, and {@link org.apache.river.phoenix.InstantiatorPermission} can be used to express access control policies for remote objects exported with {@link net.jini.jeri.BasicJeriExporter}, by passing one of those classes to {@link net.jini.jeri.ProxyTrustILFactory} or {@link org.apache.river.phoenix.SystemAccessProxyTrustILFactory}.
{@link org.apache.river.phoenix.ExecPermission} and {@link org.apache.river.phoenix.ExecOptionPermission} can be used to express the access control policy for what activation group descriptors can be registered. These permissions are checked by {@link org.apache.river.phoenix.DefaultGroupPolicy}, which is used by {@link org.apache.river.phoenix.SystemAccessExporter}, {@link org.apache.river.phoenix.SystemAccessILFactory}, and {@link org.apache.river.phoenix.SystemAccessProxyTrustILFactory}.
rmid
should work under Phoenix.
Activation group implementations that work under rmid
should work under Phoenix, provided the Phoenix
ActivationSystem
is exported using a JRMP exporter. An
unmodified JRMP-based group implementation will not work under Phoenix
if the Phoenix ActivationSystem
is exported using a Jini
ERI exporter, because Jini ERI does not support stub replacement for
JRMP implementation objects and the existing activation group design
relies on such stub replacement. However, JRMP-based group
implementations can be made compatible with activation systems based
on Jini ERI, and still work under rmid
, by adding a
writeReplace
method to the group implementation class
that returns the stub.
Activation group implementations and activatable remote object
implementations that depend on {@linkplain net.jini.activation
activation extensions} supported by Phoenix will not work under
rmid
.
The persistent databases used by rmid
and Phoenix are not
compatible.
java [options] -jar install_dir/lib/phoenix.jar -stop configOptions
In this case, the following entries are obtained from the configuration, all
for the component named org.apache.river.phoenix
:
| • |
loginContext
| |
|---|---|---|
|   | Type: | {@link javax.security.auth.login.LoginContext}
|
|   | Default: | null
|
|   | Description: | JAAS login context |
| • |
systemPreparer
| |
|---|---|---|
|   | Type: | {@link net.jini.security.ProxyPreparer}
|
|   | Default: | new {@link net.jini.security.BasicProxyPreparer}()
|
|   | Description: | {@link java.rmi.activation.ActivationSystem} proxy preparer |
| • |
registryHost
| |
|---|---|---|
|   | Type: | String
|
|   | Default: | null
|
|   | Description: | registry host |
| • |
registryPort
| |
|---|---|---|
|   | Type: | int
|
|   | Default: | 1098
|
|   | Description: | registry port |
If a non-null
loginContext
entry is provided,
a login is performed on that context, and the shutdown
remote call
is executed under the resulting {@link javax.security.auth.Subject} (via
{@link javax.security.auth.Subject#doAsPrivileged Subject.doAsPrivileged}).
The activation system daemon to shut down is obtained by looking up the name
java.rmi.activation.ActivationSystem
in the registry at the host
given by the registryHost
configuration entry (defaulting to the
local host) and the port given by the registryPort
configuration
entry (defaulting to port 1098).
The ActivationSystem
proxy obtained from the registry is
passed to the {@link net.jini.security.ProxyPreparer} given by
the systemPreparer
entry, if any. The resulting proxy is used for
the shutdown
remote call.
groupConfig
entry. If a configuration file is
shared by both Phoenix and activation groups, some
type-import-on-demand declarations (i.e., wildcard imports) may be
required. If fully-qualified class names are imported, a
ConfigurationException
will be thrown if an import is
encountered for a class that is not found. This may happen if a class
is available to Phoenix, but is not available to the activation group,
or vice versa.
// a Jini ERI configuration specifying constraints import org.apache.river.config.KeyStores; import org.apache.river.phoenix.*; import net.jini.constraint.*; import net.jini.core.constraint.*; import net.jini.jeri.*; import net.jini.jeri.ssl.SslServerEndpoint; import net.jini.security.*; import javax.security.auth.login.LoginContext; org.apache.river.phoenix { registryExporter = new RegistrySunExporter(); private sslPort = 2000; // pick one, cannot be 1098 private daemonEndpoint = SslServerEndpoint.getInstance(sslPort); private integrity = new BasicMethodConstraints( new InvocationConstraints(Integrity.YES, null)); systemExporter = new BasicJeriExporter(daemonEndpoint, new SystemAccessProxyTrustILFactory(integrity), false, true, PhoenixConstants.ACTIVATION_SYSTEM_UUID); activatorExporter = new BasicJeriExporter(daemonEndpoint, new ProxyTrustILFactory(integrity, null), false, true, PhoenixConstants.ACTIVATOR_UUID); monitorExporter = new BasicJeriExporter(daemonEndpoint, new ProxyTrustILFactory( integrity, MonitorPermission.class)); private groupEndpoint = SslServerEndpoint.getInstance(0); instantiatorExporter = new BasicJeriExporter(groupEndpoint, new ProxyTrustILFactory( integrity, InstantiatorPermission.class)); private static keystore = KeyStores.getKeyStore( "${user.home}${/}.keystore", null); private mutualAuth = new BasicMethodConstraints(new InvocationConstraints( new InvocationConstraint[]{ Integrity.YES, ClientAuthentication.YES, ServerAuthentication.YES, new ServerMinPrincipal( KeyStores.getX500Principal("phoenix", keystore))}, null)); instantiatorPreparer = new BasicProxyPreparer(true, mutualAuth, null); monitorPreparer = instantiatorPreparer; systemPreparer = instantiatorPreparer; loginContext = new LoginContext("phoenix"); persistenceDirectory = "log"; }
// a Jini ERI configuration org.apache.river.phoenix { persistenceDirectory = "log"; }
// a JRMP configuration import org.apache.river.phoenix.*; org.apache.river.phoenix { activatorExporter = new ActivatorSunJrmpExporter(); systemExporter = new SystemAccessExporter(); monitorExporter = new MonitorAccessExporter(); instantiatorExporter = new InstantiatorAccessExporter(); persistenceDirectory = "log"; }
// a JRMP configuration with no access control import org.apache.river.phoenix.*; import net.jini.jrmp.JrmpExporter; import java.rmi.activation.ActivationSystem; org.apache.river.phoenix { registryPort = ActivationSystem.SYSTEM_PORT; registryExporter = new RegistrySunExporter(registryPort); activatorExporter = new ActivatorSunJrmpExporter(registryPort); systemExporter = new SunJrmpExporter(4, registryPort); monitorExporter = new JrmpExporter(registryPort); instantiatorExporter = null; persistenceDirectory = "log"; }
// a secure Jini ERI Phoenix policy keystore "file://${user.home}/.keystore"; grant codebase "file:install_dir/lib/jsk-platform.jar" { permission java.security.AllPermission; }; grant codebase "file:install_dir/lib/jsk-lib.jar" { permission java.security.AllPermission; }; grant codebase "file:install_dir/lib/phoenix.jar" { permission java.io.FilePermission "${user.home}${/}phoenix.config", "read"; // next two used in configuration file permission java.util.PropertyPermission "user.home", "read"; permission javax.security.auth.AuthPermission "createLoginContext.phoenix"; permission javax.security.auth.AuthPermission "doAsPrivileged"; // next two needed by RegistrySunExporter permission java.lang.RuntimePermission "accessClassInPackage.sun.rmi.server"; permission java.lang.RuntimePermission "accessClassInPackage.sun.rmi.transport"; }; grant principal "phoenix" codebase "file:install_dir/lib/phoenix.jar" { permission javax.security.auth.AuthPermission "getSubject"; // next two needed by RegistrySunExporter permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; permission java.io.FilePermission "log", "read,write"; permission java.io.FilePermission "log/-", "read,write,delete"; // needed to default group location to phoenix-group.jar permission java.lang.RuntimePermission "getProtectionDomain"; // next two needed for default java program for groups permission java.util.PropertyPermission "java.home", "read"; permission java.io.FilePermission "${java.home}${/}bin${/}java", "execute"; permission java.lang.RuntimePermission "shutdownHooks"; // used in configuration file permission java.io.FilePermission "${user.home}${/}.keystore", "read"; // next two needed to export remote objects permission java.lang.RuntimePermission "getClassLoader"; permission net.jini.export.ExportPermission "exportRemoteInterface.org.apache.river.phoenix.Activator"; // next two for outgoing newInstance calls to groups // connect to just local host (but not "localhost") would be sufficient permission java.net.SocketPermission "*:1024-", "connect"; permission net.jini.security.AuthenticationPermission "${{self}} peer ${{self}}", "connect"; // next two for incoming remote calls permission java.net.SocketPermission "*:1024-", "accept"; permission net.jini.security.AuthenticationPermission "${{self}}", "accept"; }; // grant administrator permission to do most things grant principal "admin" { permission org.apache.river.phoenix.SystemPermission "register*"; permission org.apache.river.phoenix.SystemPermission "get*"; permission org.apache.river.phoenix.SystemPermission "set*"; permission org.apache.river.phoenix.SystemPermission "shutdown"; permission org.apache.river.phoenix.ExecOptionPermission "-Djava.security.auth.login.config=${user.home}${/}login"; permission org.apache.river.phoenix.ExecOptionPermission "-Djavax.net.ssl.trustStore=${user.home}${/}.keystore"; permission org.apache.river.phoenix.ExecOptionPermission "-Djava.security.policy=${user.home}${/}group.security.policy"; }; // typical service needs to verify trust, unregister, and change its descriptor grant principal "service" { permission org.apache.river.phoenix.SystemPermission "getProxyVerifier"; permission org.apache.river.phoenix.SystemPermission "unregister*"; permission org.apache.river.phoenix.SystemPermission "*ActivationDesc"; }; // for callbacks from activation groups grant principal "phoenix" { permission org.apache.river.phoenix.SystemPermission "getProxyVerifier"; permission org.apache.river.phoenix.SystemPermission "activeGroup"; permission org.apache.river.phoenix.MonitorPermission "*"; };
// part of a secure Jini ERI group policy keystore "file://${user.home}/.keystore"; grant codebase "file:install_dir/lib/jsk-platform.jar" { permission java.security.AllPermission; }; grant codebase "file:install_dir/lib/phoenix-init.jar" { permission java.security.AllPermission; }; grant codebase "file:install_dir/lib/phoenix-group.jar" { permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; // needed to set the ActivationGroup instance permission java.lang.RuntimePermission "setFactory"; permission java.lang.RuntimePermission "modifyThreadGroup"; permission javax.security.auth.AuthPermission "createLoginContext.phoenix"; permission javax.security.auth.AuthPermission "getSubject"; permission javax.security.auth.AuthPermission "doAsPrivileged"; // next two need to call non-public constructors and activate methods permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; // accept from just local host (but not "localhost") would be sufficient permission java.net.SocketPermission "*:1024-", "accept"; // need to connect to local host and codebases of all activatable objects permission java.net.SocketPermission "*:1024-", "connect"; permission net.jini.security.AuthenticationPermission "${{alias:phoenix}} peer ${{alias:phoenix}}", "connect,accept"; permission java.io.FilePermission "${user.home}${/}phoenix.config", "read"; // used in configuration file permission java.io.FilePermission "${user.home}${/}.keystore", "read"; /* Because ActivationGroupImpl creates the activatable objects, either * this codebase also needs whatever permissions are needed by those * objects, or the objects must use AccessController.doPrivileged or * equivalent to avoid the need for such grants. */ }; // for remote calls from Phoenix grant principal "phoenix" { permission org.apache.river.phoenix.InstantiatorPermission "*"; };@since 2.0


ARMAGEDDON *1/2 (out of four) -a review by Bill Chambers (If you like movies, And bad writing, too, FILM FREAK CENTRAL is the place for YOU:
http://www.geocities.com/~billchambers
New address. Same old attitude. Don't forget to recommend a film, read the journal, or send me some of that nasty HATE MAIL.)
starring Bruce Willis, Billy Bob Thornton, Liv Tyler, Ben Affleck written by Jonathan Hensleigh and J.J. Abrams directed by Michael Bay
It rocks-actually, lots of rocks fly at us or from us, in slow or fast motion, at several points in the film. They seem like dangerous rocks because they kind of twirl through the air instead of just propelling forward, and when they land-once in a while, when we need a break from the space sequences-they cause damage enough to destroy the Chrysler building and the like. (Nary a mention of these apocalyptic events is made after they occur.) They also just might be the most interesting element of ARMAGEDDON, a steroid user's answer to Deep Impact.
Bruce Willis stars as Harry Stamper, a famed oil-driller commissioned by the White House and NASA to stop a giant asteroid before it travels beyond "zero barrier" and destroys our planet. Why an oil driller? They require someone experienced with deep-core mining to plant a nuclear missile into said asteroid. (In one unintentionally (?) hilarious sequence, NASA asks Harry to inspect a deep-core driller they built based on his own blueprints; it is poorly constructed-Harry criticizes almost every aspect of it. We trust NASA to build space shuttles that can land on twirling asteroids?)  Once they reach space, we experience sequence after sequence of something going wrong-perhaps the fact that they sent a bunch of nincompoops into outer space has something to do with it; I cannot count the number of times they almost fail the mission on all my fingers and toes. Whether or not they save the day, I will not reveal. Nor will you care.
I will say this: you know you're in trouble when Deep Impact dwarfs your asteroid movie in terms of emotion and scope. Willis has barely a chance to come alive; ditto for Affleck. Their big scenes are mostly reserved for the third act, in a last minute-and futile-attempt to inject warmth into the material. Steve Buscemi's character-the wiseass-is exceptionally problematic. "Rockhound", as he's called, is sarcastic and foolish, so they tape him to a chair, where he spends most of the film. So why did they bring him up there to begin with? Rather, why write him into the film?-give his almost-witty one-liners to serious Willis, who scowls and mopes and demonstrates psychotic tendencies: at one point he chases after Affleck with his shotgun for screwing his daughter, firing often and causing significant damage to his oil rig. I'm guessing he qualifies under NASA guidelines as someone unfit for space travel, at least in my world where the sky is blue. Liv Tyler is pretty and humourless, as always; suspiciously, four of her father's band's ("Aerosmith") songs grace the soundtrack. Director Michael Bay lays the visual and sound effects on thick, like ketchup, eventually drowning the movie on-screen. (The middle hour is a non-sensical, pyrotechnic assault on the average primate's brain.) Whenever someone dies in this movie, a crew member inevitably yells out "We lost (insert dead person's last name here)!" I must admit that not once could I distinguish a dead oil-guy-cum-astronaut from a live one, and close-ups of the corpses' faces beneath cracked helmets provided little assistance, as their skin was often covered in fake blood.
ARMAGEDDON is not as terrible movie as Godzilla. It looks nicer, and has fewer plot-holes within its equally ludicrous framework. It has a vivid soundmix. But at almost two-and-a-half hours, I could not believe how little actually happened over the course of the story. The love story has been played up in the ads, perhaps hoping to catch people before they recover from Titanic-fever. Bollocks! The lovers in the film are miles apart throughout-erase all thoughts of nude sketching or car-sex and replace them with obligatory shots of Liv Tyler tearing up while Ben Affleck dicks around in a moon-crawler.
Remember a little film called Jaws? In this film, three independent-minded men suddenly found themselves on a fishing boat in pursuit of a deadly shark. They didn't much like each other at first; eventually, they started to respect one another. One of Jaws' great scenes involved the would-be-Ahabs drinking and singing songs and telling stories. This is the sort of male-bonding foreign to Bay or his producer, Jerry Bruckheimer, who throw too many characters into the mix and expect we'll care about them on the grounds that the world is about to end. Not once do we get the feeling that these characters are even acquaintances-I'd be surprised if these actors bothered to introduce themselves to one another before "action" was called. A male friend who loved the film suggested to me that perhaps I cannot relate to a bunch of men who don't bare their souls, who believe in dying macho concepts like heroism and a kind of chest-beating bravery. To this, I will respond that the boys in ARMAGEDDON are neither heroic, nor brave, nor smart, even: this team couldn't build a birdhouse. And if I get no respect for disliking a movie with all the synthetic feeling of a trailer-a trailer for a movie written by a team of body-builders and greeting card authors-I've never been a prouder wimp my whole life.
-Bill Chambers; July, 1998.
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


The foostats api allows you to interact with the foostats database through RESTful calls to the foostats api controllers. Through the foostats api you can
Retrieves an array of all the players. See List below for example of the Player object being returned.
Retrieves an array of players. An example player object is shown below
{
"Trueskill":{
"Id":2,
"Player":(null),
"StandardDeviation":7.1714758070092195,
"Mean":20.604168307008482,
"ConservativeRating":-0.91025911401917625
},
"WinLoss":{
"Id":2,
"Player":(null),
"Win":0,
"Loss":1
},
"Id":2,
"DisplayName":"REDMOND\\japayne",
"MutableDisplayName":null,
"Password":null,
"Salt":null
}
POST http://localhost:25027/Api/PlayerApi/List HTTP/1.1
Host: localhost:25027
Content-Type: application/json
{ OrderBy: "Alias", Desc: true, Limit: 5, StartIndex: 2, IncludeExtendedData: true }
The input contains an OrderBy column, the OrderBy values supported are DisplayName, Alias, Id. If IncludeExtendedData is true then you can also use the values Trueskill and WinLoss. This Id is an internal Id that does not correspond to any external value. Sorting is done in either Descending or Ascending order, determined by the Desc bool value. If ommited the default value is false and the results will be in ascending order. If no OrderBy field is passed then Desc will have no effect. Limit will limit the result set to that many results. Passing a StartIndex of a positive non-zero integer will result in the processor skipping over StartIndex-1 results (the result set will start at that index). For the purpose of pagination an example of usage would be setting the limit to 5 and on the second request using a StartIndex of 6 and incrementing the start index each time. Note this is 1-indexed. IncludeExtendedData includes the trueskill and winloss data for a player.
Retrieves a players data. Looks up a player based on Alias. If the player could not be found then returns 404 with the reason "Player '{0}' could not be found".
Retrieves a list of players data based on the players display names. If no players could be found returns an empty list.
Retrieves an array of all matches in the database, up to 1000 records. If over 1000 records would be returned, use /List with StartIndex and Limit to paginate the data, or set a larger Limit (not recommended).
Retrieves a list of matches that meet the critera, ordered in a particular fashion specified in the input. An example of a match object is shown below. Note extended player data such as trueskill and win loss ratios are not shown. To retrieve this data make a separate request to the PlayerApi.
[
{
"Id":1,
"Team1":{
"Id":1,
"Player1":{
"Id":1,
"DisplayName":"REDMOND\\amayoub",
"MutableDisplayName":null,
"Password":null,
"Salt":null
},
"Player2":null,
"DisplayName":"REDMOND\\amayoub"
},
"Team2":{
"Id":2,
"Player1":{
"Id":2,
"DisplayName":"REDMOND\\japayne",
"MutableDisplayName":null,
"Password":null,
"Salt":null
},
"Player2":null,
"DisplayName":"REDMOND\\japayne"
},
"Score1":8,
"Score2":2,
"Team1Validated":"2013-11-08T23:59:13.68",
"Team2Validated":null
}
]
POST http://localhost:25027/Api/MatchApi/List HTTP/1.1
Host: localhost:25027
Content-Type: application/json
{ OrderBy: "Date", Desc: true, Limit: 5, SearchKey: "Alias", SearchTerm: "REDMOND\\amayoub"}
There is only one valid OrderBy column so far which is Date, anything else will result in an error. You can also omit date for now and the default will be sorted by date. Desc does similar to players and will sort the matches in descending order if true. Limit will limit the number of results and StartIndex will start the results at a specific index. The functionality of pagination is the same as Player /List. Readers are recommended to look over the documentation for that for more details. So far the only supported search keys are "Alias".
Adds a match to the database, if the player doesn't exist yet (determined by player alias) then the player is added to the database. This is the only way to create a player.
POST http://localhost:25027/Api/MatchApi/AddMatch HTTP/1.1
Host: localhost:25027
Content-Type: application/json
{
Team1Player1Alias: "REDMOND\\amayoub",
Team1Player2Alias: "REDMOND\\kasun",
Team2Player1Alias: "REDMOND\\japayne",
Team2Player2Alias: "REDMOND\\anhiggin",
Team1Score: 2,
Team2Score: 8
}


Welcome!
This is a showcase as copy from the old spocal.net. You can:
- Create an user account. You don't have to enter your real e-mail address since the email verification is disabled. (registration)
- Post/comment/like as normal or anonymous user. When logged in, just click on the "normal"-button to switch to anonymous mode.
- Send messages from/to normal/anonymous users.
- Propose a better looking template to the creator of this site.
For further informations click on the in the navbar.


Some comments on Aadhaar or Adhar:
Firstly unlike a password, biometric data is not secret and also not in full control of the owner of biometrics. Biometric data today are shared not only with Aadhaar authorities but practically everywhere, including attendance systems and banks. Even on table and doors accessed by that individual.
The same problem (and more) exists with passwords. How do you stop someone from using the same one everywhere (and therefore being hacked somewhere else and then his Govt ID being abused?). From writing it down and sticking it in a drawer or on a computer screen? When it is so easy to reverse engineer, imagine tying critical services to a unique ID with a password? Even companies are moving away from just passwords (or in some cases passwords altogether). So I would argue that a password is not secret at all, and easily transferable and reverse engineered.
So then the question is, is biometrics more reliable and secure? The answer would seem to be yes.
The video has been taken down so I have no way of verifying it. But considering Google/Apple continue to use fingerprints and every notice so far of copying fingerprint is anecdotal, and that Aadhaar’s CIDR is not using just 3 points of fingerprint matching.
Financial support to non-citizens
Section 9 clarifies that Aadhaar is not the proof of Citizenship or Domicile. This means that benefits accruing out of Aadhaar will be niraadhaar (without basis of Citizenship). It is very strongly recommended that a special mark must be indicative in Aadhaar number itself (like * mark) to show that the person is NOT a citizen of India. The government has passed repeated orders to identify Indian Citizens but there appears to be no progress in this regard. In any case, the requesting entity must know if the person being enquired on is Indian or not.
I think this isn’t the right line of reasoning. Aadhaar isn’t a proof of citizenship (it is a form of identification/authentication), and therefore Aadhaar is not the basis of a subsidy either. Aadhaar is needed to avail the subsidy, not qualify for it.
For example, a certain maximum balances qualifies a JanDhan account, or a certain income level qualifies you for an LPG subsidy. UID then helps ensure that the subsidy is passed on to the qualified person correctly (and alternatively you have the guarantee the bank account was opened in your name correctly). Aadhaar doesn’t help you qualify for EPFO, it ensures you get your EPFO in your bank account, etc.
Point is, the qualification of a subsidy has not changed, and aadhar is not being used as a basis of that determination.
Financial Risk
According to section 11(2), the authority will be a body corporate, which means it will be covered under section 43(A) of the Information Technology Act and rules made thereunder. It also means that the authority will not have protection provided to the government in case of any failure. If for any reasons, any core biometric information is lost, then the authority will be liable for civil liability of unlimited amount. Unlike the other methods of authentication, biometric loss is lifelong loss, hence the liabilities of such loss will be far enhanced. In a case of complete loss, the civil liability may be few lakh crores. Is the authority or the government ready for such loss?
Will the government be morally right to pay for such loss to the citizens of India from the money collected through taxes from citizens of India, for its own incompetence? The Act is silent on this risk assessment.
Fair point. This will also need to be separated against breach (of even rules, not necessarily of data) that may occur within the ecosystem vs by the UIDAI.
Secondly, Biometrics are permanent; unlike a password or a smart card, they cannot be changed. God forbid, if the complete Aadhaar database is compromised (like that of Sony) and which must be expected to be so, the biometrics of all citizens will be compromised. Isn’t it far too big a risk for the government to take? Access to sensitive areas such as defence installations, which use biometrics as access control, will automatically become unusable for life of that senior defence officer. There is no way to correct the situation, unlike password and token.
There are numerous things that need to be done — this is what I stressed on during our Twitter chat — to ensure the system is secure. Everything from encryption methods, process certifications, splitting the DB into pieces so access to a single database does not compromise us in entirely are being done.
Numerous governments collect biometrics from their residents and also their visitors. Do we have any cases of them being leaked and then misused? There is an inherent security by purpose that requires Governments to do everything in their power to ensure the security of this database. Having reviewed within my limited expertise the access to CIDR bits, i.e., over the API, I am assured that it is not going to be easy to pull data out.
The challenges in this field will increase manifold as financial transactions based on biometrics increase. For example, the government had ordered that App Praman is used for giving life certificate for all pensioners. An individual can create his artificial fingerprint and give to his own family to continue to draw full pension even after his death.
Sure, but once the death is registered and the Aadhaar is then locked, what good is the fake fingerprint? And they wouldn’t be able to register a new person with the fake fingerprint either once the person is logged in. So it becomes a closed door.
Section 14 does not limit the citizenry of chairperson and the members of the authority, hence it is possible to appoint a chairman who is neither Indian nor resident of India. It is, therefore, necessary to make appropriate amendments in section 14 which should state that the chairperson and members should be ‘resident Indian citizens’ only. If we cannot get a reasonably competent person to be chairperson or member of the authority then it is a matter of shame. Additionally, if such persons are foreign nationals then ensuring compliance of Section 16 will be impossible.
Agree, there does not seem to be any limitation of citizenship on the authority, except indirectly and only on certain positions. I agree this should be explicit.
To your other point, you’re right as well, the Act does not quantify what violation of breach of UIDAI members would be (in case of the cool off period for instance). So a) I hope that is correct but b) it must be remembered that the law prohibits a cooling off period, meaning that a Court can then apply a reasonable punishment despite a lack of definition.
Relationship with Software, Hardware and Database Vendors
There has been repeated questioning of the UPA government in respect of the contract it has signed with various software and hardware providers and database maintainers, especially the contractual agreement between the Authority and MongoDB. Neither the UPA government nor the NDA government issued any clarification in this regard.
The issue I have the constant mention of MongoDB is that there is no mention of this anywhere. To some extent, the level of agreement and other specific details of the infrastructure should be limited (and clearly is). What has been made clear is that multiple technologies are in use (for example 3 open source softwares are in use for deduplication) with a focus on open source to eliminate proprietary restrictions or lack of support.
If the silence is considered as acceptance of this contractual flaw, then section 22B has extended this contractual liability forever and shared the private sensitive data of Indian citizens and residents with the US government. The charges are serious and silence is not an answer.
I don’t believe silence makes something accepted or contractual. Do we have a right to know — thereby giving someone with malintentions the right to know — this we can debate. While I have heard the MongoDB arguments multiple times, I’m yet to see anything verified that use of MongoDB automatically hands anything to the US Government, but the problem with something ambigious is both sides can keep fighting without something verifiable. That said, if Aadhaar is disconnected from the open world (as it is listed to be), connectible only via verified vendors and through specified APIs, this would still severely limit any one’s access to data.
But the point you make here starts with an assumption, and if that assumption is wrong, then the rest does not flow. There has been no indication that technical safeguards are not in place — things like separating storage of different pieces of data across independent DBs, encryption models — which are in fact in place.
Section 23(2)(c)empowers the Authority to appoint an entity for operation of Central Identity Database Repository (CIDR). However, no limitation has been put in this regard that Indians’ core sensitive data will not be handed over to a foreign entity. There is a precedence of such misuse, which has serious national security impact.
Actually the law is quite clear re: core sensitive data, coming from Section 29 (1)(a), that it cannot be shared ‘with anyone for any reason whatsoever,’ other than for ‘national security’, which in turn, has to be verified by an Oversight Committee, followed by a Court order.
Attempt to Risk Transfer
The risk in case of leakage of personal sensitive data of ALL Indian citizens is enormously high and irreparable. Once biometrics are lost they are lost forever, no change is possible. Through Section 28 (4)(c ), the Act has made a weak attempt to transfer such risks to the consultants and advisers which is neither practical nor possible to meet the civil liabilities in case of loss of any core biometric information. In case the decision to implement any advice is that of the Authority then the liability also must rest with the Authority. Only limited liability up to the fee so paid can be charged from Advisers and consultants. No court will support such open-ended provision.
With over 400 crore auth transactions and no clear stealing of data having been done, this is an assumption. Yes the risk is high and hence the safeguards are also high.
Where does the Act limit liability of violation? In fact, due to Section 29 (1), sharing core biometric data is a serious violation of law, even if punishment has not been specified.
Second, Section 28(4)(c ) actually imposes requirement on the UIDAI to ensure that agreements are entered into are correct and compliant with the Act. The Act says that core biometric data cannot be shared with anyone. Therefore any agreement that allows this sharing is a continued violation of this law, as well as any provisions under IPC/IT Act. See the immediate next Section 28(5) that no one in the Authority can reveal information inside the CIDR to “anyone”.
Intelligence Gathering
The Bill at Section 13(3) allows the intelligence agencies to dip into the core biometric information and even extract it for an individual or group
No idea what this is. There is no section 13(3) and no, no intelligence agency has any provision within the Act to “dip into the core biometric information”.
In fact, in 2014, the CBI wanted Aadhaar biometric details of an individual, which the High Court ordered. The UIDAI filed a response in the Supreme Court, to which the Supreme Court ordered, and I quote:
“In the meanwhile, the present petitioner is restrained from transferring any biometric information of any person who has been allotted the Aadhaar number to any other agency without his consent in writing.”
The UIDAI’s request was upheld and the Court ruled that even transfer of information to investigative agencies had to be done with ‘consent’ of the holder.
Additionally, the Act is silent on security and privacy of the databases collected by Intelligence Agencies over a period of time, interacting with CIDR. And with this single mechanism, Gestapo or Nazi type operations can be easily launched. Unlike many advanced countries, India does not have an Intelligence Services Act to fix accountability. Hence this can lead to serious breach to freedom of citizens. (I have personally suffered such abuse by Intelligence Agencies).
I feel you are referencing the Bill 2010 perhaps. The 2016 Act is *not* silent on security or privacy of interacting with the CIDR, and the Regulations further define this. While i’m sorry you have sufferenced abuse by Intelligence Agencies, this does not flow from the law.
To clarify, I understand you’re targeting the implications of breach. But the question is always in the process — is the law solid, and then if so, is it being implimented/adjudicated correctly. So my argument is that the law actually entails enough provisions to help protect everywhere and illegitimize items like you mention in terms of interacting with CIDR.
Target of Cyber warfare
Central Identity Data Repository (CIDR) will be a valid and lucrative target for cyber war. Operation PRISM, Vault 7 and many other leakages of information of NSA (USA) have clearly established that the agenda of United States is to have cyber supremacy over the world.
[…] It may be noted that the RSA designed algorithm has inbuilt security loophole for the US Government to hack into any system / individual using it. Therefore unless such algorithm, including its random seed generator are written, vetted and certified in India, it will be serious cyber war-related security threat.
India has the capacity to write such codes and vet + Certify them, but it is not clear if the source code of these algorithms have been written in India and vetted by a different Indian authority or not. In case these are provisioned directly from where the software and database have been procured, then it must be assumed that CIDR stands already compromised, and US government already has Aadhaar CIDR data.
Again we’re starting with an assumption, which if incorrect crumbles the entire argument. What is however clear from various technical documents published by the UIDAI, the CIDR does not run on a single piece of software and therefore even if we were to concede that a piece of software came direct and the US government has some way to break that (remember that just hackable software isn’t enough, you need to be able to reach the servers running *that* piece of software to do something with it, but fine), even then it does not automatically flow that the US Government has Aadhaar data.
RSA is not the *only* encryption algorithm in play. In the layer where it is involved, it is combined with ECB. The other encryption layer uses AES/SHA-256. I have already highlighted how well each of these algorithms are rated, and cite a report by the European Network of Excellent in Cryptology. I will make the assumption here that they would not be going around recommending encryption that is loopholed by the US Govt.
Minimum Punishment with Complex Procedures
Chapter VII of the Act shows that the Government is NOT serious to punish anyone in case of any breach. On one hand, the Act agrees that it is collecting personal sensitive data of all residents of India, but on the other hand, there is no offence mentioned which has punishment more than three years of imprisonment.
The argument is subjective, but as we debated on Twitter, offences can be compounded with IPC or the IT Act, which carry their own terms of imprisonment.
Just logically, the Act has made establishes what is legal. A Court’s interpretation therefore would be that failure to correctly collect data or misuse of data would be, by definition illegal. In the event that the Law does not specify punishment, the Court can fill the gaps. With respect to the offences listed there — such as the case where an agency revealed someone’s Aadhaar number even if inadvertantly — the UIDAI is the fine that has to file the case. The expectation then is that the citizen’s right to grievance redressal (guaranteed under Law as well), will then be furthered by the UIDAI in the event of violation. However, I contend that should the UIDAI fail in guaranteeing the person’s right to grievance redressal, you have a right to ask the Court to intervene, by virtual of it being illegal under the Act itself.
The world is well aware of the case of Edward Snowden stealing this type of information from the National Security Agency of USA. In case of similar act by any employee of the authority, the maximum punishment is just ONE year imprisonment with fine of Rs. 25,000/-.
Edward Snowden stole biometric data? Or confidential documents?
Does the Government intend that if an employee of CIDR who has authorised access takes unauthorised copies from CIDR, he is not a serious offender? On similar lines, if the chairperson and/or members compromise anything related to Aadhaar, no action can be taken against them unless the same authority complaints against itself [refer section 47(1)]. Even Government has no power to make complaint for any such criminal liability.
The law does not guarantee this authorized access, and legally it is clear that it makes him a serious offender, albeit without a specific sentence.
The Government has cut its own hands; it cannot even issue directions related to technical or administrative matters (submitting complaint for an offence is an administrative action and not a policy issue) as the Aadhaar authority becomes ultimate authority in such matters under proviso of Section 50(1).
Thus we have a situation where ONLY on the ‘complaint’ of the Aadhaar Authority a criminal proceeding can be initiated; Police investigation is NOT necessary; such offences despite being of low punishment value can be tried ONLY in CMM or Session Court; but no court can give punishment more than three years of imprisonment.
If the Central government would have given itself superceeding powers, wouldn’t the argument have been that ultimately you want an independent entity managing this and not misuse by political pressure? This is the reason for these provisions and in fact, makes sense. But also note Section 50(2): “The decision of the Central Government, whether a question is one of policy or not, shall be final.” We can’t have a discussing about wanting foreign Govts out of the security loopholes that may exist but also want the Central Govt to have powers to use technical shortcomings right? You want the politicos out of the administrative matters — pertaining to maintaining, running operations, etc as well.
The problem again is that of isolation, one rule does not negate the other. Firstly, the police wouldn’t be involved anyway. Second, it must be remembered that everything pertaining to the CIDR and its definition comes from the IT Act (the CIDR is a protected system under Section 70 making it punishable with a 10 year term) and a CII under NCIIPC making even the attempt to break into it an Act of cyber terrorism.
I want to finally comment on this line:
It appears that the present Government has picked up the pathetically drafted Aadhaar Bill prepared by UPA Government, dusted, rehashed it at a few places[…]
How? The sheer number of differences between the two bills is monumental (see this), not to mention that the Bill did not even have a definition for core biometric data, let alone its protection. This, in and of itself, cannot be considered “rehashed in a few places”, sorry.
The fundamental issue—compounded in India due to our sheer numbers—is how do we ensure service delivery without identification. Aadhaar attempts to solve this bottom line. Without the Act though, Aadhaar was horrendously problematic and I believe the Act takes care of numerous issues that would have severely hindered both adoption and utilization.
Some of the issues you raise such as where things say ‘will be explained by Regulation’ actually are explained in Regulation (there are 5 Regulations simultaneously introduced that specify other elements). My problem arise at assumptions that something is just flawed, or worse, We’d be fools to think there isn’t scope for improvement in the law so I say let’s continue to suggest those.


--- layout: post title: buddha statue date: '2014-11-05T07:30:36+01:00' categories: - Sketches picture_url: https://film-Storyboards.tumblr.com/post/101841182427/buddha-statue ---


| Summary | |||||||
| SUCCESS | |||||||
| EXPECTED | |||||||
| FAILURE |
preflight is for expressions like loop="${['a','b']}" which get evaluated before the test gets created, so you'll see the same testID is shown with a new header in the eval report after the preflight section.
| resource-found |
| resource-cached |
| resource-not-found |


Clubs
Classes
Pupils
Count:
Count:
Requested
Allocated
Add
Hello!
Let's get started by working out where the response data is
loading...


{% extends "pretixcontrol/base.html" %} {% load i18n %} {% load bootstrap3 %} {% block content %}
{% trans "Please confirm your password to continue with this operation. We'll remember your password for an hour or until you log out." %}


# Title - 01/01/01
This text is the opening to the blog, it will be used to convey my opening thoughts and opinions.
## Sub-heading
This text will convey the second part of the blog, more subheadings and text can be added as necessary
# Sources
- Here I will place the sources I used
# Edits
- If there are any edits, they will go here


Writing clean code makes the code easier to understand going forward and is essential
for
creating a successful maintainable product.
Hello World!
Brian Kernighan, author of one of the most widely read programming books, "C Programming
Language", also created "Hello, World". He first referenced 'Hello World' in the C
Programming Language book's predecessor.


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Class Summary | |
|---|---|
| AnyChildNodeTest | AnyChildNodeTest matches any child node. |
| AnyNodeTest | AnyNodeTest matches any node. |
| LocationPathPattern | LocationPathPattern matches any node using a
location path such as A/B/C. |
| NamespaceTest | NamespaceTest tests for a given namespace URI. |
| NameTest | NameTest tests for a node name. |
| NodeTest | NodeTest is a simple test on a node. |
| NodeTypeTest | NodeTypeTest matches if the node is of a certain type
such as element, attribute, comment, text, processing instruction and so forth. |
| NoNodeTest | NoNodeTest matches no nodes. |
| Pattern | Pattern defines the behaviour for pattern in
the XSLT processing model. |
| PatternHandler | SAXPath XPathHandler implementation capable
of building Jaxen expression trees which can walk various
different object models. |
| PatternParser | PatternParser is a helper class for parsing
XSLT patterns |
| TextNodeTest | TextNodeTest matches any text node. |
| UnionPattern | UnionPattern represents a union pattern. |
Defines XSLT Pattern objects. The design of this library is greatly influenced by Michael Kay's SAXON implementation.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


nnslog - Name service facility, Commandline Logging Client Application
Please read Name service facility, introduction first.
The application described by this document, nnslog, is a simple command line client for the nano name service facility provided by the Tcllib packages nameserv, and nameserv::server.
It essentially implements "nns search -continuous *", but uses a different output formatting. Instead of continuously showing the current contents of the server in the terminal it simply logs all received add/remove events to stdout.
This name service facility has nothing to do with the Internet's Domain Name System, otherwise known as DNS. If the reader is looking for a package dealing with that please see either of the packages dns and resolv, both found in Tcllib too.
nnslog was written with the following main use case in mind.
Monitoring the name service for all changes and logging them in a text terminal.
The command connects to the specified name service, sets up a search for all changes and then prints all received events to stdout, with each events on its own line. The command will not exit until it is explicitly terminated by the user. It will especially survive the loss of the connection to the name service and reestablish the search and log when the connection is restored.
The options to specify the name service will be explained later, in section OPTIONS.
This section describes all the options available to the user of the application
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category nameserv of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
Networking
Copyright © 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net>