Online Store | About Us | Blog
# Tuesday, August 24, 2010




Performance - Why Not to Upgrade

Are you a developer thinking of upgrading your PC? I have a very good reason for you not to upgrade.

It boils down to one thing: testing.

If you want to test your application from the user's perspective, especially from the lowest common denominator user's perspective, then your PC configuration needs to match those specs. If you have a top-notch PC that only 2% of your users have, guess what: 98% of your users will perceive your application as being "slow."

Rule of Thumb: 90th Percentile

Since you don't want to give your users the perception that your apps are slow, always match the 90th percentile of what your users are likely to have. So for example, if 90% or more of your users have at least 256 MB of RAM, then your development machine should have only 256 MB of RAM.

It turns out that about 90% of my users have dual-core CPUs (not quad core or single core) and at least 2 GB of RAM. They also have a video card that generally gets at least 30 TTP/s in the 3D test. My current dev PC is about twice those specs. It is a dual-core Intel Core 2 Duo E8400 with 4 GB RAM, and it gets around 70 TTP/s in the 3D test. It is a bit more powerful than I want it to be, and I will certainly not be upgrading it for a while.

When I developed Dacris Benchmarks 5.0, in late 2001, I did so on an Athlon 1 GHz machine with only 256 MB of RAM. That became roughly the 90th percentile PC spec in early 2002 (for power users). I also had to target Windows 98 and Windows 2000 at the time. I had to set up virtual machines in VMWare to test those OSes, since I was already running Windows XP.

I have basically been following the 90% rule for at least 9 years, mostly not by choice - since I did not have the lavish budget to spend on the latest & greatest hardware. However, in the past 2 years I have been consciously following this rule and if anything it has given me a great excuse not to spend too much money on upgrades.

Going Against the Rule: Windows Vista, .NET

An infamous example of not designing for the 90th percentile can be seen with Windows Vista. In early 2007, the 90th percentile configuration was quite out of reach of the system requirements imposed by Vista. Keep in mind that Windows has to run on all kinds of PCs. Also, Vista is not like Dacris Benchmarks where users are knowledgeable about hardware and usually have more powerful hardware than your average PC user. Bottom line - the jump from XP's basic 64 MB RAM requirement to Vista's 1 GB was too much for mainstream PC users. The result - Vista never reached more than 19% market share!

And if you still doubt that performance matters, take a look at how slow the adoption of .NET has been. .NET is much more resource-hungry than "raw" C++. It requires lots of memory to do JIT compilation. You can hardly run a .NET app without major disk thrashing on less than 512 MB of RAM. That is part of the reason why .NET adoption did not really begin until late 2004. I remember the JVM (Java Virtual Machine) being extremely slow (again due to insufficient RAM) even as late as 2005.

Stick to a $2000 Budget

My advice to those thinking of building a super-ultimate beast for a development box: don't. Try to spend less than $2000 on your beast. Otherwise, you'll be living in an elite fantasy world, isolated from the real world inhabited by most PC users. Note - if your users are super-power users, then the $2000 budget is trumped by the 90th percentile rule. Always try to match the 90th percentile.

If, on the other hand, you want to do R&D, by all means go for the latest & greatest hardware. It is the best way to stay ahead of the game and develop ideas for software that will only be commercially viable in 3+ years. It is a great idea as part of a larger R&D strategy to have at least one "R&D beast" machine. However, you should never do real "production" development on your R&D beast.

Conclusions

Development (for your products) should always be confined to your 90th percentile configuration, so that performance is accurately modeled for 90% of your users. Otherwise, you may have a surprise when your users start complaining about performance issues.

It is far too easy to become tempted to write slow code if, on your PC, the slow code isn't really slow. Even if you plan to test your software on other (slower) PCs, the time you spend during that testing may not be enough to give you a solid feel for how your users will perceive your software. And even if you do spend enough time testing your software on slower PCs, if you catch performance issues at that late a stage in development, the effort necessary to correct them is much greater than if you simply designed your software for that PC configuration in the first place.

