A Good Place to Find Free Loading Animations

As I was working on one of my personal web development projects today, I realized I would need a loading animation. Thankfully, I remembered a very useful web service I discovered a long time ago – AjaxLoad.info. The site is specifically designed to provide free, customizable loading animations – in GIF format.  They have at least 25 different types of loading animations – so if you’re looking for one, I recommend you check what they have to offer.

Screenshot of the webpage.

As for the “free” factor – in case you’re wondering: there aren’t any specific licenses associated with the images, but the front page clearly states that “generated gifs are totally free for use”. That said, enjoy.

An Easier Way to Search for Domain Names

In the past, whenever I wanted to search for available domain names, I checked with individual domain registrars. While this worked, it really wasn’t optimal- every time I wanted to check another domain’s availability, I had to press Back in my browser, re-enter a domain, re-submit the request, and then I’d know. Most websites were set up like this, unfortunately. Furthermore, if I wanted to compare domain registration fees, I’d have to check multiple websites.

I’m happy to say that these inconveniences are now no longer an issue. The solution lies in a site called Instant Domain Search. The webpage aims to facilitate the process of searching for a domain, and to do so, it:

  • searches automatically as you type
  • lists different rates from leading registrars
  • lists domains names that are for sale

Check it out:

Personally, I’m never going back to the old method.

The Wall of Cookies

Back in June 2008, I invited a friend of mine to an Iron Maiden concert here in Montreal. Since he lives in Nova Scotia, this meant that he’d be staying at my place for a few days. Over the years I’ve known him, it was very clear to me that he really enjoyed cookies… so I thought I should be equipped for his arrival:

The cabinet was almost completely full – each package you see in the photo had another identical one right behind it. Needless to say, we didn’t finish all the cookies – I had to give them away to friends and family.

Blocking Websites with the Windows Hosts File

Sometimes I decide that I never want to re-visit a particular website ever again, and I want a way to block it indefinitely. Normally, I just learned to ignore a website simply out of self-discipline. Lately, I decided I wanted something more secure. After all, even with self-discpline, I could still accidentally visit said site from a link found on another unblocked site. I figured out a good solution: the Windows hosts file.

Windows features a special file simply called “hosts”, without an extension. This file allows users to map hostnames to IP addresses. More importantly, however, is that when Windows tries to locate nodes on any given network, it will take the hosts file into consideration. It will actually consider the hosts file prior to querying DNS server, and any mappings found within will override those in the DNS. This effectively allows us to write custom redirections that affect the entire system – this was the key to blocking the website. To demonstrate how I used this to my advantage,  here’s what the default HOSTS file looks like in Windows 7:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

If I wanted to permanently block:

  • kanyewest.com
  • kanyeuniversecity.com

I would add the following entries to the file, in bold:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 kanyeuniversecity.com
127.0.0.1 www.kanyeuniversecity.com
127.0.0.1 kanyewest.com
127.0.0.1 www.kanyewest.com

By doing this, I’m telling Windows that whenever it encounters one of those domains, it should immediately resolve them to the IP 127.0.0.1, rather than querying the DNS server for the IP. The IP 127.0.0.1 is a special “loopback” IP – it pretty much points to whatever machine you are currently using. That’s how these domains are blocked – Windows will actually be told to use 127.0.0.1, which will definitely not work (since the local machine is not a web server, and is not configured to serve such content). This exact technique is used by Spybot Search & Destroy‘s Immunize feature – so when you open your HOSTS file, you might already see a bunch of entries blocked.

Notice, also,  how I added two entries per website I want to block – one with “www.”, and one without it. I considered this necessary because of the following: from the point of view of a DNS server, “www.websitenamehere.com” and “websitenamehere.com” are two completely different domains; however, in most cases, on the Internet, they tend to be configured to point to the same IP address, so we rarely see instances where they behave differently. Still, since they are different at the DNS level, both possibilities needed to be added to HOSTS file.

Ultimately, once configured, the end result is this: whenever you try to access a blocked site, you’ll get this type of error:

Error seen when attempting to visit a site that has been blocked via the Windows hosts file. This example showcases Firefox, but keep in mind that the block is system-wide. Other browsers will react similarly.

