Archive for the ‘internet’ Category

Automatically Delete Unwanted Cookies in Firefox

Saturday, January 26th, 2008

I prefer to not have cookies stored in my browser, but it’s impractical to not store any cookies since this would require repeatedly logging in to authenticated sites that I frequently use. A simple solution in Firefox is the following:

From the Edit menu, choose Preferences and then click the Privacy tab. You should see a dialog similar to the following one:

firefox1.png

Check the “Accept cookies from sites” checkbox. For the “Keep until” setting, select “I close Firefox”. The latter is the key - it will erase all cookies from Firefox whenever you close the program. Of course, we don’t want to erase all the cookies, so click the “Exceptions…” button on the right and you’ll see a dialog similar to the following:

firefox2.png

Just type the name of the web site you want to allow in the text box and click the “Allow” button, and Firefox will add it to the exception list so it won’t be deleted when you close Firefox. You can add a full URL such as www.MySite.com, or just the domain name MySite.com to allow cookies for any host in that domain. You an also add sites you want to disallow any cookies from by clicking the “Block” button.

I have about 30 sites that I allow Firefox to store cookies for, but this technique has helped me avoid accumulating tons of unwanted cookies in Firefox. I hope it’s helpful for you.

Gizmo Project

Tuesday, November 13th, 2007

I’ve been using Gizmo to make voice-over-ip calls for many months now, and I’ve been extremely pleased with it. They have clients for Linux, Mac & Windows, and the call quality has been outstanding when both ends have broadband.

I picked up an inexpensive Plantronics headset with attached microphone which makes extended conversations while working at a computer a joy. Gizmo call quality is to POTS call quality as stereo is to clock radio. I highly recommend checking it out.

del.icio.us Tag Bundling

Saturday, November 3rd, 2007

I’ve written about del.icio.us several times before (use the search box to find the articles). I’ve been using the service for quite a while and still consider it to be one of the most valuable web services I use.

I just discovered the tag bundling feature from this article and tried it out. Tag bundling, as you might expect, allows you to group your tags. For example, my first bundle was “people”, so now I can see all my people tags in one group. I’ll be adding more bundles soon.

If you’re not using del.icio.us, you should really check it out. And if you, are and don’t know about tag bundling, give it a shot.

del.icio.us makes it easy to share tags - for example, here’s a link for my bookmarks on the Ruby programming language. I haven’t discovered a similar way for sharing bundles, so if you know, please leave a comment.

Web Hosting Bandwidth Constant

Monday, September 3rd, 2007
  • 365.25 days per year
  • 12 months per year
  • 24 hours per day
  • 60 minutes per hour
  • 60 seconds per minute
  • 1,024 MB per GB
  • 1,024 KB per MB
  • 8 kilobits (kb) per kilobyte (KB)

Put that all together and you get the following:

3.19 (month kb) / (sec GB)

So when you see a web hosting company stating a bandwidth per month (in GB), you can multiply that by 3.19 to get a kilobits per second figure. In other words, 18 GB/month of bandwidth is the amount of bandwidth that a 56Kb modem would consume at full capacity, and 480 GB/month is roughly the same as a 1.5Mb T1 line.

Social Bookmarking

Tuesday, August 7th, 2007

Here’s a video that explains why using a site such as del.icio.us can be useful. I think they may have failed to mention that you can mark bookmarks as private on del.icio.us, so it’s not necessary to expose your bookmarks to the world. However, in my case, I only mark a small fraction as private.

I’ve been using del.icio.us for quite some time. After I had been using it for a while, I realized that it had been a long time since I bookmarked something in my browser because I had developed a habit of bookmarking in del.icio.us. Most browsers force you into placing a bookmark into a hierarchical, or directory, structure, but on del.icio.us you can assign as many “tags” as you like to a particular bookmark so you can search for things more easily. del.icio.us also allows you to export your bookmarks so you aren’t at the mercy of a proprietary service.

Another thing that is handy is to subscribe to the del.icio.us feeds of your friends to be automatically notified when they bookmark something that may be of interest.

Surf Securely Using SSH

Thursday, August 2nd, 2007