August 24, 2010 12:02 PM Eastern Daylight Time  #    Comments [0] - Trackback
.NET | Business | Commentary | History | Technology | Tips
# Monday, August 23, 2010




Notes on SEO and Online Marketing

I have been doing a lot of research into SEO and Internet marketing lately and I've developed quite a library of notes that others may find useful. I know these notes are extremely useful to me as a reference.

Here we go...

Sources of Good Backlinks (for higher PageRank)
- DMOZ.org
- Press releases
- Download sites
- Specialized Directories (e.g. appdeploy.com)
- Forum Posts
- Linkedin
- Twitter
- Blog Posts (own)
- Blog / Article Comments (other blogs)
- Own articles posted on other sites (e.g. codeproject.com)

Blogging
- CRITICALLY important for SEO
- Post roughly twice per day
- Roughly linear correlation between # of pages and # of visitors
- Use a URL that you control (e.g. yourdomain.com/blog)

Tip:
To track visitors (and where they came from), set up Google Analytics on your blog.

Required Blog Features
- Subscription support via email & RSS
- Integration with Facebook, Twitter, and Digg
- Automated newsletter support

Tip:
If your blog engine only supports RSS, use FeedBurner to get an automated email newsletter for your blog.

Writing Blog Articles
- Put the most important keywords in your post title
- How-to / "tips" posts should be the most frequent type of post
- Post length should be 500 - 1000 words
- Stick to one idea per post

Blogging - Sources of Inspiration
- Recent discoveries
- List links / tips / resources
- Internal notes / research data
- Respond to other blog articles
- Answer recent questions

Improving Conversion Rate
- Best CTA: "Get started"
- Use clean buttons with large text (rather than plain hyperlinks)
- Use the word "easy" in one of your headings
- Run A/B tests using Google Website Optimizer

Understanding Your Audience
- Use ClickTale to get heat maps and track actual clicks
- Find out what keywords your competitors advertise on (KeywordSpy.com)

Ways to Facilitate Customer Acquisition
- Offering a free product or a free trial/demo is essential
- For SaaS products, ask for credit card information on trial sign-up and use opt-out automated billing to make transition from trial to full version seamless
- Provide plenty of self-help material and how-to guides for your product

Tracking SEO Results
- Full results can only be seen 5 months (or more) after SEO effort began
- Benchmark your site before SEO effort begins

Key Factors Influencing Organic Search Traffic:
- Content quantity (higher = better)
- Content variety (higher = better)
- Keyword popularity (higher = better)
- Keyword competition (lower = better)

Price Points (Levels)
- Lead gen - Free to $10.00 - attracts prospects, does not generate profit
- Mainstream - $50.00 to $200.00 - low maintenance source of profit
- Big ticket - $400.00 to $10,000.00 - inside sales necessary, high maintenance

August 23, 2010 3:16 AM Eastern Daylight Time  #    Comments [2] - Trackback
Commentary | Internet | Marketing | SEO | Tips
# Wednesday, August 18, 2010




Announcing Vmana Beta Program

Today, the world of search is one step closer to revolution.

Vmana - the cloud-based commerce search engine - is entering beta on September 1, 2010. Starting today, we are accepting requests from users who wish to participate in the beta program.

The Vmana beta program is expected to run for at least two months. We plan to accept up to 200 beta testers; no more.

What is Vmana?

In a nutshell, Vmana is a hosted e-commerce search engine.

It supports filtering, facets, XML feeds, and all of the other bells & whistles of a top notch search engine.

It is fully managed, with a 100% up-time SLA (service level agreement).

Being a hosted solution, performance never suffers. We always grow capacity behind the scenes to meet demand.

Why is it a revolution?

Quite simply, this has never been done before. Especially not on the scale that it is about to be done.

As the cost of computing continues to decline exponentially (at a rate of ~40% per year), the time for providing high-level software APIs in the cloud is growing ever closer to the present. Vmana is one such example: a high-level search API sitting in the cloud.