There you have it – a way to block websites in Windows, and a browser-independent one at that. As for the procedure for editing the HOSTS file, it differs depending on which version of Windows you are using – simply include the Windows version when you Google.

Powerful Mail

A friend recently sent me a package – I couldn’t help but laugh when I saw it:

I wasn’t home when this package arrived, and that meant the mailman had to leave note informing me that a package for “Refghi Power” would be waiting for me at the local post office. When I went to get it, I tried to contemplate how I would prove that I am “Refghi Power”, as all my IDs claim I’m “Matt Refghi”. Also, keep in mind that mostly everyone around here speaks French. Thankfully, the guy at the post office laughed and said he got it.

Yahoo! Answers: Suing Facebook

I was genuinely trying to find out if there was a way to have certain pictures of myself removed from Facebook, until I found this:

I like how all the others answers were, for the most part, completely correct – and yet the chosen “best answer” is ridiculous.

UPDATE January 19, 2013: Question was deleted, removed link.

Reducing E-mail Spam by Eliminating Public Listings

I’ve been using Gmail as my e-mail service provider for a few years now, and due to their excellent spam filters, I’ve been able to ignore the continuous stream of junk mail hitting my mailbox every day. Despite their efficiency at identifying and hiding spam e-mails, I remain genuinely concerned about keeping my e-mail address hidden from the public view.  E-mails that are publicly available are easy targets for spambots, which are automated programs that scour the Internet for e-mail addresses. Once “harvested”, these addresses are sent junk mail, spam.

1000 Spams by Allan Reyes.

Sometimes, however, it is desirable to have an e-mail address visible to the public – to do so, a special approach should be taken to protect it from spambots. For example, you can use services like reCAPTCHA Mailhide, which challenges viewers with a CAPTCHA before it displays the full e-mail address.

Curious about whether or not my e-mail was “out there”, I decided to look into it. Below, I explain how you would go about checking for public references to your e-mail address, and how future slips could be prevented.

Google Your E-mail Address

Try searching for the e-mail address using Google. Search engines scour the Internet for web pages, rather than just specific elements in the page (like e-mail addresses). They do so through programs called crawlers, sometimes referred to as spiders. If they have indexed a webpage that has your e-mail address mentioned, you’ll be able to find it in the engine’s search results. The important fact here is this: if you can find it using a search engine, you can safely assume that a spambot would be similarly capable. It is therefore important to remove any references to your e-mail address – in doing so, you’ll be making it a little bit harder for spammers to target your address.

To do so, try launching a Google search for your e-mail address, using this format:

“you@youremailprovider.com”

The double-quotes will tell Google to look for that exact string, which will limit the number of false positive search results that are returned. If you get no results with the double quotes, try removing them.

After running the search, if you spot search results that actually have made your e-mail address publicly visible, you’ll need to try and remove them. In my case, when I did this, all the hits were sites that I could log into, and then remove my address. If you’re lucky, it’ll be that simple. Otherwise, you might have to contact the site owner to get it removed.

Question How Websites Use Your E-mail

To avoid getting into potentially complicated situations, it is worthwhile to spend some time determining how websites intend to use your e-mail. An e-mail is almost always requested when registering, but the uses vary. It could, for example, just be used to contact you to activate your account. Or, it could be used for a multitude of things, including as a publicly viewable piece of information. Take the time to check FAQs, site forums, or even contact the site owners if there are doubts – this could prevent an increase in spam received.

Sometimes, however, it isn’t as straight-forward as them displaying your e-mail address- sometimes certain sites will indirectly expose your address. I’ll give you an example… consider Google Profiles. By default, the URL that points to your profile looks something like this:

http://www.google.com/profiles/114973454253911341512

You can, however, choose to have your username appear at the end, like this:

http://www.google.com/profiles/youruseraccount

This is naturally better for search engine optimization, and it also allows you to memorize your profile link – but it introduces a flaw as well. Looking at that URL, I know that the e-mail address “youruseraccount@gmail.com” exists. It has to, that’s how Google accounts work – they are based on an e-mail address, so there is no doubt about what the username portion is. If I know that, then I can deduce that there must be a spambot out there that is smart enough to exploit the same flaw. Even if no spambots are currently exploiting this, I’m pretty sure one eventually will. Thankfully, though, Google has explained the feature very well on the settings page – reducing the likelyhood that someone would enable it unknowingly:

