Search The Web

Today's Headlines

Tuesday, November 30, 2010

Get All The Sports Equipment You Need Under One Roof

If you are into various sports, and have a big list of sports equipment to buy for yourself or as gifts, you know the frustration that results when you have to visit multiple stores trying to find all the items on your list. No brick and mortar store seems to have enough space to hold all the sports equipment on the market anymore.

Well, now you can save yourself the frustration and just head online to begin with. Global Sports Store is a sports equipment retailer that stocks and sells a wide variety of sporting equipment at competitive prices. The site makes it easy to find what you are looking for by having categories and sub-categories to slot products into. You can also shop by brand name if the item you are looking for defies easy categorization.

Some of the different categories of sports equipment offered by Global Sports Store include fishing, cycling & wheel sports, martial arts, team sports, and exercise & fitness. The sub-categorization within each category is equally intuitive, so finding the right page for the kind of equipment you are looking for is usually very easy and straightforward.

But if you are not sure how the particular item you are looking for might be categorized, or the item has multiple uses and you don't want to try all the category possibilities before hitting the right one, you can also navigate the site by brand name. Some of the popular brands on the site include Garmin, Bianchi, Raymarine, etc.

The store has a large selection of GPS devices by Garmin for different uses. There are GPS devices for use in hiking and trekking as well as automotive GPS units. There are also fishfinders, chartplotters and other marine-use GPS devices for sale at Global Sports.

You can buy with confidence at Global Sports because all items come with a satisfaction guarantee, and can be returned for a full refund within 30 days if you are not satisfied. Global Sports can ship most items to any address in the world. And, if you have that really hard-to-satisfy relative or friend for whom you never know what to purchase, don't panic: you can't go wrong with a Global Sports Store gift certificate!

Saturday, November 27, 2010

Black Friday Burns A Big Hole In My Wallet

My kids had been asking for their own computers for some time now, so I had promised them they would get it when the price was right. Throughout the summer and most of fall, the prices were not right. In fact, I could not find a good replacement computer for my own at a good price, so I did not get them computers either.

Once the black Friday sales information became public, I combed through the ads (both online as well as in a newspaper I bought on Thanksgiving day). I identified a couple of netbooks by Compaq that were going to be on sale at Best Buy as part of their door-buster sale starting at 5 AM on black Friday (CQ10-405DX and CQ10-525DX). They had the features I needed at the right price (I had decided I would not pay over $200 for one of these netbooks).

I also identified an eMachines laptop on sale at Walmart, which also opens at 5 AM. This computer was a full-sized laptop, not a netbook, and I was not sure my kids were going to have enough room on their desks for such a laptop, so it was going to be my second choice. Also, it had a Celeron processor, so I was not too keen on it, given my bad experience with another Celeron-based laptop I have at home right now. I also scanned the ads for a decent laptop with a good processor, lots of disk space and a decent amount of RAM, but nothing much in my budget (under $500) appealed to me. So, my black Friday strategy was pretty much finalized: I would get up as early as I could, go to the nearest Best Buy and try to snag a couple of the netbooks for my kids. And after the inevitable failure at Best Buy, I would go over to Walmart and taste more defeat there!

The problem is that I am not desperate enough to camp out in front of stores from the day before or whatever to get something, whether it is the new release of a hot new product (like the Apple worshipers do) or a sale event like black Friday. So, I went to bed as usual, and managed to get up just before 4 AM on Friday.

I managed to reach Best Buy at about 4:10 in the morning. There was already a pretty long line of people there, as I expected. The line stretched all along the front of the big box store, but had not grown long enough to curve around the building yet. I joined the queue and waited.

Soon enough, Best Buy employees came around asking people in the queue whether anyone was there for cell phones. Another one was canvassing people for stereo systems, and yet another was looking for people looking for cameras. None of these people could tell me whether the netbooks I wanted were available or not.

Things were getting pretty uncomfortable in the line anyways. The temperature was in the low teens, and combined with a brisk breeze from the west, the windchill was in the single digits or negative. I was completely covered up in my thick down jacket, with the hood pulled up over my head, and my hands stuck deep in my pockets, but the cold was definitely winning anyways. Everybody in the line was trying to walk around and do other stuff to stay warm.

Best Buy folks brought out some hot coffee for people in line, but I never got any because they were always gone before I could get my hands on some. Finally around 4:45, a Best Buy employee walked around asking if anybody in the queue wanted a desktop computer bundle advertised for about $600. I asked him about the netbooks, and he said all the laptops in the sale sheet were already gone. Oh well, it was worth a try, I guess.

Finally, the doors opened at 5 AM, and the entire line surged forward in one unruly mass rather than going through single-file in the order they had lined up in. It took me 5 minutes to get in, but they were not even allowing people without vouchers into the laptop aisles, so I was there more to warm myself up rather than to pick anything up.

I did look at some blu-ray players they had on sale, but I decided not to pick any of them up. I do not watch TV at all, so I still have a 20-year old CRT-based TV at home. Hooking up a blu-ray player to that TV may or may not even be possible given the advances in available connections. And really, hooking a high-definition blu-ray player to that TV would be akin to observing the heavens with the hubble space telescope with its lens covered with a plastic cover! Once my hands and other extremities were defrosted, I left Best Buy and headed to Walmart.

The story was not much different at Walmart. There was no queue in front of the store, so I could get in right away. And there were people milling about in the laptop area of the store, but the eMachines laptop on sale was long gone by that time. I loitered around the store for a little while once again, then decided to head back home.

As I neared my home, I suddenly remembered that there was a CompUSA store near my home whose black Friday ad I had not seen either online or in print. So, I decided to take a small detour to visit that store before going home.
Black Friday Computer purchases
The black Friday sale at CompUSA was being called the pink Friday sale because they were donating a portion of the proceeds to breast cancer research. The sale paper was only 2 sheets long, but listed quite a few goodies. In particular, they had ASUS EEE 10.1" netbooks for sale at $199. Just within my budget. Pretty similar to the Compaq netbooks I had struck out on at Best Buy (an Intel Atom N270 processor instead of an N455 processor, and $50 more), but it would serve my purpose and was within my budget, so I joined the line of people buying laptops.

The CompUSA store did not have laptops out in the open (except the ones on display). They had the boxed ones behind a counter, and people had to point out what they wanted on the sale sheet. An associate would then fetch them that laptop. They would then pay for it at that counter rather than at the front of the store where the general checkout lines were.

The laptop line initially got stuck because the checkout computer they were using crashed. Finally they got the line moving. By this time, while perusing the sale sheet, I had also noticed a $799 Lenovo laptop for sale at $399. That sounded like too good a deal to pass up, so I decided to get one of those too. Its hard drive size was not to my liking (I have no idea why laptop manufacturers skimp on the really cheap stuff like webcams and hard drive capacity, but they do anyways), but it would be a pretty good replacement for the 6 year old laptop my wife used to watch movies at night.

My only question was whether they were going to allow me to get two of the netbooks I wanted since the sale sheet mentioned a limit of one per customer for all items on the sale sheet. But that turned out not to be a problem. When I got to the head of the line, there were lots of the netbooks left, and 3 of the Lenovo laptops left. They allowed me to buy two of the netbooks without any arguments and one of the laptops also. Total damage: almost $900 including taxes.

So, my day was not entirely wasted running from store to store and returning home empty-handed. I did get the kids what I had promised them over the summer, and I managed to get a pretty good laptop so that I can start the process of getting rid of the real dogs at home pretty soon. It turns out the deal on the Lenovo laptop is not as good as the sale sheet led me to believe because it is available for $550 online (not $800 as the sale sheet claimed), but a deal is a deal anyways. My budget for a laptop to replace my wife's was about $400. Initially, I had wanted to upgrade to a computer with a much bigger hard drive for about $500 and pass my current computer down to her, but I have now decided to live with my laptop for a few more months or years until I am convinced I was getting a good deal. In the meantime, this new laptop should serve my wife's light computing needs admirably for the next several years.

So, yes, I did not return home empty-handed. And I did not return home with an empty wallet either. My wallet still has all the cards in it that I had taken with me on my shopping trip. It is just that one of them now has a much bigger balance on it than before. But, hey, I will be paying the credit card bill only at the end of next month, so who knows, I might win the lottery of something like that before then. Or get hit by lightning while being abducted by aliens. The likelihood of either scenario coming true is about the same . . .

Internet Slots Are Entertaining And Fun

Slot machines are one of the most entertaining fixtures in a casino. They are easy to understand and easy to play. And they usually don't cost much money, so it is possible to play on them for a longer time than at a table with a fixed bankroll.

With the advent of the internet, everything has moved to the internet. Casinos and slot games are no exception. But the proliferation of online casinos can lead to confusion. In addition to legitimate businesses, the internet is home to several shady operators who stand ready to take advantage of trusting patrons. So, how does one determine which slots on the internet are reliable and which ones are not?

