I have not seen or used the app. Having the labels in non-English languages can be very helpful. Typing vernacular languages on keyboard with just English alphabet is complicated to say the least.
If online verification is used, issues of no-connectivity/poor-connectivity/latency can cause problems. Polling units are sent to remote corners of the country.
Loading the polling unit with aadhar database can be one approach. Very few know (relative to the number of personnel involved in the polling process), as to which polling unit will go to which polling station. Trying to load constituency specific database into polling unit will increase the surface area of the people who have to know which unit goes where. Loading the aadhar database of full constituency into polling units might not be technically feasible.
To go slightly off tangent, will it make sense for Twitter to enter into the micro payments landscape? All (almost?) bloggers, people working on open source projects have twitter account; even if they don't have one, creating one is easy. Donors can get some kind of acknowledgement on their (and receivers) twitter feed and the content creators will get some money.
This year they have come up with something called netbanking verification. With that you don't have to mail any documents even if you don't have digital signature. If I remember correctly, there are other means of verification in addition to netbanking.
How does this deal with the load-all-discard-all-per-request approach of PHP? With everything in the JVM, does it keep eating up the memory on a per-request basis?
I don't know anything about language design or compiling something for JVM.
Doesn't the use of check constraints add an overhead and possibly negate the slight performance advantage that was gained by using text instead of varchar/char?
What is generally spoken is a mix of Hindi and Urdu (Hindustani, as Mahatma Gandhi would have liked to call it). We rarely come across anyone speaking "Shuddh Hindi" or "Khalis Urdu" these days. English words permeate almost all regional languages.
Dialogues of bollywood films used to have a fair sprinkling of Urdu words until late nineties. Film titles too used to be shown in three languages - Hindi, Urdu and English. Now a days we don't find much of that.
Each value is a 16-bit number, with a size of two bytes, or equal to two ASCII characters or one Unicode character. Port knocking examples generally do not run to more than three packets, which means that the minimum amount of information a prospective attacker would need to get right in order to gain access is six bytes, equal to six ASCII characters or three Unicode characters.
Is the brute force effort being simplified too much? Wikipedia entry says this about brute force attack on port-knocking:
As a stateful system, the port would not open until after the correct three-digit sequence had been received in order, without other packets in between.
That equates to a maximum of 655363 packets in order to obtain and detect a single successful opening, in the worst case scenario. That's 281,474,976,710,656 or over 281 trillion packets. On average, an attempt would take approximately 9.2 quintillion packets to successfully open a single, simple three-port TCP-only knock by brute force.