Up until now, cloud computing has centered around the idea of providing low-level services (such as queues, storage, or CPU) to the user. This is akin to the days of time-sharing computers and dumb terminals.

The key to the future of cloud computing lies in the ability to provide high-level services (such as search). This is only recently becoming possible. Just as the evolution from the command line to the GUI required a certain critical performance level to be reached, we are now on the cusp of a major transition in cloud computing, from low-level "dumb" APIs to high-level "smart" APIs.

Vmana is a high-level API, which is why it is called "intelligent" search. That's why it's a revolution.

How is it being done?

Behind the scenes lies Lucene - a powerful open-source search engine. However, Lucene is just a tiny fraction of Vmana.

Vmana consists of a crawler, a search engine, and a management & administration dashboard.

Key features include: on-demand and automatic crawling, comprehensive logging, XML feed support (for input), XML search results, REST-style API, and more.

Why cloud?

There are several key advantages to cloud computing in general:
  • Guaranteed performance.
  • Guaranteed reliability.
  • You only pay for what you use.
  • Easy setup and deployment.
These are the advantages of Vmana over, say, an enterprise search appliance like the GSA (Google Search Appliance).

Why not a "bare bones" search engine like Lucene?

There are several disadvantages to doing that:
  • Steep learning curve.
  • Integration effort is costly.
  • Maintenance is difficult (often requires dedicated staff).
  • No analytics or reporting features.
The better question is - why live with those disadvantages?

Conclusion

A hosted search solution really makes sense when you take into account all of the disadvantages of the alternative solutions.

For those willing to try something new, it may be worthwhile to sign up for the Vmana beta program or learn more about Vmana.

Note - we are only accepting 200 beta testers in total.

August 18, 2010 3:43 AM Eastern Daylight Time  #    Comments [0] - Trackback
.NET | Business | Commentary | News | Search | Technology
# Sunday, August 08, 2010




Ray Tracing to Replace Rasterization by 2020

Say goodbye to polygons and shaders. Say goodbye to OpenGL and DirectX. The future, from this point on, is all ray tracing.

One chart - one image - shows it perfectly:



(Source: PC Perspective)

Ray tracing outperforms rasterization for large numbers of polygons.

There are many disadvantages to rasterization:
  • It is slow (linear in time) for large numbers of polygons.
  • It does not produce reflections very efficiently or accurately.
  • It cannot dynamically produce effects like refraction or shadows.
  • It relies heavily on textures (which use up tons of space!) to produce lighting effects.
  • Coding rasterized games is difficult because of the requirement to approximate every single lighting effect that would be calculated automatically using ray tracing.
Of course, rasterization does have one advantage (and one only), and that is that on present-day PCs, it can render scenes in real time at higher quality than ray tracing.

Throughout computing history, it has always been the case that temporary approximation techniques were phased out when enough computing power was available to do away with them. For example, the use of color palettes in the 1990s (i.e. 256 colors) disappeared as soon as there was enough GPU memory to store 32-bit pixel values. When resolutions rose to 800x600 and beyond, bitmap fonts could finally be replaced by True Type fonts. Pixels were gradually phased out of the graphics world in favor of ems or inches.

Notice that rasterization has dominated the PC gaming industry since the 1990s. Currently, ray tracing cannot produce scenes at 1080p resolution in real time without sacrificing quality severely. However, this will soon change.

The amount of increase in CPU power (from present levels) needed to allow rendering of ray-traced images at 1080p resolution at 24 fps is only about 10X. This will almost certainly happen before 2020.

There is a movie coming out (in 2012) that is supposedly rendered entirely in real time using ray tracing.

To close off, here is a ray traced image using a ray tracer that I built recently:



Notice the accuracy of the reflections and shadows, and how they come at no extra cost - virtually no performance penalty and no extra code required!

August 8, 2010 2:19 AM Eastern Daylight Time  #    Comments [0] - Trackback
Business | Commentary | History | News | Science | Technology
# Saturday, August 07, 2010