This is so easy, you’re gonna love it! Thanks Tyler Pedersen.

Motivation

I’ve been using my laptop more frequently at wifi hotspots. Many web sites I visit encrypt traffic with SSL for authentication, but after that they send traffic in the clear which means the cookies that are used for authentication purposes are sent in the clear, so anyone with a sniffer within range of my laptop could easily intercept the traffic, steal my cookies and impersonate me on the web site. Not good! So, I went looking for a simple solution, and found a great article about using ssh for this purpose. Ya gotta love open source software :)

Prerequisites

I’ll assume the following:

  1. You’ve used ssh before
  2. You have access to a remote host running sshd

How To

Issue the following command on your local computer:

ssh -Nf username@hostname.com -D 1080

replace username@hostname.com with the appropriate information. Look at the man page for ssh, or read the article linked above for an explanation of the options.

The next step is to configure Firefox to use the SOCKS proxy you setup with the above command. I’m using Firefox 2.0.0.6 on Ubuntu 7.04 Linux.

Edit | Preferences | Advanced | Settings

Pulls up the following dialog:

socks.png

Notice how I’ve switched from “Direct connection to the Internet” to “Manual proxy configuration”. I’ve also set the SOCKS Host to be ‘localhost’ and the port to be ‘1080′.

I can now surf and have encrypted traffic between my local computer and the remote host I ssh’d to. The traffic between my remote host and the destination web site will be unencrypted, but hopefully that traffic is harder to sniff without being detected.

At this point, I tested it out and everything worked fine. I then killed my local ssh process and Firefox complained about the connection being reset, so I knew it was in fact sending data over the ssh tunnel.

The final step is optional, but if you want to avoid having the bad guys detect your DNS requests (or possibly redirect them - d’oh!), you can configure Firefox to route DNS requests through the proxy.

  1. Type about:config in the Firefox address bar.
  2. Look for network.proxy.socks_remote_dns and set the value to true

Is that easy or what? Thanks again Tyler.

Google Reader

Monday, July 30th, 2007

I hate to promote Google given their trajectory to take over the world, but I just switched over to Google Reader for reading RSS feeds. I had accumulated over 60 RSS feeds, and it was becoming difficult for me to determine which feeds I should keep and which I should delete.

I was hoping for an automated tool that would keep track of which feeds are beneficial and Google Reader has exactly what I was looking for!

The trends feature will keep track of which articles I read from each feed and report on the total number and the percent. So, over time, I’ll be able to easily delete the feeds that have a low number and/or low percentage of read articles. If you decide to use Google Reader, you should be aware of some idiosyncrasies. When viewing in “Expanded view”, the default is to mark articles as read when you scroll past them which totally defeats the trends feature. You can turn that off in the settings.

settings | preferences | scroll tracking

I like using the “list view” instead which allows me to quickly view the titles. After I’ve read the articles I want to from a feed, I click “mark all as read” and Google Reader is smart enough to not count those in the “read” statistics.

If you’re already using a different RSS reader, you can easily import all your feeds via an opml file. I was using Liferea and had folders of feeds, and I had also renamed the feeds - the import to Google Reader kept track of all of that - nice.

Google Reader has a lot of other nice features such as keyboard shortcuts, tags, folders, etc., but once I discovered the trends feature, that was all I needed to see :)

I suppose the trends feature can be “unfair” though. Consider the following scenario:

  1. You have two feeds A and B
  2. Each day each feed publishes 10 articles
  3. The feeds overlap on 5 articles that are worth reading
  4. Feed A has 1 unique article that you read
  5. Feed B has 3 unique articles that you read

If the feeds are read in alphabetical order, then you’ll read the 5 overlapped articles from Feed A along with the 1 unique article -> total = 6, or 60%. Then you’ll read the 3 unique articles from Feed B -> total = 3, or 30%. The stats will show Feed A as being twice as valuable when clearly Feed B is more valuable. I suppose to get good stats, I should read the feeds in random order, but that seems difficult to manage.

UPDATE: ah, never mind. Simply view the folder that contains A & B and you’ll see the union of their articles in chronological order - whoever gets the overlapped story first wins :)

