Friday, March 02, 2007
Advanced OOP Design Patterns
This is, without a doubt, one of the best online resources I have come across, which clearly demonstrates some fundamental design patterns used in OOP. After reading the excerpts from the book, I'm convinced I'll be purchasing a hard copy as soon as possible. Whether you program in C++, C#, Java, or any other OOP language, these fundamental design patterns should be applied to your programs.
Saturday, February 17, 2007
Another Linux Desktop: XGL
Speaking of Linux desktops, here is another favorable desktop for Linux known as XGL.
Project Looking Glass on Ubuntu
For years, people have regarded Linux as a toy for geeks. Many claimed that the capabilities of desktop Linux lagged far behind the power of the desktops offered by Microsoft in the Windows operating system. Fortunately, those times are changing as innovations to the Linux desktop have placed Linux well ahead of the enhancements brought forth by Microsoft's latest operating system, Windows Vista. One prime example of this is Project Looking Glass, which is brought to you by none other than Sun.
Monday, February 12, 2007
Complex Password More Weak?
Firstly, I'd like to point out that I am a developer, I am not a writer. That said, I apologize ahead of time if this reads like a high school student wrote it. I did my best.
At any rate, in this day in age, and with as much as we rely on the Internet for the important day-to-day aspects of our lives, we can never be too careful with our passwords. But is there a point in which password complexity can actually have an adverse affect on how secure a persons password really is? I say the answer to that question is an irrefutable, "yes".
I want to point out that I am huge on personal security. Actually, I've been told that I'm obsessive, at times. Having said that, I have come up with passwords that I'm thoroughly convinced that it would take more than a trillion monkeys pounding away at a typewriter, over 100 lifetimes to crack. They're secure, but they mean something to me, so they're easy for me to remember. For the times that I need more protection, I resort to encrypting my data with a passphrase, which is even more complex. However, even though I consider the passwords that I use to be reasonably secure, I can't help but wonder what the person/people were thinking when they came up with the list of requirements for a site I was recently signing up for. Following is a list of requirements.
Amazed by the complexity of the requirements, I was finally able to come up with a password that would comply; however, there was no way that I was ever going to remember it, considering the passwords complexity and that it was for a site that I'll rarely visit. So, if I ever want to be able to get back into my account again, I really didn't have much choice except to either write down the password or save it in an encrypted file.
In my opinion, this is an example of people getting quite ridiculous with their password requirements. As I mentioned before, I am pretty big on personal security, which is why I opted to save my password in an encrypted file. However, for the majority of the people that I know, this password format is so complex that their passwords will end up on a Post It note stuck under their keyboard. So much for security.
It is my hope that developers will read this post and realize that there is a point that going overboard on password complexity can have an adverse affect on what their original intentions were. This, in my opinion, was obviously an example of going extremely overboard.
At any rate, in this day in age, and with as much as we rely on the Internet for the important day-to-day aspects of our lives, we can never be too careful with our passwords. But is there a point in which password complexity can actually have an adverse affect on how secure a persons password really is? I say the answer to that question is an irrefutable, "yes".
I want to point out that I am huge on personal security. Actually, I've been told that I'm obsessive, at times. Having said that, I have come up with passwords that I'm thoroughly convinced that it would take more than a trillion monkeys pounding away at a typewriter, over 100 lifetimes to crack. They're secure, but they mean something to me, so they're easy for me to remember. For the times that I need more protection, I resort to encrypting my data with a passphrase, which is even more complex. However, even though I consider the passwords that I use to be reasonably secure, I can't help but wonder what the person/people were thinking when they came up with the list of requirements for a site I was recently signing up for. Following is a list of requirements.
- must be at least 7 characters long
- cannot contain the login id (exact or partial)
- must contain at least one letter, one number, and one of the following special characters:
$&#_!@%^*()-=+~\:;<,>.?/ - cannot contain any repeat characters
- cannot contain any of:
|'`"
Amazed by the complexity of the requirements, I was finally able to come up with a password that would comply; however, there was no way that I was ever going to remember it, considering the passwords complexity and that it was for a site that I'll rarely visit. So, if I ever want to be able to get back into my account again, I really didn't have much choice except to either write down the password or save it in an encrypted file.
In my opinion, this is an example of people getting quite ridiculous with their password requirements. As I mentioned before, I am pretty big on personal security, which is why I opted to save my password in an encrypted file. However, for the majority of the people that I know, this password format is so complex that their passwords will end up on a Post It note stuck under their keyboard. So much for security.
It is my hope that developers will read this post and realize that there is a point that going overboard on password complexity can have an adverse affect on what their original intentions were. This, in my opinion, was obviously an example of going extremely overboard.
Friday, January 26, 2007
C# 3.0: An Introduction
This article hopes to bring readers up to speed on some of the changes we can look forward to in the C# 3.0 specification. Some of the new features include:
- Object Initialization
- Type Inferences
- Anonymous Types
- Lambda Expressions
- Extension Methods
- Queries (LINQ)
- Expression Trees
Thursday, January 25, 2007
SQL Injection Attacks by Example
Are your applications susceptible to SQL injection attacks? I recently stumbled on a decent article that hopes to educate readers by demonstrating sample SQL injection techniques. A recommended read for any SQL developers.
Thursday, January 18, 2007
Search Engine Optimization for Beginners and Experts
Scott Bowler has written a great blog article detailing how to "achieve consistent results in the major search engines." I have found his blog post to be extremely useful and recommend it to others to read.
Wednesday, January 17, 2007
Custom Iterators
Bill Wagner has written a great article on custom iterators that I highly recommend reading. He takes you through a series of problems in great detail to help explain better ways of iterating through collections. A Word document version of the article is also available here and his blog can be found here.
Saturday, August 12, 2006
Diet Coke and Mentos Bottle Rocket
First of all, I stress, do NOT try this at home. This is provided for educational
purposes, only. This is basically just a collection of links including the videos to some people that made the rocket.
A little background theory:
http://www.stevespanglerscience.com/experiment/00000109
A short video to demonstrate what we've learned:
http://video.google.com/videoplay?docid=3673360343168243565
A little more exciting theory:
http://www.gadgetlounge.net/archives/2006/07/27/how-to-make-a-mentos-coke-rocket/
And finally, Diet Coke and Mentos bottle rockets:
purposes, only. This is basically just a collection of links including the videos to some people that made the rocket.
A little background theory:
http://www.stevespanglerscience.com/experiment/00000109
A short video to demonstrate what we've learned:
http://video.google.com/videoplay?docid=3673360343168243565
A little more exciting theory:
http://www.gadgetlounge.net/archives/2006/07/27/how-to-make-a-mentos-coke-rocket/
And finally, Diet Coke and Mentos bottle rockets:
Wednesday, August 02, 2006
The Battle for Net Neutrality
I'm not sure how many of you are in IT and/or undestand and have been following what has been going on with large telco's that provide Internet access to the country; but this is something that affects us all and I just wanted to bring it to your attention.
Basically, the large telco's (AT&T, Verizon, etc.) are trying to push Congress to permit charging additional fees for the use of a connection to the Internet. In the past, you paid for a connection to your ISP, and you connected to a host who paid for service through their ISP. Along the way, you will likely travel through connections (that our tax dollars paid for, mind you) that were laid in place by these large telco's. It's the nature of the Internet. In this situation, the speed of the connection between you and the host you connected to, is limited by the slowest link along the way (by the way, for the curious, when a company buys a dedicated (non-shared) connection to the Internet, ISP's generally charge a little more than double what it costs for your connection to the ISP. This is because you have to pay for your connection to the Internet, and a connection on the ISP's side that can adequately supply the bandwidth of the connection you paid for). That was how things worked in the past.
This push, however, is an attempt to split the Internet into two "lanes" (for lack of better words). A fast lane and a slow lane. In this new Internet, if the host you're connecting to (e.g., Google, Amazon, etc.) does not subscribe to the services provided by the fast lane, your connection will travel down the slow side. The biggest problem with this is that the connection to the host did not change. The hosts have already been paying for unrestricted use of their connection since the connection was originally purchased. However, greety telo's would now like to collect money twice for the same service! It's insanity! And ultimately, consumers will be the ones that end up paying.
If this doesn't make sense to you, I've throught up an anology that I hope can make it a little clearer.
I say we picture the Internet pipes just like a garden hose in our yard. The flow of water through the hose is limited to the physical attributes that make up the hose (for sake of simplicity, ignore water pressure for the moment. But if one wanted to include this in the analogy, simply think of water pressure as the maximum bandwidth your LAN supports (e.g., 100 Mb/Sec, 1 Gb/Sec)). When you buy your hose, you expect to get the maximum flow of water through the hose that the hose can possibly permit. However, unless you pay for the super speedy hose subscription, this new hose comes with a special end that can only be screwed into a device, which slows down the flow of water at the end of the hose. From here, you can screw in whatever attachments you would like to use.
As you can see, the flow of water up to this super stupid device is unrestricted by anything other than the characteristics that originally limited the flow of water through the hose. But somebody wants to rob us of our money and claim that we're getting a free ride by leaving out the device that restricts the flow of water!
Whether this is something you understand or not, I urge you to write letters to your representatives supporting Net Neutrality (the unrestricted flow of the Internet). Believe it or not, as of now, the telco's are winning big time so we really need all the help we can get.
If anybody has been following the battle towards Net Neutrality and has an opposing view, feel free to share your opinion.
Basically, the large telco's (AT&T, Verizon, etc.) are trying to push Congress to permit charging additional fees for the use of a connection to the Internet. In the past, you paid for a connection to your ISP, and you connected to a host who paid for service through their ISP. Along the way, you will likely travel through connections (that our tax dollars paid for, mind you) that were laid in place by these large telco's. It's the nature of the Internet. In this situation, the speed of the connection between you and the host you connected to, is limited by the slowest link along the way (by the way, for the curious, when a company buys a dedicated (non-shared) connection to the Internet, ISP's generally charge a little more than double what it costs for your connection to the ISP. This is because you have to pay for your connection to the Internet, and a connection on the ISP's side that can adequately supply the bandwidth of the connection you paid for). That was how things worked in the past.
This push, however, is an attempt to split the Internet into two "lanes" (for lack of better words). A fast lane and a slow lane. In this new Internet, if the host you're connecting to (e.g., Google, Amazon, etc.) does not subscribe to the services provided by the fast lane, your connection will travel down the slow side. The biggest problem with this is that the connection to the host did not change. The hosts have already been paying for unrestricted use of their connection since the connection was originally purchased. However, greety telo's would now like to collect money twice for the same service! It's insanity! And ultimately, consumers will be the ones that end up paying.
If this doesn't make sense to you, I've throught up an anology that I hope can make it a little clearer.
I say we picture the Internet pipes just like a garden hose in our yard. The flow of water through the hose is limited to the physical attributes that make up the hose (for sake of simplicity, ignore water pressure for the moment. But if one wanted to include this in the analogy, simply think of water pressure as the maximum bandwidth your LAN supports (e.g., 100 Mb/Sec, 1 Gb/Sec)). When you buy your hose, you expect to get the maximum flow of water through the hose that the hose can possibly permit. However, unless you pay for the super speedy hose subscription, this new hose comes with a special end that can only be screwed into a device, which slows down the flow of water at the end of the hose. From here, you can screw in whatever attachments you would like to use.
As you can see, the flow of water up to this super stupid device is unrestricted by anything other than the characteristics that originally limited the flow of water through the hose. But somebody wants to rob us of our money and claim that we're getting a free ride by leaving out the device that restricts the flow of water!
Whether this is something you understand or not, I urge you to write letters to your representatives supporting Net Neutrality (the unrestricted flow of the Internet). Believe it or not, as of now, the telco's are winning big time so we really need all the help we can get.
If anybody has been following the battle towards Net Neutrality and has an opposing view, feel free to share your opinion.
Subscribe to:
Posts (Atom)