To make it easier for people to find your profile, you can customize your URL with your Google email username. (Note this can make your Google email address publicly discoverable.)

How My First Appointment With a New Dentist Resulted In My Being Banned

There are times where I wonder what I’m going to write next for this blog, and then, there are times like today – something totally insane happens, and I have no doubt about what I’m going to write next. Still, I’m very picky about what I put on here – I refuse to post mundane details about my everyday life – one of my most important rules. The only exception to this rule occurs when I feel a particular story could be entertaining, and make people laugh. If I consider it a funny story, then I’ll put it up. This is one of those stories.

A few days ago, while eating supper, I felt a pain when closing my jaw – it originated from a particular tooth.  I was able to trigger the pain every few tries, and I thought I chipped it in some way, maybe revealing a cavity or something. With this in mind, I looked for a new dentist in my area. Since I’m a fan of user reviews and ratings, I felt I should start by considering those that had positive reviews. Google Maps is actually pretty good at this – I found two local dentists with 10+ ratings, most of which were positive. I called the one with the most positive ratings, and set an appointment – it was today at 1:00pm. I had them schedule a cleaning, and afterward, a check-up with an extra slot for a cavity repair, as I figured I had one.

When I went to my appointment, everything seemed to be going OK. The woman doing my cleaning was actually a great person to talk to, and she didn’t mind answering my questions. After examining and cleaning my teeth she was able to spot a potential of 4 (yes, four) cavities. I was a little freaked out, and I was hoping the doctor himself would clarify this – maybe she was wrong about 1 or 2 of them? What you need to understand is that at one point in my past, about 2 years ago, I was told I had 7 (yes, SEVEN) cavities – and I was totally shocked. Prior to being told I had 7, I always brushed twice a day, and used Listerine daily. After explaining this to my dentist, I was told that floss was probably the missing element, so I fully accepted flossing every day – hell, I even started flossing twice a day, to be safe. Knowing I’ve been flossing 1-2 times a day, and brushing 2 times a day, I never expected to have more than 2 cavities. So here I was, at a new dentist, and this girl was telling me I might have 4 new cavities. I was, again, a little shocked, but I thought she knew what she was doing – so I waited until I saw the dentist, I figured he would confirm it.

The dentist proceeded to examine my teeth, along with another assistant (not the same girl as before), and I immediately noticed he was a pretty cool guy to converse with as well – reflecting what I read in the reviews. While he was working on my teeth and gums, I noticed a few weird personality traits, and they led me to be concerned. The first one happened when he poked at something – and I said “ow” and asked him what he did. He said that he simply poked at my gum, and that I overreacted. Overreacted? Excuse me? If it hurts, I’m going to react accordingly. That was the first sign that this guy had some quirks. I also began to notice that he worked very fast, and seemed a bit hyperactive – he didn’t waste any time at all. I sensed he was beginning to get a little impatient with me, when I didn’t reply quickly enough to his queries and directions. I was still fine with all this – I thought the guy was a little weird, and that was fine by me. The next thing that raised a flag was one point where he stopped working and said “What’s wrong with you? You seem to be really nervous, at least in your mouth area – the rest of your body seems relaxed.” I just shrugged that one off, but I knew that this was primarily because of his overall speed and brewing impatience. Still, despite these little weird moments, I still had nothing against the guy – at least not at that moment. He went on to tell me that I’d need 6 (yes, SIX!!!) cavities repaired. Oh, not only that – he felt I would need braces too, and that I should start using dental guards again – when I sleep. My reaction to this was along these lines: I thought it was ridiculous that a guy that took care of his teeth as much as me would have 6 cavities, but I accepted it. The braces – I wasn’t looking forward to it, but his arguments made sense – if I needed braces, I’d get braces. Whatever. The dental guard – again, not a problem for me. If I needed to wear it at night, then I would – no problem. The cavities were the biggest shock here, as I thought I had corrected my problem when I began obsessively flossing. I really want to point out that I didn’t doubt his professional competency – I was just shocked with the results.