Gizmo Project - Free Long Distance

Saturday, July 21st, 2007

I’ve been using Gizmo Project to make free long distance calls for several months, and I’ve been extremely pleased with the service. To start with, it’s free, so that’s a good thing. Gizmo runs on Linux, Mac OSX and Windows. The sound quality is unbelievably good - much better than a land line or mobile phone (think stereo vs. cheap clock radio).

I bought a ~$30 Plantronics headset for handsfree talking. It’s small enough to throw in my laptop bag, so I can make VOIP calls wherever I have a wifi connection. I used the Debian package to install on my Ubuntu 7.04 system and it was a piece of cake to get running.

If any of you signup, send me an email with your account name and I’ll add you to my contact list.

However, Gizmo just did something that really ticked me off!

I discovered they had a version for Palm devices (Palm Treo 650 in my particular case), so naturally I got all excited about the prospect of making free calls from my mobile phone without using any minutes from my voice plan. Well, after spending time downloading 5 files and installing them on my Treo, I eventually realized that the Gizmo version for Palm devices is a complete waste of time - it’s only good for chat.

So how did I get this wrong? Well, let’s see, maybe it was the prominent statement on the Palm info page that stated:

Now you can instant message, call and view your Gizmo Project, AIM, MSN, Yahoo, iChat and Jabber buddies on your Treo for FREE. Download Now!

Call Gizmo buddies right from the application.

That sounds pretty clear. Well, I read the FAQ just to make sure. There was an obscure quote stating, “calls made using Gizmo for Treo use the data network connection or your phone’s data plan and not the Gizmo VoIP network”, but that was in a question about calling out to land lines, so I thought it was a peculiarity with calling out to a land line from the VOIP network, and the fact that they specifically stated “phone’s data plan” let me to believe it actually used the data plan as opposed to the voice plan. The former is unlimited; the latter is not.

Judging from comments on the forums, I’m not the only one that was duped into installing it on their phone. I tried to give them feedback on the forum, but after I spent a fair amount of time typing my message, when I submitted it, I received the following:

Error in posting

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ 1185051488, 16, 0, 0, 0)’ at line 1

INSERT INTO phpbb_topics (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES (’Chat only - what a waste!’, , 1185051488, 16, 0, 0, 0)
Line : 258
File : functions_post.php

So I had to vent on my blog instead. Ok, I feel better now :) The bottom line is that it’s an excellent service to use on your computer, but skip the mobile phone version.

Which doctypes are being used?

Thursday, July 12th, 2007

In trying to decide which doctype to use for my new web apps, I thought I’d see what other sites are currently using. Here are the results in order from least to most leading edge:

No doctype at all

  • mail.google.com
  • mail.yahoo.com
  • www.alexa.com
  • www.amazon.com
  • www.barnesnoble.com
  • www.ebay.com
  • www.godaddy.com
  • www.google.com
  • www.myspace.com
  • www.trianglemls.com

HTML 4.0 Transitional w/o URL

  • www.fedex.com

HTML 4.0 Transitional Loose

  • www.dell.com
  • www.microsoft.com
  • www.monster.com

HTML 4.0 Strict w/o URL

  • www.ask.com

HTML 4.01 Transitional w/o URL

  • www.bankofamerica.com
  • www.netflix.com
  • www.nuskin.com
  • www.ups.com

HTML 4.01 Transitional Loose

  • www.apple.com
  • www.bizbuysell.com
  • www.craigslist.org
  • www.hp.com
  • www.sun.com
  • www.usps.gov
  • www.youtube.com

HTML 4.01 Strict

  • www.flickr.com
  • www.slashdot.org
  • www.walmart.com
  • www.yahoo.com (for Firefox, no doctype for IE)

XHTML 1.0 Transitional

  • www.aol.com
  • www.digg.com
  • www.expedia.com
  • www.livejournal.com
  • www.loopnet.com
  • www.orbitz.com
  • www.stumbleupon.com
  • www.wachovia.com

