Domain name resellers - They're still partying like it's 1999
Remember the heady dot-com 90's ? Consultants commanding $200 an hour to code HTML, Java application server licenses starting at $5,000 per box, domain registrations in the $60 range a year with Network Solutions.
We've come a long 12-15 years since then. Now you can likely get an HTML spec lead at even less than those rates -- never mind a regular consultant -- Java application servers are now 'free' -- with more than one to choose from -- and domain registration has dropped to around $10 a year with companies like GoDaddy.
It seems the world has pretty much adjusted from the craziness of those days. At least I thought so, until I ventured into trying to buy a domain through a re-seller, then it seemed like 1999 all over again, when I received a counter-offer for the paltry sum of $8,000 U.S dollars. Doing the math, that's an 80,000% return on investment at today's current registrarion fees, for a 9 letter .com domain, that currently gets close to 30 hits a month being parked (yes, THREE-ZERO plain, not thousands mind you ).Here's the story and a tech business that still appears to be stuck in 1999!
Continue reading : "Domain name resellers - They're still partying like it's 1999"
Python "'ascii' codec can't decode byte" explained and how to solve it
On a previous post entitled Why you benefit from using UTF-8 Unicode everywhere in your web applications I explained the benefits of using UTF-8 Unicode encoding everywhere in your applications, which included a deep look into how character encodings work and all the fragmented approaches that still exist to this day.
If you've worked with Python and processed any non-english language characters, there's a high probability you've seen the error: "'ascii' codec can't decode byte", in this post I'll explain why this is a common error and how to solve it.
Continue reading : "Python "'ascii' codec can't decode byte" explained and how to solve it"
Software consulting pitfalls : Red flags and signs you should run the other way
Software consulting, some people do it to pay their bills while their start-up gets off the ground. Software consulting, some people get into to quit their days jobs and have more freedom. Software consulting, its what clients rely on when they can't solve their problems in-house. Software consulting, its what clients abhor paying because it's too expensive.
So many definitions and meanings depending on who you ask. But speaking of software consulting and clients. After over a decade of doing consulting work, here's a set of common characteristics or red flags you should be on the look out for when engaging with a potential client. They may or may not apply to your past experiences, but in my case, with over 100 clients and counting these are red flags you should be weary of.
If you're not paying for a product/app online, then you are the product
How does that song go ? Money for nothing and your chicks for free ? Now why haven't they made "your apps for free" version, given the enormous amount of free online products/apps out there.
I can't help but roll my eyes when I hear statements like "Wow, this is a fantastic app and it's FREE". Newsflash: If you're not paying for a product/app online, then you are the product for the product/app stakeholders.
Continue reading : "If you're not paying for a product/app online, then you are the product"
Content Delivery Networks - Are they for you, how they work and providers
Content delivery networks (CDNs) offer a way to reduce latency for a web application's content for regional, national or world audiences. Tuning a web server, using a proxy, applying caching or using compression are all excellent performance strategies for a web application's content, but if the end users requesting the content are half-way around the world from a web application's data center, performance will suffer because of increased latency.
If you've ever downloaded some type of open-source software, you might have noticed there are multiple locations from where to download the software. In most cases you're automatically re-directed to the location nearest to you, so you can download the software faster. This is the principle of CDNs, having multiple copies of the same content in different data centers to increase throughput. The term mirroring is also often used to describe CDNs, given that nodes in a CDN mirror copies of one another's content.
Continue reading : "Content Delivery Networks - Are they for you, how they work and providers"
Why is scaling a web application hard ?
In the grand scheme of things, there will be one of three roads you'll take to address performance and scalability problems in web applications: performance tuning, vertical scaling or horizontal scaling.
- Performance tuning.- This step would consist of refactoring a web application's source code, analyzing a web application's configuration settings, attempting to further parallelize a web application's logic, implementing caching strategies, detecting hot spots and another series of often invasive -- code wise that is -- procedures throughout a web application's tiers.
- Vertical scaling.- This step would consist of migrating a web application or individual tiers to nodes with greater resources.
- Horizontal scaling.- This step would consist of decoupling a tier from a web application or decoupling a tier in itself to run on multiple nodes. In this scenario, instead of adding more resources which is the case of vertical scaling, a web application or its tiers are decoupled so that demand is spread out among multiple nodes.
Continue reading : "Why is scaling a web application hard ? "
Why you benefit from using UTF-8 Unicode everywhere in your web applications
Character data which consists of the letters, numbers and symbols used in web applications isn't managed by a computer as you see it on a screen. It's rather encoded into a series of 1s and 0s to make management easier.
When you write character data in a text editor or IDE for a web application, it's encoded using a series of numbers. When a user's browser receives a web application's content, these numbers are decoded and placed on a screen. When data is saved to a web application's permanent storage system (e.g. RDBMS), it's encoded using a series of numbers. When a web application's business logic code reads data from a permanent storage system, it's decoded to execute the appropriate logic. This same encoding and decoding process can take place at several other parts of a web application that require reading and writing character data.
This encoding and decoding process in character data operates on the basis of character encodings, also called character sets, charsets, character maps or charmaps. But with over 50 character encodings to choose from in web applications, which one should you choose ?
This entry addresses why you should select UTF-8 Unicode for every part of your web applications and how you benefit from doing so.
Technical interviews - Different kinds and approaches
Technical interview topics always attract a great deal of attention. They attract employers and would-be employees like bees to honey. Employers are constantly looking for talent to bring products to market and people are always looking for interesting work or simply a paycheck.
You can read the headlines enticing both sides. 'How to hire and retain the top 1% of developers', 'Be a ninja or rock-start with our team', 'How to crack the interview questions at X','Interview the right way', 'Avoid saying the wrong....'
There are blog posts, articles, even entire books dedicated to the right and wrong way to both conduct interviews and being interviewed.
After more than 10 years doing software, as a contractor, employee, interviewer and interviewee, trust me there is no right or wrong way to do an interview. There are just types of interviews that you can ace or bomb depending on your skills and attitudes.
Continue reading : "Technical interviews - Different kinds and approaches "