Comment Spam and Other Black-Hat SEO Techniques

Today, comment spam made a triumphant return to my blog, which is a blessing in one sense (I am getting more visitors!) and a curse at the same time.

I think it's time to discuss some of the "black hat" SEO strategies and how to spot them and prevent them...

1. Comment Spam

Comment spam can occur in many forms. In all cases, the comment will contain a hyperlink somewhere. This is because the whole goal of the comment spammer is to generate backlinks from high-PageRank sites to his/her own site.

What does comment spam do if left unchecked? Well, other than polluting your content, it also lowers your own page's PageRank! So it is critical that you stop and prevent comment spam.

Typically, the comment will contain a hyperlink either in the user's name (most blogs allow users to specify their website URL when they post) or in the comment body itself.

To prevent comment links from being crawled, you must mark those links with the attribute rel="nofollow". This will tell the search engine to completely ignore that link. Most blogs do this automatically for username links, but they can still allow links in the comment body (as my current blog engine does).

A great way to stop comment spam is to not provide a way to post links in the comment body, or mark all links in the comment as "no-follow".

2. Link Exchanges

Link exchanges are black-hat? Well, unless you just came out of a 5-year hibernation, yes. They are. Let me explain.

Google will progressively reduce the PageRank of a page depending on how many outbound links it has. Google recommends that a page contain no more than 100 links. Basically, the more links you have on your page, the lower your PageRank will be.

You can also get penalized and even excluded from online directories if your site has a page with many unrelated links. Now granted, it's sometimes hard to differentiate between a legitimate directory and a link exchange. But generally, the link exchange consists mainly of external links (links that point to other domain names).

So as a rule of thumb, try to limit your links to external domain names and keep them relevant to your website's content.

I've managed to find an excellent backlink checking tool that shows you every single site that is linking to you and what that site's authority is (based on the number of outbound links on the page that is linking to you). If you see a page with lots of outbound links and low PageRank, it may actually be contributing to lower your own PageRank!

3. Keyword Stuffing

Believe it or not, keyword stuffing is NOT dead! I've seen it live, in action, on a high-profile website just a few months ago whose name I unfortunately no longer recall. There are many high-profile sites that still do it, and to some extent it still works: the high-profile website I found was ranked very near the #1 spot on Google.

So what is keyword stuffing? It is the addition of keywords not found on your page into your title/meta tags (description, keywords, and title). For the website that I found doing this, it was stuffing all three. The title of the site was literally thousands of words long!

Why should you not do it? I mean, clearly it appears to work. There is a risk that your site will be removed and possibly banned if found out. I cannot quantify the risk, but the potential impact is so severe that I would not be willing to try it.

There is a tool that allows you to check for keyword stuffing. There are probably more tools available out there with a simple Google search.

4. Cloaking

This is an amazingly deceptive technique where the page detects the user agent string of the crawler (in this case Googlebot) and actually offers it different content than what it would offer a real human. Obviously this is a really deceptive technique.

There is actually a tool that can be used to detect cloaking. Use it on your own website just to be safe, or to verify that your SEO consultant is not a crook.

Summary

So there you have it. These are just some of the many black-hat SEO techniques out there. I've given you the knowledge & the tools now to avoid these techniques and do SEO the proper way!

To get some SEO tips, be sure to check out my other SEO articles.

August 7, 2010 4:49 PM Eastern Daylight Time  #    Comments [2] - Trackback
Business | Commentary | Internet | Marketing | SEO | Technology | Tips
Archive
<September 2010>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
About the author/Disclaimer

Disclaimer
The opinions expressed herein do not represent the opinions of the author or of any employer, employee, or associate of the author.

© Copyright 2010
Dan Tohatan
Sign In
Statistics
Total Posts: 182
This Year: 38
This Month: 0
This Week: 0
Comments: 46

Computers
Top Blogs


Copyright © 1999-2010 Dacris Software, Inc. All Rights Reserved.     Privacy Policy  |  Who We Are  |  Blog

Need professional resume writing services?