XHTML 1.0 Strict

  • del.icio.us
  • maps.google.com
  • www.blogger.com
  • www.facebook.com
  • www.ibm.com
  • www.jaiku.com
  • www.msn.com
  • www.pownce.com
  • www.twitter.com
  • www.wikipedia.org

XHTML 1.1

  • www.mayoclinic.com

Conclusion

There are enough mainstream sites using XHTML now, that I feel it may be ready for prime time. Since I don’t have a lot of legacy pages to deal with, I’m going to use XHTML 1.0 Strict.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Douglas Crockford: Theory of the DOM

Thursday, May 17th, 2007

Here’s a set of 3 videos by Douglas Crockford on the DOM that were in between his JavaScript and Advanced JavaScript presentations. Pretty basic material, but you may find a few helpful hints. A few comments:

  1. Comment hack for JavaScript hasn’t been necessary for 10 years!
  2. language=javascript has been deprecated
  3. type=’text/javascript’ is ignored if you use the src attribute
  4. remove any event handlers of a node before deleting it due to MS garbage collection incompetencies
  5. avoid trickling, bubbling is where the action is

Theory of the DOM Part 1 of 3

Theory of the DOM Part 2 of 3

Theory of the DOM Part 3 of 3

Douglas Crockford: JavaScript

Thursday, May 17th, 2007

Thanks to Jordan Liggitt for passing on some videos on JavaScript by Douglas Crockford who is a senior JavaScript architect at Yahoo! The first series is pretty basic, but if you’re new to the language, it’s a very good introduction. Here are some random items I thought were noteworthy:

  • Brendan Eich at Netscape originally wanted to make a dialect of Scheme, but his manager said that people wouldn’t accept “all those parentheses”, and he should make something with a friendlier syntax. Too bad, I would love to able to program Scheme in the browser
  • Brendan did sneak in lambda though, he just didn’t call it that :)
  • No separate character type, just strings of length 1
  • == and != do type coercion; === and !== do not
  • bitwise operators convert to a 32 bit signed integer and then back to a 64 bit float, so don’t use them for efficiency like you might in C
  • don’t use the with statement
  • be careful with for (var name in object) due to iteration of inherited members also
  • blocks don’t have scope, only functions do
  • vars are implicitly global if not declared
  • 4 ways to call a function

    1. functionObject(args)
    2. thisObject.methodName(args)
      thisObject[”methodName”](args)
    3. new functionObject(args)
    4. functionObject.apply(thisObject[, args])
  • don’t use eval except for trusted JSON
  • http://www.JSLint.com a tool Crockford wrote
  • Semicolon insertion: when the compiler sees an error, it attempts to replace a nearby linefeed with a semicolon and try again! Always use the full correct form including semicolon. This was a surprise to me because once I discovered semicolons were optional, I stopped using them for a cleaner look. Oops.

The JavaScript Programming Language Part 1 of 4
The JavaScript Programming Language Part 2 of 4
The JavaScript Programming Language Part 3 of 4
The JavaScript Programming Language part 4 of 4

I’ll post another entry after I go through Crockford’s advanced series.

100 Oldest .com Domains

Thursday, May 17th, 2007


