Less is more - auto ZIP code? - forms

You have an international website with a form where people fill in their address.
Wouldn't it be great if people need to fill out one field less? Example:
100 visitors use the form each day
They spend 5 seconds on the ZIP code field
So 5 * 100 * 365 = 182500 seconds or 50 hours a year. And that's just for one form on one website. Multiply that by all websites that ask such information and you can see the time we can save by redesigning this.
You can get someone's ZIP code via geolocation + geocoding. But since a person's current position can easily differ from the city a person lives in, this isn't really usable.
A solution would be to get the ZIP code based on a geolocated (but changeable) country, input city and input street.
The API we could use: http://code.google.com/intl/nl/apis/maps/documentation/geocoding/ or http://developer.yahoo.com/geo/placefinder/.
Now the real question is, which problems would arise (internationalization, localization, accuracy, etc.)?

No-one else has answered this, so I'll have a go.
No, it wouldn't be great if the website filled in the zip code field based on other information. It might work for some people. It would certainly fail for enough people that you'd have to offer a zip code field as an override. Now you have a site with a higher complexity and development cost than one with a conventional zip code field, because you have to test both the automatic zip code guesser and the conventional field.
You'll have a usability hit which comes from people being confused by the two alternatives and not knowing which to choose.
You'll pay an opportunity cost, by spending design and development resources on the zip code guesser, instead of on some other feature which yields a larger usability benefit.
Here are some problems I foresee arising:
Inaccuracy: whatever mechanism you use collects correct hints (IP address location, street address and city) but generates the wrong zip code, due to errors
Remote use: Users entering a different address than their current location, e.g. using a computer at a hotel in a different country to fill out a form related to their home address, so location of IP address of computer is different from location of address in form
Localisation failure: whatever mechanism you use doesn't work with the hints of the user's address, e.g. different address conventions in a foreign country
Provider business terms: you want to use a geocoding service like Google's or Yahoo's APIs, but the license agreement for that service isn't compatible with the business model of your site. For example, they want you to pay if you are geocoding for commercial purposes, or for a site behind a firewall, or more than a certain number of transactions a day
Change in provider situation: you use an external geocoding service, and it goes out of business
etc.
Before taking on a feature like this, I'd take two steps:
User research. Can you identify users for whom the time taken to enter a zip code is a pain point? What about the one of the top three pain points? I'll bet this issue isn't even on your users radar.
Test on existing data. For whatever method you are thinking about using to guess zip code, try it on existing customer data, and see if you can accurately reproduce the zip code the customer entered. This will give you an idea of your error rate. Can you live with this error rate?
If your real question is, could someone please validate my feeling that this is a charming feature, then I probably haven't given you the answer you seek. But you asked, "what problems would arise?"

Related

How to scale an app architecture with a nextjs app?

Let's say I have the following app (just a stupid example) https://tenant-eight.vercel.app
In words: A customer can see a business name and the address. He can leave a like, that is stored in a MySQL database. The app will send a email in the background to the business owner.
I want to sell that app to clients (b2b), so that they can collect votes on their own.
Let's say I have 100 clients. I would store the company configuration (database api url, company name, address...) in an .env file. Then I would build 100 apps. I need 100 domains, 100 web spaces, 100 databases and so on.... How can I make my life easier?
What is the best approach to realise that with less scaling issues, update maintenance, and so on? (each customer will always have the same latest code - no customer specific features).
Well, a method is just selling your apps source code and relax. Don't want it to get stolen? Two ways (both are sh#tty in an aspect but.. welcome to selling closed source things :p)
Obfuscate the code, which will make it much slower, but not a single soul will understand it unless they are a real tech-savvy person. Clients may also feel less secure.
Make a licensing system with a private npm project, and give out license codes to activate the website (no source code will be given)

where i can get blacklist spam email domain dataset?

I wanna create an email classifier
the classifier will be divide by email, subject, content classifier
for email classifier, I need a list of blacklist domain such as #blablabla.com #cacacaca.com etc.
like this set here
but I need an up to date domain, so where I can get them? thanks
I wonder if a good way might be to go to mxtoolbox, do a blacklist test, then get a list of blacklist sites and see if you can contact them to get a list?
I suspect that such companies may consider those datasets their intellectual property and probably won't publish these - it may not be possible.
Good luck!
Also Akismet may have such a dataset?
Additionally, the more powerful email classifying software works by using patterns that you can make. Check out MailMarshall88 for example. You could use this to build your own dataset, but remember that just because someone is on a blacklist today, doesn't mean that they're always bad. For example, you might get a virus outbreak in your company which spams people and gets your IP blacklisted. You then fix the virus and are now incorrectly blacklisted. In this scenario a pattern would work much better.

OCR for business card reader in iPhone app

