Google's Valentine's Day CardA couple days ago, I was pleasantly surprised to receive a Valentine’s Day card from Google sent out by good old snail mail to select Adsense publishers.

Included in the card was a code for $100 in free Adword credits, good to drive a decent amount of traffic to your site!

Google's Valentine's Day CardOn the back of the card was a QR Code, the popular 2D matrix bar code that is popular in Japan.  It’s a code that can be read by some mobile phones and directs to the same URL shown on the card.

If the pictures are too small, the card reads:

Front: Others will fill your heart this Valentine’s Day
Inside left: We want to overload your servers.
Inside right:

Because nothing says “I love you” like free traffic to your website.

Happy Valentine’s Day.

XOXO The AdWords team.

Happy Valentine’s Day to all my readers!

Popularity: 1% [?]

Tags: , , ,

Comments 6 Comments »

Link WheelerAs all web developers know, the best source of traffic is from search engines such as Google.  But just getting listed on Google isn’t good enough, you also need to be listed as one of the top results (ideally the very first result).  This is because the vast majority of users will not click past the first page of search results.  In fact, most of them won’t look past the first couple links.

In order to increase your search engine rankings, the best way is by building what is known as “organic” or natural backlinks. An example of an organic backlink is when a blog links back to your site because of your interesting content or relevance to their content.  Typically, these are done without asking or any sort of trade, hence the term organic or natural.

Trading links used to be a common tactic amongst website owners and I still often get e-mails along the lines of “If you’ll put a link to my website from yours then I will do the same.”  While this has the advantage of potentially increasing exposure to new users, this type of trade is typically very one sided with one site being more popular than the other.  Also, trading links does not increase search engine rankings as the links can be seen as “cancelling” each other out.

Ideally what you want are one-way organic backlinks and LinkWheeler.com is a service that looks to address this issue through the creation of link wheels.

What is a link wheel?
A link wheel, simply explained, is when sites link to one another in a cyclical pattern.  For example, site A links to site B, site B links to site C, and site C links back to site A.  This example is a small link wheel and generally does not work as their short cycle is easily detected by search engines.
LinkWheeler.com offers link wheel packages that are much bigger and more sophisticated with links coming from different types of sites.

Their link wheels are also not cyclical, meaning the last node does not link back to the first node. This “open wheel” is more effective and more attractive to search engines compared to traditional closed wheels.

Link Wheeler Diagram

Web 2.0 and Social Media
Perhaps the biggest advantage of LinkWheeler is their usage of social media websites and other web 2.0 outlets in addition to traditional article submission strategies.

I’ve seen other backlinking services, all of which make big promises, but their methodology is pretty primitive compared to what LinkWheeler is doing.  Simple directory submissions and article farms just don’t cut it anymore in this day and age.

Pricing and Features
There are three possible packages to choose from ranging from $149 for 27 backlinks to $359 for 89 backlinks. Not everyone will consider this cheap, but you do get what you pay for and results can speak for themselves.  The lowest package includes linking to two URLs with two different keywords whereas the top package links to eight URLs with eight different keywords.

In terms of value, the top premium package is definitely the way to go in my opinion.  With eight keywords and 89 backlinks, you can be sure you’ll get to the first page of search results at least for low-medium competition keywords.  For those highly competitive keywords, it may not boost you to the top but it will certainly go a long way to help getting you there.

Conclusion
The field of search engine optimization (SEO) is a highly competitive one so it’s nice to have a service like LinkWheeler who are experienced and clearly know what they are doing.  The money invested in building links will show returns within a couple weeks once search engine traffic starts funnelling its way onto your site.  In my opinion, link wheels are a great way to increase exposure of your site or blog, and LinkWheeler is an effective and easy way of creating these link wheels.

Popularity: 1% [?]

Tags: , , , , , ,

Comments 17 Comments »

Undermount Cabinet Laptop Swivels

I had a Lenovo Thinkpad X41 Tablet that I purchased a few years ago with high hopes of using it in the classroom. The idea sounded a lot better on paper and the tablet ended up not getting much use. Instead of selling it (goes for a couple hundred dollars these days), I decided to put it to better use by mounting it under a kitchen cabinet.

This way I can use it to listen to music, watch movies, or to look up recipes while I cook!

The process of mounting it was rather simple. You’ll only need the following:

  • Industrial strength adhesive velcro
  • Old laptop (preferably a touchscreen tablet)

Undermount Velcro on Cabinet

Velcro on Underside of Laptop

I bought 4 feet of industrial strength velcro from Office Depot/Staples for about $10.  You won’t need 4 feet but it was the smallest amount it came in.  Unfortunately, the X41 is not a touchscreen tablet which means I need to have use digitizer pen instead of poking with my fingers.  Theoretically, any laptop could be mounted but tablets are best because of the swivel-able screen and light weight.

And of course, if you’re not looking to make the laptop removable/swappable, one could always use something more secure than velcro.

Note: Sorry for the poor iPhone 2G picture quality.

Step 1 – Put velcro under the cabinet
I would use the “hook” part of the velcro for this.  You’ll want to save the soft side for the underside of your laptop for comfort.  I also put an extra piece on the side for the power adapter. Make sure you leave room on either side in case you need to plug in USB devices later.

Step 2 – Put velcro onto the underside of your laptop
Underview of Undermount Cabinet LaptopSideview of Undermount Cabinet LaptopThe basic idea is to put as much velcro on the underside as possible (making sure the velcro is higher than the laptop feet).  You’ll want to leave any vents uncovered and ideally avoid areas of high heat output.  I also removed the battery to decrease the weight.