Rank Create date Domain name
1. 15-Mar-1985 SYMBOLICS.COM
2. 24-Apr-1985 BBN.COM
3. 24-May-1985 THINK.COM
4. 11-Jul-1985 MCC.COM
5. 30-Sep-1985 DEC.COM
6. 07-Nov-1985 NORTHROP.COM
7. 09-Jan-1986 XEROX.COM
8. 17-Jan-1986 SRI.COM
9. 03-Mar-1986 HP.COM
10. 05-Mar-1986 BELLCORE.COM
11. 19-Mar-1986 IBM.COM
11. 19-Mar-1986 SUN.COM
13. 25-Mar-1986 INTEL.COM
13. 25-Mar-1986 TI.COM
15. 25-Apr-1986 ATT.COM
16. 08-May-1986 GMR.COM
16. 08-May-1986 TEK.COM
18. 10-Jul-1986 FMC.COM
18. 10-Jul-1986 UB.COM
20. 05-Aug-1986 BELL-ATL.COM
20. 05-Aug-1986 GE.COM
20. 05-Aug-1986 GREBYN.COM
20. 05-Aug-1986 ISC.COM
20. 05-Aug-1986 NSC.COM
20. 05-Aug-1986 STARGATE.COM
26. 02-Sep-1986 BOEING.COM
27. 18-Sep-1986 ITCORP.COM
28. 29-Sep-1986 SIEMENS.COM
29. 18-Oct-1986 PYRAMID.COM
30. 27-Oct-1986 ALPHACDC.COM
30. 27-Oct-1986 BDM.COM
30. 27-Oct-1986 FLUKE.COM
30. 27-Oct-1986 INMET.COM
30. 27-Oct-1986 KESMAI.COM
30. 27-Oct-1986 MENTOR.COM
30. 27-Oct-1986 NEC.COM
30. 27-Oct-1986 RAY.COM
30. 27-Oct-1986 ROSEMOUNT.COM
30. 27-Oct-1986 VORTEX.COM
40. 05-Nov-1986 ALCOA.COM
40. 05-Nov-1986 GTE.COM
42. 17-Nov-1986 ADOBE.COM
42. 17-Nov-1986 AMD.COM
42. 17-Nov-1986 DAS.COM
42. 17-Nov-1986 DATA-IO.COM
42. 17-Nov-1986 OCTOPUS.COM
42. 17-Nov-1986 PORTAL.COM
42. 17-Nov-1986 TELTONE.COM
42. 11-Dec-1986 3COM.COM
50. 11-Dec-1986 AMDAHL.COM
50. 11-Dec-1986 CCUR.COM
50. 11-Dec-1986 CI.COM
50. 11-Dec-1986 CONVERGENT.COM
50. 11-Dec-1986 DG.COM
50. 11-Dec-1986 PEREGRINE.COM
50. 11-Dec-1986 QUAD.COM
50. 11-Dec-1986 SQ.COM
50. 11-Dec-1986 TANDY.COM
50. 11-Dec-1986 TTI.COM
50. 11-Dec-1986 UNISYS.COM
61. 19-Jan-1987 CGI.COM
61. 19-Jan-1987 CTS.COM
61. 19-Jan-1987 SPDCC.COM
64. 19-Feb-1987 APPLE.COM
65. 04-Mar-1987 NMA.COM
65. 04-Mar-1987 PRIME.COM
67. 04-Apr-1987 PHILIPS.COM
68. 23-Apr-1987 DATACUBE.COM
68. 23-Apr-1987 KAI.COM
68. 23-Apr-1987 TIC.COM
68. 23-Apr-1987 VINE.COM
72. 30-Apr-1987 NCR.COM
73. 14-May-1987 CISCO.COM
73. 14-May-1987 RDL.COM
75. 20-May-1987 SLB.COM
76. 27-May-1987 PARCPLACE.COM
76. 27-May-1987 UTC.COM
78. 26-Jun-1987 IDE.COM
79. 09-Jul-1987 TRW.COM
80. 13-Jul-1987 UNIPRESS.COM
81. 27-Jul-1987 DUPONT.COM
81. 27-Jul-1987 LOCKHEED.COM
83. 28-Jul-1987 ROSETTA.COM
84. 18-Aug-1987 TOAD.COM
85. 31-Aug-1987 QUICK.COM
86. 03-Sep-1987 ALLIED.COM
86. 03-Sep-1987 DSC.COM
86. 03-Sep-1987 SCO.COM
89. 22-Sep-1987 GENE.COM
89. 22-Sep-1987 KCCS.COM
89. 22-Sep-1987 SPECTRA.COM
89. 22-Sep-1987 WLK.COM
93. 30-Sep-1987 MENTAT.COM
94. 14-Oct-1987 WYSE.COM
95. 02-Nov-1987 CFG.COM
96. 09-Nov-1987 MARBLE.COM
97. 16-Nov-1987 CAYMAN.COM
97. 16-Nov-1987 ENTITY.COM
99. 24-Nov-1987 KSR.COM
100. 30-Nov-1987 NYNEXST.COM

I found the list here.