With the hacked of Gawker Media sites and the release of a list of users and passwords stored on the sites, people all over the Internet started reacting to the news and offering techniques on how this can be resolved.
Some of the proposed techniques include getting rid of the user database implemented on many websites and let an external application handle the customer login using credentials from others sites like Twitter, Facebook and OpenID. In my personal opinion, I really don’t like any of these mechanism because I really don’t trust these companies. Your could argue that they might have better protection than some guy’s new web service that just launched in 30 days to test an idea. Maybe it’s true, but also this guy might have a better mechanism to prevent this kind of leaks than the big companies.
Also, I think it’s not true that having a single point for user authentication is going to resolve the whole issue. Compare it with credit card fraud. Do you think you can solve the credit card theft problem by just having ONE card with a $300,000 limit than having multiple cards with, say $5,000 limits? If someone steals one of the cards, you only loose the 5,000. If you someone steals your ONLY card, you might loose $300,000 and you’re left with NO card. This is call spreading the risk.
A different approach that we use on our sites is to generate a random and strong password automatically for the user and send it to their email. We give them access to what they’re requesting on the site with just entering the email (and other information if necessary) and then email them the password generated. When they decide to come back to the site, they used the autogenerated password. They can change it if they want, but we took that step out of the funnel (guessing and thinking what password to put on) and just let them proceed to perform the requesting transaction and letting them now in an email how to continue using our sites in the future with their new strong password.
When I start developing and throwing out code, I can tell you I’m too concentrated in the features and how I want things to work out. Always testing and debugging and running around different possibilities in my head on how that piece of code could go wrong.
When writing elements on the interface, I just tend to place the needed controls or the html tags on web pages and add the labels to the respective controls. The labels just pop out of my head without even noticing what I’m writing. Most of the time I’m just thinking how the feature is going to work with the control.
So, when your application is finished, features are implemented, and then we begin with the cosmetic work. This is when the problem arises. If you intent is to offer your application in multiple languages, then localizing the controls and html pages is not part of the cosmetic work. The only way to localize your app when all the labels are hard coded is to make a copy of the web page or control, with the same code, and start changing the labels manually.
That’s why I always have a localization strategy before beginning throwing out the code. Even if you decide how the language engine is going to work after you’ve hardcoded the labels, the simple task of changing them to the variables is exhausting. After months of going through this process with some applications that didn’t have a localization strategy, I’m stilling finding hard coded labels.
Here are some simple strategies I’ve used:
Any of these techniques should be enough for localizing an application. The most important issue here is to plan for language support before coding starts. Doing it afterward is a never ending work. Hidden hard coded labels appear every day.
If you want more information about the code we use or you have any other technique for localization, let me know in the comments.
I’ve been trying in last few months to reduce the level of interruption I get while working. When I really get focused on doing things, I can achieve level a of productivity that sometimes is difficult to get.
Somethings I’ve done include turning off Outlook email notifications, not entering twitter and avoiding as much as possible using Instant Messaging while totally focused. The findings have been great. It turns out not all email needs to be answered immediately (it’s even better if you wait as you can think of a better response). Also twitter can wait, I can answer messages using the same system as with email.
Although I’ve diminish to the most these kind of interruptions, there are some that have been impossible for me to achieve, or even block, and those are software updates.
It’s unbelievable the amount of popups I get asking to install updates for this and updates for that. For example:
In conclusion, keep in mind when developing software to:
PS. Windows updates have asked me thee times to restart the thing while writing this post. So long, I have to restart.
What software update annoys you the most?
What ever happen to getting to know each other? Those early conversations about what you do, what are your plans and helping me out with one thing or another?
It seems all that is gone by now. Yesterday I received an email from a vendor which we bought a software product about two years ago. The subject said something about their social media sites. When I read the email, they were simply sending a link of their twitter and Facebook site asking me to click on the link and follow them or to just like them. I just though, what? Just like that? I though about running into a high school friend that I haven’t seen for a few years and all of the sudden telling me: hi Jose, how are you? hey there’s something I wanted to tell you…do you like me? eehhh, mmmm, what was your name again?
So, this is email isn’t far from that story. I sometimes complain about some vendors, specially in the tech sector, that once you buy their product, you don’t hear about them never again. This was one of those cases. I haven’t heard from them since two years and now I receive this email asking me to like them.
Sincerely. Not cool software company, not cool.
Try always to have some kind of conversation. These are somethings you could do:
The point is to establish some kind of conversation, but don’t start sending me emails asking me to like you. It’s just too soon for me.
What are you doing to get your customers to like you?
Today there are several mechanism available on the Internet to reach your clients and everyday seems to be more. But I still consider business blogs to be one of the best ways to really communicate the audience what your business is about.
Other venues get you to interact with clients, get to know them and they get to know us (sometimes maybe too much) but you can’t get an idea out there in 140 characters. That’s why your blog should be your command center for transmitting and developing your thoughts. Consider this:
What are you using to express your ideas?