Step 3 – Mount it up.
Make sure you let the adhesive set first before mounting.  I put a beach towel under the laptop for the first few days just in case it fell but it seems to be very secure.  I would worry about leaving the laptop running 24/7 in case the heat generated wears out the adhesive.  I keep my laptop on stand-by most of the time.

Step 4 – Set up the Software
Make sure you’re using a tablet-supported operating system (e.g. Windows 7/Vista/XP Tablet edition) and using either the video driver or some other software, flip the displayed image so that it appears right side up when in use.

That’s it, enjoy!  If you like this simple DIY project, check out my ethernet cable mod and IBM Model M Keyboard mod.

Popularity: 1% [?]

Tags: , , , , ,

Comments 17 Comments »

For the holiday season, my favorite online back-up solution, Mozy, is giving away a bonus 512 megs of space for their free 2 GB accounts.  This means you’ll get 2.5 gigabytes of encrypted online back-up storage (25% more than usual!).

I’ve reviewed Mozy before and found it to be the best back-up solution.  2.5 gigabytes isn’t much space by today’s standards but it’s more than enough to store important documents and files offsite.  Backing up everything to an external hard drive is a good idea but if some sort of accident (e.g. fire, earthquake) damages your computer, chances are, your external hard drive will be lost too! That’s why it’s also important to keep at least one extra copy of your back-up offsite.

Not to mention, it’s one of the only online back-up services available for Mac OS :)

Enter referral code T3DN37 to get the bonus 512 megs of space (full disclosure: I’ll get a 512 meg bonus as well).  This offer ends January 10, 2010.

Popularity: 2% [?]

Tags: , , ,

Comments 14 Comments »

I saw this piece of code mentioned on reddit and it absolutely blew my mind.  The code below is written in the Ruby programming language and when compiled, produces compilable Python code which is impressive in itself.  And when you compile the outputted Python code, it produces Perl code, which generates Lua code, which generates OCaml code, which generates Haskell code, which generates C code, which generates Java code, which generates Brainfuck code, which generates Whitespace code, which generates Unlambda code.  And as a finale, the Unlambda brings everything full circle and generates the original Ruby code!  Truly an amazing piece of work.

# ruby
l=92.chr;eval s="s=s.dump[r=1..-2].gsub(/("+l*4+"){4,}(?!\")/){|t|'\"+l*%d+\"'%(t
.size/2)};5.times{s=s.dump[r]};puts\"# python\\nprint(\\\"# perl\\\\nprint(\\\\\\
\"# lua"+l*4+"nprint("+l*7+"\"(* ocaml *)"+l*8+"nprint_endline"+l*15+"\"-- haskel
l"+l*16+"nimport Data.List;import Data.Bits;import Data.Char;main=putStrLn("+l*31
+"\"/* C */"+l*32+"n#include<stdio.h>"+l*32+"nint main(void){char*s[501]={"+l*31+
"\"++intercalate"+l*31+"\","+l*31+"\"(c(tail(init(show("+l*31+"\"/* Java */"+l*32
+"npublic class QuineRelay{public static void main(String[]a){String[]s={"+l*31+"
\"++intercalate"+l*31+"\","+l*31+"\"(c("+l*31+"\"brainfuck"+l*64+"n++++++++[>++++
<-]+++++++++>>++++++++++"+l*31+"\"++(concat(snd(mapAccumL h 2("+l*31+"\"110"+l*31
+"\"++g(length s)++"+l*31+"\"22111211100111112021111102011112120012"+l*31+"\"++co
ncatMap("+l*32+"c->let d=ord c in if d<11then"+l*31+"\"21002"+l*31+"\"else"+l*31+
"\"111"+l*31+"\"++g d++"+l*31+"\"22102"+l*31+"\")s++"+l*31+"\"2100211101012021122
2211211101000120211021120221102111000110120211202"+l*31+"\"))))))++"+l*31+"\","+l
*63+"\""+l*64+"n"+l*63+"\"};int i=0;for(;i<94;i++)System.out.print(s[i]);}}"+l*31
+"\")))))++"+l*31+"\",0};int i=0;for(;s[i];i++)printf("+l*63+"\"%s"+l*63+"\",s[i]
);puts("+l*63+"\""+l*63+"\");return 0;}"+l*31+"\");c s=map("+l*32+"s->"+l*31+"\""
+l*63+"\""+l*31+"\"++s++"+l*31+"\""+l*63+"\""+l*31+"\")(unfoldr t s);t[]=Nothing;
t s=Just(splitAt(if length s>w&&s!!w=='"+l*31+"\"'then 501else w)s);w=500;f 0=Not
hing;f x=Just((if x`mod`2>0then '0'else '1'),x`div`2);g x= reverse (unfoldr f x);
h p c=let d=ord c-48in(d,replicate(abs(p-d))(if d<p then '<'else '>')++"+l*31+"\"
."+l*31+"\");s="+l*31+"\"# ruby"+l*32+"n"+l*31+"\"++"+l*31+"\"l=92.chr;eval s=\"+
(z=l*31)+\"\\\"\"+s+z+\"\\\""+l*31+"\"++"+l*31+"\""+l*32+"n"+l*31+"\""+l*15+"\""+
l*7+"\")"+l*4+"n\\\\\\\")\\\")\"########### (c) Yusuke Endoh, 2009 ###########\n"

To properly try this, you’ll require the following versions of each compiler:

* ruby 1.8.7-p72
* Python 2.5.2
* perl v5.10.0
* Lua 5.0.3
* OCaml 3.10.2
* ghc-6.8.2
* gcc 4.3.2
* java "1.5.0_17"
* beef 0.0.6-2
* whitespace 0.3-2
* unlambda 2.0.0-5

Credit goes to Yusuke Endoh for this masterpiece of programming art.

Popularity: 2% [?]

Tags: , , , ,

Comments 5 Comments »