Now, here’s where it got complicated. I was scheduled to get a cavity repaired, but I was a little shaken when I was told I had to get 6 repaired – 3 today, 3 another session. The doctor asked me which side he should start with, so that he could start right now. I felt like I was being rushed, and told him I’d like to have some time to think, as I wasn’t expecting so many cavities – it was a shock. He told me something along the lines of “You’re procrastinating, just choose – and we’ll get to work”. I then said I rather wait a couple days, and then come back. He said something along the lines of  “If you choose that route, that’s where it ends. You had an appointment, and now you’re forfeiting it – we’ll have no way to fill it.” I couldn’t bring myself to believe that the doctor would abandon me as a patient just because I wasn’t feeling up to doing it immediately, so I told him I was sure I wanted to take that approach, again, because I was feeling a little overwhelmed and rushed. He said it was fine, and went into his office. I then went to the front desk to pay for my dental cleaning, and as I was filling up some sheets for the secretary, the Doctor’s assistant came up and said, to the secretary, “You’re not supposed to give him another appointment.” At this point, I was hit with the truth – but I still couldn’t believe it, so I went to see the doctor – and sure enough, he said that I was banned from ever coming back. He said if I was regular, he’d give me another chance, but since I bailed on him in under 24 hours, he didn’t feel he should keep me as a patient. He felt this compromised my integrity, and believed I would do it again, wasting more of his time. I tried to explain to him that this was the first time I ever behaved in that manner, and then just gave up and said: “Alright, man. Your decision. Bye.”  I was also told that my papers could be faxed to another dentist, at my request. I didn’t see the point in dealing with the dentist beyond that point – he made his choice, and if his was so insistent on making me his bitch, and rushing me through it – then I could surely find a more understanding doctor. I paid for my cleaning, and then left the place – evidently, for good.

Looking back, I can’t help but laugh at this experience… but at the same time, I’m really taken aback at how rough of a doctor that guy was – I’m not referring to his work, more so his human interaction skills, or lack of. I felt rushed, and a little overwhelmed with the news of 6 cavities. I was perfectly willing to get them fixed by the same doctor, but he was obviously offended that I was going to postpone the “repair” appointment. A little strange too – I was there for my main appointment, it’s not like I completely bailed on them. If I was told in advance he reacted so brutally to such a “cancellation”, I would of probably decided to go elsewhere. He couldn’t get it through his head that I simply wasn’t mentally well with doing it so quickly – some people would need even more time than me, but apparently those people are destined to be rejected by that doctor. I thought to myself, while there, how he would be with kids – how unfortunate for them… having a father that lacks basic human understanding and compassion. I’ll rate him according to my experience on Google Maps and probably RateMDs.com. Also, at least now – I can get a second opinion about the work that needs to be done – if I said that as my excuse for wanting to cancel my second appointment, he probably would of banned me for that too. How is that right?

Update: Rated him on Google Maps and RateMDs. His name is Jean Pierre Loiselle.

Credit: the photo used in this article is by ChristopherSchmitt.com.

Becoming a Rainbow Six Operative

So lately, Joseph and I have been having fun with Rainbow Six Vegas 2. The game is a fairly well-made first-person shooter, and we enjoy playing co-operative games every now and then. The other day, we discovered that the game has a “Custom Head” feature. The feature allows you to map your own face onto your in-game character.  When we actually got around to trying it, we were pretty impressed with the quality of the results.

Consider the following screenshot:

I kept that “Custom Head” for a while:

…and it resulted in a great set of photos.

Dear Santa Claus

I found this little historical gem at my parents place:

Let’s review this quickly:

  • I like how my first question challenges the logic of his whole operation, and the next one aims to strip him of his disguise.
  • Notice how the area under the word “May” in “May I have these toys please?” is scratched? I probably initially wrote “Can”, but then I figured that “May” made more sense. Nice.
  • “Meet me in my room. If I am asleep wake me up.” – I’d like to think this was a trap for this Santa fellow. Maybe I was hidden, waiting to de-mask the man as he attempted to wake me up. This was probably not the case.
  • That “signature” is awful, and is nothing like my actual signature. Nice try, 9 year-old me.