Internet Slots is a website devoted to doing this research, and presenting only legitimate, reliable online slots to their customers. All of the casinos listed on their site are guaranteed to be safe and secure. In fact, you will be able to try all of them out for free even before you make your first cash deposit. Now, that is real peace of mind for you!

If you are into other casino games like blackjack and poker, there are sites out there that will allow you to play such games online or allow you to download a blackjack or poker game to your own computer for you to play on. Once again, the problem of what is legitimate and what is not can be difficult for the individual consumer to determine because of the research required.

But there are sites out there that guide you through the thicket when it comes to such gaming software and sites also. Blackjack Download has made available through its website a great variety of downloadable blackjack games that are certified to be safe and secure. You can play these games with either real money or fun money. Similarly, Poker Flash provides you a list of legitimate sites that offer poker games that work through flash technology that makes them compatible with all kinds of hardware including Windows PC's, Mac's, Linux computers and so on.

If you enjoy gambling for fun and entertainment, now there is no reason not to indulge in your hobby from the comfort of your own home. You can play slot games, blackjack, poker and other games sitting on your couch in your pajamas instead of having to dress up and drive all over town to do so. Use the research provided by the sites in this post to choose a reliable online gaming solution that you can enjoy with peace of mind!

Modular Construction Saves Time And Money On Projects Of Any Size

Building projects can be complicated and expensive. Putting up buildings requires specialized labor and expertise. Now, instead of traditional building techniques, there is a way to cut the cost, labor and time involved with construction projects using modular building techniques. And one of the leaders in this space is Modular Space Systems.

Modular Space Systems has been an innovator in putting up structures using modular building techniques and prefabrication for the past 14 years. Their leadership position has enabled them to advance modular building to include concepts of sustainability into their design and techniques. They offer Mod5, an advanced sustainable modular building system that makes it easy to put up green buildings suitable for many different climate conditions.

In addition to advances in green modular building, MSS also offers solutions for many other building problems faced by different customers. They can put up office buildings, guard booths, fabric structures, facilities suitable for military and government use, classrooms and educational facilities, etc. They can also construct in-plant wall systems and warehouse mezzanine systems quickly and safely.

MSS has the expertise to walk you through all aspects of modular construction from design to plan, implementation, testing and occupancy. MSS building specialists are on call by phone, email or through the web to help you with your next construction project, however small or large it may be. Take advantage of their expertise to put your next building project in capable hands that won't let you down!

Let Your Fingers Take Over The Shopping!

If your day-after-Thanksgiving was like mine, you are tired from all the running around and shopping at various stores to get the best deals on your Christmas shopping. It is no fun standing in lines in the freezing weather, running around frantically once inside the store to see if what you want is still available, then standing in line once again to check out - all this only to repeat the whole process at another store out there. I know, because that is what I did to try to get my hands on a pair of Timberland pro boots in my size, in the style I want!

If you are shopping for all-American outdoor and casual clothing like jeans, let your fingers take over from here and give your feet a rest. Head on over to Dave's New York for a complete selection of iconic American brands in all lines of workwear, jeans, work pants, military-style clothing, workboots, etc.

Dave's was founded over 45 years back, and is still family-owned. They have a store in Manhattan that is open to customers, but all their merchandise can be ordered online through their website without you having to make the trek to New York.

Don't expect fancy partywear at Dave's though. What they are known for is down-to-earth, practical clothing and footwear that will get you through a workday comfortably and safely. If it is jeans you are interested in, for example, you can get most famous brands like Levi's, Carhartt, Dockers, etc. at Dave's. Within the Levi's brand, for instance, you get all their famous lines of jeans like the Levis 501 and the Levis 514.

Dave's New York was featured in BBC's rough guide to New York, and honored by Maxim magazine by inclusion in their list of 80 greatest shops in the world. They are also rated by Zagat as an outstanding value in New York. Now, you can take advantage of their outstanding value and service without having to set foot in New York! Happy shopping to everyone out there!!

Monday, November 22, 2010

High Speed Rail Is An Expensive And Unnecessary Boondoggle

If you believe the hype coming out of Washington, D.C., about high-speed rail and its potential, you can be forgiven for thinking that it would bring world peace, solve world hunger, and put man on every planet in the solar system to boot!