I was incorporating the OCR in my iPhone app using open source library "tesseract".I have seen some apps on AppStore doing so. I am just wondering how can I segregate the data that it reads from the card, i.e, how will I distinguish between say FirstName and the LastName or between CompanyName and the person's name, how will I distinguish whether the number is Phone# or the Fax# etc.
I wish that there are some standard formats of the Business Cards but I feel that would be hard luck to assume so.Any inkling on that would help a lot.
I posted it over here to gather the thoughts of various developers so that I can come up with some good logic (to make it more accurate) to classify the data that we get from the OCR engine.
Create some guesses how the various text pieces could be interpreted and let the user pick the best one. The format should be pretty standard per country (e.g. in English/German/French etc., the first name is 99.9% in front of the last name)
If now guess is good enough, the user can assign the fields himself
For the firstname/lastname problem, you could maybe consult a local file or web service with common pre-parsed names in the user's country
In order to distinguish the First Name, Last Name, Company Name, Fax or a Phone number use "Regular Expressions".
Example:
Phone - "^(\s*\d\s*){12}$"
Email - "^\w+#[a-zA-Z_]+?.[a-zA-Z]{2,3}$"
In the same way, you can find the regular expressions for other Labels in the below link.
https://www.geeksforgeeks.org/write-regular-expressions/
Thank You.

What is the adoption of Web Form Autofill tools?

So I've been having a cordial debate with my coworkers (developers and designers) about the autofill tools for web forms. This is an important development question as it affects how forms might be built.
Q) What is the adoption of autofill tools, such as Google Toolbar or Chrome's built in feature?
Q) What are the most popular autofill tools?
Discussion appreciated. First answer with a reputable study gets the award.
Personally, I do not like auto-fill tools, and toolbars for that matter. Aside from the loss of screen real estate, there's too much bloat that comes with them. Also, with the way browsers versions are increasing, auto form fill applications are sometimes not supported in newer, more modern browsers.
I've worked in Government, Law enforcement, health care, and other public and private institutions and I have yet to see a good working form autofill tool, and if I did find a good one I can grantee that someone will be calling tech support because they submitted X amount of items with the exact same data.
HTML Forms can be built many ways, and forcing someone to build it a specific way is going to limit people, thus a form should be able to be built however someone wants, hopefully following W3C standards.
That being said, the most intuitive ones are those built into an application - where the developers/BA's create the auto-fill rules based on business cases and the correct algorithms, where users can define specific fields and parameters for data in those fields. Forcing an application to be built to match a 3rd party auto fill tool, which could change at any moment, or not be supported in the future, seems risky, I hear bells.
Update:
As far as revenue concerns, or a revenue stream for such a venture, you have to have an insight on the types of users that would use this software.
A form filler needs to be more than a generic: "This is a login page, let's put a username / password in". or a contact page "This is the previous data you used for a contact me page, fill it in".
A previous system I developed was an Action Item tracking system, with build in workflow / document management. Users asked for an auto fill for these items, which on the first request seemed utterly insane (demented is the word I wanted to say, but my manager helped me keep it bottled up). How would an auto-fill utility know exactly what to fill - but as I talked to the customer they expressed the following, which is valid for all autofill tools:
When I enter in a value say "Jane Smith" for "assign this task to", it would be nice if your system would automatically put "In Progress" for the item, as I always select "In Progress" as the status for this user.
As well, this worked for other users and fields as well. There was a specific flow on how this user entered data. "Jane Smith" items were always set to a specific department, status, and if the Item Type was say "correspondence" the Estimated Time was always 8 hours.
That type of auto-fill is what we custom made for them, and they payed well for it because it saved them a lot of time, mouse movements etc. AutoFill the way it is now is annoying at best for some people. But it's the pattern of the data that matters. It has to be intuitive and learn.
Once we developed this (it was easier because it was our application, we knew what was going on), about 90% of our customers jumped on board in the first week because of the time savings, sanity savings, and they didn't need to do ANYTHING to set it up - which was key.

How to implement a search system in a database for an iphone application

This is pretty wide question, but I'm hoping to get a push in the right direction (technologies and methodology).
Ok, I have an iphone app (which I am developing) that works with a web service (c#) through http requests. The web service connects to the underlying database, extracts the necessary data depending on the request and feeds it back to the application.
Now, I need to implement a search system in the app. The user searches for some words, and I need to provide the most relevant results. The search must be performed on different tables in the database. Each table can be searched in a number of columns. For example, when searching through the people table I need to search in the first name, lastname, company, and other fields. Other tables have other important columns.
I have so many questions that I don't even know where to start.
How do I make my sql queries to make the search, but still be fast enough. Do I need to make some extra tables with indexed content somehow?
How should I add relevance factor to the results so I can ultimately filter only the most relevant results? For example, if an user searches for Smith, maybe there is a person named Smith or even a Company. They should be displayed before any other content that can have smith in the description.
I know the question is a little vague/wide but I can explain more if somebody desires.
Thank you
This kind of depends on which language/rdbms you are using on your server. You might checkout various DB search solutions like Sphinx which will do all of that indexing for you and provide a simple Search API. Sphinx for example allows you to prioritize columns, define character mappings (ß->s, ä->a) etc.
In the end I have decided to use Lucene. It's a wonderful piece of technology and even if I had some doubts in the beginning, after reading 3/4 of the book called "Lucene in Action" it was clear to me that it had everything I needed (and much more).
I know it's not a fully-functional searching system (with all the elements needed), but merely a library handling the core of a search system. It will need some work to integrate it with my application/webservice/database. I will let you know how it goes :)
Thanks for your input!