The reality, the way I see it, just doesn't add up though. Rail ceased being a transportation solution in this country a long time ago, except in isolated areas like the northeast corridor. The rest of the country simply does not have the population density to support much rail traffic. I don't know the exact figures (and I don't know if anybody has access to such figures), but I doubt that Amtrak makes any money even on the heavily trafficked northeast corridor. Most rail systems in the world make no money on passenger traffic, making up for it by carrying freight at a profit. I doubt the economics are somehow different in the US. That is one of the reasons why private rail companies do nothing except freight in the US! There is simply no money to be made in passenger rail service.

Let us see what it would take to run passenger rail service that can actually make money: Viable rail travel requires that trains make few stops between the origin and destination. Each stop requires deceleration and acceleration, creating a huge impact on the average speed of the journey. So, trains have to run between hubs that can support trainfuls of travelers without having to make intermediate stops to pick up or drop off passengers. Most rail hubs in the country today do not support that kind of traffic.

At the very least, rail stations have to be laid out like airports are today: they should provide for vast amounts of parking so that they can collect traffic from all over the place and funnel it to the trains at the station. The downtown location of most train stations preclude this from likely ever happening. Train stations like the Union Station in Chicago have absolutely no long-term parking, so they fail this test right away.

Assuming that the parking problem is solved, and trains actually run non-stop most of the time, the next issue to resolve is that of speed. Long distance train service usually can not compete with air traffic because of the time taken to make the journey. Most of the high-speed rail projects being floated right now in the US are high-speed in name only. I am not going to say that my grandmama can run faster than some of the proposed trains, but they are certainly not high-speed trains even by some third-world standards, leave alone comparisons to trains in places like Europe and Japan. A train with a maximum speed of 110 mph is simply not going to attract a lot of passengers who want to travel more than a couple of hundred miles at most.

So, now you can see why this thing stinks so strongly of boondoggle! The system is likely to bleed money at astonishing rates. The hole in the federal budget is already big enough for every train in the world to pass through side by side. This will make it only that much bigger.

And the amounts being thrown around for constructing this system are truly astronomical. In some cases, each mile of high-speed rail is projected to cost hundreds of millions of dollars. Given the state of budgeting for big projects in this country, the most expensive lines will easily end up costing over a billion dollars per mile when actually implemented. At a time of gaping budget deficits, only complete economics ignoramuses or lunatics would consider this a good investment. And remember, there is no way to make any of this money back once the system is in place. In fact, it will take throwing a lot of good money after bad into this blackhole just to keep it operational!

So, is there some sort of silver lining to this? What about claims that rail travel pollutes less than other forms of travel? On the surface, this seems true, but I am not completely convinced of this. Obviously, they would be less polluting than everyone getting in their cars and driving to wherever they need to go.

But rail lines don't construct themselves out of thin air. It takes a lot of manpower, movement of men and machines and materials to construct rail lines. In fact, one of the reasons high-speed rail is being touted right now is to serve as a government jobs program, much like the interstate highway system was in the 1940's and 50's. When the government has a lot of extra money to spend, such a program may have been good public policy. But when the country is broke, with crushing debt, and expenses vastly in excess of income, it is sheer lunacy.

In any case, once you take the pollution that is created during the construction into account, I am not so sure that rail travel is as pollution free as it is touted to be. It will probably take several years of absolutely pollution-free operation for the pollution created during construction to be offset. Also, remember that there is no such thing as a pollution-free train: even trains running on electricity need that electricity produced somewhere. Given that we have not switched over entirely to nuclear or hydroelectric power, producing that electricity still creates pollution, just not along the rail track.

And putting rail tracks through urban areas causes other problems too. They are eyesores if they are on the ground or above ground. They also cause traffic problems if they are on the ground. They become even more expensive than they already are if they need to be underground. And underground rail terminals are not the most inviting places for passengers either. This is not pollution per se, but add to the problems facing construction and operation of a viable passenger high-speed rail network in the US.

So, what is the solution? Well, it is actually hiding in plain sight. We already know that air travel is the most preferred mode of travel for most people, especially over long distances. Why not expand on the success of something that already works? Expand airports to relieve congestion at the ones that are congested. Hire more people to modernize the air traffic control system so that air travel delays are reduced. Invest in new technologies to make air travel more secure. Encourage invention of new technologies that will make security queues shorter and less painful.

Think about it, and it makes perfect sense. Air travel is already run by private companies. So, profitable passenger transportation is a reality for air travel, unlike for train travel. Yes, in bad years, airlines do lose money, but when the economy is good, they do make money. And whether they make money or not, it is none of the government's concern, and it does not impact the government's budget deficit one way or the other, unlike Amtrak whose losses take money directly out of the federal budget.

In fact, by making improvements to the air travel infrastructure of the country, the government can make airlines more profitable, thus having them contribute more tax dollars to the government coffers. Rather than spending billions of dollars now, only to have to support the system down the road with more billions of dollars every year, the government can spend the same few billion dollars now, and actually stand a chance of making that money back in extra tax revenue in the coming years.

And when it comes to pollution, air travel is actually much cleaner than it would appear on the surface. The actual infrastructure for air travel consists of just airports, which are localized structures. The actual pollution created during construction does not depend on the distance between two cities, only the sizes of the airports at the two cities. This is in contrast to rail and road travel, where the pollution created during construction increases directly with the distance to be bridged. And you don't have to worry about physical features like mountains, canyons, rivers, or even seas and oceans between the origin and destination! In fact, these physical features are untouched and pristine with air travel, which can not be said about road or rail travel which are likely to have serious environmental consequences on sensitive areas that lie on the path between two cities.

The pollution during operation is higher than with trains, but still much lower (on a passenger-mile basis) than with cars and other individual road vehicles. But, given the much higher speed, and the resultant convenience of air travel, the small amount of extra pollution over train travel during operation would seem acceptable to most people.

So, here is my idea: take the money that the government is hell-bent on spending on high-speed rail. Use it to make air travel much more convenient and secure. Expand airports (there come your construction jobs). Invest in new air traffic control systems (there come your information technology jobs). Invest in new security devices for the airports that make the pre-departure screening less intrusive and faster (there come your science and technology jobs). Encourage air travel over long-distance driving by raising gas taxes (there comes your extra revenue too).

At the very least, make airports transportation hubs by bringing rail connections, mass transit and air transportation together in one convenient location. Get rid of the petty politics that have made airports isolated from the cities they serve unless you have a car or other private transportation. Instead have a mass transit and rail hub in each major airport like they do in Europe. This will enable people to save time by taking air travel for the long distance travel and then connect seamlessly to train and other modes of travel for the last (hopefully short) leg of the journey to their final destination.

Mobility is one of the keys to wealth creation. Mobility reduces the friction of distance in commerce. Increased mobility, and higher speed of mobility, make for faster economic growth. As air travel and the airline industry expand, they create jobs that can not be easily exported. And none of these jobs will require constant government subsidies, unlike the jobs that are likely to be created by an expansion of Amtrak with high-speed rail. It is a win-win all around. Which probably means it is doomed in Washington, D.C.!

Comparison Shopping For Car Insurance Couldn't Be Easier Than iSelect

Thanks to guest blogger, Mariam Galleghan, for this post.

Buying auto insurance always seems like such a chore. Every time my auto insurance is up for renewal, it is time for me to make a bunch of phone calls to get quotes from various companies for my insurance needs. It has become a habit for me, but it is a chore because it takes up time, and you have to fend off calls from pushy insurance brokers who won't take no for an answer after I have already made up my mind to go with a competitor.

The internet has made this job much easier now. I don't have to do the comparison shopping by phone anymore. All I have to do is plug in my details into a good comparison site, and I get several quotes for car insurance instantly!

iSelect is a one-stop shop for all your auto insurance needs in Australia. Once you provide your details on their website, they will obtain you quotes from their large panel of competitive insurance providers. They will help you compare the features and price of each quote, and help you make the right choice.

Now, I don't have to look up insurance brokers and agents in the telephone book. I don't have to call each of them and repeat myself over and over again giving them details about my car or my driving record. I don't have to write down the detailed price quotes from each agent, or make sure the coverage includes everything I wanted, but not things I did not ask for. All I have to do is head on over to iSelect. I am in charge there, and the only thing I have do is select!

Valuable Scholarship Information For Free At Your Fingertips

A college education is one of the best ways to ensure a good future for yourself. But college education is expensive, and becoming more and more expensive every year. College expenses have risen at a rate higher than the rate of inflation for many years now, and show no signs of slowing down.

Scholarships are good way to bring down the cost of a college education. There are several thousand different scholarships available for students in the US. Depending on your personal situation, the college you want to attend, and the course of study you want to pursue, you could be eligible for hundreds of scholarships.

How do you find out about these scholarships, how to apply for them, what the benefits are, and other details? There are scholarship consultants who can help you navigate this maze for a hefty price. But there are websites like that can give you the same information, completely for free! makes finding information about the scholarships you may be eligible for easy and straightforward. You can navigate the website by looking for different kinds of scholarships such as athletic scholarships, family scholarships, minority scholarships and scholarships targeting students who want to pursue specific courses and subjects.

For instance, if you are African-American and you are looking for African American scholarships, you can hone in on those by looking specifically for such scholarships. You can then narrow the list down by institution, course of study, and various other factors.

If you already know what course of study you want to pursue, you can search by that too. If you are interested in pre-med scholarships, for instance, head directly over to the page for such scholarships. You can then narrow down your choices based on the institution you want to attend or the geographical parameters of where you want to go to school.

The website is very comprehensive, and has some unusual scholarships you might have never even considered. One of the more unusual is scholarships for left-handed people! Believe it or not, such a scholarship does exist, with only left-handed students eligible to apply for it.

Now, you can see why hunting for a scholarship can be so daunting. But with a site like to help you out, you have a much better chance of being able to navigate it successfully than those who do not. And it is completely free to use. So, you have nothing to lose, and everything to gain by taking advantage of this resource. And the sooner you start, the farther you can go!

Get The Krome Treatment On 25 Of Your Photographs Absolutely Free!

If you are like most people, the advent of digital photography has been a decidedly mixed blessing for you. Photography has become much more accessible and inexpensive now, but on the other hand, because of the ability to take lots of pictures without any extra cost, your camera and computer are cluttered with photographs that you will probably never see in your life again!

You don't have time to organize the photographs or share them with others. Sometimes, you don't even know when or where certain photographs were taken. And even thought digital photographs can be edited to make them look better even if they were taken in less than ideal conditions (red-eye, backlighting, etc.), you have probably never taken it upon yourself to do that to your photographs.

What can you do about this state of affairs when people are busier and busier, and nobody has the time to deal with these kinds of problems? Now, there is a solution to the problem, in the form of Krome Photos. This is not just another of those sites that allow you to upload your photographs so that anyone can come and see your photographs. Krome goes far beyond that.

Krome's professional editors will spend time on your photographs to edit them to look their best. They will sort the photographs, tag and caption them so that the photographs are memorable and bring back memories. They will then allow you to share them directly through the Krome website or your choice of photo-sharing websites like Facebook, Shutterfly, etc.

The Krome treatment of your photographs does not require you to know anything about digital photographs and how to edit them or retouch them. Real humans will do all the work for you. They will color correct your photos, remove blemishes like red-eye from the photographs, crop the photographs for better composition, and retouch the photographs to make them more artistic. The Krome website has before and after samples of real photographs to show you what is possible.

And all this can be yours for much less than you think it should cost. Krome has several subscription and one-time purchase options that make the cost of Krome services per photograph as little as 2.5 cents per image! And if you change your mind, you can always turn in your credits for a full refund, or cancel your subscription without anything more to buy or pay. But once you see how Krome transforms your photographs into artistic masterpieces that your friends can not get enough of, you will realize that your subscription to Krome's services is worth far more than what you are paying for it.

If you don't believe me, Krome is making their services available to you for free right now. That's right: completely free. Upload 25 photographs from your collection right now and see what Krome is capable of doing with them. If you are not convinced about the value of Krome after that, you don't have to do anything. There is no obligation to buy anything else, ever again, from them. But they are offering the free sample because they know you will see the value of the service, and want them as your partners in making your photographic memories special!

Don't Trust Your Company's Cabling Needs To Just Anybody!

The world has changed a lot since the days when telegraphs were invented, or even when telephones were first invented. Now, with new technologies springing up all the time, wiring and cabling of office buildings has taken on new levels of complexity not seen before.

Gone are the days when an office just had a bunch of electrical and telephone wires. Now, there is data cabling to bring in internet traffic. And then there is cabling that takes advantage of this internet connectivity to provide voice-over-IP (VOIP) telephone service. And now, the world has gone mobile with laptops, kindles, Ipads and other wi-fi enabled devices. Which means that your cabling has to be flexible enough to support wireless access in addition to a wired connection for every device that needs it.

All this means that cabling is not an after-thought anymore. Cabling needs have to be taken into account in the design of office buildings from the ground up. And the cabling can not be left up to anybody who can drag wire through a conduit. Cabling has to be done correctly, with a master plan and design in mind. You need a cabling contractor who can design, plan, implement, test and support your business's cabling needs. Which is where Mason Technologies enters the picture.

Mason Technologies is a structured cabling contractor. Structured cabling takes cabling to the next level by setting rigorous standards for how an office, data center or other commercial building is to be wired with network cable (cat 5 or cat6 cables) to meet the establishment's need for voice and data communications.

Changing the cabling layout of a building is one of the most difficult things to do. It is almost worse than tearing the building down and constructing a new one. It is therefore imperative that the cabling is done right the first time. That is why it is wise not to trust that important job to amateurs. Instead, get it done right the first time by hiring professional data cabling installers like Mason Technologies.

Not only is Mason registered with and certified by several state, county and municipal governments, their employees are trained and certified by prestigious national organizations that have been involved with setting the standards for fiber optic installation. This makes Mason your ideal partner to involve in all stages of a project's lifetime starting with planning, all the way through to installation and support. Mason can also help you make moves, additions and changes to your cabling after the original installation as conditions change. These are made much simpler because of the structured way in which the cabling is laid the first time around, making changes possible without having to start from scratch or compromising on quality and bandwidth.

When it comes to the lifeline of your business, trust a professional cable contractor to do the job right the first time. It is money well spent that will save you from headaches down the road. Imagine your business disconnected from the internet because of a cabling problem that leads to downtime. Why take the risk? Partner up with Mason and buy peace of mind for yourself!

Friday, November 19, 2010

Microsoft Access Tips & Tricks: Calculating Age

Age is an important characteristic of many things, including persons. Other things for which age might be important are transactions (in banking and other settings), anniversaries (used in calculating years of service at a company, for instance), and many other places where dates are used. However, it is important to never store an age in a database (I use the term "age" to refer to both the age of a person, as well as of other inanimate or purely conceptual objects such as transactions) because it is a calculated field. As such, storing a calculated field in a database table goes against normalization rules, and should never be done. It changes constantly, so keeping it updated is a constant chore, likely to lead to errors. Instead, the age of anything should be calculated on the fly when needed.

If you are interested, you can find my earlier posts on finding the median, the mode, the geometric and harmonic means, ranking every row in a query, selecting random rows out of a table, calculating running sums and averages, calculating running differences, creating histograms, calculating probability masses out of given data, calculating cumulative distributions out of given data, finding percentile scores, percentile values, calculating distinct counts, full outer joins, parameter queries, crosstab queries, working with system objects, listing table fields, finding unmatched rows, calculating statistics with grouping, job-candidate matching, job-candidate matching with skill levels, great circle distances, great circle initial headings, using Excel functions in Access, using the windows file-picker, using the Access date-picker, setting tab indexes quickly and correctly, pre-filling forms based on previous entries, highlighting form controls, conditional formatting, performing date manipulations, and counting letters, words, sentences and paragraphs.

Given that it is not a good idea to store ages in a database, how do you calculate the age of something on the fly? In this post, I am going to provide the code for one simple way to calculate the age of anything in any unit (years, months, etc.). There are other methods available, and after you grasp the concept, you can enhance the simple method I have provided based on your own requirements.

The basic function used in age calculations is typically the function DateDiff(). The first argument to DateDiff() determines the units in which the answer is returned. The next two are the dates between which the difference is to be calculated. You can read the help page on DateDiff() to get a better understanding of how it works.

However, there are some peculiarities associated with DateDiff() that you have to understand before you start using it. The problem is that DateDiff() seems to calculate the difference between the given dates based on splitting the dates into pieces and treating them independent of each other.

A few examples might explain this problem a little better. Here are the results from a few DateDiff() calls:
  • DateDiff("yyyy", #12/31/2009#, #1/1/2010#) = 1
  • DateDiff("yyyy", #1/1/2009#, #12/31/2010#) = 1
  • DateDiff("yyyy", #1/1/2010#, #12/31/2010#) = 0
  • DateDiff("m", #9/30/2010#, #10/1/2010#) = 1
  • DateDiff("m", #9/1/2010#, #10/31/2010#) = 1
  • DateDiff("m", #10/1/2010#, #10/31/2010#) = 0
  • DateDiff("m", #9/30/2009#, #10/1/2010#) = 13
  • DateDiff("m", #9/1/2009#, #10/31/2010#) = 13
  • DateDiff("m", #10/1/2009#, #10/31/2010#) = 12
You get the idea now. Just because the month number (or year number) has changed, DateDiff() considers the difference to be at least one even if only one day has passed between the two given dates. This makes the use of DateDiff() for age calculations a little tricky. Access should have provided a function similar to DateDiff() for calculating ages, but it does not.

So, we have to do the calculation using DateDiff(), but not rely on its results entirely. Note that the actual difference between the given dates (in the unit used in DateDiff()) is either equal to the answer returned by DateDiff(), or one less than that. Thus the true difference between 12/31/2009 and 1/1/2010 in years is actually 0 (which is one less than the answer returned by DateDiff()). But the true difference between 1/1/2009 and 12/31/2010 in years is actually 1 (which is the same as the answer returned by DateDiff()).

How do we know when the answer is actually one less than the number returned by DateDiff() and when it is equal to the number returned by DateDiff(). The answer lies in the use of the DateAdd() function. If I add a year to 12/31/2009, the answer is 12/31/2010, which is more than 1/1/2010. If I add a year to 1/1/2009, the answer is 1/1/2010, which is less than 12/31/2010. However, if DateDiff() says the age is 0, then there is no further processing required (the age can never be negative). So, this tells us when we have to use the answer from DateDiff() as is, and when we have to subtract one from it to get the true age of something.

Given below is a function that calculates the age of anything given the unit in which the age is required (years, months, etc.), its "birthdate" (in the case of a person, this could be their actual birthdate, but in the case of other entities, it is the date when that entity came into being. For example, the transaction date could be the date used to figure out the age of a transaction, the date on a check could be used to figure out the age of the check, and so on), and the date on which the age is required (could be today's date, or any other date the user chooses to use).

The function uses the date on which the age is to be calculated as an optional argument. This is so that it can be used without that argument to return the age as of today (which is the most common date as of which an age would be required). Notice that the third argument is declared optional so that it can be omitted when calling the function. However, the optional argument has to be declared as a variant, not as a date. This is because the default value of a missing date argument is 12/30/1899 in Access, which is not what we want. Moreover, we can not set the default value to today's date in the function declaration (we can set it to some literal date, but we can not call the Date() function to set the default value inside the function declaration).

If we declare the argument of type variant, it does not get a default value. Instead, we can set its default value to today's date after checking whether the argument is missing or not using the IsMissing() function. So, we declare a variable of type date called AgeDate, inside the function. If the function is called with a third argument, we convert it to a date value, and set AgeDate equal to that value. If the function is called without a third argument, we set AgeDate equal to today's date. The rest of the function should be easy to understand given the discussion about DateDiff() above.
Function age(unit As String, startDate As Date, Optional endDate As Variant) as Integer

Dim AgeDate As Date
age = 0

If IsMissing(endDate) Then
AgeDate = Date
AgeDate = CDate(endDate)
End If

If AgeDate < startDate then exit function

age = DateDiff(unit, startDate, AgeDate)
If age = 0 Then Exit Function

If DateAdd(unit, age, startDate) > AgeDate Then
age = age - 1
End If

End Function
Notice a couple of things about this function. Firstly, the units used are the same strings used by the DateDiff() and DateAdd() functions. So, if you want the age in years, unit has to be "yyyy", not "y" when you call age(). Secondly, since age can never be negative, we check whether the value of AgeDate is less than that of startDate. If it is, we just return a value of zero for the age.

If we want the age in months and years, we can actually use the function above to do that too. Since a year always contains 12 months, we can calculate the age in years and months using the construct below:
age("yyyy", startDate, endDate) & " years, and " &
age("m", startDate, endDate) - age("yyyy", startDate, endDate)*12 & " months"
But, what if we have to calculate the age in years, months and days? Since not every month has the same number of days, we can not use the construct above (which relies on the fact that a year is always 12 months long). Instead, we can use the construct below to do that:
age("yyyy", startDate, endDate) & " years, " &
age("m", dateadd("yyyy", age("yyyy", startDate, endDate), startDate), endDate) &
" months, and " &
age("d", dateadd("m", age("m", dateadd("yyyy", age("yyyy", startDate, endDate),_
startDate), endDate), dateadd("yyyy", age("yyyy", startDate, endDate),_
startDate)), endDate) & " days"
If you want the age in years and days, you can use the construct below:
age("yyyy", startDate, endDate) & " years, and " &
age("d", dateadd("yyyy", age("yyyy", startDate, endDate), startDate), endDate) &
" days"
I will leave it up to you, the reader, to figure out what the constructs above do, and how they do it! Perhaps to test your own understanding, you should try to come up with a construct like the above that tells you the age in months and days.

Hope this post has been helpful in solving any problems you might have had with age calculations in Access. The VBA code in this post has been tested in Access 2003 and should work without any problems in all versions of Access from Access 97 on up. If you have any problems or concerns, please feel free to let me know by posting a comment. If you have other questions on Access that you would like me to address in future posts, please feel free to let me know through your comments too. Good luck!

Thursday, November 18, 2010

Photos Of The 2011 Model Year Cars Are Here!

Yes, the new model cars are now in showrooms. And I have been drooling over photos of these new cars like a child drooling at the window of a candy store! If you are into automobile eye-candy, it is time you clicked on over to the CarConnection website and helped yourself to some of the tasty candy over there.

German styling has advanced greatly from the days of boxy cars which had corners you could cut your hands on if you weren't careful. Take a look at the 2011 Audi A8 for a sample of how German styling has evolved over the years. The smooth curves, and the signature Audi running lights around the headlights are a sight to behold!

The 2011 Ford Mustang is a quintessential example of an American muscle car. The mean-looking grill tells everyone that it means business! The air intakes on top of the hood add to the machismo looks of the car.

The Subaru Tribeca features the smooth good looks that adorn many Japanese automobiles. It is designed for a family, with seating for 7, but don't let that fool you into thinking that this is some boxy minivan from the 80's or 90's. The SUV-style looks along with the safety features and symmetrical all-wheel drive that Subaru vehicles are famous for are sure to make this one of the hot vehicles for 2011.

If you are into automobiles, but not too keen on the latest styling, you can take a look at photos of older cars in the wikipedia article on cars. You can read a lot more info about the history of cars, production techniques, propulsion technologies, environmental impacts and other interesting details there too. As for me, I am heading back to for more eye-candy!

Wednesday, November 17, 2010

Let Somebody Else Take Care Of Your Fulfillment Headaches

If you sell a product to customers, then you probably know all about the headaches associated with stocking, replenishing and storing inventory, making sure that orders get fulfilled on time, the correct products get sent to the correct customers, etc. It can require a full-time staff of several people to keep all this in order so that you have satisfied customers who will return for future purchases.

But, most small businesses do not need to do all this work by themselves. There are companies that specialize in fulfillment, who can take care of all this for you while you concentrate on running your business rather than running around like a chicken with its head cut off! One such company is AMS fulfillment (at

AMS offers the full gamut of fulfillment services. They provide warehousing for your products, assembly of customer orders, and drop-shipping to your customers. But they don't stop there. They can also handle your returns, manage your inventory and take care of the entire logistics of your selling operation.

AMS owns and operates several warehouses where your products can be stored safely and securely, in climate-controlled premises, safe from theft, fire and natural disasters. AMS's dedicated staff take care of all aspects of product fulfillment from stocking and inventory control, to picking, packing and shipping client orders, tracking the orders, and delivery of the orders on time, and in good shape.

AMS fulfillment handles both business to business and business to consumer order fulfillment. The AMS team consists of people with a long experience in the business. They know the ins and outs of the business, and leverage their immense experience to help you run your business smoothly. You can grow and develop your business while they take care of keeping your customers happy and satisfied.

Many business owners start their business thinking that selling is the tough part of business. They quickly realize that selling is the easy part of the business. The tough part is inventory control (inventory control translates directly into cost control), warehousing, packing and shipping orders, tracking deliveries and handling customer returns and refunds. That is why it makes sense to leave these tasks to the experts who have been doing it for several years. You, on the other hand, know your business well, and deserve to concentrate on the expansion and growth of your business rather than the day to day details of fulfillment. Let AMS relieve you of your fulfillment headaches so that you can spend your time more productively on other aspects of your business.

Monday, November 15, 2010

Economics Appears Even More Dismal Now Than Ever!

Economics has been called the dismal science for good reason. The basic problem with economics is not that its basic principles have not been understood. Things like supply and demand, which form the bedrock of economics have been reasonably well understood for a long time. The directional form of most relationships in economics has been well-known for a while (increasing something increases something else and decreases something else, for instance), but the precise shapes and other characteristics of these relationships have been devilishly hard to figure out and use correctly.

Because of this, economists have felt free to do totally asinine and silly things, hoping for something good to come out of it just because some interpretation of some dismal equation in the dismal science points to a minuscule chance of something good coming out of the action.

Take the federal reserve's quantitative easing, for instance. The theory is that more money is released to the banks, which would then turn around and lend to all and sundry, getting the economy up and running again. Never mind that the banks have so many debts of unknown quality on their books that they are not likely to ever start lending freely again.

Even more importantly, if the banks should actually start lending freely with this money, it would cause such a flood of money in the economy that it has no option but to become more worthless than it already is. You see, money is an intrinsically worthless asset that gets its value by being scarce. Make it as commonplace as toilet paper and that is what it is likely to be worth!

Of course, the US government is interested in that effect of quantitative easing also. It is no secret that the government would like a cheaper US dollar so that US exports are cheaper around the world. I have a lot of trouble with the notion of encouraging exports at the cost of reducing the US standard of living to that of a third world country (which is what happens when your currency becomes worthless), but that is another post for another day.

But the basic problem is that wealth is not created by money. It is created by producing goods that people want to buy and use. You would think a mind as brilliant as one nominated to head the federal reserve would know this, but you would be forgiven for thinking he does not.

As I was commenting to one of my friends the other day, economics today is about where physics was about 300 years back. People, even those who you would think should know better, are still trying to invent perpetual motion machines! And the government encourages these inventors with grants of money and high positions in government!!

Unfortunately, I don't have any solutions either. It is difficult to have viable solutions when you are completely dead-broke, your income is much less than your expenses, and you suddenly need large amounts of money for a project. The US government is in exactly that position. It needs a large amount of money to create jobs and jump-start the economy, but is completely broke. Its expenses are vastly greater than its income, and its debt is crushing.

But unlike other normal people, the US government is trying to work its way out of this predicament by just printing up more money. If you and I tried it, we would be behind bars so fast our heads would spin. But the US government can and will do it, all in the desperate hope of inventing a perpetual motion machine. Never mind the naysayers . . .

Sunday, November 14, 2010

Designer Home Furnishings At Affordable Prices

Donna Karan has always been known for home fashion accessories that combine luxury with down-to-earth appeal and pleasing style. Now, it is easy to shop for the entire collection of Donna Karan home furnishings from the comfort of your own home. All you have to do is point your browser at!

The site allows you to shop Donna Karan's full line of bedding, bath products, window treatments, and home accessories. There is also a section of the site devoted to products on sale, and newly introducted products.

Donna Karan home bedding consists of everything you would need for your bedrooms. Whether you are looking for bedsheets, comforters, pillows, or sets that contain everything you need to transform a bed into the latest in fashion and comfort. You may not have an expensive four-poster bed to adorn, but who is going to know the difference once you dress it up in affordable Donna Karan style?

In bath accessories, you find things like towels, rugs, shower curtains and other bath products. Donna Karan's bath collections combine various bath furnishings into themed sets that are even more affordable than buying the parts yourself and combining them. More importantly, you don't have to be a fashion aficionado to get the combination right!

All the products you purchase on come with a full 30-day satisfaction guarantee. If you are not happy with any of the products or how they look in your home, just return it for a full refund. The website also offers free shipping and handling on all orders totaling $125 or over. That makes these already affordable fashions even more affordable and accessible.

Superb Is A Small Business' Best Choice For Hosting And Servers

Thanks to guest poster, David Lyons, for this post.

I am the owner of a small business that sells over the internet. As a business with no physical presence, the internet is my lifeline. Reliable hosting is absolutely essential for the survival of my business. Every minute of downtime converts to lost sales and profits.

But I don't have enough money to run my own dedicated IT department that can take care of my hosting, and keep my servers up and running 24 hours a day, 7 days a week. That is why I rely on Superb to keep my business running without interruptions. Superb's web hosting plans start at under $5 a month with a 2-year contract, and include unlimited traffic, multiple sites and access to MySQL databases.

My business is now big enough to afford and take full advantage of Superb's managed hosting solutions. These solutions involve a dedicated server for your business, and a full support team that stands behind their 100% uptime guarantee. All managed hosting plans come with proactive monitoring, backup, an industrial strength firewall, and a hardened, fully patched OS.

If your business uses a server that you run on your own premises, you may want to relieve yourself of that administrative burden by considering Superb's colocation services. You can place your IT hardware in an enterprise-class facility that is fully secured and temperature-controlled. Their facilities even come with backup generators so that neither the servers nor the climate controls of the hosting facilities suffer from power failures and other mishaps.

Superb has been in the business for almost as long as the internet has existed in its current form. In fact, now may be one of the best times to move to Superb because of the 15th anniversary sale that is going on right now. And since Superb provides you with the peace of mind of a 30-day money back guarantee, you have nothing to lose and everything to gain!

How To Make Your Guests Forget About The Wine

Some people can afford the best vintages of the best wines to wow their guests. The wine is memorable and draws praise from everyone. But sometimes, you want your guests to forget the wine, perhaps because you know it is not the best out there. Getting an absolutely magnificent wine opener is one strategy for doing that!

I came across a site recently that sells Rogar wine openers. stocks a full line of Rogar wine openers with a complete satisfaction guarantee and a 10-day low-price guarantee. They also sell Rogar corkscrews, accessories, and replacement parts.

Take a look at the Rogar Estate wine opener, and you will see what a magnificent wine opener looks like. Even the best wines in the world would have trouble competing for attention with a wine opener with the looks of an Estate wine opener! Another option for a stunning-looking wine opener that will have your friends buzzing with excitement is a Champion wine opener. makes the process of getting your own Rogar wine opener very easy. In addition to ordering online, you can call their toll-free number 7 days a week to talk to a knowledgeable person about your best choice in wine openers before placing an order. They also have a gift registry that makes it easy to get your favorite Rogar wine opener as a gift. If you are looking for Rogar for sale every day at low prices, head over to With wine openers like these, who is likely to pay enough attention to the wine to remember anything about it?!

Saturday, November 13, 2010

Authentic Artwork For Fans Of Shepard Fairey

If you are a fan of Shepard Fairey, and are desperate to get hold of some of his out-of-print artwork, but don't know a good source for them, head on over to This online retailer has prints of Shepard Fairey art dating back to 2001.

As you may know already, Shepard Fairey an American contemporary artist, graphic designer and illustrator. He was born and raised in South Carolina. He started his career in 1984, with paintings on skate boards and T-shirts.

Since then, he has become famous for various works of art, including his Hope poster, and art associated with his Obey Giant campaign. has Shepard Fairey prints of all his famous artwork, including Obey Giant prints. also stocks and sells his book, Supply and Demand in retro boxed sets. All of the material sold from the site come with a full satisfaction guarantee and low price protection. Many of the items also come with free shipping. In addition to ordering over the web, you can also call their customer service hotline and shop by phone 7 days a week.

Out of print artwork can be difficult to get your hands on. There are always nagging doubts about the authenticity of whatever you do manage to get if you don't trust the source. Now, you don't have to worry about such issues when it comes to Shepard Fairey artwork. Satisfy your need for his contemporary artwork by going to the authentic source for all things Shepard Fairey.

Friday, November 12, 2010

Microsoft Access Tips & Tricks: Count Letters, Words, Sentences and Paragraphs

Counting the number of letters, words, sentences and paragraphs can come in handy for calculating statistics, not just involving the counts, but also derived statistics that can give you readability scores and other details about a given piece of writing.

If you are interested, you can find my earlier posts on finding the median, the mode, the geometric and harmonic means, ranking every row in a query, selecting random rows out of a table, calculating running sums and averages, calculating running differences, creating histograms, calculating probability masses out of given data, calculating cumulative distributions out of given data, finding percentile scores, percentile values, calculating distinct counts, full outer joins, parameter queries, crosstab queries, working with system objects, listing table fields, finding unmatched rows, calculating statistics with grouping, job-candidate matching, job-candidate matching with skill levels, great circle distances, great circle initial headings, using Excel functions in Access, using the windows file-picker, using the Access date-picker, setting tab indexes quickly and correctly, pre-filling forms based on previous entries, highlighting form controls, conditional formatting, and performing date manipulations in Access.

The code below illustrates how to use the built-in Access functions Len(), Mid(), Chr(), and Trim() to accomplish the counting. It is important to understand how these functions work so that you can take advantage of their power in other applications also. There are a few things to note about the code:
  • A carriage return in Microsoft Access is represented by Chr(13) + Chr(10) (i.e. the occurrence of ASCII code 13 followed immediately by ASCII code 10). Thus, this is used to find ends of paragraphs. Note that it is not Chr(10) + Chr(13).
  • Adjacent carriage returns are counted as just one.
  • Only the numbers 0 through 9, and uppercase and lowercase letters of the English alphabet are considered letters. Spaces, punctuation marks, accented characters, etc., are not included in the count of letters. If you want to include them in your count, you can easily find their ASCII code and enhance the letter-counting code below to include those characters also.
  • The code will not count sentences correctly when the text contains acronyms that include periods (such as B.S. in Engineering, for instance). That is because the occurrence of ".", "!" and "?" signifies the end of one sentence and the beginning of the next. If you want to include other punctuation marks to mark the ends of sentences (such as ";"), you can modify the code easily to handle that.
  • Also, pay careful attention to the comments in the code below. For instance, we assume paragraphs are not indented, and that the last paragraph does not have a carriage return after it. If these conditions are not true, it should be easy enough to modify the code to take the actual conditions into account. But you can not do this unless you are familiar with the assumptions used in the code as presented below.
Without further ado then, here are the functions to return the number of paragraphs, sentences, words and letters in a passage of text passed to them:
Option Compare Database
Option Explicit

'This code is explicitly written to be compatible with all versions of Access starting with
'Access 97. That is why the code does not include functions such as split() or replace().

Public Function numparagraph(note As String) As Integer

'This function counts the number of occurrences of carriage returns and returns that as the
'number of paragraphs. We assume that the last paragraph does not have a carriage return
'following it. If that is not true, remove the line that accounts for the last paragraph
'from the code below.

Dim SearchedTill As Integer
numparagraph = 0
If Len(note) = 0 Then
Exit Function
numparagraph = 1 'This will account for the last paragraph which is not followed by a carriage return
End If

For SearchedTill = 1 To Len(note)
If Mid(note, SearchedTill, 1) = Chr(13) Then
If Mid(note, SearchedTill + 2, 1) <> Chr(13) Then 'Adjacent carriage returns are counted as one.
numparagraph = numparagraph + 1
End If
End If
Next SearchedTill
End Function

Public Function numsentence(note As String) As Integer

'This function counts the number of sentences by counting all occurrences of ".", "!" and "?"
'This may not lead to an accurate count of the number of sentences, but will be close. If you
'tend to end sentences with other punctuation marks, you can include them in the list of
'punctuation marks counted.

Dim SearchedTill As Integer
numsentence = 0
If Len(note) = 0 Then
Exit Function
numsentence = 1 'This will account for the last sentence which is not followed by a space or carriage return.
End If

For SearchedTill = 1 To Len(note)
If Mid(note, SearchedTill, 2) = ". " Or Mid(note, SearchedTill, 2) = "! " Or Mid(note, SearchedTill, 2) = "? " Or _
Mid(note, SearchedTill, 2) = "." & Chr(13) Or Mid(note, SearchedTill, 2) = "!" & Chr(13) Or Mid(note, SearchedTill, 2) = "?" & Chr(13) Then
numsentence = numsentence + 1
End If
Next SearchedTill
End Function

Public Function numword(note As String) As Integer

'This function counts the number of words by counting spaces. Adjacent spaces are considered one space.
'Each paragraph break also contributes to the number of words if there are no spaces in front of
'words that start paragraphs (assuming paragraphs are not indented).

Dim SearchedTill As Integer

note = Trim(note)
numword = 0
If Len(note) = 0 Then
Exit Function
numword = 1 'This will account for the last word which is not followed by a space or carriage return.
End If

SearchedTill = 1
For SearchedTill = 1 To Len(note)
If Mid(note, SearchedTill, 1) = " " Or Mid(note, SearchedTill, 1) = Chr(10) Then
If Mid(note, SearchedTill + 1, 1) <> " " And Mid(note, SearchedTill + 2, 1) <> Chr(10) Then
'Adjacent spaces and carriage returns are counted as one
'Note that I use chr(10)'s to count carriage returns because it is easier to spot
'a space followed by a single letter followed by a carriage return if we check for
'chr(10) as opposed to chr(13) (the second if condition would miss the former occurence,
'however unlikely it is to actually occur.
numword = numword + 1
End If
End If
Next SearchedTill

End Function

Public Function numletter(note As String) As Integer

'This function counts the number of letters in a string, excluding spaces,
'punctuation marks, quotes, parentheses etc. Only numbers and letters are counted.
'If you just want the total length of a string, use the len() function instead of this.
'If you want to include other characters in the count, you have include their ascii codes
'in the case statement below or explicitly check each character in the string against your
'list of characters.

Dim SearchedTill As Integer
Dim AscValue As Integer

note = Trim(note)
numletter = 0
If Len(note) = 0 Then
Exit Function
End If

SearchedTill = 1
For SearchedTill = 1 To Len(note)
AscValue = Asc(Mid(note, SearchedTill, 1))
Select Case AscValue
Case 48 To 57, 65 To 90, 97 To 122 'These ascii codes represent the numbers 0-9, letters A-Z and letters a-z
numletter = numletter + 1
End Select
Next SearchedTill

End Function
Hope this post has been helpful in solving any problems you might have had with counting letters, words, sentences and paragraphs in Access. The VBA code in this post has been tested in Access 2003 and should work without any problems in all versions of Access from Access 97 on up. If you have any problems or concerns, please feel free to let me know by posting a comment. If you have other questions on Access that you would like me to address in future posts, please feel free to let me know through your comments too. Good luck!

Monday, November 8, 2010

Will Someone Have The Good Sense To Leave The Time Well Enough Alone?

I don't know about you, but I am sick and tired of this rigmarole of adjusting my clock forward in the spring and then adjusting it back in the fall. Who thought of this lunatic scheme that involves moving your clocks back and forth, and pretending that you have extra daylight? Even children can figure out this poor sleight-of-hand without making much of an effort.

I don't care whether you want to stick with daylight savings time or standard time, but just make up your mind and stick with one of them. I don't want to have to remember the ever-changing dates of the changes, adjust every clock and watch in the house, adjust my body-clock to some time, and then repeat the process all over again in a few months time.

At least previously, the lengths of time under standard time and daylight savings time were equal. The dates on which the times changed came roughly 6 months apart, so they provided a good time point at which to do semi-annual things like changing batteries in smoke detectors. Now, we have 8 months of daylight savings time and only 4 months of standard time, so the utility of these change dates to remind us of things that need to get done every 6 months is minimal.

Which brings up another interesting point: if standard time is only 4 months long while daylight savings time is 8 months long, why is standard time even called standard? What is standard about it if it lasts only half as long as what is supposed to be non-standard? Even the naming convention calls into question the sanity of whoever thought of this asinine scheme!

Gone are the days when people had only one clock in the house, and didn't have anything better to do than fiddling with the time on it every now and then. It probably required winding daily or weekly anyways, and lost or gained a few minutes every day or week, so it was not an undue burden to have to adjust it every now and then. Now, I have a clock or timepiece in every room in the house, and each of my two vehicles. Add in the clocks on my VCR, microwave, stove and other appliances and electronics, and we are talking about at least a dozen things that need adjustment. And many electronic clocks like in my car move only in one direction easily, making the "fall back" quite painful to accomplish.

And it is not just me who is getting tired of this exercise. I heard on the radio the other day that Russia is considering eliminating daylight savings time altogether. I say, good for them! I wish more countries would recognize the waning usefulness of this dual time scheme, and eliminate it once and for all. At least then, hopefully, the brilliant programmers at Apple will figure out how to make their alarms work correctly!

Now I Can Enjoy Slot Games From The Comfort Of My Own Couch

This post was written by guest blogger Joseph M. Byrne.

Playing the slots has always been one of my favorite pastimes. People may call them one-armed bandits, but I consider them the best entertainment that has ever been invented. I would rather give up my telly than go without my favorite slot games.

Now, I don't have to get myself dressed up and drive around to get my daily fix of slots. I can do it from the comfort of my own home, sitting in front of my computer. QuickSilverGames has put together a huge collection of slot games that can all be played conveniently on your computer's web browser.

It is easy to get started. Register for an account with QuickSilverGames and provide them with a payment option. Once you deposit money into your account, you are good to go. You can play amusing, interesting and exotic slot games like Jewel Jackpot, Cleopatra, Maxamillion, etc. They also have tons of exclusive slots like Kasharoo, The Great Race, and Triple Treasure.

In addition to slot games, they also have various casino games like roulette, blackjack, craps, baccarat and so on. Not having to sit in a dingy room filled with cigarette smoke to play these exciting games makes QuickSilverGames one of my favorite destinations on the web. Once you try it, it will become your favorite too!

Rain Chains Are An Interesting Addition To Any Yard

I was at a friend's place for a get-together recently when I noticed something unusual in his backyard. It looked like a series of small ornamental cups strung together, one above the other, leading down to a small birdbath-like basin.

When I asked him what it was he said it was a rain chain. I looked up rain chains after I got back home, and figured out that they are ornamental devices that collect rain water and convey them down through clever arrangements of chains, spouts, cups and other interesting shapes.

My friend also told me he got his rain chain from an online store called This store stocks and sells a huge assortment of rain chains in several interesting shapes. If you can think of some interesting and artistically pleasing arrangement of shapes that chains rain, probably has a rain chain that brings your thought to life.

All the rain chains at come with free shipping and a complete satisfaction guarantee. They also guarantee the lowest prices on all their products. And their product line includes more than just rain chains. They also sell various accessories such as rain chain cups, rain chain basins, etc.

Rain chains make an interesting addition to any backyard. If you like fountains, birdbaths and other waterworks in the yard, you are sure to love rain chains. And if you would like a rain chain, but would prefer to get it as a gift from someone special for a special occasion, you can arrange for that too: has a gift registry set up specifically for that purpose!

Friday, November 5, 2010

Microsoft Access Tips & Tricks: Date Manipulations In Access

Access has several useful date-related functions that you can use to do several useful date calculations and manipulations. One of the questions that frequently arises is how to calculate things such as the end of the quarter given a date in that quarter. This post provides a function from which you can extract pieces that you need and use in your databases. More importantly, it provides you a good introduction to date manipulations so that you can use the code provided to write your own code to do other things that this code does not do.

If you are interested, you can find my earlier posts on finding the median, the mode, the geometric and harmonic means, ranking every row in a query, selecting random rows out of a table, calculating running sums and averages, calculating running differences, creating histograms, calculating probability masses out of given data, calculating cumulative distributions out of given data, finding percentile scores, percentile values, calculating distinct counts, full outer joins, parameter queries, crosstab queries, working with system objects, listing table fields, finding unmatched rows, calculating statistics with grouping, job-candidate matching, job-candidate matching with skill levels, great circle distances, great circle initial headings, using Excel functions in Access, using the windows file-picker, using the Access date-picker, setting tab indexes quickly and correctly, pre-filling forms based on previous entries, highlighting form controls, and conditional formatting.

Date manipulations in AccessTake a look at the screenshot of the form to the left. The user can enter a date in the textbox at the top of the form (or have the program automatically generate a random date to enter in the textbox, or enter today's date in the textbox). The code behind the form then fills out the dates in the rest of the boxes on the form.

The form itself probably does not have any place in any useful Access application. I added a picture of it to this post just to show you all the different date manipulations I could think of at short notice. The important part is the code behind the form. And that code is reproduced below.

The functions used in the code below are DateSerial(), DateAdd(), and DatePart(). These are very powerful functions that allow you to manipulate dates in multiple different ways. Learning to use them and take advantage of their power will enable you to be prepared for any date-related functionality your Access databases may require.
Option Compare Database
Option Explicit

Const maxDate = 2958100 'This represents 12/31/9998. I chose this as the maximum date that can
'be entered in the form so that none of the calculated dates can exceed
'12/31/9999 which is the maximum date that Access can handle.
Const minDate = -657069 'This represents 1/1/101. I chose this as the minimum date that can be
'be entered in the form so that none of the calculated dates can go below
'1/1/100 which is the minimum date that Access can handle.

'Note that there is no special handling required in dateserial() for month-ends, year-ends etc.
'The function automatically knows that adding a month in December puts you in January of next year,
'for example.

Private Sub DateEntered_AfterUpdate()
If CLng(Me.DateEntered) > maxDate Then
MsgBox ("The date you entered has to be before 12/31/9998")
Me.DateEntered = ""
Exit Sub
End If
If CLng(Me.DateEntered) < minDate Then
MsgBox ("The date you entered has to be after 1/1/101")
Me.DateEntered = ""
Exit Sub
End If

Me.PreviousDay = DateAdd("d", -1, Me.DateEntered)
Me.PreviousWorkDay = Me.PreviousDay
Me.NextDay = DateAdd("d", 1, Me.DateEntered)
Me.NextWorkDay = Me.NextDay
Me.ClosestWorkDay = Me.DateEntered
Select Case DatePart("w", Me.DateEntered)
Case 1:
Me.PreviousWorkDay = DateAdd("d", -2, Me.DateEntered)
Me.ClosestWorkDay = Me.NextWorkDay
Case 2:
Me.PreviousWorkDay = DateAdd("d", -3, Me.DateEntered)
Case 6:
Me.NextWorkDay = DateAdd("d", 3, Me.DateEntered)
Case 7:
Me.NextWorkDay = DateAdd("d", 2, Me.DateEntered)
Me.ClosestWorkDay = Me.PreviousWorkDay
End Select

Me.PreviousSaturday = DateAdd("d", -1 * DatePart("w", Me.DateEntered), Me.DateEntered)
Me.NextSaturday = DateAdd("d", 7 - DatePart("w", Me.DateEntered), Me.DateEntered)
If DateDiff("d", Me.PreviousSaturday, Me.DateEntered) < 4 Then
Me.ClosestSaturday = Me.PreviousSaturday
Me.ClosestSaturday = Me.NextSaturday
End If
If DatePart("w", Me.DateEntered) = 7 Then
Me.NextSaturday = DateAdd("d", 7, Me.DateEntered)
Me.ClosestSaturday = Me.DateEntered
End If

Me.PreviousSunday = DateAdd("d", 1, Me.PreviousSaturday)
Me.NextSunday = DateAdd("d", 1, Me.NextSaturday)
If DatePart("w", Me.DateEntered) = 1 Then
Me.PreviousSunday = DateAdd("d", -7, Me.DateEntered)
Me.ClosestSunday = Me.DateEntered
If DatePart("w", Me.DateEntered) = 7 Then
Me.NextSunday = DateAdd("d", 1, Me.DateEntered)
End If
If DateDiff("d", Me.PreviousSunday, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextSunday) Then
Me.ClosestSunday = Me.PreviousSunday
Me.ClosestSunday = Me.NextSunday
End If
End If

Me.PreviousMonthBegin = DateSerial(Year(Me.DateEntered), Month(Me.DateEntered), 1)
If Day(Me.DateEntered) = 1 Then
Me.ClosestMonthBegin = Me.DateEntered
If Month(Me.DateEntered) = 1 Then
Me.PreviousMonthBegin = DateSerial(Year(Me.DateEntered), Month(Me.DateEntered) - 1, 1)
End If
End If

Me.NextMonthBegin = DateSerial(Year(Me.DateEntered), Month(Me.DateEntered) + 1, 1)

If Day(Me.DateEntered) <> 1 Then
If DateDiff("d", Me.PreviousMonthBegin, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextMonthBegin) Then
Me.ClosestMonthBegin = Me.PreviousMonthBegin
Me.ClosestMonthBegin = Me.NextMonthBegin
End If
End If

Me.PreviousMonthEnd = DateAdd("d", -1, Me.PreviousMonthBegin)
Me.NextMonthEnd = DateAdd("d", -1, Me.NextMonthBegin)
If Day(Me.DateEntered) = 1 Then
Me.PreviousMonthEnd = DateAdd("d", -1, Me.DateEntered)
End If
If DateDiff("d", Me.PreviousMonthEnd, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextMonthEnd) Then
Me.ClosestMonthEnd = Me.PreviousMonthEnd
Me.ClosestMonthEnd = Me.NextMonthEnd
End If

If Me.NextMonthEnd = Me.DateEntered Then 'This catches the case where the current date is a month end
Me.ClosestMonthEnd = Me.DateEntered
Me.NextMonthEnd = DateAdd("d", -1, DateSerial(Year(Me.DateEntered), Month(Me.DateEntered) + 2, 1))
End If

Select Case Month(Me.DateEntered)
Case 1, 2, 3:
Me.PreviousQuarterBegin = DateSerial(Year(Me.DateEntered), 1, 1)
Me.NextQuarterBegin = DateSerial(Year(Me.DateEntered), 4, 1)
Case 4, 5, 6:
Me.PreviousQuarterBegin = DateSerial(Year(Me.DateEntered), 4, 1)
Me.NextQuarterBegin = DateSerial(Year(Me.DateEntered), 7, 1)
Case 7, 8, 9:
Me.PreviousQuarterBegin = DateSerial(Year(Me.DateEntered), 7, 1)
Me.NextQuarterBegin = DateSerial(Year(Me.DateEntered), 10, 1)
Case Else:
Me.PreviousQuarterBegin = DateSerial(Year(Me.DateEntered), 10, 1)
Me.NextQuarterBegin = DateSerial(Year(Me.DateEntered) + 1, 1, 1)
End Select
If Me.PreviousQuarterBegin = Me.DateEntered Then
Me.ClosestQuarterBegin = Me.DateEntered
Me.PreviousQuarterBegin = DateAdd("m", -3, Me.PreviousQuarterBegin)
If DateDiff("d", Me.PreviousQuarterBegin, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextQuarterBegin) Then
Me.ClosestQuarterBegin = Me.PreviousQuarterBegin
Me.ClosestQuarterBegin = Me.NextQuarterBegin
End If
End If

Me.PreviousQuarterEnd = DateAdd("d", -1, Me.PreviousQuarterBegin)
Me.NextQuarterEnd = DateAdd("d", -1, Me.NextQuarterBegin)
If Me.DateEntered = Me.ClosestQuarterBegin Then
Me.PreviousQuarterEnd = DateAdd("d", -1, Me.DateEntered)
End If
If Me.DateEntered = Me.NextQuarterEnd Then
Me.ClosestQuarterEnd = Me.DateEntered
Me.NextQuarterEnd = DateSerial(Year(Me.NextQuarterBegin), Month(Me.NextQuarterBegin) + 3, Day(Me.NextQuarterBegin) - 1)
If DateDiff("d", Me.PreviousQuarterEnd, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextQuarterEnd) Then
Me.ClosestQuarterEnd = Me.PreviousQuarterEnd
Me.ClosestQuarterEnd = Me.NextQuarterEnd
End If
End If

Me.PreviousYearBegin = DateSerial(Year(Me.DateEntered), 1, 1)
Me.NextYearBegin = DateSerial(Year(Me.DateEntered) + 1, 1, 1)
If Me.PreviousYearBegin = Me.DateEntered Then
Me.ClosestYearBegin = Me.DateEntered
Me.PreviousYearBegin = DateAdd("yyyy", -1, Me.DateEntered)
If DateDiff("d", Me.PreviousYearBegin, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextYearBegin) Then
Me.ClosestYearBegin = Me.PreviousYearBegin
Me.ClosestYearBegin = Me.NextYearBegin
End If
End If

Me.NextYearEnd = DateAdd("d", -1, Me.NextYearBegin)
If Me.DateEntered = Me.ClosestYearBegin Then
Me.PreviousYearEnd = DateAdd("d", -1, Me.DateEntered)
Me.PreviousYearEnd = DateAdd("d", -1, Me.PreviousYearBegin)
End If
If Me.DateEntered = Me.NextYearEnd Then
Me.ClosestYearEnd = Me.DateEntered
Me.NextYearEnd = DateAdd("yyyy", 1, Me.DateEntered)
If DateDiff("d", Me.PreviousYearEnd, Me.DateEntered) < DateDiff("d", Me.DateEntered, Me.NextYearEnd) Then
Me.ClosestYearEnd = Me.PreviousYearEnd
Me.ClosestYearEnd = Me.NextYearEnd
End If
End If

Me.FirstofCurrentWeek = DateAdd("d", -1 * DatePart("w", Me.DateEntered) + 1, Me.DateEntered)
Me.FirstOfPreviousWeek = DateAdd("ww", -1, Me.FirstofCurrentWeek)
Me.FirstofNextWeek = DateAdd("ww", 1, Me.FirstofCurrentWeek)

Me.FirstofCurrentMonth = DateAdd("d", -1 * DatePart("d", Me.DateEntered) + 1, Me.DateEntered)
Me.FirstofPreviousMonth = DateAdd("m", -1, Me.FirstofCurrentMonth)
Me.FirstofNextMonth = DateAdd("m", 1, Me.FirstofCurrentMonth)

Me.FirstofCurrentYear = DateAdd("d", -1 * DatePart("y", Me.DateEntered) + 1, Me.DateEntered)
Me.FirstofPreviousYear = DateAdd("yyyy", -1, Me.FirstofCurrentYear)
Me.FirstofNextYear = DateAdd("yyyy", 1, Me.FirstofCurrentYear)

Select Case Month(Me.DateEntered)
Case 1, 2, 3:
Me.FirstofCurrentQtr = DateSerial(Year(Me.DateEntered), 1, 1)
Case 4, 5, 6:
Me.FirstofCurrentQtr = DateSerial(Year(Me.DateEntered), 4, 1)
Case 7, 8, 9:
Me.FirstofCurrentQtr = DateSerial(Year(Me.DateEntered), 7, 1)
Case Else:
Me.FirstofCurrentQtr = DateSerial(Year(Me.DateEntered), 10, 1)
End Select
Me.FirstofPreviousQtr = DateAdd("m", -3, Me.FirstofCurrentQtr)
Me.FirstofNextQtr = DateAdd("m", 3, Me.FirstofCurrentQtr)
End Sub

Private Sub Form_Load()
End Sub

Private Sub RandomDate_Click()
Me.DateEntered = CLng((maxDate - minDate) * Rnd() + minDate)
End Sub

Private Sub TodayDate_Click()
Me.DateEntered = Date
End Sub
Hope this post has been helpful in solving any problems you might have had with date manipulations in Access. The VBA code in this post has been tested in Access 2003 and should work without any problems in all versions of Access from Access 97 on up. If you have any problems or concerns, please feel free to let me know by posting a comment. If you have other questions on Access that you would like me to address in future posts, please feel free to let me know through your comments too. Good luck!

Visitors Country Map

Free counters!

Content From

In the News

Article of the Day

This Day in History

Today's Birthday

Quote of the Day

Word of the Day

Match Up
Match each word in the left column with its synonym on the right. When finished, click Answer to see the results. Good luck!



Spelling Bee
difficulty level:
score: -
please wait...
spell the word:

Search The Web